Documentation

Mathlib.Data.List.ReduceOption

Properties of List.reduceOption #

In this file we prove basic lemmas about List.reduceOption.

@[simp]
theorem List.reduceOption_cons_of_some {α : Type u_1} (x : α) (l : List (Option α)) :
@[simp]
@[simp]
theorem List.reduceOption_map {α : Type u_1} {β : Type u_2} {l : List (Option α)} {f : αβ} :
theorem List.reduceOption_eq_nil_iff {α : Type u_1} (l : List (Option α)) :
l.reduceOption = [] ∃ (n : ), l = replicate n none
theorem List.reduceOption_eq_singleton_iff {α : Type u_1} (l : List (Option α)) (a : α) :
l.reduceOption = [a] ∃ (m : ) (n : ), l = replicate m none ++ some a :: replicate n none
theorem List.reduceOption_eq_append_iff {α : Type u_1} (l : List (Option α)) (l'₁ l'₂ : List α) :
l.reduceOption = l'₁ ++ l'₂ ∃ (l₁ : List (Option α)) (l₂ : List (Option α)), l = l₁ ++ l₂ l₁.reduceOption = l'₁ l₂.reduceOption = l'₂
theorem List.reduceOption_eq_concat_iff {α : Type u_1} (l : List (Option α)) (l' : List α) (a : α) :
l.reduceOption = l'.concat a ∃ (l₁ : List (Option α)) (l₂ : List (Option α)), l = l₁ ++ some a :: l₂ l₁.reduceOption = l' l₂.reduceOption = []
theorem List.reduceOption_length_eq_iff {α : Type u_1} {l : List (Option α)} :
l.reduceOption.length = l.length xl, x.isSome = true
theorem List.reduceOption_concat {α : Type u_1} (l : List (Option α)) (x : Option α) :
theorem List.reduceOption_mem_iff {α : Type u_1} {l : List (Option α)} {x : α} :
theorem List.reduceOption_getElem?_iff {α : Type u_1} {l : List (Option α)} {x : α} :
(∃ (i : ), l[i]? = some (some x)) ∃ (i : ), l.reduceOption[i]? = some x