Weighted local contacts and constrained polynomial spaces
DefinitionProximityUniversalReplacementV1Use variables over a field . For nonnegative weights , the weighted polynomial replaces each variable by . At data define
The contact order is the least exponent of with a nonzero coefficient in , with value zero for the zero polynomial; contact at least means .
For arbitrary node data indexed by and multiplicities , admissibility requires all local contacts and three source bounds:
Weights and bounds are natural numbers, so is truncated natural subtraction. Weighted degree is the largest weighted monomial exponent, with value zero at the zero polynomial.
This proof-free module supplies the concrete polynomial and contact interface for universal-factor replacement theorems. Its associated proof establishes that contact at least is exactly a lower bound of on every support weight after localization, and proves multiplicative additivity of nonzero contact orders and weighted degrees.
import Mathlib.RingTheory.MvPolynomial.WeightedHomogeneous
import Mathlib.Algebra.MvPolynomial.Equiv
import Mathlib.Algebra.MvPolynomial.NoZeroDivisors
import Mathlib.Algebra.Polynomial.Degree.TrailingDegree
namespace ProximityUniversalReplacementV1
noncomputable section
abbrev Poly4 (K : Type*) [CommSemiring K] := MvPolynomial (Fin 4) K
def weightedPolynomial (K : Type*) [Field K] (weights : Fin 4 → ℕ) :
Poly4 K →+* Polynomial (Poly4 K) :=
MvPolynomial.eval₂Hom (Polynomial.C.comp MvPolynomial.C)
(fun i => Polynomial.C (MvPolynomial.X i) * Polynomial.X ^ weights i)
def localize (K : Type*) [Field K] (x u0 u1 : K) : Poly4 K →ₐ[K] Poly4 K :=
MvPolynomial.aeval
![MvPolynomial.X 0 + MvPolynomial.C x,
MvPolynomial.C u0 + MvPolynomial.X 3 * MvPolynomial.C u1 +
MvPolynomial.X 2 * MvPolynomial.X 0 + MvPolynomial.X 1,
MvPolynomial.X 2, MvPolynomial.X 3]
def contactPolynomial (K : Type*) [Field K] (x u0 u1 : K) :
Poly4 K →+* Polynomial (Poly4 K) :=
(weightedPolynomial K ![1, 2, 0, 0]).comp (localize K x u0 u1).toRingHom
def contactOrder (K : Type*) [Field K] (x u0 u1 : K) (P : Poly4 K) : ℕ :=
(contactPolynomial K x u0 u1 P).natTrailingDegree
def contactAtLeast (K : Type*) [Field K] (x u0 u1 : K) (m : ℕ)
(P : Poly4 K) : Prop :=
Polynomial.X ^ m ∣ contactPolynomial K x u0 u1 P
def admissible (K : Type*) [Field K] {I : Type*} (D w L s : ℕ)
(m : I → ℕ) (nodes u0 u1 : I → K) (Q : Poly4 K) : Prop :=
MvPolynomial.weightedTotalDegree ![1, w, w - 1, 0] Q < D ∧
MvPolynomial.weightedTotalDegree ![0, 1, 1, 1] Q ≤ L ∧
Q.degreeOf 2 ≤ s ∧
∀ i, contactAtLeast K (nodes i) (u0 i) (u1 i) (m i) Q
end
end ProximityUniversalReplacementV1