Documentation

Init.Data.Array.Mem

theorem List.sizeOf_get_lt {α : Type u_1} [SizeOf α] (as : List α) (i : Fin (List.length as)) :
theorem Array.sizeOf_get_lt {α : Type u_1} [SizeOf α] (as : Array α) (i : Fin (Array.size as)) :
theorem Array.sizeOf_lt_of_mem {α : Type u_1} {a : α} [DecidableEq α] [SizeOf α] {as : Array α} (h : a as) :
theorem Array.sizeOf_lt_of_mem.aux {α : Type u_1} {a : α} [DecidableEq α] [SizeOf α] {as : Array α} (h : Array.anyM.loop (fun b => decide (a = b)) as (Array.size as) (_ : Array.size as Array.size as) 0 = true) (j : Nat) (h : Array.anyM.loop (fun b => decide (a = b)) as (Array.size as) (_ : Array.size as Array.size as) j = true) :
@[simp]
theorem Array.sizeOf_get {α : Type u_1} [SizeOf α] (as : Array α) (i : Fin (Array.size as)) :

This tactic, added to the decreasing_trivial toolbox, proves that sizeOf arr[i] < sizeOf arr, which is useful for well founded recursions over a nested inductive like inductive T | mk : Array T → T.

Instances For