Documentation

Mathlib.Algebra.Algebra.Subalgebra.Unitization

Relating unital and non-unital substructures #

This file relates various algebraic structures and provides maps (generally algebra homomorphisms), from the unitization of a non-unital subobject into the full structure. The range of this map is the unital closure of the non-unital subobject (e.g., Algebra.adjoin, Subring.closure, Subsemiring.closure or StarSubalgebra.adjoin). When the underlying scalar ring is a field, for this map to be injective it suffices that the range omits 1. In this setting we provide suitable AlgEquiv (or StarAlgEquiv) onto the range.

Main declarations #

Subalgebras #

Turn a Subalgebra into a NonUnitalSubalgebra by forgetting that it contains 1.

Equations
  • S.toNonUnitalSubalgebra = { carrier := S.carrier, add_mem' := , zero_mem' := , mul_mem' := , smul_mem' := }
Instances For
    theorem Subalgebra.one_mem_toNonUnitalSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
    1 S.toNonUnitalSubalgebra
    def NonUnitalSubalgebra.toSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (S : NonUnitalSubalgebra R A) (h1 : 1 S) :

    Turn a non-unital subalgebra containing 1 into a subalgebra.

    Equations
    • S.toSubalgebra h1 = { carrier := S.carrier, mul_mem' := , one_mem' := h1, add_mem' := , zero_mem' := , algebraMap_mem' := }
    Instances For
      theorem Subalgebra.toNonUnitalSubalgebra_toSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (S : Subalgebra R A) :
      S.toNonUnitalSubalgebra.toSubalgebra = S
      theorem NonUnitalSubalgebra.toSubalgebra_toNonUnitalSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [Semiring A] [Algebra R A] (S : NonUnitalSubalgebra R A) (h1 : 1 S) :
      (S.toSubalgebra h1).toNonUnitalSubalgebra = S
      theorem Unitization.lift_range_le {R : Type u_1} {A : Type u_2} {C : Type u_3} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] [Semiring C] [Algebra R C] {f : A →ₛₙₐ[MonoidHom.id R] C} {S : Subalgebra R C} :
      (Unitization.lift f).range S NonUnitalAlgHom.range f S.toNonUnitalSubalgebra
      theorem Unitization.lift_range {R : Type u_1} {A : Type u_2} {C : Type u_3} [CommSemiring R] [NonUnitalSemiring A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] [Semiring C] [Algebra R C] (f : A →ₛₙₐ[MonoidHom.id R] C) :
      (Unitization.lift f).range = Algebra.adjoin R (NonUnitalAlgHom.range f)
      def NonUnitalSubalgebra.unitization {R : Type u_1} {S : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubsemiringClass S A] [hSRA : SMulMemClass S R A] (s : S) :

      The natural R-algebra homomorphism from the unitization of a non-unital subalgebra into the algebra containing it.

      Equations
      Instances For
        @[simp]
        theorem NonUnitalSubalgebra.unitization_apply {R : Type u_1} {S : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubsemiringClass S A] [hSRA : SMulMemClass S R A] (s : S) (x : Unitization R s) :
        (NonUnitalSubalgebra.unitization s) x = (algebraMap R A) x.fst + x.snd
        theorem NonUnitalSubalgebra.unitization_range {R : Type u_1} {S : Type u_2} {A : Type u_3} [CommSemiring R] [Semiring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubsemiringClass S A] [hSRA : SMulMemClass S R A] (s : S) :
        theorem AlgHomClass.unitization_injective' {F : Type u_1} {R : Type u_2} {S : Type u_3} {A : Type u_4} [CommRing R] [Ring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] (s : S) (h : ∀ (r : R), r 0(algebraMap R A) rs) [FunLike F (Unitization R s) A] [AlgHomClass F R (Unitization R s) A] (f : F) (hf : ∀ (x : s), f x = x) :

        A sufficient condition for injectivity of NonUnitalSubalgebra.unitization when the scalars are a commutative ring. When the scalars are a field, one should use the more natural NonUnitalStarSubalgebra.unitization_injective whose hypothesis is easier to verify.

        theorem AlgHomClass.unitization_injective {F : Type u_1} {R : Type u_2} {S : Type u_3} {A : Type u_4} [Field R] [Ring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] (s : S) (h1 : 1s) [FunLike F (Unitization R s) A] [AlgHomClass F R (Unitization R s) A] (f : F) (hf : ∀ (x : s), f x = x) :

        This is a generic version which allows us to prove both NonUnitalSubalgebra.unitization_injective and NonUnitalStarSubalgebra.unitization_injective.

        theorem NonUnitalSubalgebra.unitization_injective {R : Type u_1} {S : Type u_2} {A : Type u_3} [Field R] [Ring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] (s : S) (h1 : 1s) :
        @[simp]
        theorem NonUnitalSubalgebra.unitizationAlgEquiv_apply_coe {R : Type u_1} {S : Type u_2} {A : Type u_3} [Field R] [Ring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] (s : S) (h1 : 1s) (a : Unitization R s) :
        ((NonUnitalSubalgebra.unitizationAlgEquiv s h1) a) = (algebraMap R A) a.fst + a.snd
        noncomputable def NonUnitalSubalgebra.unitizationAlgEquiv {R : Type u_1} {S : Type u_2} {A : Type u_3} [Field R] [Ring A] [Algebra R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] (s : S) (h1 : 1s) :
        Unitization R s ≃ₐ[R] (Algebra.adjoin R s)

        If a NonUnitalSubalgebra over a field does not contain 1, then its unitization is isomorphic to its Algebra.adjoin.

        Equations
        Instances For

          Subsemirings #

          Turn a Subsemiring into a NonUnitalSubsemiring by forgetting that it contains 1.

          Equations
          • S.toNonUnitalSubsemiring = { carrier := S.carrier, add_mem' := , zero_mem' := , mul_mem' := }
          Instances For
            theorem Subsemiring.one_mem_toNonUnitalSubsemiring {R : Type u_1} [NonAssocSemiring R] (S : Subsemiring R) :
            1 S.toNonUnitalSubsemiring

            Turn a non-unital subsemiring containing 1 into a subsemiring.

            Equations
            • S.toSubsemiring h1 = { carrier := S.carrier, mul_mem' := , one_mem' := h1, add_mem' := , zero_mem' := }
            Instances For
              theorem Subsemiring.toNonUnitalSubsemiring_toSubsemiring {R : Type u_1} [NonAssocSemiring R] (S : Subsemiring R) :
              S.toNonUnitalSubsemiring.toSubsemiring = S
              theorem NonUnitalSubsemiring.toSubsemiring_toNonUnitalSubsemiring {R : Type u_1} [NonAssocSemiring R] (S : NonUnitalSubsemiring R) (h1 : 1 S) :
              (S.toSubsemiring h1).toNonUnitalSubsemiring = S
              def NonUnitalSubsemiring.unitization {R : Type u_1} {S : Type u_2} [Semiring R] [SetLike S R] [hSR : NonUnitalSubsemiringClass S R] (s : S) :

              The natural -algebra homomorphism from the unitization of a non-unital subsemiring to its Subsemiring.closure.

              Equations
              Instances For
                @[simp]
                theorem NonUnitalSubsemiring.unitization_apply {R : Type u_1} {S : Type u_2} [Semiring R] [SetLike S R] [hSR : NonUnitalSubsemiringClass S R] (s : S) (x : Unitization s) :
                (NonUnitalSubsemiring.unitization s) x = x.fst + x.snd

                Subrings #

                Turn a Subring into a NonUnitalSubring by forgetting that it contains 1.

                Equations
                • S.toNonUnitalSubring = { carrier := S.carrier, add_mem' := , zero_mem' := , mul_mem' := , neg_mem' := }
                Instances For
                  theorem Subring.one_mem_toNonUnitalSubring {R : Type u_1} [Ring R] (S : Subring R) :
                  1 S.toNonUnitalSubring
                  def NonUnitalSubring.toSubring {R : Type u_1} [Ring R] (S : NonUnitalSubring R) (h1 : 1 S) :

                  Turn a non-unital subring containing 1 into a subring.

                  Equations
                  • S.toSubring h1 = { carrier := S.carrier, mul_mem' := , one_mem' := h1, add_mem' := , zero_mem' := , neg_mem' := }
                  Instances For
                    theorem Subring.toNonUnitalSubring_toSubring {R : Type u_1} [Ring R] (S : Subring R) :
                    S.toNonUnitalSubring.toSubring = S
                    theorem NonUnitalSubring.toSubring_toNonUnitalSubring {R : Type u_1} [Ring R] (S : NonUnitalSubring R) (h1 : 1 S) :
                    (S.toSubring h1).toNonUnitalSubring = S
                    def NonUnitalSubring.unitization {R : Type u_1} {S : Type u_2} [Ring R] [SetLike S R] [hSR : NonUnitalSubringClass S R] (s : S) :

                    The natural -algebra homomorphism from the unitization of a non-unital subring to its Subring.closure.

                    Equations
                    Instances For
                      @[simp]
                      theorem NonUnitalSubring.unitization_apply {R : Type u_1} {S : Type u_2} [Ring R] [SetLike S R] [hSR : NonUnitalSubringClass S R] (s : S) (x : Unitization s) :
                      (NonUnitalSubring.unitization s) x = x.fst + x.snd

                      Star subalgebras #

                      Turn a StarSubalgebra into a NonUnitalStarSubalgebra by forgetting that it contains 1.

                      Equations
                      • S.toNonUnitalStarSubalgebra = { carrier := S.carrier, add_mem' := , zero_mem' := , mul_mem' := , smul_mem' := , star_mem' := }
                      Instances For
                        theorem StarSubalgebra.one_mem_toNonUnitalStarSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [StarRing R] [Semiring A] [StarRing A] [Algebra R A] [StarModule R A] (S : StarSubalgebra R A) :
                        1 S.toNonUnitalStarSubalgebra

                        Turn a non-unital star subalgebra containing 1 into a StarSubalgebra.

                        Equations
                        • S.toStarSubalgebra h1 = { carrier := S.carrier, mul_mem' := , one_mem' := h1, add_mem' := , zero_mem' := , algebraMap_mem' := , star_mem' := }
                        Instances For
                          theorem StarSubalgebra.toNonUnitalStarSubalgebra_toStarSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [StarRing R] [Semiring A] [StarRing A] [Algebra R A] [StarModule R A] (S : StarSubalgebra R A) :
                          S.toNonUnitalStarSubalgebra.toStarSubalgebra = S
                          theorem NonUnitalStarSubalgebra.toStarSubalgebra_toNonUnitalStarSubalgebra {R : Type u_1} {A : Type u_2} [CommSemiring R] [StarRing R] [Semiring A] [StarRing A] [Algebra R A] [StarModule R A] (S : NonUnitalStarSubalgebra R A) (h1 : 1 S) :
                          (S.toStarSubalgebra h1).toNonUnitalStarSubalgebra = S
                          theorem Unitization.starLift_range_le {R : Type u_1} {A : Type u_2} {C : Type u_3} [CommSemiring R] [NonUnitalSemiring A] [StarRing R] [StarRing A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] [StarModule R A] [Semiring C] [StarRing C] [Algebra R C] [StarModule R C] {f : A →⋆ₙₐ[R] C} {S : StarSubalgebra R C} :
                          (Unitization.starLift f).range S NonUnitalStarAlgHom.range f S.toNonUnitalStarSubalgebra
                          theorem Unitization.starLift_range {R : Type u_1} {A : Type u_2} {C : Type u_3} [CommSemiring R] [NonUnitalSemiring A] [StarRing R] [StarRing A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A] [StarModule R A] [Semiring C] [StarRing C] [Algebra R C] [StarModule R C] (f : A →⋆ₙₐ[R] C) :
                          (Unitization.starLift f).range = StarAlgebra.adjoin R (NonUnitalStarAlgHom.range f)
                          def NonUnitalStarSubalgebra.unitization {R : Type u_1} {S : Type u_2} {A : Type u_3} [CommSemiring R] [StarRing R] [Semiring A] [StarRing A] [Algebra R A] [StarModule R A] [SetLike S A] [hSA : NonUnitalSubsemiringClass S A] [hSRA : SMulMemClass S R A] [StarMemClass S A] (s : S) :

                          The natural star R-algebra homomorphism from the unitization of a non-unital star subalgebra to its StarSubalgebra.adjoin.

                          Equations
                          Instances For
                            @[simp]
                            theorem NonUnitalStarSubalgebra.unitization_apply {R : Type u_1} {S : Type u_2} {A : Type u_3} [CommSemiring R] [StarRing R] [Semiring A] [StarRing A] [Algebra R A] [StarModule R A] [SetLike S A] [hSA : NonUnitalSubsemiringClass S A] [hSRA : SMulMemClass S R A] [StarMemClass S A] (s : S) (x : Unitization R s) :
                            theorem NonUnitalStarSubalgebra.unitization_injective {R : Type u_1} {S : Type u_2} {A : Type u_3} [Field R] [StarRing R] [Ring A] [StarRing A] [Algebra R A] [StarModule R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] [StarMemClass S A] (s : S) (h1 : 1s) :
                            @[simp]
                            theorem NonUnitalStarSubalgebra.unitizationStarAlgEquiv_apply_coe {R : Type u_1} {S : Type u_2} {A : Type u_3} [Field R] [StarRing R] [Ring A] [StarRing A] [Algebra R A] [StarModule R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] [StarMemClass S A] (s : S) (h1 : 1s) (a : Unitization R s) :
                            noncomputable def NonUnitalStarSubalgebra.unitizationStarAlgEquiv {R : Type u_1} {S : Type u_2} {A : Type u_3} [Field R] [StarRing R] [Ring A] [StarRing A] [Algebra R A] [StarModule R A] [SetLike S A] [hSA : NonUnitalSubringClass S A] [hSRA : SMulMemClass S R A] [StarMemClass S A] (s : S) (h1 : 1s) :

                            If a NonUnitalStarSubalgebra over a field does not contain 1, then its unitization is isomorphic to its StarSubalgebra.adjoin.

                            Equations
                            Instances For