Morphisms of star algebras #
This file defines morphisms between R
-algebras (unital or non-unital) A
and B
where both
A
and B
are equipped with a star
operation. These morphisms, namely StarAlgHom
and
NonUnitalStarAlgHom
are direct extensions of their non-star
red counterparts with a field
map_star
which guarantees they preserve the star operation. We keep the type classes as generic
as possible, in keeping with the definition of NonUnitalAlgHom
in the non-unital case. In this
file, we only assume Star
unless we want to talk about the zero map as a
NonUnitalStarAlgHom
, in which case we need StarAddMonoid
. Note that the scalar ring R
is not required to have a star operation, nor do we need StarRing
or StarModule
structures on
A
and B
.
As with NonUnitalAlgHom
, in the non-unital case the multiplications are not assumed to be
associative or unital, or even to be compatible with the scalar actions. In a typical application,
the operations will satisfy compatibility conditions making them into algebras (albeit possibly
non-associative and/or non-unital) but such conditions are not required here for the definitions.
The primary impetus for defining these types is that they constitute the morphisms in the categories
of unital C⋆-algebras (with StarAlgHom
s) and of C⋆-algebras (with NonUnitalStarAlgHom
s).
Main definitions #
Tags #
non-unital, algebra, morphism, star
Non-unital star algebra homomorphisms #
A non-unital ⋆-algebra homomorphism is a non-unital algebra homomorphism between
non-unital R
-algebras A
and B
equipped with a star
operation, and this homomorphism is
also star
-preserving.
- toFun : A → B
- map_zero' : self.toFun 0 = 0
By definition, a non-unital ⋆-algebra homomorphism preserves the
star
operation.
Instances For
A non-unital ⋆-algebra homomorphism is a non-unital algebra homomorphism between
non-unital R
-algebras A
and B
equipped with a star
operation, and this homomorphism is
also star
-preserving.
Equations
- «term_→⋆ₙₐ_» = Lean.ParserDescr.trailingNode `term_→⋆ₙₐ_ 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →⋆ₙₐ ") (Lean.ParserDescr.cat `term 25))
Instances For
A non-unital ⋆-algebra homomorphism is a non-unital algebra homomorphism between
non-unital R
-algebras A
and B
equipped with a star
operation, and this homomorphism is
also star
-preserving.
Equations
- One or more equations did not get rendered due to their size.
Instances For
NonUnitalStarAlgHomClass F R A B
asserts F
is a type of bundled non-unital ⋆-algebra
homomorphisms from A
to B
.
Instances
Turn an element of a type F
satisfying NonUnitalStarAlgHomClass F R A B
into an actual
NonUnitalStarAlgHom
. This is declared as the default coercion from F
to A →⋆ₙₐ[R] B
.
Equations
- ↑f = let __src := ↑f; { toNonUnitalAlgHom := __src, map_star' := ⋯ }
Instances For
Equations
- NonUnitalStarAlgHomClass.instCoeTCNonUnitalStarAlgHom = { coe := NonUnitalStarAlgHomClass.toNonUnitalStarAlgHom }
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
See Note [custom simps projection]
Equations
Instances For
Copy of a NonUnitalStarAlgHom
with a new toFun
equal to the old one. Useful
to fix definitional equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity as a non-unital ⋆-algebra homomorphism.
Equations
- NonUnitalStarAlgHom.id R A = let __src := 1; { toNonUnitalAlgHom := __src, map_star' := ⋯ }
Instances For
The composition of non-unital ⋆-algebra homomorphisms, as a non-unital ⋆-algebra homomorphism.
Equations
- NonUnitalStarAlgHom.comp f g = let __src := NonUnitalAlgHom.comp f.toNonUnitalAlgHom g.toNonUnitalAlgHom; { toNonUnitalAlgHom := __src, map_star' := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- NonUnitalStarAlgHom.instInhabitedNonUnitalStarAlgHomToStarToInvolutiveStarToAddMonoidToAddCommMonoidToStarToInvolutiveStarToAddMonoidToAddCommMonoid = { default := 0 }
Equations
- One or more equations did not get rendered due to their size.
Unital star algebra homomorphisms #
A ⋆-algebra homomorphism is an algebra homomorphism between R
-algebras A
and B
equipped with a star
operation, and this homomorphism is also star
-preserving.
- toFun : A → B
- map_one' : self.toFun 1 = 1
- map_zero' : self.toFun 0 = 0
- commutes' : ∀ (r : R), self.toFun ((algebraMap R A) r) = (algebraMap R B) r
By definition, a ⋆-algebra homomorphism preserves the
star
operation.
Instances For
A ⋆-algebra homomorphism is an algebra homomorphism between R
-algebras A
and B
equipped with a star
operation, and this homomorphism is also star
-preserving.
Equations
- «term_→⋆ₐ_» = Lean.ParserDescr.trailingNode `term_→⋆ₐ_ 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →⋆ₐ ") (Lean.ParserDescr.cat `term 25))
Instances For
A ⋆-algebra homomorphism is an algebra homomorphism between R
-algebras A
and B
equipped with a star
operation, and this homomorphism is also star
-preserving.
Equations
- One or more equations did not get rendered due to their size.
Instances For
StarAlgHomClass F R A B
states that F
is a type of ⋆-algebra homomorphisms.
You should also extend this typeclass when you extend StarAlgHom
.
Instances
Equations
- ⋯ = ⋯
Turn an element of a type F
satisfying StarAlgHomClass F R A B
into an actual
StarAlgHom
. This is declared as the default coercion from F
to A →⋆ₐ[R] B
.
Equations
- ↑f = let __src := ↑f; { toAlgHom := __src, map_star' := ⋯ }
Instances For
Equations
- StarAlgHomClass.instCoeTCStarAlgHom F R A B = { coe := StarAlgHomClass.toStarAlgHom }
Equations
- ⋯ = ⋯
Copy of a StarAlgHom
with a new toFun
equal to the old one. Useful
to fix definitional equalities.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The identity as a StarAlgHom
.
Equations
- StarAlgHom.id R A = let __src := AlgHom.id R A; { toAlgHom := __src, map_star' := ⋯ }
Instances For
algebraMap R A
as a StarAlgHom
when A
is a star algebra over R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- StarAlgHom.instInhabitedStarAlgHom = { default := StarAlgHom.id R A }
The composition of ⋆-algebra homomorphisms, as a ⋆-algebra homomorphism.
Equations
- StarAlgHom.comp f g = let __src := AlgHom.comp f.toAlgHom g.toAlgHom; { toAlgHom := __src, map_star' := ⋯ }
Instances For
A unital morphism of ⋆-algebras is a NonUnitalStarAlgHom
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Operations on the product type #
Note that this is copied from Algebra.Hom.NonUnitalAlg
.
The first projection of a product is a non-unital ⋆-algebra homomorphism.
Equations
- NonUnitalStarAlgHom.fst R A B = let __src := NonUnitalAlgHom.fst R A B; { toNonUnitalAlgHom := __src, map_star' := ⋯ }
Instances For
The second projection of a product is a non-unital ⋆-algebra homomorphism.
Equations
- NonUnitalStarAlgHom.snd R A B = let __src := NonUnitalAlgHom.snd R A B; { toNonUnitalAlgHom := __src, map_star' := ⋯ }
Instances For
The Pi.prod
of two morphisms is a morphism.
Equations
- NonUnitalStarAlgHom.prod f g = let __src := NonUnitalAlgHom.prod f.toNonUnitalAlgHom g.toNonUnitalAlgHom; { toNonUnitalAlgHom := __src, map_star' := ⋯ }
Instances For
Taking the product of two maps with the same domain is equivalent to taking the product of their codomains.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left injection into a product is a non-unital algebra homomorphism.
Equations
- NonUnitalStarAlgHom.inl R A B = NonUnitalStarAlgHom.prod 1 0
Instances For
The right injection into a product is a non-unital algebra homomorphism.
Equations
- NonUnitalStarAlgHom.inr R A B = NonUnitalStarAlgHom.prod 0 1
Instances For
The first projection of a product is a ⋆-algebra homomorphism.
Equations
- StarAlgHom.fst R A B = let __src := AlgHom.fst R A B; { toAlgHom := __src, map_star' := ⋯ }
Instances For
The second projection of a product is a ⋆-algebra homomorphism.
Equations
- StarAlgHom.snd R A B = let __src := AlgHom.snd R A B; { toAlgHom := __src, map_star' := ⋯ }
Instances For
The Pi.prod
of two morphisms is a morphism.
Equations
- StarAlgHom.prod f g = let __src := AlgHom.prod f.toAlgHom g.toAlgHom; { toAlgHom := __src, map_star' := ⋯ }
Instances For
Taking the product of two maps with the same domain is equivalent to taking the product of their codomains.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Star algebra equivalences #
A ⋆-algebra equivalence is an equivalence preserving addition, multiplication, scalar
multiplication and the star operation, which allows for considering both unital and non-unital
equivalences with a single structure. Currently, AlgEquiv
requires unital algebras, which is
why this structure does not extend it.
- toFun : A → B
- invFun : B → A
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
By definition, a ⋆-algebra equivalence preserves the
star
operation.By definition, a ⋆-algebra equivalence commutes with the action of scalars.
Instances For
A ⋆-algebra equivalence is an equivalence preserving addition, multiplication, scalar
multiplication and the star operation, which allows for considering both unital and non-unital
equivalences with a single structure. Currently, AlgEquiv
requires unital algebras, which is
why this structure does not extend it.
Equations
- «term_≃⋆ₐ_» = Lean.ParserDescr.trailingNode `term_≃⋆ₐ_ 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃⋆ₐ ") (Lean.ParserDescr.cat `term 25))
Instances For
A ⋆-algebra equivalence is an equivalence preserving addition, multiplication, scalar
multiplication and the star operation, which allows for considering both unital and non-unital
equivalences with a single structure. Currently, AlgEquiv
requires unital algebras, which is
why this structure does not extend it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The class that directly extends RingEquivClass
and SMulHomClass
.
Mostly an implementation detail for StarAlgEquivClass
.
Instances
StarAlgEquivClass F R A B
asserts F
is a type of bundled ⋆-algebra equivalences between
A
and B
.
You should also extend this typeclass when you extend StarAlgEquiv
.
By definition, a ⋆-algebra equivalence preserves the
star
operation.
Instances
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Turn an element of a type F
satisfying StarAlgEquivClass F R A B
into an actual
StarAlgEquiv
. This is declared as the default coercion from F
to A ≃⋆ₐ[R] B
.
Equations
- ↑f = let __src := ↑f; { toRingEquiv := __src, map_star' := ⋯, map_smul' := ⋯ }
Instances For
Any type satisfying StarAlgEquivClass
can be cast into StarAlgEquiv
via
StarAlgEquivClass.toStarAlgEquiv
.
Equations
- StarAlgEquivClass.instCoeHead = { coe := StarAlgEquivClass.toStarAlgEquiv }
Equations
- ⋯ = ⋯
Star algebra equivalences are symmetric.
Equations
- StarAlgEquiv.symm e = let __src := RingEquiv.symm e.toRingEquiv; { toRingEquiv := __src, map_star' := ⋯, map_smul' := ⋯ }
Instances For
Star algebra equivalences are transitive.
Equations
- StarAlgEquiv.trans e₁ e₂ = let __src := RingEquiv.trans e₁.toRingEquiv e₂.toRingEquiv; { toRingEquiv := __src, map_star' := ⋯, map_smul' := ⋯ }
Instances For
If a (unital or non-unital) star algebra morphism has an inverse, it is an isomorphism of star algebras.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Promote a bijective star algebra homomorphism to a star algebra equivalence.
Equations
- One or more equations did not get rendered due to their size.