Documentation

Mathlib.Order.BooleanSubalgebra

Boolean subalgebras #

This file defines boolean subalgebras.

structure BooleanSubalgebra (α : Type u_2) [BooleanAlgebra α] extends Sublattice α :
Type u_2

A boolean subalgebra of a boolean algebra is a set containing the bottom and top elements, and closed under suprema, infima and complements.

Instances For
    theorem BooleanSubalgebra.coe_inj {α : Type u_2} [BooleanAlgebra α] {L M : BooleanSubalgebra α} :
    L = M L = M
    theorem BooleanSubalgebra.compl_mem {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a : α} (ha : a L) :
    a L
    @[simp]
    theorem BooleanSubalgebra.compl_mem_iff {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a : α} :
    a L a L
    @[simp]
    @[simp]
    theorem BooleanSubalgebra.sup_mem {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a b : α} (ha : a L) (hb : b L) :
    ab L
    theorem BooleanSubalgebra.inf_mem {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a b : α} (ha : a L) (hb : b L) :
    ab L
    theorem BooleanSubalgebra.sdiff_mem {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a b : α} (ha : a L) (hb : b L) :
    a \ b L
    theorem BooleanSubalgebra.himp_mem {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a b : α} (ha : a L) (hb : b L) :
    a b L
    theorem BooleanSubalgebra.mem_carrier {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {a : α} :
    a L.carrier a L
    @[simp]
    @[simp]
    theorem BooleanSubalgebra.mem_mk {α : Type u_2} [BooleanAlgebra α] {a : α} {L : Sublattice α} (h_compl : ∀ {a : α}, a L.carriera L.carrier) (h_bot : L.carrier) :
    a { toSublattice := L, compl_mem' := h_compl, bot_mem' := h_bot } a L
    @[simp]
    theorem BooleanSubalgebra.coe_mk {α : Type u_2} [BooleanAlgebra α] (L : Sublattice α) (h_compl : ∀ {a : α}, a L.carriera L.carrier) (h_bot : L.carrier) :
    { toSublattice := L, compl_mem' := h_compl, bot_mem' := h_bot } = L
    @[simp]
    theorem BooleanSubalgebra.mk_le_mk {α : Type u_2} [BooleanAlgebra α] {L M : Sublattice α} (hL_compl : ∀ {a : α}, a L.carriera L.carrier) (hL_bot : L.carrier) (hM_compl : ∀ {a : α}, a M.carriera M.carrier) (hM_bot : M.carrier) :
    { toSublattice := L, compl_mem' := hL_compl, bot_mem' := hL_bot } { toSublattice := M, compl_mem' := hM_compl, bot_mem' := hM_bot } L M
    @[simp]
    theorem BooleanSubalgebra.mk_lt_mk {α : Type u_2} [BooleanAlgebra α] {L M : Sublattice α} (hL_compl : ∀ {a : α}, a L.carriera L.carrier) (hL_bot : L.carrier) (hM_compl : ∀ {a : α}, a M.carriera M.carrier) (hM_bot : M.carrier) :
    { toSublattice := L, compl_mem' := hL_compl, bot_mem' := hL_bot } < { toSublattice := M, compl_mem' := hM_compl, bot_mem' := hM_bot } L < M
    def BooleanSubalgebra.copy {α : Type u_2} [BooleanAlgebra α] (L : BooleanSubalgebra α) (s : Set α) (hs : s = L) :

    Copy of a boolean subalgebra with a new carrier equal to the old one. Useful to fix definitional equalities.

    Equations
      Instances For
        @[simp]
        theorem BooleanSubalgebra.coe_copy {α : Type u_2} [BooleanAlgebra α] (L : BooleanSubalgebra α) (s : Set α) (hs : s = L) :
        (L.copy s hs) = s
        theorem BooleanSubalgebra.copy_eq {α : Type u_2} [BooleanAlgebra α] (L : BooleanSubalgebra α) (s : Set α) (hs : s = L) :
        L.copy s hs = L
        theorem BooleanSubalgebra.ext {α : Type u_2} [BooleanAlgebra α] {L M : BooleanSubalgebra α} :
        (∀ (a : α), a L a M)L = M

        Two boolean subalgebras are equal if they have the same elements.

        instance BooleanSubalgebra.instBotCoe {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} :
        Bot L

        A boolean subalgebra of a lattice inherits a bottom element.

        Equations
          instance BooleanSubalgebra.instTopCoe {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} :
          Top L

          A boolean subalgebra of a lattice inherits a top element.

          Equations
            instance BooleanSubalgebra.instSupCoe {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} :
            Max L

            A boolean subalgebra of a lattice inherits a supremum.

            Equations
              instance BooleanSubalgebra.instInfCoe {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} :
              Min L

              A boolean subalgebra of a lattice inherits an infimum.

              Equations

                A boolean subalgebra of a lattice inherits a complement.

                Equations

                  A boolean subalgebra of a lattice inherits a difference.

                  Equations

                    A boolean subalgebra of a lattice inherits a Heyting implication.

                    Equations
                      @[simp]
                      @[simp]
                      @[simp]
                      theorem BooleanSubalgebra.val_sup {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : L) :
                      (ab) = ab
                      @[simp]
                      theorem BooleanSubalgebra.val_inf {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : L) :
                      (ab) = ab
                      @[simp]
                      theorem BooleanSubalgebra.val_compl {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a : L) :
                      a = (↑a)
                      @[simp]
                      theorem BooleanSubalgebra.val_sdiff {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : L) :
                      ↑(a \ b) = a \ b
                      @[simp]
                      theorem BooleanSubalgebra.val_himp {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : L) :
                      ↑(a b) = a b
                      @[simp]
                      @[simp]
                      @[simp]
                      theorem BooleanSubalgebra.mk_sup_mk {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : α) (ha : a L) (hb : b L) :
                      a, hab, hb = ab,
                      @[simp]
                      theorem BooleanSubalgebra.mk_inf_mk {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : α) (ha : a L) (hb : b L) :
                      a, hab, hb = ab,
                      @[simp]
                      theorem BooleanSubalgebra.compl_mk {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a : α) (ha : a L) :
                      a, ha = a,
                      @[simp]
                      theorem BooleanSubalgebra.mk_sdiff_mk {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : α) (ha : a L) (hb : b L) :
                      a, ha \ b, hb = a \ b,
                      @[simp]
                      theorem BooleanSubalgebra.mk_himp_mk {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} (a b : α) (ha : a L) (hb : b L) :
                      a, ha b, hb = a b,

                      A boolean subalgebra of a lattice inherits a boolean algebra structure.

                      Equations

                        The natural lattice hom from a boolean subalgebra to the original lattice.

                        Equations
                          Instances For
                            theorem BooleanSubalgebra.subtype_apply {α : Type u_2} [BooleanAlgebra α] (L : BooleanSubalgebra α) (a : L) :
                            L.subtype a = a
                            def BooleanSubalgebra.inclusion {α : Type u_2} [BooleanAlgebra α] {L M : BooleanSubalgebra α} (h : L M) :

                            The inclusion homomorphism from a boolean subalgebra L to a bigger boolean subalgebra M.

                            Equations
                              Instances For
                                @[simp]
                                theorem BooleanSubalgebra.coe_inclusion {α : Type u_2} [BooleanAlgebra α] {L M : BooleanSubalgebra α} (h : L M) :
                                theorem BooleanSubalgebra.inclusion_apply {α : Type u_2} [BooleanAlgebra α] {L M : BooleanSubalgebra α} (h : L M) (a : L) :

                                The maximum boolean subalgebra of a lattice.

                                Equations

                                  The trivial boolean subalgebra of a lattice.

                                  Equations

                                    The inf of two boolean subalgebras is their intersection.

                                    Equations

                                      The inf of boolean subalgebras is their intersection.

                                      Equations

                                        The top boolean subalgebra is isomorphic to the original boolean algebra.

                                        This is the boolean subalgebra version of Equiv.Set.univ α.

                                        Equations
                                          Instances For
                                            @[simp]
                                            @[simp]
                                            @[simp]
                                            theorem BooleanSubalgebra.coe_inf {α : Type u_2} [BooleanAlgebra α] (L M : BooleanSubalgebra α) :
                                            (LM) = L M
                                            @[simp]
                                            theorem BooleanSubalgebra.coe_sInf {α : Type u_2} [BooleanAlgebra α] (S : Set (BooleanSubalgebra α)) :
                                            (sInf S) = LS, L
                                            @[simp]
                                            theorem BooleanSubalgebra.coe_iInf {ι : Sort u_1} {α : Type u_2} [BooleanAlgebra α] (f : ιBooleanSubalgebra α) :
                                            (⨅ (i : ι), f i) = ⋂ (i : ι), (f i)
                                            @[simp]
                                            theorem BooleanSubalgebra.mem_bot {α : Type u_2} [BooleanAlgebra α] {a : α} :
                                            @[simp]
                                            theorem BooleanSubalgebra.mem_top {α : Type u_2} [BooleanAlgebra α] {a : α} :
                                            @[simp]
                                            theorem BooleanSubalgebra.mem_inf {α : Type u_2} [BooleanAlgebra α] {L M : BooleanSubalgebra α} {a : α} :
                                            a LM a L a M
                                            @[simp]
                                            theorem BooleanSubalgebra.mem_sInf {α : Type u_2} [BooleanAlgebra α] {a : α} {S : Set (BooleanSubalgebra α)} :
                                            a sInf S LS, a L
                                            @[simp]
                                            theorem BooleanSubalgebra.mem_iInf {ι : Sort u_1} {α : Type u_2} [BooleanAlgebra α] {a : α} {f : ιBooleanSubalgebra α} :
                                            a ⨅ (i : ι), f i ∀ (i : ι), a f i

                                            BooleanSubalgebras of a lattice form a complete lattice.

                                            Equations

                                              The preimage of a boolean subalgebra along a bounded lattice homomorphism.

                                              Equations
                                                Instances For
                                                  @[simp]
                                                  theorem BooleanSubalgebra.coe_comap {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (L : BooleanSubalgebra β) (f : BoundedLatticeHom α β) :
                                                  (comap f L) = f ⁻¹' L
                                                  @[simp]
                                                  theorem BooleanSubalgebra.mem_comap {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {f : BoundedLatticeHom α β} {a : α} {L : BooleanSubalgebra β} :
                                                  a comap f L f a L
                                                  @[simp]
                                                  theorem BooleanSubalgebra.comap_comap {α : Type u_2} {β : Type u_3} {γ : Type u_4} [BooleanAlgebra α] [BooleanAlgebra β] [BooleanAlgebra γ] (L : BooleanSubalgebra γ) (g : BoundedLatticeHom β γ) (f : BoundedLatticeHom α β) :
                                                  comap f (comap g L) = comap (g.comp f) L

                                                  The image of a boolean subalgebra along a monoid homomorphism is a boolean subalgebra.

                                                  Equations
                                                    Instances For
                                                      @[simp]
                                                      theorem BooleanSubalgebra.coe_map {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) (L : BooleanSubalgebra α) :
                                                      (map f L) = f '' L
                                                      @[simp]
                                                      theorem BooleanSubalgebra.mem_map {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {L : BooleanSubalgebra α} {f : BoundedLatticeHom α β} {b : β} :
                                                      b map f L aL, f a = b
                                                      theorem BooleanSubalgebra.mem_map_of_mem {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {L : BooleanSubalgebra α} (f : BoundedLatticeHom α β) {a : α} :
                                                      a Lf a map f L
                                                      theorem BooleanSubalgebra.apply_coe_mem_map {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {L : BooleanSubalgebra α} (f : BoundedLatticeHom α β) (a : L) :
                                                      f a map f L
                                                      theorem BooleanSubalgebra.map_mono {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {f : BoundedLatticeHom α β} :
                                                      @[simp]
                                                      theorem BooleanSubalgebra.map_map {α : Type u_2} {β : Type u_3} {γ : Type u_4} [BooleanAlgebra α] [BooleanAlgebra β] [BooleanAlgebra γ] {L : BooleanSubalgebra α} (g : BoundedLatticeHom β γ) (f : BoundedLatticeHom α β) :
                                                      map g (map f L) = map (g.comp f) L
                                                      theorem BooleanSubalgebra.mem_map_equiv {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {L : BooleanSubalgebra α} {f : α ≃o β} {a : β} :
                                                      a map (let __src := { toFun := f, map_sup' := , map_inf' := }; { toFun := f, map_sup' := , map_inf' := , map_top' := , map_bot' := }) L f.symm a L
                                                      theorem BooleanSubalgebra.apply_mem_map_iff {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {L : BooleanSubalgebra α} {f : BoundedLatticeHom α β} {a : α} (hf : Function.Injective f) :
                                                      f a map f L a L
                                                      theorem BooleanSubalgebra.map_equiv_eq_comap_symm {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : α ≃o β) (L : BooleanSubalgebra α) :
                                                      map (let __src := { toFun := f, map_sup' := , map_inf' := }; { toFun := f, map_sup' := , map_inf' := , map_top' := , map_bot' := }) L = comap (let __src := { toFun := f.symm, map_sup' := , map_inf' := }; { toFun := f.symm, map_sup' := , map_inf' := , map_top' := , map_bot' := }) L
                                                      theorem BooleanSubalgebra.comap_equiv_eq_map_symm {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : β ≃o α) (L : BooleanSubalgebra α) :
                                                      comap (let __src := { toFun := f, map_sup' := , map_inf' := }; { toFun := f, map_sup' := , map_inf' := , map_top' := , map_bot' := }) L = map (let __src := { toFun := f.symm, map_sup' := , map_inf' := }; { toFun := f.symm, map_sup' := , map_inf' := , map_top' := , map_bot' := }) L
                                                      theorem BooleanSubalgebra.map_symm_eq_iff_eq_map {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] {L : BooleanSubalgebra α} {M : BooleanSubalgebra β} {e : β ≃o α} :
                                                      map (let __src := { toFun := e.symm, map_sup' := , map_inf' := }; { toFun := e.symm, map_sup' := , map_inf' := , map_top' := , map_bot' := }) L = M L = map (let __src := { toFun := e, map_sup' := , map_inf' := }; { toFun := e, map_sup' := , map_inf' := , map_top' := , map_bot' := }) M
                                                      @[simp]
                                                      theorem BooleanSubalgebra.map_bot {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) :
                                                      theorem BooleanSubalgebra.map_sup {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) (L M : BooleanSubalgebra α) :
                                                      map f (LM) = map f Lmap f M
                                                      theorem BooleanSubalgebra.map_iSup {ι : Sort u_1} {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) (L : ιBooleanSubalgebra α) :
                                                      map f (⨆ (i : ι), L i) = ⨆ (i : ι), map f (L i)
                                                      @[simp]
                                                      theorem BooleanSubalgebra.comap_top {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) :
                                                      theorem BooleanSubalgebra.comap_inf {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (L M : BooleanSubalgebra β) (f : BoundedLatticeHom α β) :
                                                      comap f (LM) = comap f Lcomap f M
                                                      theorem BooleanSubalgebra.comap_iInf {ι : Sort u_1} {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) (L : ιBooleanSubalgebra β) :
                                                      comap f (⨅ (i : ι), L i) = ⨅ (i : ι), comap f (L i)
                                                      theorem BooleanSubalgebra.map_inf_le {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (L M : BooleanSubalgebra α) (f : BoundedLatticeHom α β) :
                                                      map f (LM) map f Lmap f M
                                                      theorem BooleanSubalgebra.le_comap_sup {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (L M : BooleanSubalgebra β) (f : BoundedLatticeHom α β) :
                                                      comap f Lcomap f M comap f (LM)
                                                      theorem BooleanSubalgebra.le_comap_iSup {ι : Sort u_1} {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) (L : ιBooleanSubalgebra β) :
                                                      ⨆ (i : ι), comap f (L i) comap f (⨆ (i : ι), L i)
                                                      theorem BooleanSubalgebra.map_inf {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (L M : BooleanSubalgebra α) (f : BoundedLatticeHom α β) (hf : Function.Injective f) :
                                                      map f (LM) = map f Lmap f M
                                                      theorem BooleanSubalgebra.map_top {α : Type u_2} {β : Type u_3} [BooleanAlgebra α] [BooleanAlgebra β] (f : BoundedLatticeHom α β) (h : Function.Surjective f) :

                                                      The minimum boolean subalgebra containing a given set.

                                                      Equations
                                                        Instances For
                                                          theorem BooleanSubalgebra.mem_closure {α : Type u_2} [BooleanAlgebra α] {s : Set α} {x : α} :
                                                          x closure s ∀ ⦃L : BooleanSubalgebra α⦄, s Lx L
                                                          @[simp]
                                                          theorem BooleanSubalgebra.subset_closure {α : Type u_2} [BooleanAlgebra α] {s : Set α} :
                                                          s (closure s)
                                                          theorem BooleanSubalgebra.mem_closure_of_mem {α : Type u_2} [BooleanAlgebra α] {s : Set α} {x : α} (hx : x s) :
                                                          @[simp]
                                                          theorem BooleanSubalgebra.closure_le {α : Type u_2} [BooleanAlgebra α] {L : BooleanSubalgebra α} {s : Set α} :
                                                          closure s L s L
                                                          theorem BooleanSubalgebra.closure_mono {α : Type u_2} [BooleanAlgebra α] {t s : Set α} (hst : s t) :
                                                          theorem BooleanSubalgebra.closure_bot_sup_induction {α : Type u_2} [BooleanAlgebra α] {s : Set α} {p : (g : α) → g closure sProp} (mem : ∀ (x : α) (hx : x s), p x ) (bot : p ) (sup : ∀ (x : α) (hx : x closure s) (y : α) (hy : y closure s), p x hxp y hyp (xy) ) (compl : ∀ (x : α) (hx : x closure s), p x hxp x ) {x : α} (hx : x closure s) :
                                                          p x hx

                                                          An induction principle for closure membership. If p holds for and all elements of s, and is preserved under suprema and complement, then p holds for all elements of the closure of s.

                                                          theorem BooleanSubalgebra.mem_closure_iff_sup_sdiff {α : Type u_2} [BooleanAlgebra α] {s : Set α} (isSublattice : IsSublattice s) (bot_mem : s) (top_mem : s) {a : α} :
                                                          a closure s ∃ (t : Finset (s × s)), a = t.sup fun (x : s × s) => x.1 \ x.2
                                                          theorem BooleanSubalgebra.closure_sdiff_sup_induction {α : Type u_2} [BooleanAlgebra α] {s : Set α} (isSublattice : IsSublattice s) (bot_mem : s) (top_mem : s) {p : (g : α) → g closure sProp} (sdiff : ∀ (x : α) (hx : x s) (y : α) (hy : y s), p (x \ y) ) (sup : ∀ (x : α) (hx : x closure s) (y : α) (hy : y closure s), p x hxp y hyp (xy) ) (x : α) (hx : x closure s) :
                                                          p x hx
                                                          theorem BooleanSubalgebra.iSup_mem {ι : Sort u_1} {α : Type u_2} [CompleteBooleanAlgebra α] {L : BooleanSubalgebra α} {f : ια} [Finite ι] (hf : ∀ (i : ι), f i L) :
                                                          ⨆ (i : ι), f i L
                                                          theorem BooleanSubalgebra.iInf_mem {ι : Sort u_1} {α : Type u_2} [CompleteBooleanAlgebra α] {L : BooleanSubalgebra α} {f : ια} [Finite ι] (hf : ∀ (i : ι), f i L) :
                                                          ⨅ (i : ι), f i L
                                                          theorem BooleanSubalgebra.sSup_mem {α : Type u_2} [CompleteBooleanAlgebra α] {L : BooleanSubalgebra α} {s : Set α} (hs : s.Finite) (hsL : s L) :
                                                          sSup s L
                                                          theorem BooleanSubalgebra.sInf_mem {α : Type u_2} [CompleteBooleanAlgebra α] {L : BooleanSubalgebra α} {s : Set α} (hs : s.Finite) (hsL : s L) :
                                                          sInf s L
                                                          theorem BooleanSubalgebra.biSup_mem {α : Type u_2} [CompleteBooleanAlgebra α] {L : BooleanSubalgebra α} {ι : Type u_5} {t : Set ι} {f : ια} (ht : t.Finite) (hf : it, f i L) :
                                                          it, f i L
                                                          theorem BooleanSubalgebra.biInf_mem {α : Type u_2} [CompleteBooleanAlgebra α] {L : BooleanSubalgebra α} {ι : Type u_5} {t : Set ι} {f : ια} (ht : t.Finite) (hf : it, f i L) :
                                                          it, f i L