Triplewise predicates on list. #
Main definitions #
List.Triplewisesays that a predicate applies to all ordered triples of elements of a list.
Whether a predicate holds for all ordered triples of elements of a list.
- nil {α : Type u_1} {p : α ā α ā α ā Prop} : Triplewise p []
- cons {α : Type u_1} {p : α ā α ā α ā Prop} {a : α} {l : List α} : Pairwise (p a) l ā Triplewise p l ā Triplewise p (a :: l)
Instances For
theorem
List.triplewise_iff
{α : Type u_1}
(p : α ā α ā α ā Prop)
(aā : List α)
:
Triplewise p aā ā aā = [] ⨠ā (a : α) (l : List α), Pairwise (p a) l ā§ Triplewise p l ā§ aā = a :: l
theorem
List.triplewise_cons
{α : Type u_1}
{a : α}
{l : List α}
{p : α ā α ā α ā Prop}
:
Triplewise p (a :: l) ā Pairwise (p a) l ā§ Triplewise p l
@[simp]
theorem
List.triplewise_singleton
{α : Type u_1}
(a : α)
(p : α ā α ā α ā Prop)
:
Triplewise p [a]
@[simp]
theorem
List.triplewise_pair
{α : Type u_1}
(a b : α)
(p : α ā α ā α ā Prop)
:
Triplewise p [a, b]
@[simp]
theorem
List.triplewise_triple
{α : Type u_1}
{a b c : α}
{p : α ā α ā α ā Prop}
:
Triplewise p [a, b, c] ā p a b c
theorem
List.Triplewise.imp
{α : Type u_1}
{l : List α}
{p q : α ā α ā α ā Prop}
(h : ā {a b c : α}, p a b c ā q a b c)
(hl : Triplewise p l)
:
Triplewise q l
theorem
List.triplewise_map
{α : Type u_1}
{β : Type u_2}
{l : List α}
{f : α ā β}
{p' : β ā β ā β ā Prop}
:
Triplewise p' (map f l) ā Triplewise (fun (a b c : α) => p' (f a) (f b) (f c)) l
theorem
List.Triplewise.of_map
{α : Type u_1}
{β : Type u_2}
{l : List α}
{p : α ā α ā α ā Prop}
{f : α ā β}
{p' : β ā β ā β ā Prop}
(h : ā {a b c : α}, p' (f a) (f b) (f c) ā p a b c)
(hl : Triplewise p' (List.map f l))
:
Triplewise p l
theorem
List.Triplewise.map
{α : Type u_1}
{β : Type u_2}
{l : List α}
{p : α ā α ā α ā Prop}
{f : α ā β}
{p' : β ā β ā β ā Prop}
(h : ā {a b c : α}, p a b c ā p' (f a) (f b) (f c))
(hl : Triplewise p l)
:
Triplewise p' (List.map f l)
theorem
List.triplewise_iff_getElem
{α : Type u_1}
{l : List α}
{p : α ā α ā α ā Prop}
:
Triplewise p l ā ā (i j k : ā) (hij : i < j) (hjk : j < k) (hk : k < l.length), p l[i] l[j] l[k]
theorem
List.triplewise_append
{α : Type u_1}
{lā lā : List α}
{p : α ā α ā α ā Prop}
:
Triplewise p (lā ++ lā) ā Triplewise p lā ā§ Triplewise p lā ā§ (ā a ā lā, Pairwise (p a) lā) ā§ ā a ā lā, Pairwise (fun (x y : α) => p x y a) lā
theorem
List.triplewise_reverse
{α : Type u_1}
{l : List α}
{p : α ā α ā α ā Prop}
:
Triplewise p l.reverse ā Triplewise (fun (a b c : α) => p c b a) l