Extension of algebras #
Main definition #
Algebra.Extension
: An extension of anR
-algebraS
is anR
algebraP
together with a surjectionP →ₐ[R] R
.Algebra.Extension.Hom
: Given a commuting squareR --→ P -→ S | | ↓ ↓ R' -→ P' → S
A hom between
P
andP'
is a ring homomorphism that makes the two squares commute.Algebra.Extension.Cotangent
: The cotangent space wrt an extensionP → S
byI
, 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' := ⋯ }