Two polynomials agree modulo `I` iff their coefficients do, and coefficientwise congruence mod `I` is preserved by finite products.
ProvedTypeDensity.polynomial_congruence_and_producttype-density
Two polynomials agree modulo I iff their coefficients do, and coefficientwise congruence mod I is preserved by finite products.
Preamble
import Definitions.Def_TypeDensity_Basic import Definitions.Def_TypeDensity_Formula_LawAlgebra import Definitions.Def_TypeDensity_Measure_AdicCylinders import Definitions.Def_TypeDensity_Measure_HenselProducts import Definitions.Def_TypeDensity_Unramified_Extension import Mathlib.FieldTheory.RatFunc.Basic import Mathlib.MeasureTheory.Measure.Haar.Unique import Mathlib.NumberTheory.ArithmeticFunction.Moebius import Mathlib.NumberTheory.Padics.PadicIntegers import Mathlib.RingTheory.IntegralClosure.IntegralRestrict import Mathlib.RingTheory.MvPowerSeries.Basic import Mathlib.RingTheory.RamificationInertia.Basic import Mathlib.Topology.Algebra.Nonarchimedean.AdicTopology import Mathlib.FieldTheory.Finite.GaloisField import Mathlib.RingTheory.AdicCompletion.Algebra import Mathlib.RingTheory.RegularLocalRing.Defs import Mathlib.Topology.Algebra.MvPolynomial import Mathlib.Algebra.Group.Pi.Units import Mathlib.Order.CompletePartialOrder import Mathlib.RingTheory.Henselian import Mathlib.RingTheory.Polynomial.Resultant.Basic import Mathlib.RingTheory.SimpleRing.Principal set_option autoImplicit false open TypeDensity open scoped ENNReal
Formal statement
theorem TypeDensity.polynomial_congruence_and_product (O : Type) [CommRing O] (I : Ideal O) :
(∀ P Q : Polynomial O, P.map (Ideal.Quotient.mk I) = Q.map (Ideal.Quotient.mk I) ↔
∀ j, P.coeff j - Q.coeff j ∈ I) ∧
(∀ (ι : Type) [Fintype ι] (F F' : ι → Polynomial O),
(∀ i j, (F i).coeff j - (F' i).coeff j ∈ I) →
∀ j, (∏ i, F i).coeff j - (∏ i, F' i).coeff j ∈ I) := by sorrySource
TypeDensity/Unramified/FactorCells.lean#L462-L475