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.

Instances For
    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.

    Instances For
      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 →ₙₐ[R] C} {S : Subalgebra R C} :
      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 →ₙₐ[R] C) :
      AlgHom.range (Unitization.lift f) = 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) :
      Unitization R { x // x s } →ₐ[R] A

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

      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 { x // x 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) r s) [AlgHomClass F R (Unitization R { x // x s }) A] (f : F) (hf : ∀ (x : { x // 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 : ¬1 s) [AlgHomClass F R (Unitization R { x // x s }) A] (f : F) (hf : ∀ (x : { x // 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 : ¬1 s) :
        @[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 : ¬1 s) :
        ∀ (a : Unitization R { x // x s }), ↑(↑(NonUnitalSubalgebra.unitizationAlgEquiv s h1) a) = ↑(algebraMap R A) (Unitization.fst a) + ↑(Unitization.snd a)
        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 : ¬1 s) :
        Unitization R { x // x s } ≃ₐ[R] { x // x Algebra.adjoin R s }

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

        Instances For

          Subsemirings #

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

          Instances For

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

            Instances For
              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.

              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 { x // x s }) :

                Subrings #

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

                Instances For
                  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.

                  Instances For
                    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.

                    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 { x // x s }) :

                      Star subalgebras #

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

                      Instances For

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

                        Instances For
                          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) :
                          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) :
                          Unitization R { x // x s } →⋆ₐ[R] A

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

                          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 { x // x 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 : ¬1 s) :
                            @[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 : ¬1 s) (a : Unitization R { x // x 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 : ¬1 s) :
                            Unitization R { x // x s } ≃⋆ₐ[R] { x // x StarSubalgebra.adjoin R s }

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

                            Instances For