Documentation

Mathlib.Data.Vector.Mem

Theorems about membership of elements in vectors #

This file contains theorems for membership in a v.toList for a vector v. Having the length available in the type allows some of the lemmas to be simpler and more general than the original version for lists. In particular we can avoid some assumptions about types being Inhabited, and make more general statements about head and tail.

@[simp]
theorem Mathlib.Vector.get_mem {α : Type u_1} {n : } (i : Fin n) (v : Mathlib.Vector α n) :
v.get i v.toList
theorem Mathlib.Vector.mem_iff_get {α : Type u_1} {n : } (a : α) (v : Mathlib.Vector α n) :
a v.toList ∃ (i : Fin n), v.get i = a
theorem Mathlib.Vector.not_mem_nil {α : Type u_1} (a : α) :
aMathlib.Vector.nil.toList
theorem Mathlib.Vector.not_mem_zero {α : Type u_1} (a : α) (v : Mathlib.Vector α 0) :
av.toList
theorem Mathlib.Vector.mem_cons_iff {α : Type u_1} {n : } (a a' : α) (v : Mathlib.Vector α n) :
a' (a ::ᵥ v).toList a' = a a' v.toList
theorem Mathlib.Vector.mem_succ_iff {α : Type u_1} {n : } (a : α) (v : Mathlib.Vector α (n + 1)) :
a v.toList a = v.head a v.tail.toList
theorem Mathlib.Vector.mem_cons_self {α : Type u_1} {n : } (a : α) (v : Mathlib.Vector α n) :
a (a ::ᵥ v).toList
@[simp]
theorem Mathlib.Vector.head_mem {α : Type u_1} {n : } (v : Mathlib.Vector α (n + 1)) :
v.head v.toList
theorem Mathlib.Vector.mem_cons_of_mem {α : Type u_1} {n : } (a a' : α) (v : Mathlib.Vector α n) (ha' : a' v.toList) :
a' (a ::ᵥ v).toList
theorem Mathlib.Vector.mem_of_mem_tail {α : Type u_1} {n : } (a : α) (v : Mathlib.Vector α n) (ha : a v.tail.toList) :
a v.toList
theorem Mathlib.Vector.mem_map_iff {α : Type u_1} {β : Type u_2} {n : } (b : β) (v : Mathlib.Vector α n) (f : αβ) :
b (Mathlib.Vector.map f v).toList av.toList, f a = b
theorem Mathlib.Vector.not_mem_map_zero {α : Type u_1} {β : Type u_2} (b : β) (v : Mathlib.Vector α 0) (f : αβ) :
b(Mathlib.Vector.map f v).toList
theorem Mathlib.Vector.mem_map_succ_iff {α : Type u_1} {β : Type u_2} {n : } (b : β) (v : Mathlib.Vector α (n + 1)) (f : αβ) :
b (Mathlib.Vector.map f v).toList f v.head = b av.tail.toList, f a = b