Morphisms of star rings #
This file defines a new type of morphism between (non-unital) rings A and B where both
A and B are equipped with a star operation. This morphism, namely NonUnitalStarRingHom, is
a direct extension of its non-starred counterpart with a field map_star which guarantees it
preserves the star operation.
As with NonUnitalRingHom, the multiplications are not assumed to be associative or unital.
Main definitions #
Implementation #
This file is heavily inspired by Mathlib/Algebra/Star/StarAlgHom.lean.
Tags #
non-unital, ring, morphism, star
Non-unital star ring homomorphisms #
A non-unital ⋆-ring homomorphism is a non-unital ring homomorphism between non-unital
non-associative semirings A and B equipped with a star operation, and this homomorphism is
also star-preserving.
- toFun : A → B
By definition, a non-unital ⋆-ring homomorphism preserves the
staroperation.
Instances For
α →⋆ₙ+* β denotes the type of non-unital ring homomorphisms from α to β.
Equations
- «term_→⋆ₙ+*_» = Lean.ParserDescr.trailingNode `«term_→⋆ₙ+*_» 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " →⋆ₙ+* ") (Lean.ParserDescr.cat `term 25))
Instances For
NonUnitalStarRingHomClass F A B states that F is a type of non-unital ⋆-ring homomorphisms.
You should also extend this typeclass when you extend NonUnitalStarRingHom.
Instances
Turn an element of a type F satisfying NonUnitalStarRingHomClass F A B into an actual
NonUnitalStarRingHom. This is declared as the default coercion from F to A →⋆ₙ+ B.
Instances For
See Note [custom simps projection]
Equations
Instances For
Copy of a NonUnitalStarRingHom with a new toFun equal to the old one. Useful
to fix definitional equalities.
Equations
Instances For
The identity as a non-unital ⋆-ring homomorphism.
Equations
- NonUnitalStarRingHom.id A = { toNonUnitalRingHom := 1, map_star' := ⋯ }
Instances For
The composition of non-unital ⋆-ring homomorphisms, as a non-unital ⋆-ring homomorphism.
Instances For
Equations
- NonUnitalStarRingHom.instMonoid = { mul := NonUnitalStarRingHom.comp, mul_assoc := ⋯, one := NonUnitalStarRingHom.id A, one_mul := ⋯, mul_one := ⋯, npow_zero := ⋯, npow_succ := ⋯ }
Equations
- NonUnitalStarRingHom.instInhabited = { default := 0 }
Equations
- NonUnitalStarRingHom.instMonoidWithZero = { toMonoid := NonUnitalStarRingHom.instMonoid, toZero := NonUnitalStarRingHom.instZero, zero_mul := ⋯, mul_zero := ⋯ }
Star ring equivalences #
A ⋆-ring equivalence is an equivalence preserving addition, multiplication, and the star operation, which allows for considering both unital and non-unital equivalences with a single structure.
- 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 ⋆-ring equivalence preserves the
staroperation.
Instances For
A ⋆-ring equivalence is an equivalence preserving addition, multiplication, and the star operation, which allows for considering both unital and non-unital equivalences with a single structure.
Equations
- «term_≃⋆+*_» = Lean.ParserDescr.trailingNode `«term_≃⋆+*_» 25 0 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃⋆+* ") (Lean.ParserDescr.cat `term 0))
Instances For
StarRingEquivClass F A B asserts F is a type of bundled ⋆-ring equivalences between A and
B.
You should also extend this typeclass when you extend StarRingEquiv.
By definition, a ⋆-ring equivalence preserves the
staroperation.
Instances
Turn an element of a type F satisfying StarRingEquivClass F A B into an actual
StarRingEquiv. This is declared as the default coercion from F to A ≃⋆+* B.
Instances For
Any type satisfying StarRingEquivClass can be cast into StarRingEquiv via
StarRingEquivClass.toStarRingEquiv.
Equations
The identity map as a star ring isomorphism.
Equations
- StarRingEquiv.refl = { toRingEquiv := RingEquiv.refl A, map_star' := ⋯ }
Instances For
Equations
- StarRingEquiv.instInhabited = { default := StarRingEquiv.refl }
Auxiliary definition to avoid looping in dsimp with StarRingEquiv.symm_mk.
Equations
- StarRingEquiv.symm_mk.aux f f' h₁ h₂ h₃ h₄ h₅ = { toFun := f, invFun := f', left_inv := h₁, right_inv := h₂, map_mul' := h₃, map_add' := h₄, map_star' := h₅ }.symm
Instances For
If a (unital or non-unital) star ring morphism has an inverse, it is an isomorphism of star rings.
Equations
- StarRingEquiv.ofStarRingHom f g h₁ h₂ = { toFun := ⇑f, invFun := ⇑g, left_inv := h₁, right_inv := h₂, map_mul' := ⋯, map_add' := ⋯, map_star' := ⋯ }
Instances For
Promote a bijective star ring homomorphism to a star ring equivalence.
Equations
- StarRingEquiv.ofBijective f hf = { toFun := ⇑f, invFun := (RingEquiv.ofBijective f hf).invFun, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯, map_star' := ⋯ }