Isomorphisms of R-algebras #
This file defines bundled isomorphisms of R-algebras.
Main definitions #
AlgEquiv R A B: the type ofR-algebra isomorphisms betweenAandB.
Notations #
A ≃ₐ[R] B:R-algebra equivalence fromAtoB.
An equivalence of algebras is an equivalence of rings commuting with the actions of scalars.
- toFun : A → B
- invFun : B → A
- left_inv : Function.LeftInverse self.invFun self.toFun
- right_inv : Function.RightInverse self.invFun self.toFun
- commutes' (r : R) : self.toFun ((algebraMap R A) r) = (algebraMap R B) r
An equivalence of algebras commutes with the action of scalars.
Instances For
An equivalence of algebras is an equivalence of rings commuting with the actions of scalars.
Equations
- One or more equations did not get rendered due to their size.
Instances For
AlgEquivClass F R A B states that F is a type of algebra structure preserving
equivalences. You should extend this class when you extend AlgEquiv.
An equivalence of algebras commutes with the action of scalars.
Instances
Turn an element of a type F satisfying AlgEquivClass F R A B into an actual AlgEquiv.
This is declared as the default coercion from F to A ≃ₐ[R] B.
Equations
- ↑f = { toEquiv := ↑f, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Equations
- AlgEquivClass.instCoeTCAlgEquiv F R A B = { coe := AlgEquivClass.toAlgEquiv }
Helper instance since the coercion is not always found.
Equations
- AlgEquiv.instFunLike = { coe := DFunLike.coe, coe_injective' := ⋯ }
Equations
- AlgEquiv.hasCoeToRingEquiv = { coe := AlgEquiv.toRingEquiv }
Interpret an algebra equivalence as an algebra homomorphism.
This definition is included for symmetry with the other to*Hom projections.
The simp normal form is to use the coercion of the AlgHomClass.coeTC instance.
Equations
- ↑e = { toFun := e.toFun, map_one' := ⋯, map_mul' := ⋯, map_zero' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Algebra equivalences are reflexive.
Equations
- AlgEquiv.refl = { toEquiv := (RingEquiv.refl A₁).toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Equations
- AlgEquiv.instInhabited = { default := AlgEquiv.refl }
Algebra equivalences are symmetric.
Equations
- e.symm = { toEquiv := e.toRingEquiv.symm.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
simp normal form of invFun_eq_symm
Auxiliary definition to avoid looping in dsimp with AlgEquiv.symm_mk.
Equations
- AlgEquiv.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₄, commutes' := h₅ }.symm
Instances For
See Note [custom simps projection]
Equations
- AlgEquiv.Simps.apply e = ⇑e
Instances For
See Note [custom simps projection]
Equations
- AlgEquiv.Simps.toEquiv e = ↑e
Instances For
See Note [custom simps projection]
Equations
- AlgEquiv.Simps.symm_apply e = ⇑e.symm
Instances For
Algebra equivalences are transitive.
Equations
- e₁.trans e₂ = { toEquiv := (e₁.toRingEquiv.trans e₂.toRingEquiv).toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
If A₁ is equivalent to A₁' and A₂ is equivalent to A₂', then the type of maps
A₁ →ₐ[R] A₂ is equivalent to the type of maps A₁' →ₐ[R] A₂'.
Equations
Instances For
If A₁ is equivalent to A₂ and A₁' is equivalent to A₂', then the type of maps
A₁ ≃ₐ[R] A₁' is equivalent to the type of maps A₂ ≃ ₐ[R] A₂'.
This is the AlgEquiv version of AlgEquiv.arrowCongr.
Equations
Instances For
If an algebra morphism has an inverse, it is an algebra isomorphism.
Equations
- AlgEquiv.ofAlgHom f g h₁ h₂ = { toFun := ⇑f, invFun := ⇑g, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Promotes a bijective algebra homomorphism to an algebra equivalence.
Equations
- AlgEquiv.ofBijective f hf = { toEquiv := (RingEquiv.ofBijective (↑f) hf).toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Forgetting the multiplicative structures, an equivalence of algebras is a linear equivalence.
Equations
- e.toLinearEquiv = { toFun := ⇑e, map_add' := ⋯, map_smul' := ⋯, invFun := ⇑e.symm, left_inv := ⋯, right_inv := ⋯ }
Instances For
Upgrade a linear equivalence to an algebra equivalence, given that it distributes over multiplication and the identity
Equations
- AlgEquiv.ofLinearEquiv l map_one map_mul = { toFun := ⇑l, invFun := ⇑l.symm, left_inv := ⋯, right_inv := ⋯, map_mul' := map_mul, map_add' := ⋯, commutes' := ⋯ }
Instances For
Auxiliary definition to avoid looping in dsimp with AlgEquiv.ofLinearEquiv_symm.
Equations
- AlgEquiv.ofLinearEquiv_symm.aux l map_one map_mul = (AlgEquiv.ofLinearEquiv l map_one map_mul).symm
Instances For
Promotes a linear RingEquiv to an AlgEquiv.
Equations
- AlgEquiv.ofRingEquiv hf = { toFun := ⇑f, invFun := ⇑f.symm, left_inv := ⋯, right_inv := ⋯, map_mul' := ⋯, map_add' := ⋯, commutes' := hf }
Instances For
Equations
An algebra isomorphism induces a group isomorphism between automorphism groups.
This is a more bundled version of AlgEquiv.equivCongr.
Equations
Instances For
The tautological action by A₁ ≃ₐ[R] A₁ on A₁.
This generalizes Function.End.applyMulAction.
Equations
Equations
AlgEquiv.toLinearMap as a MonoidHom.
Equations
- AlgEquiv.toLinearMapHom R A = { toFun := AlgEquiv.toLinearMap, map_one' := ⋯, map_mul' := ⋯ }
Instances For
The units group of S →ₐ[R] S is S ≃ₐ[R] S.
See LinearMap.GeneralLinearGroup.generalLinearEquiv for the linear map version.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Each element of the group defines an algebra equivalence.
This is a stronger version of MulSemiringAction.toRingEquiv and
DistribMulAction.toLinearEquiv.
Equations
- MulSemiringAction.toAlgEquiv R A g = { toEquiv := (MulSemiringAction.toRingEquiv G A g).toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Each element of the group defines an algebra equivalence.
This is a stronger version of MulSemiringAction.toRingAut and
DistribMulAction.toModuleEnd.
Equations
- MulSemiringAction.toAlgAut G R A = { toFun := MulSemiringAction.toAlgEquiv R A, map_one' := ⋯, map_mul' := ⋯ }