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
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
Instances For
Equations
Equations
This is a local instance since it is only used in this file to construct Ring.NormalClosure.