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.

def Booleanisation (α : Type u_2) :
Type u_2

Boolean algebra containing a given generalised Boolean algebra α as a sublattice.

This should be thought of as made of a copy of α (representing elements of α) living under another copy of α (representing complements of elements of α).

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
@[match_pattern]
def Booleanisation.comp {α : Type u_1} :
αBooleanisation α

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

Equations

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

Equations
@[simp]
theorem Booleanisation.compl_lift {α : Type u_1} (a : α) :
(lift a) = comp a
@[simp]
theorem Booleanisation.compl_comp {α : Type u_1} (a : α) :
(comp a) = lift a

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

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

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.
@[simp]
theorem Booleanisation.lift_le_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] {a b : α} :
lift a lift b a b
@[simp]
theorem Booleanisation.comp_le_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] {a b : α} :
comp a comp b b a
@[simp]
@[simp]
@[simp]
theorem Booleanisation.lift_lt_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] {a b : α} :
lift a < lift b a < b
@[simp]
theorem Booleanisation.comp_lt_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] {a b : α} :
comp a < comp b b < a
@[simp]
theorem Booleanisation.lift_lt_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] {a b : α} :
@[simp]
@[simp]
theorem Booleanisation.lift_sup_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
lift alift b = lift (ab)
@[simp]
theorem Booleanisation.lift_sup_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
lift acomp b = comp (b \ a)
@[simp]
theorem Booleanisation.comp_sup_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
comp alift b = comp (a \ b)
@[simp]
theorem Booleanisation.comp_sup_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
comp acomp b = comp (ab)
@[simp]
theorem Booleanisation.lift_inf_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
lift alift b = lift (ab)
@[simp]
theorem Booleanisation.lift_inf_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
lift acomp b = lift (a \ b)
@[simp]
theorem Booleanisation.comp_inf_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
comp alift b = lift (b \ a)
@[simp]
theorem Booleanisation.comp_inf_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
comp acomp b = comp (ab)
@[simp]
theorem Booleanisation.lift_sdiff_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
lift a \ lift b = lift (a \ b)
@[simp]
theorem Booleanisation.lift_sdiff_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
lift a \ comp b = lift (ab)
@[simp]
theorem Booleanisation.comp_sdiff_lift {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
comp a \ lift b = comp (ab)
@[simp]
theorem Booleanisation.comp_sdiff_comp {α : Type u_1} [GeneralizedBooleanAlgebra α] (a b : α) :
comp a \ comp b = lift (b \ a)
Equations
Equations
Equations
Equations
  • One or more equations did not get rendered due to their size.
Equations
  • One or more equations did not get rendered due to their size.

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

Equations