Extension of algebras #
Main definition #
Algebra.Extension: An extension of anR-algebraSis anRalgebraPtogether with a surjectionP →ₐ[R] R.Algebra.Extension.Hom: Given a commuting squareR --→ P -→ S | | ↓ ↓ R' -→ P' → SA hom between
PandP'is a ring homomorphism that makes the two squares commute.Algebra.Extension.Cotangent: The cotangent space wrt an extensionP → SbyI, i.e. the spaceI/I².
An extension of an R-algebra S is an R algebra P together with a surjection P →ₐ[R] S.
Also see Algebra.Extension.ofSurjective.
- Ring : Type w
The underlying algebra of an extension.
- commRing : CommRing self.Ring
- algebra₁ : Algebra R self.Ring
- algebra₂ : Algebra self.Ring S
- isScalarTower : IsScalarTower R self.Ring S
- σ : S → self.Ring
A chosen (set-theoretic) section of an extension.
- algebraMap_σ (x : S) : (algebraMap self.Ring S) (self.σ x) = x
Instances For
Equations
- P.instRingOfIsScalarTower = Algebra.mk ((algebraMap R P.Ring).comp (algebraMap R₀ R)) ⋯ ⋯
Construct Extension from a surjective algebra homomorphism.
Equations
- Algebra.Extension.ofSurjective f h = Algebra.Extension.mk P (fun (x : S) => ⋯.choose) ⋯
Instances For
The trivial extension of S.
Equations
- Algebra.Extension.self R S = Algebra.Extension.mk S id ⋯
Instances For
An R-extension P → S gives an R-extension Pₘ → Sₘ.
Note that this is different from baseChange as the base does not change.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The base change of an R-extension of S to T gives a T-extension of T ⊗[R] S.
Equations
- P.baseChange = Algebra.Extension.mk (TensorProduct R T P.Ring) (Algebra.Extension.ofSurjective (Algebra.TensorProduct.map (AlgHom.id T T) (IsScalarTower.toAlgHom R P.Ring S)) ⋯).σ ⋯
Instances For
Given a commuting square
R --→ P -→ S
| |
↓ ↓
R' -→ P' → S
A hom between P and P' is a ring homomorphism that makes the two squares commute.
- toRingHom : P.Ring →+* P'.Ring
The underlying ring homomorphism of a hom between extensions.
- toRingHom_algebraMap (x : R) : self.toRingHom ((algebraMap R P.Ring) x) = (algebraMap R' P'.Ring) ((algebraMap R R') x)
- algebraMap_toRingHom (x : P.Ring) : (algebraMap P'.Ring S') (self.toRingHom x) = (algebraMap S S') ((algebraMap P.Ring S) x)
Instances For
A hom between extensions as an algebra homomorphism.
Equations
- f.toAlgHom = { toRingHom := f.toRingHom, commutes' := ⋯ }
Instances For
The identity hom.
Equations
- Algebra.Extension.Hom.id P = { toRingHom := RingHom.id P.Ring, toRingHom_algebraMap := ⋯, algebraMap_toRingHom := ⋯ }
Instances For
The composition of two homs.
Equations
- f.comp g = { toRingHom := f.toRingHom.comp g.toRingHom, toRingHom_algebraMap := ⋯, algebraMap_toRingHom := ⋯ }
Instances For
The kernel of an extension.
Equations
- P.ker = RingHom.ker (algebraMap P.Ring S)
Instances For
The cotangent space of an extension.
This is a type synonym so that P.Ring can act on it through the action of S without creating
a diamond.
Equations
- P.Cotangent = P.ker.Cotangent
Instances For
Equations
- P.instAddCommGroupCotangent = inferInstanceAs (AddCommGroup P.ker.Cotangent)
The identity map P.ker.Cotangent → P.Cotangent into the type synonym.
Equations
Instances For
Equations
- Algebra.Extension.instModuleCotangent = Module.compHom P.Cotangent (algebraMap R₀ S)
The action of R₀ on P.Cotangent for an extension P → S, if S is an R₀ algebra.
The quotient map from the kernel of P → S onto the cotangent space.
Equations
- Algebra.Extension.Cotangent.mk = { toFun := fun (x : ↥P.ker) => Algebra.Extension.Cotangent.of (P.ker.toCotangent x), map_add' := ⋯, map_smul' := ⋯ }
Instances For
A hom between two extensions induces a map between cotangent spaces.
Equations
- Algebra.Extension.Cotangent.map f = { toFun := fun (x : P.Cotangent) => Algebra.Extension.Cotangent.of ((P.ker.mapCotangent P'.ker f.toAlgHom ⋯) x.val), map_add' := ⋯, map_smul' := ⋯ }