Isomorphisms of R
-algebras #
This file defines bundled isomorphisms of R
-algebras.
Main definitions #
AlgEquiv R A B
: the type ofR
-algebra isomorphisms betweenA
andB
.
Notations #
A ≃ₐ[R] B
:R
-algebra equivalence fromA
toB
.
An equivalence of algebras is an equivalence of rings commuting with the actions of scalars.
Instances For
An equivalence of algebras commutes with the action of scalars.
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
.
Instances
An equivalence of algebras commutes with the action of scalars.
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
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
- ⋯ = ⋯
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.toEquiv 1, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
Algebra equivalences are symmetric.
Equations
- e.symm = { toEquiv := e.toRingEquiv.symm.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
Instances For
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
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
- AlgEquiv.applyMulSemiringAction = MulSemiringAction.mk ⋯ ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
Equations
- AlgEquiv.instMulDistribMulActionUnits = MulDistribMulAction.mk ⋯ ⋯
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' := ⋯ }