Module

DegreeBounds.lean

Nyll.ValuedFieldTheory.Valuation.Henselian.Factorization.DegreeBounds
7 declarations indexed from sourceView source ↗

degree bounds for the error factors

This file supplies the degree estimates for the polynomials f_n appearing in the coefficientwise Hensel iteration.

Declarations

AlgebraicNumberTheory.Valuations.henselFactorization_map_natDegree_le_of_natDegree_le

a natural-degree bound survives reduction of coefficients.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_map_natDegree_le_of_natDegree_le
    {R k : Type*} [CommRing R] [CommRing k] (φ : R →+* k)
    {P : R[X]} {d : ℕ} (hP : P.natDegree ≤ d) :
    (P.map φ).natDegree ≤ d
AlgebraicNumberTheory.Valuations.henselFactorization_natDegree_eq_of_residue_eq_of_le

exact degree is recovered from a bounded lift whose reduction has nonzero leading coefficient in the prescribed degree.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_natDegree_eq_of_residue_eq_of_le
    {R : Type*} [CommRing R] [IsLocalRing R]
    {P : R[X]} {gbar : (IsLocalRing.ResidueField R)[X]} {m : ℕ}
    (hP : P.natDegree ≤ m)
    (hmap : P.map (IsLocalRing.residue R) = gbar)
    (hgbar_nat : gbar.natDegree = m)
    (hglead : gbar.leadingCoeff ≠ 0) :
    P.natDegree = m
AlgebraicNumberTheory.Valuations.henselFactorization_residual_right_natDegree_le

the stated degree bound for the second residual factor: if fbar = gbar*hbar, deg fbar≤d, and deg gbar=m with gbar≠0, then deg hbar≤d-m.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_residual_right_natDegree_le
    {k : Type*} [Field k] {fbar gbar hbar : k[X]} {m d : ℕ}
    (hfbar : fbar = gbar * hbar)
    (hf : fbar.natDegree ≤ d)
    (hgbar_nat : gbar.natDegree = m)
    (hglead : gbar.leadingCoeff ≠ 0) :
    hbar.natDegree ≤ d - m
AlgebraicNumberTheory.Valuations.henselFactorization_error_natDegree_le

if deg f ≤ d, deg g ≤ m, and deg h ≤ d-m, then deg(f-gh)≤d.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_error_natDegree_le
    {R : Type*} [CommRing R] {f g h : R[X]} {d m : ℕ}
    (hf : f.natDegree ≤ d) (hg : g.natDegree ≤ m)
    (hh : h.natDegree ≤ d - m) (hmd : m ≤ d) :
    (f - g * h).natDegree ≤ d
AlgebraicNumberTheory.Valuations.henselFactorization_factor_natDegree_le_of_constant_mul_eq

if P=C(a)Q with a≠0, then a degree bound on P is a degree bound on Q.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_factor_natDegree_le_of_constant_mul_eq
    {R : Type*} [CommRing R] [NoZeroDivisors R] {a : R} (ha : a ≠ 0)
    {P Q : R[X]} {d : ℕ}
    (hP : P.natDegree ≤ d) (hfactor : P = Polynomial.C a * Q) :
    Q.natDegree ≤ d
AlgebraicNumberTheory.Valuations.henselFactorization_error_factor_natDegree_le

degree bound for the next error factor f_n from the current factorization error.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_error_factor_natDegree_le
    {R : Type*} [CommRing R] [NoZeroDivisors R] {π : R} {n : ℕ}
    (hπn : π ^ n ≠ 0)
    {f g h fn : R[X]} {d m : ℕ}
    (hf : f.natDegree ≤ d) (hg : g.natDegree ≤ m)
    (hh : h.natDegree ≤ d - m) (hmd : m ≤ d)
    (hfactor : f - g * h = Polynomial.C (π ^ n) * fn) :
    fn.natDegree ≤ d
AlgebraicNumberTheory.Valuations.henselFactorization_error_factor_residue_natDegree_le

residue-degree bound for the next error factor f_n.

Source context 4 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
open scoped Polynomial
namespace AlgebraicNumberTheory
namespace Valuations
theorem henselFactorization_error_factor_residue_natDegree_le
    {R : Type*} [CommRing R] [IsLocalRing R] [NoZeroDivisors R]
    {π : R} {n : ℕ} (hπn : π ^ n ≠ 0)
    {f g h fn : R[X]} {d m : ℕ}
    (hf : f.natDegree ≤ d) (hg : g.natDegree ≤ m)
    (hh : h.natDegree ≤ d - m) (hmd : m ≤ d)
    (hfactor : f - g * h = Polynomial.C (π ^ n) * fn) :
    (fn.map (IsLocalRing.residue R)).natDegree ≤ d