FLT/Mathlib/RingTheory/Polynomial/GaussLemma.lean

GitHub source file

Explanation legend Lean4 Domain Explanation Language (L4DEL)

L4DEL explanations are a separate layer. They do not change the Lean source. Intuition is explanatory prose; numbered items are a reading path; sources link the wording back to evidence.

L4DEL
Lean4 Domain Explanation Language

Credit: The upstream authors and contributors retain credit for the project and mathematics. lean4-explainer only renders their pinned source and adds the separately disclosed explanation layer.

Project sources: Pinned project documentation, Pinned FLT blueprint introduction

1 declarations, 0 contain sorry, 0 declared as axioms

Monic divisors descend along the fraction field

Material for Mathlib.RingTheory.Polynomial.GaussLemma.

Imports (1)
Imported by 2 files
  1. theorem Polynomial.Monic.exists_monic_map_eq_of_monic_dvd_map Documented declaration: exists_monic_map_eq_of_monic_dvd_map line 23 source

    Source documentation

    Over an integrally closed domain R with fraction field K, a monic divisor q ∈ K[X] of the image of a monic polynomial P ∈ R[X] is itself the image of a monic polynomial over R (a form of Gauss's lemma, packaging IsIntegrallyClosed.eq_map_mul_C_of_dvd).

    standard axioms: Classical.choice, Quot.sound, propext what this means

    Statement uses: CommRing, IsIntegrallyClosed, Field, Algebra, IsFractionRing, Polynomial, Polynomial.Monic, Dvd.dvd, Polynomial.map, Algebra.algebraMap, Exists, And, Eq

    Proof uses: HMul.hMul, RingHom, Polynomial.C, Polynomial.leadingCoeff, IsIntegrallyClosed.eq_map_mul_C_of_dvd, Exists.intro, And.intro, Iff.mpr, Function.Injective.monic_map_iff, IsFractionRing.injective, Eq.rec, Eq.symm, Eq.mp, OfNat.ofNat, congrArg, mul_one, Polynomial.C_1, Polynomial.Monic.leadingCoeff

    41 instances, coercions and auxiliary constants left out.

    Tactic trace: 3 steps

    Open to load the checked before-and-after goal states.

    theorem Polynomial.Monic.exists_monic_map_eq_of_monic_dvd_map {R : Type*} [CommRing R]
        [IsIntegrallyClosed R] {K : Type*} [Field K] [Algebra R K] [IsFractionRing R K]
        {P : R[X]} (hP : P.Monic) {q : K[X]} (hq : q.Monic) (hdvd : q ∣ P.map (algebraMap R K)) :
        ∃ Q : R[X], Q.Monic ∧ Q.map (algebraMap R K) = q := by
    …