Normal closure of an extension of domains #
We define the normal closure of an extension of domains R ⊆ S as a domain T such that
R ⊆ S ⊆ T and the extension Frac T / Frac R is Galois, and prove several instances about it.
Under the hood, T is defined as the integralClosure of S inside the
IntermediateField.normalClosure of the extension Frac S / Frac R inside the AlgebraicClosure
of Frac S. In particular, if S is a Dedekind domain, then T is also a Dedekind domain.
Technical notes #
- Many instances are proved about the 
IntermediateField.normalClosureof the extensionFrac S / Frac Rinside theAlgebraicClosureofFrac S. However these are only needed for the construction ofTand to prove some results about it. Therefore, these instances are local. Ring.NormalClosureis defined as a type rather than aSubalgebrafor performance reasons (and thus we need to provide explicit instances for it). Although defining it as aSubalgebradoes not cause timeouts in this file, it does slow down considerably its compilation and does trigger timeouts in applications.
We register this specific instance as a local instance rather than making
FractionRing.liftAlgebra a local instance because the latter causes timeouts since
it is too general.
Equations
Instances For
This is a local instance since it is only used in this file to construct Ring.NormalClosure.
Equations
- One or more equations did not get rendered due to their size.
 
Instances For
The normal closure of an extension of domains R ⊆ S. It is defined as a domain T such that
R ⊆ S ⊆ T and Frac T / Frac R is Galois.
Equations
- Ring.NormalClosure R S = ↥(integralClosure S ↥(IntermediateField.normalClosure (FractionRing R) (FractionRing S) (AlgebraicClosure (FractionRing S))))
 
Instances For
Equations
- One or more equations did not get rendered due to their size.
 
Equations
- One or more equations did not get rendered due to their size.
 
This is a local instance since it is only used in this file to construct Ring.NormalClosure.
Equations
- One or more equations did not get rendered due to their size.
 
Instances For
Equations
- Ring.instAlgebraNormalClosure_1 R S = ((algebraMap S (Ring.NormalClosure R S)).comp (algebraMap R S)).toAlgebra