Unitization of a non-unital algebra #
Given a non-unital R-algebra A (given via the type classes
[NonUnitalRing A] [Module R A] [SMulCommClass R A A] [IsScalarTower R A A]) we construct
the minimal unital R-algebra containing A as an ideal. This object Unitization R A is
a type synonym for R × A on which we place a different multiplicative structure, namely,
(r₁, a₁) * (r₂, a₂) = (r₁ * r₂, r₁ • a₂ + r₂ • a₁ + a₁ * a₂) where the multiplicative identity
is (1, 0).
Note, when A is a unital R-algebra, then Unitization R A constructs a new multiplicative
identity different from the old one, and so in general Unitization R A and A will not be
isomorphic even in the unital case. This approach actually has nice functorial properties.
There is a natural coercion from A to Unitization R A given by fun a ↦ (0, a), the image
of which is a proper ideal (TODO), and when R is a field this ideal is maximal. Moreover,
this ideal is always an essential ideal (it has nontrivial intersection with every other nontrivial
ideal).
Every non-unital algebra homomorphism from A into a unital R-algebra B has a unique
extension to a (unital) algebra homomorphism from Unitization R A to B.
Main definitions #
- Unitization R A: the unitization of a non-unital- R-algebra- A.
- Unitization.algebra: the unitization of- Aas a (unital)- R-algebra.
- Unitization.coeNonUnitalAlgHom: coercion as a non-unital algebra homomorphism.
- NonUnitalAlgHom.toAlgHom φ: the extension of a non-unital algebra homomorphism- φ : A → Binto a unital- R-algebra- Bto an algebra homomorphism- Unitization R A →ₐ[R] B.
- Unitization.lift: the universal property of the unitization, the extension- NonUnitalAlgHom.toAlgHomactually implements an equivalence- (A →ₙₐ[R] B) ≃ (Unitization R A ≃ₐ[R] B)
Main results #
- AlgHom.ext': an extensionality lemma for algebra homomorphisms whose domain is- Unitization R A; it suffices that they agree on- A.
TODO #
- prove the unitization operation is a functor between the appropriate categories
- prove the image of the coercion is an essential ideal, maximal if scalars are a field.
The minimal unitization of a non-unital R-algebra A. This is just a type synonym for
R × A.
Equations
- Unitization R A = (R × A)
Instances For
The canonical inclusion A → Unitization R A.
Instances For
Equations
The canonical projection Unitization R A → R.
Instances For
The canonical projection Unitization R A → A.
Instances For
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
Equations
The identity map between Unitization R A and R × A as an AddEquiv.
Equations
- Unitization.addEquiv R A = AddEquiv.refl (Unitization R A)
Instances For
To show a property hold on all Unitization R A it suffices to show it holds
on terms of the form inl r + a.
This can be used as induction x.
This cannot be marked @[ext] as it ends up being used instead of LinearMap.prod_ext when
working with R × A.
The canonical R-linear inclusion A → Unitization R A.
Equations
- Unitization.inrHom R A = { toFun := Unitization.inr, map_add' := ⋯, map_smul' := ⋯ }
Instances For
The canonical R-linear projection Unitization R A → A.
Equations
- Unitization.sndHom R A = { toFun := Unitization.snd, map_add' := ⋯, map_smul' := ⋯ }
Instances For
Multiplicative structure #
Equations
- Unitization.instMulOneClass = { toOne := Unitization.instOne, toMul := Unitization.instMul, one_mul := ⋯, mul_one := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- Unitization.instCommMonoid = { toMonoid := Unitization.instMonoid, mul_comm := ⋯ }
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The canonical inclusion of rings R →+* Unitization R A.
Equations
- Unitization.inlRingHom R A = { toFun := Unitization.inl, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯ }
Instances For
Star structure #
Equations
- Unitization.instStarAddMonoid = { toStar := Unitization.instStar, star_involutive := ⋯, star_add := ⋯ }
Equations
- Unitization.instStarRing = { toInvolutiveStar := Unitization.instStarAddMonoid.toInvolutiveStar, star_mul := ⋯, star_add := ⋯ }
Algebra structure #
Equations
- Unitization.instAlgebra S R A = { toSMul := Unitization.instSMul, algebraMap := (Unitization.inlRingHom R A).comp (algebraMap S R), commutes' := ⋯, smul_def' := ⋯ }
The canonical R-algebra projection Unitization R A → R.
Equations
- Unitization.fstHom R A = { toFun := Unitization.fst, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
The coercion from a non-unital R-algebra A to its unitization Unitization R A
realized as a non-unital algebra homomorphism.
Equations
- Unitization.inrNonUnitalAlgHom R A = { toFun := Unitization.inr, map_smul' := ⋯, map_zero' := ⋯, map_add' := ⋯, map_mul' := ⋯ }
Instances For
The coercion from a non-unital R-algebra A to its unitization Unitization R A
realized as a non-unital star algebra homomorphism.
Equations
- Unitization.inrNonUnitalStarAlgHom R A = { toNonUnitalAlgHom := Unitization.inrNonUnitalAlgHom R A, map_star' := ⋯ }
Instances For
The star algebra equivalence obtained by restricting Unitization.inrNonUnitalStarAlgHom
to its range.
Equations
Instances For
See note [partially-applied ext lemmas]
A non-unital algebra homomorphism from A into a unital R-algebra C lifts to a unital
algebra homomorphism from the unitization into C. This is extended to an Equiv in
Unitization.lift and that should be used instead. This declaration only exists for performance
reasons.
Equations
- φ.toAlgHom = { toFun := fun (x : Unitization R A) => (algebraMap R C) x.fst + φ x.snd, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Non-unital algebra homomorphisms from A into a unital R-algebra C lift uniquely to
Unitization R A →ₐ[R] C. This is the universal property of the unitization.
Equations
- Unitization.lift = { toFun := NonUnitalAlgHom.toAlgHom, invFun := fun (φ : Unitization R A →ₐ[R] C) => (↑φ).comp (Unitization.inrNonUnitalAlgHom R A), left_inv := ⋯, right_inv := ⋯ }
Instances For
See note [partially-applied ext lemmas]
Non-unital star algebra homomorphisms from A into a unital star R-algebra C lift uniquely
to Unitization R A →⋆ₐ[R] C. This is the universal property of the unitization.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functorial map on morphisms between the category of non-unital C⋆-algebras with non-unital star homomorphisms and unital C⋆-algebras with unital star homomorphisms.
This sends φ : A →⋆ₙₐ[R] B to a map Unitization R A →⋆ₐ[R] Unitization R B given by the formula
(r, a) ↦ (r, φ a) (or perhaps more precisely,
algebraMap R _ r + ↑a ↦ algebraMap R _ r + ↑(φ a)).
Equations
Instances For
If φ : A →⋆ₙₐ[R] B is injective, the lift starMap φ : Unitization R A →⋆ₐ[R] Unitization R B
is also injective.
If φ : A →⋆ₙₐ[R] B is surjective, the lift
starMap φ : Unitization R A →⋆ₐ[R] Unitization R B is also surjective.
starMap is functorial: starMap (ψ.comp φ) = (starMap ψ).comp (starMap φ).
starMap is functorial:
starMap (NonUnitalStarAlgHom.id R B) = StarAlgHom.id R (Unitization R B).
Alias of the forward direction of Unitization.isSelfAdjoint_inr.
Alias of the forward direction of Unitization.isStarNormal_inr.
Alias of the reverse direction of Unitization.isIdempotentElem_inr_iff.