Documentation

Mathlib.Order.Booleanisation

Adding complements to a generalized Boolean algebra #

This file embeds any generalized Boolean algebra into a Boolean algebra.

This concretely proves that any equation holding true in the theory of Boolean algebras that does not reference also holds true in the theory of generalized Boolean algebras. Put another way, one does not need the existence of complements to prove something which does not talk about complements.

Main declarations #

Future work #

If mathlib ever acquires GenBoolAlg, the category of generalised Boolean algebras, then one could show that Booleanisation is the free functor from GenBoolAlg to BoolAlg.

Equations
@[match_pattern]
def Booleanisation.lift {α : Type u_1} :
αBooleanisation α

The natural inclusion a ↦ a from a generalized Boolean algebra to its generated Boolean algebra.

Equations
  • Booleanisation.lift = Sum.inl
@[match_pattern]
def Booleanisation.comp {α : Type u_1} :
αBooleanisation α

The inclusion `a ↦ aᶜ from a generalized Boolean algebra to its generated Boolean algebra.

Equations
  • Booleanisation.comp = Sum.inr

The complement operator on Booleanisation α sends a to aᶜ and aᶜ to a, for a : α.

Equations

The order on Booleanisation α is as follows: For a b : α,

  • a ≤ b iff a ≤ b in α
  • a ≤ bᶜ iff a and b are disjoint in α
  • aᶜ ≤ bᶜ iff b ≤ a in α
  • ¬ aᶜ ≤ b

The order on Booleanisation α is as follows: For a b : α,

  • a < b iff a < b in α
  • a < bᶜ iff a and b are disjoint in α
  • aᶜ < bᶜ iff b < a in α
  • ¬ aᶜ < b

The order on Booleanisation α is as follows: For a b : α,

  • a ≤ b iff a ≤ b in α
  • a ≤ bᶜ iff a and b are disjoint in α
  • aᶜ ≤ bᶜ iff b ≤ a in α
  • ¬ aᶜ ≤ b
Equations
  • Booleanisation.instLE = { le := Booleanisation.LE }

The order on Booleanisation α is as follows: For a b : α,

  • a < b iff a < b in α
  • a < bᶜ iff a and b are disjoint in α
  • aᶜ < bᶜ iff b < a in α
  • ¬ aᶜ < b
Equations
  • Booleanisation.instLT = { lt := Booleanisation.LT }

The supremum on Booleanisation α is as follows: For a b : α,

  • a ⊔ b is a ⊔ b
  • a ⊔ bᶜ is (b \ a)ᶜ
  • aᶜ ⊔ b is (a \ b)ᶜ
  • aᶜ ⊔ bᶜ is (a ⊓ b)ᶜ
Equations
  • One or more equations did not get rendered due to their size.

The infimum on Booleanisation α is as follows: For a b : α,

  • a ⊓ b is a ⊓ b
  • a ⊓ bᶜ is a \ b
  • aᶜ ⊓ b is b \ a
  • aᶜ ⊓ bᶜ is (a ⊔ b)ᶜ
Equations
  • One or more equations did not get rendered due to their size.

The bottom element of Booleanisation α is the bottom element of α.

Equations

The top element of Booleanisation α is the complement of the bottom element of α.

Equations

The difference operator on Booleanisation α is as follows: For a b : α,

  • a \ b is a \ b
  • a \ bᶜ is a ⊓ b
  • aᶜ \ b is (a ⊔ b)ᶜ
  • aᶜ \ bᶜ is b \ a
Equations
  • One or more equations did not get rendered due to their size.
Equations
Equations
Equations
Equations
Equations
Equations
  • Booleanisation.instBoundedOrder = BoundedOrder.mk
Equations

The embedding from a generalised Boolean algebra to its generated Boolean algebra.

Equations
  • Booleanisation.liftLatticeHom = { toFun := Booleanisation.lift, map_sup' := , map_inf' := }