The category of Boolean algebras.
- of :: (
- carrier : Type u_1
The underlying Boolean algebra.
- str : BooleanAlgebra ↑self
- )
Instances For
@[implicit_reducible]
The type of morphisms in BoolAlg R.
- hom' : BoundedLatticeHom ↑X ↑Y
The underlying
BoundedLatticeHom.
Instances For
@[implicit_reducible]
@[implicit_reducible]
instance
BoolAlg.instConcreteCategoryBoundedLatticeHomCarrier :
CategoryTheory.ConcreteCategory BoolAlg fun (x1 x2 : BoolAlg) => BoundedLatticeHom ↑x1 ↑x2
@[reducible, inline]
abbrev
BoolAlg.ofHom
{X Y : Type u}
[BooleanAlgebra X]
[BooleanAlgebra Y]
(f : BoundedLatticeHom X Y)
:
Typecheck a BoundedLatticeHom as a morphism in BoolAlg.
Instances For
Use the ConcreteCategory.hom projection for @[simps] lemmas.
Instances For
The results below duplicate the ConcreteCategory simp lemmas, but we can keep them for dsimp.
@[simp]
@[simp]
@[simp]
theorem
BoolAlg.ext
{X Y : BoolAlg}
{f g : X ⟶ Y}
(w : ∀ (x : ↑X), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x)
:
f = g
theorem
BoolAlg.ext_iff
{X Y : BoolAlg}
{f g : X ⟶ Y}
:
f = g ↔ ∀ (x : ↑X), (CategoryTheory.ConcreteCategory.hom f) x = (CategoryTheory.ConcreteCategory.hom g) x
@[simp]
@[simp]
theorem
BoolAlg.hom_comp
{X Y Z : BoolAlg}
(f : X ⟶ Y)
(g : Y ⟶ Z)
:
Hom.hom (CategoryTheory.CategoryStruct.comp f g) = (Hom.hom g).comp (Hom.hom f)
@[simp]
theorem
BoolAlg.hom_ofHom
{X Y : Type u}
[BooleanAlgebra X]
[BooleanAlgebra Y]
(f : BoundedLatticeHom X Y)
:
@[simp]
@[simp]
theorem
BoolAlg.ofHom_id
{X : Type u}
[BooleanAlgebra X]
:
ofHom (BoundedLatticeHom.id X) = CategoryTheory.CategoryStruct.id { carrier := X, str := inst✝ }
@[simp]
theorem
BoolAlg.ofHom_comp
{X Y Z : Type u}
[BooleanAlgebra X]
[BooleanAlgebra Y]
[BooleanAlgebra Z]
(f : BoundedLatticeHom X Y)
(g : BoundedLatticeHom Y Z)
:
ofHom (g.comp f) = CategoryTheory.CategoryStruct.comp (ofHom f) (ofHom g)
theorem
BoolAlg.ofHom_apply
{X Y : Type u}
[BooleanAlgebra X]
[BooleanAlgebra Y]
(f : BoundedLatticeHom X Y)
(x : X)
:
(CategoryTheory.ConcreteCategory.hom (ofHom f)) x = f x
theorem
BoolAlg.inv_hom_apply
{X Y : BoolAlg}
(e : X ≅ Y)
(x : ↑X)
:
(CategoryTheory.ConcreteCategory.hom e.inv) ((CategoryTheory.ConcreteCategory.hom e.hom) x) = x
theorem
BoolAlg.hom_inv_apply
{X Y : BoolAlg}
(e : X ≅ Y)
(s : ↑Y)
:
(CategoryTheory.ConcreteCategory.hom e.hom) ((CategoryTheory.ConcreteCategory.hom e.inv) s) = s
Turn a BoolAlg into a BddDistLat by forgetting its complement operation.
Instances For
@[simp]
@[implicit_reducible]
@[implicit_reducible]
@[simp]
theorem
BoolAlg.hasForgetToHeytAlg_forget₂_obj_coe
(X : BoolAlg)
:
↑(CategoryTheory.HasForget₂.forget₂.obj X) = ↑X
@[simp]
theorem
BoolAlg.hasForgetToHeytAlg_forget₂_map
{X Y : BoolAlg}
(f : X ⟶ Y)
:
CategoryTheory.HasForget₂.forget₂.map f = HeytAlg.ofHom { toFun := ⇑(Hom.hom f), map_sup' := ⋯, map_inf' := ⋯, map_bot' := ⋯, map_himp' := ⋯ }
Constructs an equivalence between Boolean algebras from an order isomorphism between them.
Instances For
OrderDual as a functor.
Instances For
@[simp]
theorem
BoolAlg.dual_map
{X✝ Y✝ : BoolAlg}
(f : X✝ ⟶ Y✝)
:
dual.map f = ofHom (BoundedLatticeHom.dual (Hom.hom f))
The powerset functor. Set as a contravariant functor.
Instances For
@[simp]
theorem
typeToBoolAlgOp_obj
(X : Type u)
:
typeToBoolAlgOp.obj X = Opposite.op { carrier := Set X, str := Set.instBooleanAlgebra }
@[simp]
theorem
typeToBoolAlgOp_map
{X Y : Type u}
(f : X ⟶ Y)
:
typeToBoolAlgOp.map f = (BoolAlg.ofHom
(have __src := { toFun := ⇑(CompleteLatticeHom.setPreimage f), map_sup' := ⋯, map_inf' := ⋯ };
{ toFun := ⇑(CompleteLatticeHom.setPreimage f), map_sup' := ⋯, map_inf' := ⋯, map_top' := ⋯, map_bot' := ⋯ })).op