mathlib documentation

data.​vector2

data.​vector2

@[instance]
def vector.​inhabited {n : } {α : Type u_1} [inhabited α] :

Equations
@[simp]
theorem vector.​cons_val {n : } {α : Type u_1} (a : α) (v : vector α n) :
(a :: v).val = a :: v.val

@[simp]
theorem vector.​cons_head {n : } {α : Type u_1} (a : α) (v : vector α n) :
(a :: v).head = a

@[simp]
theorem vector.​cons_tail {n : } {α : Type u_1} (a : α) (v : vector α n) :
(a :: v).tail = v

@[simp]
theorem vector.​to_list_of_fn {α : Type u_1} {n : } (f : fin n → α) :

@[simp]
theorem vector.​mk_to_list {n : } {α : Type u_1} (v : vector α n) (h : v.to_list.length = n) :
v.to_list, h⟩ = v

@[simp]
theorem vector.​to_list_map {n : } {α : Type u_1} {β : Type u_2} (v : vector α n) (f : α → β) :

theorem vector.​nth_eq_nth_le {n : } {α : Type u_1} (v : vector α n) (i : fin n) :
v.nth i = v.to_list.nth_le i.val _

@[simp]
theorem vector.​nth_map {n : } {α : Type u_1} {β : Type u_2} (v : vector α n) (f : α → β) (i : fin n) :
(vector.map f v).nth i = f (v.nth i)

@[simp]
theorem vector.​nth_of_fn {α : Type u_1} {n : } (f : fin n → α) (i : fin n) :
(vector.of_fn f).nth i = f i

@[simp]
theorem vector.​of_fn_nth {n : } {α : Type u_1} (v : vector α n) :

@[simp]
theorem vector.​nth_tail {n : } {α : Type u_1} (v : vector α n.succ) (i : fin n) :
v.tail.nth i = v.nth i.succ

@[simp]
theorem vector.​tail_val {n : } {α : Type u_1} (v : vector α n.succ) :

@[simp]
theorem vector.​tail_of_fn {α : Type u_1} {n : } (f : fin n.succ → α) :
(vector.of_fn f).tail = vector.of_fn (λ (i : fin (n.succ - 1)), f i.succ)

theorem vector.​mem_iff_nth {n : } {α : Type u_1} {a : α} {v : vector α n} :
a v.to_list ∃ (i : fin n), v.nth i = a

theorem vector.​nodup_iff_nth_inj {n : } {α : Type u_1} {v : vector α n} :

@[simp]
theorem vector.​nth_mem {n : } {α : Type u_1} (i : fin n) (v : vector α n) :

theorem vector.​head'_to_list {n : } {α : Type u_1} (v : vector α n.succ) :

def vector.​reverse {n : } {α : Type u_1} :
vector α nvector α n

Equations
@[simp]
theorem vector.​nth_zero {n : } {α : Type u_1} (v : vector α n.succ) :
v.nth 0 = v.head

@[simp]
theorem vector.​head_of_fn {α : Type u_1} {n : } (f : fin n.succ → α) :

@[simp]
theorem vector.​nth_cons_zero {n : } {α : Type u_1} (a : α) (v : vector α n) :
(a :: v).nth 0 = a

@[simp]
theorem vector.​nth_cons_succ {n : } {α : Type u_1} (a : α) (v : vector α n) (i : fin n) :
(a :: v).nth i.succ = v.nth i

def vector.​m_of_fn {m : Type uType u_1} [monad m] {α : Type u} {n : } :
(fin nm α)m (vector α n)

Equations
theorem vector.​m_of_fn_pure {m : Type u_1Type u_2} [monad m] [is_lawful_monad m] {α : Type u_1} {n : } (f : fin n → α) :

def vector.​mmap {m : Type uType u_1} [monad m] {α : Type u_2} {β : Type u} (f : α → m β) {n : } :
vector α nm (vector β n)

Equations
@[simp]
theorem vector.​mmap_nil {m : Type u_1Type u_2} [monad m] {α : Type u_3} {β : Type u_1} (f : α → m β) :

@[simp]
theorem vector.​mmap_cons {m : Type u_1Type u_2} [monad m] {α : Type u_3} {β : Type u_1} (f : α → m β) (a : α) {n : } (v : vector α n) :
vector.mmap f (a :: v) = f a >>= λ (h' : β), vector.mmap f v >>= λ (t' : vector β n), has_pure.pure (h' :: t')

@[ext]
theorem vector.​ext {n : } {α : Type u_1} {v w : vector α n} :
(∀ (m : fin n), v.nth m = w.nth m)v = w

@[instance]
def vector.​zero_subsingleton {α : Type u_1} :

Equations
def vector.​to_array {n : } {α : Type u_1} :
vector α narray n α

Equations
def vector.​insert_nth {n : } {α : Type u_1} :
α → fin (n + 1)vector α nvector α (n + 1)

Equations
theorem vector.​insert_nth_val {n : } {α : Type u_1} {a : α} {i : fin (n + 1)} {v : vector α n} :

@[simp]
theorem vector.​remove_nth_val {n : } {α : Type u_1} {i : fin n} {v : vector α n} :

theorem vector.​remove_nth_insert_nth {n : } {α : Type u_1} {a : α} {v : vector α n} {i : fin (n + 1)} :

theorem vector.​remove_nth_insert_nth_ne {n : } {α : Type u_1} {a : α} {v : vector α (n + 1)} {i j : fin (n + 2)} (h : i j) :

theorem vector.​insert_nth_comm {n : } {α : Type u_1} (a b : α) (i j : fin (n + 1)) (h : i j) (v : vector α n) :

def vector.​update_nth {n : } {α : Type u_1} :
vector α nfin nα → vector α n

update_nth v n a replaces the nth element of v with a

Equations
@[simp]
theorem vector.​nth_update_nth_same {n : } {α : Type u_1} (v : vector α n) (i : fin n) (a : α) :
(v.update_nth i a).nth i = a

theorem vector.​nth_update_nth_of_ne {n : } {α : Type u_1} {v : vector α n} {i j : fin n} (h : i j) (a : α) :
(v.update_nth i a).nth j = v.nth j

theorem vector.​nth_update_nth_eq_if {n : } {α : Type u_1} {v : vector α n} {i j : fin n} (a : α) :
(v.update_nth i a).nth j = ite (i = j) a (v.nth j)

def vector.​traverse {n : } {F : Type uType u} [applicative F] {α β : Type u} :
(α → F β)vector α nF (vector β n)

Equations
@[simp]
theorem vector.​traverse_def {n : } {F : Type uType u} [applicative F] [is_lawful_applicative F] {α β : Type u} (f : α → F β) (x : α) (xs : vector α n) :

theorem vector.​id_traverse {n : } {α : Type u} (x : vector α n) :

theorem vector.​comp_traverse {n : } {F G : Type uType u} [applicative F] [applicative G] [is_lawful_applicative F] [is_lawful_applicative G] {α β γ : Type u} (f : β → F γ) (g : α → G β) (x : vector α n) :

theorem vector.​traverse_eq_map_id {n : } {α β : Type u_1} (f : α → β) (x : vector α n) :

theorem vector.​naturality {n : } {F G : Type uType u} [applicative F] [applicative G] [is_lawful_applicative F] [is_lawful_applicative G] (η : applicative_transformation F G) {α β : Type u} (f : α → F β) (x : vector α n) :

@[instance]

Equations