Documentation

LeanPool.Lentil.Rules.BigOp

Theorems about big operators (e.g., , ).

theorem TLA.bigwedge_list_nil {α : Type u} {β : Type v} (f : βpred α) :
(x[], (f x)) =tla= ()
theorem TLA.bigwedge_list_cons {α : Type u} {β : Type v} (f : βpred α) (l : List β) (b : β) :
(xb :: l, (f x)) =tla= ((f b)xl, (f x))
theorem TLA.bigwedge_list_append {α : Type u} {β : Type v} (f : βpred α) (l1 l2 : List β) :
(xl1 ++ l2, (f x)) =tla= ((xl1, (f x))xl2, (f x))
theorem TLA.bigwedge_forall_list {α : Type u} {β : Type v} (f : βpred α) (l : List β) :
(xl, (f x)) =tla= (x, (x l(f x)))
theorem TLA.bigwedge_forall_fintype_list {α : Type u} {β : Type v} (f : βpred α) (l : List β) :
(xl, (f x)) =tla= (x, (f l[x]))
theorem TLA.bigwedge_forall_swap {α : Type u} {β : Type v} (l : List β) {γ : Type w} (f : βγpred α) :
(c, xl, (f x c)) =tla= (xl, c, (f x c))
theorem TLA.bigwedge_inner_and_split {α : Type u} {β : Type v} (f g : βpred α) (l : List β) :
(xl, (f x)(g x)) =tla= ((xl, (f x))xl, (g x))
theorem TLA.always_bigwedge {α : Type u} {β : Type v} (f : βpred α) (l : List β) :
(xl, (f x)) =tla= (xl, (f x))
theorem TLA.eventually_always_bigwedge_distrib {α : Type u} {β : Type v} (f : βpred α) (l : List β) :
(xl, (f x)) =tla= (xl, (f x))
theorem TLA.bigvee_list_nil {α : Type u} {β : Type v} (f : βpred α) :
(x[], (f x)) =tla= ()
theorem TLA.bigvee_list_cons {α : Type u} {β : Type v} (f : βpred α) (l : List β) (b : β) :
(xb :: l, (f x)) =tla= ((f b)xl, (f x))
theorem TLA.bigvee_exists_list {α : Type u} {β : Type v} (f : βpred α) (l : List β) :
(xl, (f x)) =tla= (x, (x l(f x)))
theorem TLA.bigvee_exists_fintype_list {α : Type u} {β : Type v} (f : βpred α) (l : List β) :
(xl, (f x)) =tla= (x, (f l[x]))
theorem TLA.bigvee_and_distrib {α : Type u} {β : Type v} (f : βpred α) (l : List β) (p : pred α) :
(pxl, (f x)) =tla= (xl, p(f x))
theorem TLA.bigwedge_bigvee_match {α : Type u} {β : Type v} (f g : βpred α) (l : List β) :
((xl, (f x))xl, (g x)) |-tla- (xl, (f x)(g x))