Documentation

Mathlib.Algebra.Order.Disjointed

Disjointed for functions on a SuccAddOrder #

This file contains material excised from Mathlib.Order.Disjointed to avoid import dependencies from Mathlib.Algebra.Order into Mathlib.Order.

TODO #

Find a useful statement of disjointedRec_succ.

theorem disjointed_add_one {α : Type u_1} {ι : Type u_2} [GeneralizedBooleanAlgebra α] [LinearOrder ι] [LocallyFiniteOrderBot ι] [Add ι] [One ι] [SuccAddOrder ι] [NoMaxOrder ι] (f : ια) (i : ι) :
disjointed f (i + 1) = f (i + 1) \ (partialSups f) i
theorem Monotone.disjointed_add_one_sup {α : Type u_1} {ι : Type u_2} [GeneralizedBooleanAlgebra α] [LinearOrder ι] [LocallyFiniteOrderBot ι] [Add ι] [One ι] [SuccAddOrder ι] {f : ια} (hf : Monotone f) (i : ι) :
disjointed f (i + 1) f i = f (i + 1)
theorem Monotone.disjointed_add_one {α : Type u_1} {ι : Type u_2} [GeneralizedBooleanAlgebra α] [LinearOrder ι] [LocallyFiniteOrderBot ι] [Add ι] [One ι] [SuccAddOrder ι] [NoMaxOrder ι] {f : ια} (hf : Monotone f) (i : ι) :
disjointed f (i + 1) = f (i + 1) \ f i
def Nat.disjointedRec {α : Type u_1} [GeneralizedBooleanAlgebra α] {f : α} {p : αSort u_3} (hdiff : t : α⦄ → i : ⦄ → p tp (t \ f i)) ⦃n : :
p (f n)p (disjointed f n)

A recursion principle for disjointed. To construct / define something for disjointed f i, it's enough to construct / define it for f n and to able to extend through diffs.

Note that this version allows an arbitrary Sort*, but requires the domain to be Nat, while the root-level disjointedRec allows more general domains but requires p to be Prop-valued.

Equations
Instances For
    @[simp]
    theorem disjointedRec_zero {α : Type u_1} [GeneralizedBooleanAlgebra α] {f : α} {p : αSort u_3} (hdiff : t : α⦄ → i : ⦄ → p tp (t \ f i)) (h₀ : p (f 0)) :
    Nat.disjointedRec hdiff h₀ = h₀