mathlib3 documentation

field_theory.minpoly.is_integrally_closed

Minimal polynomials over a GCD monoid #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file specializes the theory of minpoly to the case of an algebra over a GCD monoid.

Main results #

theorem minpoly.is_integrally_closed_eq_field_fractions {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] (K : Type u_3) (L : Type u_4) [field K] [algebra R K] [is_fraction_ring R K] [field L] [algebra R L] [algebra S L] [algebra K L] [is_scalar_tower R K L] [is_scalar_tower R S L] [is_integrally_closed R] [is_domain S] {s : S} (hs : is_integral R s) :

For integrally closed domains, the minimal polynomial over the ring is the same as the minimal polynomial over the fraction field. See minpoly.is_integrally_closed_eq_field_fractions' if S is already a K-algebra.

theorem minpoly.is_integrally_closed_eq_field_fractions' {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] (K : Type u_3) [field K] [algebra R K] [is_fraction_ring R K] [is_integrally_closed R] [is_domain S] [algebra K S] [is_scalar_tower R K S] {s : S} (hs : is_integral R s) :

For integrally closed domains, the minimal polynomial over the ring is the same as the minimal polynomial over the fraction field. Compared to minpoly.is_integrally_closed_eq_field_fractions, this version is useful if the element is in a ring that is already a K-algebra.

theorem minpoly.is_integrally_closed_dvd {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] [nontrivial R] {s : S} (hs : is_integral R s) {p : polynomial R} (hp : (polynomial.aeval s) p = 0) :
minpoly R s p

For integrally closed rings, the minimal polynomial divides any polynomial that has the integral element as root. See also minpoly.dvd which relaxes the assumptions on S in exchange for stronger assumptions on R.

theorem minpoly.is_integrally_closed.degree_le_of_ne_zero {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {s : S} (hs : is_integral R s) {p : polynomial R} (hp0 : p 0) (hp : (polynomial.aeval s) p = 0) :

If an element x is a root of a nonzero polynomial p, then the degree of p is at least the degree of the minimal polynomial of x. See also minpoly.degree_le_of_ne_zero which relaxes the assumptions on S in exchange for stronger assumptions on R.

theorem minpoly.is_integrally_closed.minpoly.unique {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {s : S} {P : polynomial R} (hmo : P.monic) (hP : (polynomial.aeval s) P = 0) (Pmin : (Q : polynomial R), Q.monic (polynomial.aeval s) Q = 0 P.degree Q.degree) :
P = minpoly R s

The minimal polynomial of an element x is uniquely characterized by its defining property: if there is another monic polynomial of minimal degree that has x as a root, then this polynomial is equal to the minimal polynomial of x. See also minpoly.unique which relaxes the assumptions on S in exchange for stronger assumptions on R.

noncomputable def minpoly.equiv_adjoin {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {x : S} (hx : is_integral R x) :

The algebra isomorphism adjoin_root (minpoly R x) ≃ₐ[R] adjoin R x

Equations
@[simp]
theorem minpoly.equiv_adjoin_apply {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {x : S} (hx : is_integral R x) (ᾰ : adjoin_root (minpoly R x)) :
@[simp]
noncomputable def algebra.adjoin.power_basis' {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {x : S} (hx : is_integral R x) :

The power_basis of adjoin R {x} given by x. See algebra.adjoin.power_basis for a version over a field.

Equations
@[simp]
theorem power_basis.of_gen_mem_adjoin'_gen {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {x : S} (B : power_basis R S) (hint : is_integral R x) (hx : B.gen algebra.adjoin R {x}) :
(B.of_gen_mem_adjoin' hint hx).gen = x
noncomputable def power_basis.of_gen_mem_adjoin' {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {x : S} (B : power_basis R S) (hint : is_integral R x) (hx : B.gen algebra.adjoin R {x}) :

The power basis given by x if B.gen ∈ adjoin R {x}.

Equations
@[simp]
theorem power_basis.of_gen_mem_adjoin'_dim {R : Type u_1} {S : Type u_2} [comm_ring R] [comm_ring S] [is_domain R] [algebra R S] [is_domain S] [no_zero_smul_divisors R S] [is_integrally_closed R] {x : S} (B : power_basis R S) (hint : is_integral R x) (hx : B.gen algebra.adjoin R {x}) :