Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Reduction modulo a polynomial multiplies the length by at most Cⁿ

Proved
Transcendence.exists_modByMonic_length_le

by carlok · Sep 25, 2026 · Mathlib 0df444a (Lean v4.33.1)

diaz-modulus-leanpolynomialstranscendence

For polynomials in Z[X][Y]\mathbb{Z}[X][Y]Z[X][Y], the length of P∈Z[X][Y]P \in \mathbb{Z}[X][Y]P∈Z[X][Y], written L(P)L(P)L(P), is the sum of the absolute values of all its integer coefficients. For every Q∈Z[X][Y]Q \in \mathbb{Z}[X][Y]Q∈Z[X][Y] there is CCC such that, whenever PPP has length at most bbb, XXX-degree at most eee and YYY-degree at most nnn, the remainder P mod QP \bmod QPmodQ (Mathlib's %ₘ) satisfies

L(P mod Q)≤Cn b,deg⁡X(P mod Q)≤e+Cn.L(P \bmod Q) \le C^{n}\, b, \qquad \deg_X (P \bmod Q) \le e + C n.L(PmodQ)≤Cnb,degX​(PmodQ)≤e+Cn.

Mathlib already provides the remainder, the divisibility and the degree drop; this node adds the size bound. No hypothesis on QQQ is needed: if QQQ is not monic, %ₘ returns PPP.

Preamble
import Mathlib
Formal statement
namespace Transcendence

/-- Division by a monic polynomial in `ℤ[X][Y]` keeps sizes under control.

Let `Q ∈ ℤ[X][Y]` be monic in `Y`. For `P ∈ ℤ[X][Y]` of `Y`-degree at most `n`, the remainder
`P %ₘ Q` is `∑ₖ Pₖ(X) · (Yᵏ %ₘ Q)`, and `Yᵏ %ₘ Q` is obtained from `Y^(k-1) %ₘ Q` by one
multiplication by `Y` and one subtraction of a multiple of `Q`. Hence, if `P` has length
(sum of the absolute values of all its integer coefficients) at most `b` and every coefficient
`Pₖ(X)` has degree at most `e`, then `P %ₘ Q` has length at most `Cⁿ b` and its coefficients
have `X`-degree at most `e + C n`, for a constant `C` depending only on `Q`. When `Q` is not
monic, `P %ₘ Q = P` and the bounds hold with any `C ≥ 1`. -/
theorem exists_modByMonic_length_le (Q : Polynomial (Polynomial ℤ)) :
    ∃ C : ℕ, ∀ (P : Polynomial (Polynomial ℤ)) (b e n : ℕ),
      ∑ k ∈ P.support, ∑ i ∈ (P.coeff k).support, ((P.coeff k).coeff i).natAbs ≤ b →
      (∀ k, (P.coeff k).natDegree ≤ e) → P.natDegree ≤ n →
      ∑ k ∈ (P.modByMonic Q).support, ∑ i ∈ ((P.modByMonic Q).coeff k).support,
          (((P.modByMonic Q).coeff k).coeff i).natAbs ≤ C ^ n * b ∧
        ∀ k, ((P.modByMonic Q).coeff k).natDegree ≤ e + C * n := by
  sorry

end Transcendence
Source
Standard. Formal proof: Diaz modulus mission, 25 September 2026 (C. Perassi).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me