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 StarAlgebra.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 #
NonUnitalSubalgebra.unitization s : Unitization R s →ₐ[R] A
: wheres
is a non-unital subalgebra of a unitalR
-algebraA
, this is the natural algebra homomorphism sending(r, a)
tor • 1 + a
. The range of this map isAlgebra.adjoin R (s : Set A)
.NonUnitalSubalgebra.unitizationAlgEquiv s : Unitization R s ≃ₐ[R] Algebra.adjoin R (s : Set A)
whenR
is a field and1 ∉ s
. This isNonUnitalSubalgebra.unitization
upgraded to anAlgEquiv
onto its range.NonUnitalSubsemiring.unitization : Unitization ℕ s →ₐ[ℕ] R
: the naturalℕ
-algebra homomorphism from the unitization of a non-unital subsemirings
into the ring containing it. The range of this map issubalgebraOfSubsemiring (Subsemiring.closure s)
. This is justNonUnitalSubalgebra.unitization s
but we provide a separate declaration because there is an instance Lean can't find on its own due tooutParam
.NonUnitalSubring.unitization : Unitization ℤ s →ₐ[ℤ] R
: the naturalℤ
-algebra homomorphism from the unitization of a non-unital subrings
into the ring containing it. The range of this map issubalgebraOfSubring (Subring.closure s)
. This is justNonUnitalSubalgebra.unitization s
but we provide a separate declaration because there is an instance Lean can't find on its own due tooutParam
.NonUnitalStarSubalgebra s : Unitization R s →⋆ₐ[R] A
: a version ofNonUnitalSubalgebra.unitization
for star algebras.NonUnitalStarSubalgebra.unitizationStarAlgEquiv s :
Unitization R s ≃⋆ₐ[R] StarAlgebra.adjoin R (s : Set A)
: a version ofNonUnitalSubalgebra.unitizationAlgEquiv
for star algebras.
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
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
The natural R
-algebra homomorphism from the unitization of a non-unital subalgebra into
the algebra containing it.
Equations
- NonUnitalSubalgebra.unitization s = Unitization.lift (NonUnitalSubalgebraClass.subtype s)
Instances For
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.
This is a generic version which allows us to prove both
NonUnitalSubalgebra.unitization_injective
and NonUnitalStarSubalgebra.unitization_injective
.
If a NonUnitalSubalgebra
over a field does not contain 1
, then its unitization is
isomorphic to its Algebra.adjoin
.
Equations
- NonUnitalSubalgebra.unitizationAlgEquiv s h1 = AlgEquiv.ofBijective ((NonUnitalSubalgebra.unitization s).codRestrict (Algebra.adjoin R ↑s) ⋯) ⋯
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
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
The natural ℕ
-algebra homomorphism from the unitization of a non-unital subsemiring to
its Subsemiring.closure
.
Instances For
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
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
The natural ℤ
-algebra homomorphism from the unitization of a non-unital subring to
its Subring.closure
.
Equations
Instances For
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
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
The natural star R
-algebra homomorphism from the unitization of a non-unital star subalgebra
to its StarAlgebra.adjoin
.
Equations
- NonUnitalStarSubalgebra.unitization s = Unitization.starLift (NonUnitalStarSubalgebraClass.subtype s)
Instances For
If a NonUnitalStarSubalgebra
over a field does not contain 1
, then its unitization is
isomorphic to its StarAlgebra.adjoin
.
Equations
- NonUnitalStarSubalgebra.unitizationStarAlgEquiv s h1 = StarAlgEquiv.ofBijective ((NonUnitalStarSubalgebra.unitization s).codRestrict (StarAlgebra.adjoin R ↑s) ⋯) ⋯