File: Mathlib/RingTheory/Polynomial/GaussLemma.lean

full_name: integralClosure.mem_lifts_of_monic_of_dvd_map
code: theorem integralClosure.mem_lifts_of_monic_of_dvd_map {f : R[X]} (hf : f.Monic) {g : K[X]}
    (hg : g.Monic) (hd : g ∣ f.map (algebraMap R K)) :
    g ∈ lifts (algebraMap (integralClosure R K) K) 
goal: g ∈ Polynomial.lifts (algebraMap (↥(integralClosure R K)) K)

full_name: IsIntegrallyClosed.eq_map_mul_C_of_dvd
code: /-- If `K = Frac(R)` and `g : K[X]` divides a monic polynomial with coefficients in `R`, then
    `g * (C g.leadingCoeff⁻¹)` has coefficients in `R` -/
theorem IsIntegrallyClosed.eq_map_mul_C_of_dvd [IsIntegrallyClosed R] {f : R[X]} (hf : f.Monic)
    {g : K[X]} (hg : g ∣ f.map (algebraMap R K)) :
    ∃ g' : R[X], g'.map (algebraMap R K) * (C <| leadingCoeff g) = g 
goal: ∃ g', Polynomial.map (algebraMap R K) g' * Polynomial.C g.leadingCoeff = g

full_name: Polynomial.IsPrimitive.isUnit_iff_isUnit_map_of_injective
code: theorem IsPrimitive.isUnit_iff_isUnit_map_of_injective : IsUnit f ↔ IsUnit (map φ f) 
goal: IsUnit f ↔ IsUnit (Polynomial.map φ f)

full_name: Polynomial.IsPrimitive.irreducible_of_irreducible_map_of_injective
code: theorem IsPrimitive.irreducible_of_irreducible_map_of_injective (h_irr : Irreducible (map φ f)) :
    Irreducible f 
goal: Irreducible f

full_name: Polynomial.IsPrimitive.isUnit_iff_isUnit_map
code: theorem IsPrimitive.isUnit_iff_isUnit_map {p : R[X]} (hp : p.IsPrimitive) :
    IsUnit p ↔ IsUnit (p.map (algebraMap R K)) 
goal: IsUnit p ↔ IsUnit (Polynomial.map (algebraMap R K) p)

full_name: Polynomial.Monic.irreducible_iff_irreducible_map_fraction_map
code: /-- **Gauss's Lemma** for integrally closed domains states that a monic polynomial is irreducible
  iff it is irreducible in the fraction field. -/
theorem Monic.irreducible_iff_irreducible_map_fraction_map [IsIntegrallyClosed R] {p : R[X]}
    (h : p.Monic) : Irreducible p ↔ Irreducible (p.map <| algebraMap R K) 
goal: Irreducible p ↔ Irreducible (Polynomial.map (algebraMap R K) p)

full_name: Polynomial.isIntegrallyClosed_iff'
code: /-- Integrally closed domains are precisely the domains for in which Gauss's lemma holds
    for monic polynomials -/
theorem isIntegrallyClosed_iff' :
    IsIntegrallyClosed R ↔
      ∀ p : R[X], p.Monic → (Irreducible p ↔ Irreducible (p.map <| algebraMap R K)) 
goal: IsIntegrallyClosed R ↔ ∀ (p : R[X]), p.Monic → (Irreducible p ↔ Irreducible (Polynomial.map (algebraMap R K) p))

full_name: Polynomial.Monic.dvd_of_fraction_map_dvd_fraction_map
code: theorem Monic.dvd_of_fraction_map_dvd_fraction_map [IsIntegrallyClosed R] {p q : R[X]}
    (hp : p.Monic) (hq : q.Monic)
    (h : q.map (algebraMap R K) ∣ p.map (algebraMap R K)) : q ∣ p 
goal: q ∣ p

full_name: Polynomial.Monic.dvd_iff_fraction_map_dvd_fraction_map
code: theorem Monic.dvd_iff_fraction_map_dvd_fraction_map [IsIntegrallyClosed R] {p q : R[X]}
    (hp : p.Monic) (hq : q.Monic) : q.map (algebraMap R K) ∣ p.map (algebraMap R K) ↔ q ∣ p 
goal: Polynomial.map (algebraMap R K) q ∣ Polynomial.map (algebraMap R K) p ↔ q ∣ p

full_name: Polynomial.isUnit_or_eq_zero_of_isUnit_integerNormalization_primPart
code: theorem isUnit_or_eq_zero_of_isUnit_integerNormalization_primPart {p : K[X]} (h0 : p ≠ 0)
    (h : IsUnit (integerNormalization R⁰ p).primPart) : IsUnit p 
goal: IsUnit p

full_name: Polynomial.IsPrimitive.irreducible_iff_irreducible_map_fraction_map
code: /-- **Gauss's Lemma** for GCD domains states that a primitive polynomial is irreducible iff it is
  irreducible in the fraction field. -/
theorem IsPrimitive.irreducible_iff_irreducible_map_fraction_map {p : R[X]} (hp : p.IsPrimitive) :
    Irreducible p ↔ Irreducible (p.map (algebraMap R K)) 
goal: Irreducible p ↔ Irreducible (Polynomial.map (algebraMap R K) p)

full_name: Polynomial.IsPrimitive.dvd_of_fraction_map_dvd_fraction_map
code: theorem IsPrimitive.dvd_of_fraction_map_dvd_fraction_map {p q : R[X]} (hp : p.IsPrimitive)
    (hq : q.IsPrimitive) (h_dvd : p.map (algebraMap R K) ∣ q.map (algebraMap R K)) : p ∣ q 
goal: p ∣ q

full_name: Polynomial.IsPrimitive.dvd_iff_fraction_map_dvd_fraction_map
code: theorem IsPrimitive.dvd_iff_fraction_map_dvd_fraction_map {p q : R[X]} (hp : p.IsPrimitive)
    (hq : q.IsPrimitive) : p ∣ q ↔ p.map (algebraMap R K) ∣ q.map (algebraMap R K) 
goal: p ∣ q ↔ Polynomial.map (algebraMap R K) p ∣ Polynomial.map (algebraMap R K) q

full_name: Polynomial.IsPrimitive.Int.irreducible_iff_irreducible_map_cast
code: /-- **Gauss's Lemma** for `ℤ` states that a primitive integer polynomial is irreducible iff it is
  irreducible over `ℚ`. -/
theorem IsPrimitive.Int.irreducible_iff_irreducible_map_cast {p : ℤ[X]} (hp : p.IsPrimitive) :
    Irreducible p ↔ Irreducible (p.map (Int.castRingHom ℚ)) 
goal: Irreducible p ↔ Irreducible (Polynomial.map (Int.castRingHom ℚ) p)

full_name: Polynomial.IsPrimitive.Int.dvd_iff_map_cast_dvd_map_cast
code: theorem IsPrimitive.Int.dvd_iff_map_cast_dvd_map_cast (p q : ℤ[X]) (hp : p.IsPrimitive)
    (hq : q.IsPrimitive) : p ∣ q ↔ p.map (Int.castRingHom ℚ) ∣ q.map (Int.castRingHom ℚ) 
goal: p ∣ q ↔ Polynomial.map (Int.castRingHom ℚ) p ∣ Polynomial.map (Int.castRingHom ℚ) q