Integral closure of a subring. #
If A is an R-algebra then a : A
is integral over R if it is a root of a monic polynomial
with coefficients in R. Enough theory is developed to prove that integral elements
form a sub-R-algebra of A.
Main definitions #
Let R
be a comm_ring
and let A
be an R-algebra.
-
ring_hom.is_integral_elem (f : R →+* A) (x : A)
:x
is integral with respect to the mapf
, -
is_integral (x : A)
:x
is integral overR
, i.e., is a root of a monic polynomial with coefficients inR
. -
integral_closure R A
: the integral closure ofR
inA
, regarded as a sub-R
-algebra ofA
.
An element x
of A
is said to be integral over R
with respect to f
if it is a root of a monic polynomial p : R[X]
evaluated under f
Equations
- f.is_integral_elem x = ∃ (p : R[X]), p.monic ∧ polynomial.eval₂ f x p = 0
A ring homomorphism f : R →+* A
is said to be integral
if every element A
is integral with respect to the map f
Equations
- f.is_integral = ∀ (x : A), f.is_integral_elem x
An element x
of an algebra A
over a commutative ring R
is said to be integral,
if it is a root of some monic polynomial p : R[X]
.
Equivalently, the element is integral over R
with respect to the induced algebra_map
Equations
- is_integral R x = (algebra_map R A).is_integral_elem x
An algebra is integral if every element of the extension is integral over the base ring
Equations
- algebra.is_integral R A = (algebra_map R A).is_integral
If S
is a sub-R
-algebra of A
and S
is finitely-generated as an R
-module,
then all elements of S
are integral over R
.
The integral closure of R in an R-algebra A.
Equations
- integral_closure R A = {carrier := {r : A | is_integral R r}, mul_mem' := _, one_mem' := _, add_mem' := _, zero_mem' := _, algebra_map_mem' := _}
Mapping an integral closure along an alg_equiv
gives the integral closure.
Generalization of is_integral_of_mem_closure
bootstrapped up from that lemma
The monic polynomial whose roots are p.leading_coeff * x
for roots x
of p
.
Equations
- normalize_scale_roots p = ∑ (i : ℕ) in p.support, ⇑(polynomial.monomial i) (ite (i = p.nat_degree) 1 ((p.coeff i) * p.leading_coeff ^ (p.nat_degree - 1 - i)))
Given a p : R[X]
and a x : S
such that p.eval₂ f x = 0
,
f p.leading_coeff * x
is integral.
Given a p : R[X]
and a root x : S
,
then p.leading_coeff • x : S
is integral over R
.
- algebra_map_injective : function.injective ⇑(algebra_map A B)
- is_integral_iff : ∀ {x : B}, is_integral R x ↔ ∃ (y : A), ⇑(algebra_map A B) y = x
is_integral_closure A R B
is the characteristic predicate stating A
is
the integral closure of R
in B
,
i.e. that an element of B
is integral over R
iff it is an element of (the image of) A
.
If x : B
is integral over R
, then it is an element of the integral closure of R
in B
.
Equations
- is_integral_closure.mk' A x hx = classical.some _
If B / S / R
is a tower of ring extensions where S
is integral over R
,
then S
maps (uniquely) into an integral closure B / A / R
.
Equations
- is_integral_closure.lift A B h = {to_fun := λ (x : S), is_integral_closure.mk' A (⇑(algebra_map S B) x) _, map_one' := _, map_mul' := _, map_zero' := _, map_add' := _, commutes' := _}
Integral closures are all isomorphic to each other.
Equations
- is_integral_closure.equiv R A B A' = alg_equiv.of_alg_hom (is_integral_closure.lift A' B _) (is_integral_closure.lift A B _) _ _
If A is an R-algebra all of whose elements are integral over R, and x is an element of an A-algebra that is integral over A, then x is integral over R.
If A is an R-algebra all of whose elements are integral over R, and B is an A-algebra all of whose elements are integral over A, then all elements of B are integral over R.
If R → A → B
is an algebra tower with A → B
injective,
then if the entire tower is an integral extension so is R → A
If R → A → B
is an algebra tower,
then if the entire tower is an integral extension so is A → B
.
If the integral extension R → S
is injective, and S
is a field, then R
is also a field.