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
 The proposition that the function preserves multiplication
The proposition that the function preserves addition
- 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.
- commutes : ∀ (f : F) (r : R), f ((algebraMap R A) r) = (algebraMap R B) r
An equivalence of algebras commutes with the action of scalars.
 
Instances
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 = let __src := ↑f; let __src_1 := ↑f; { toEquiv := __src, 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.instFunLikeAlgEquiv = { coe := DFunLike.coe, coe_injective' := ⋯ }
 
Equations
- ⋯ = ⋯
 
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
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 = { toRingHom := { toMonoidHom := { toOneHom := { toFun := e.toFun, map_one' := ⋯ }, map_mul' := ⋯ }, map_zero' := ⋯, map_add' := ⋯ }, commutes' := ⋯ }
 
Instances For
Algebra equivalences are reflexive.
Equations
- AlgEquiv.refl = let __src := 1; { toEquiv := __src.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
 
Instances For
Algebra equivalences are symmetric.
Equations
- AlgEquiv.symm e = let __src := RingEquiv.symm (AlgEquiv.toRingEquiv e); { toEquiv := __src.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
 
Instances For
Algebra equivalences are transitive.
Equations
- AlgEquiv.trans e₁ e₂ = let __src := RingEquiv.trans (AlgEquiv.toRingEquiv e₁) (AlgEquiv.toRingEquiv e₂); { toEquiv := __src.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
- One or more equations did not get rendered due to their size.
 
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
- One or more equations did not get rendered due to their size.
 
Instances For
If an algebra morphism has an inverse, it is an algebra isomorphism.
Equations
- AlgEquiv.ofAlgHom f g h₁ h₂ = { toEquiv := { 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 = let __src := RingEquiv.ofBijective (↑f) hf; { toEquiv := __src.toEquiv, map_mul' := ⋯, map_add' := ⋯, commutes' := ⋯ }
 
Instances For
Forgetting the multiplicative structures, an equivalence of algebras is a linear equivalence.
Equations
- AlgEquiv.toLinearEquiv e = { toLinearMap := { toAddHom := { toFun := ⇑e, map_add' := ⋯ }, map_smul' := ⋯ }, invFun := ⇑(AlgEquiv.symm e), 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 = { toEquiv := { toFun := ⇑l, invFun := ⇑(LinearEquiv.symm l), left_inv := ⋯, right_inv := ⋯ }, map_mul' := map_mul, map_add' := ⋯, commutes' := ⋯ }
 
Instances For
Promotes a linear ring_equiv to an AlgEquiv.
Equations
- AlgEquiv.ofRingEquiv hf = { toEquiv := { toFun := ⇑f, invFun := ⇑(RingEquiv.symm f), 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
- One or more equations did not get rendered due to their size.
 
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.instMulDistribMulActionAlgEquivUnitsToMonoidToMonoidWithZeroToMonoidToDivInvMonoidAutInstMonoid = MulDistribMulAction.mk ⋯ ⋯
 
AlgEquiv.toLinearMap as a MonoidHom.
Equations
- AlgEquiv.toLinearMapHom R A = { toOneHom := { 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
- One or more equations did not get rendered due to their size.