Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Norms of small values give small integer polynomials, with algebraic exponentials (Waldschmidt 1973, Lemma 7)

Proved
FourExp.norm_to_polynomial_alg

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

four-exponentialsnumber-theorytranscendence

From a small value to a small polynomial. Let x1,x2,y1,y2∈Cx_1, x_2, y_1, y_2 \in \mathbb{C}x1​,x2​,y1​,y2​∈C, suppose every exiyje^{x_iy_j}exi​yj​ is algebraic, and suppose ω\omegaω is transcendental; ω1\omega_1ω1​ is a root of Q∈Z[X][Y]Q \in \mathbb{Z}[X][Y]Q∈Z[X][Y], monic in YYY of degree d≥1d \ge 1d≥1 and minimal, in the sense that no non-zero A∈Z[X][Y]A \in \mathbb{Z}[X][Y]A∈Z[X][Y] with deg⁡YA<d\deg_Y A < ddegY​A<d vanishes at (ω,ω1)(\omega, \omega_1)(ω,ω1​); and D,Ei,Gj,Hij∈Z[X][Y]D, E_i, G_j, H_{ij} \in \mathbb{Z}[X][Y]D,Ei​,Gj​,Hij​∈Z[X][Y] with D(ω,ω1)≠0D(\omega,\omega_1) \ne 0D(ω,ω1​)=0, xiD=Eix_i D = E_ixi​D=Ei​, yjD=Gjy_j D = G_jyj​D=Gj​ and exiyjD=Hije^{x_iy_j} D = H_{ij}exi​yj​D=Hij​ at (ω,ω1)(\omega, \omega_1)(ω,ω1​). For every κ,κ′>0\kappa, \kappa' > 0κ,κ′>0 there is k>0k > 0k>0 such that for every CCC there is N0N_0N0​ with the following property, with the parameters below.

S=⌊N2/log⁡N⌋,T=2N,t1=⌊N/log⁡N⌋,t2=⌊Nlog⁡N⌋,R1=14t1,R2=14t2,S′=⌊S/2⌋.S = \lfloor N^2/\sqrt{\log N}\rfloor,\quad T = 2N,\quad t_1 = \lfloor N/\sqrt{\log N}\rfloor,\quad t_2 = \lfloor N\sqrt{\log N}\rfloor,\quad R_1 = 14t_1,\quad R_2 = 14t_2,\quad S' = \lfloor S/2\rfloor.S=⌊N2/logN​⌋,T=2N,t1​=⌊N/logN​⌋,t2​=⌊NlogN​⌋,R1​=14t1​,R2​=14t2​,S′=⌊S/2⌋.

Let N>N0N > N_0N>N0​, M≤κSM \le \kappa SM≤κS and integers ∣q(i,j,k′,μ,ν)∣≤eκN2log⁡N|q(i,j,k',\mu,\nu)| \le e^{\kappa N^2\sqrt{\log N}}∣q(i,j,k′,μ,ν)∣≤eκN2logN​, and let ccc and FFF be as in FourExp.auxiliary_function. If F(s)(ay1+by2)≠0F^{(s)}(ay_1+by_2) \ne 0F(s)(ay1​+by2​)=0 and ∣F(s)(ay1+by2)∣≤exp⁡(−N4log⁡N/κ′)|F^{(s)}(ay_1+by_2)| \le \exp(-N^4\sqrt{\log N}/\kappa')∣F(s)(ay1​+by2​)∣≤exp(−N4logN​/κ′) for some a<R1a<R_1a<R1​, b<R2b<R_2b<R2​, s<S′s<S's<S′, then there is a non-zero P∈Z[X]P \in \mathbb{Z}[X]P∈Z[X] with coefficients at most ekN2log⁡Ne^{kN^2\sqrt{\log N}}ekN2logN​, deg⁡P≤kN2/log⁡N\deg P \le kN^2/\sqrt{\log N}degP≤kN2/logN​ and ∣P(ω)∣<e−Ck2N4|P(\omega)| < e^{-C k^2N^4}∣P(ω)∣<e−Ck2N4. The statement uses the N≤3N \le 3N≤3 branch of the core's σ1,σ2\sigma_1, \sigma_2σ1​,σ2​, but that branch is irrelevant for large NNN.

Proof sketch. Multiply the value by a power of D(ω,ω1)D(\omega,\omega_1)D(ω,ω1​) and reduce modulo QQQ to get A(ω,ω1)A(\omega,\omega_1)A(ω,ω1​) with A∈Z[X][Y]A \in \mathbb{Z}[X][Y]A∈Z[X][Y], deg⁡XA=O(S)\deg_X A = O(S)degX​A=O(S) and log⁡H(A)=O(N2log⁡N)\log H(A) = O(N^2\sqrt{\log N})logH(A)=O(N2logN​). Take P=Res⁡Y(Q,A)P = \operatorname{Res}_Y(Q, A)P=ResY​(Q,A), the norm from Q(ω,ω1)\mathbb{Q}(\omega,\omega_1)Q(ω,ω1​) to Q(ω)\mathbb{Q}(\omega)Q(ω) written as a polynomial. It is non-zero because A(ω,ω1)≠0A(\omega,\omega_1) \ne 0A(ω,ω1​)=0 and Q(ω,Y)Q(\omega, Y)Q(ω,Y) is irreducible over Q(ω)\mathbb{Q}(\omega)Q(ω). ∣P(ω)∣|P(\omega)|∣P(ω)∣ is the small factor times d−1d-1d−1 conjugate factors, each eO(N2log⁡N)e^{O(N^2\sqrt{\log N})}eO(N2logN​), and the log⁡N\sqrt{\log N}logN​ gain beats any CCC.

The paper's field norm NK/Q(ω)N_{K/\mathbb{Q}(\omega)}NK/Q(ω)​ is replaced by a resultant. The hypotheses are satisfiable.

Why this node exists. It restates FourExp.norm_to_polynomial with the extra hypothesis that every exiyje^{x_iy_j}exi​yj​ is algebraic. Without it the powers (exiy2)jb(e^{x_iy_2})^{jb}(exi​y2​)jb, with jbjbjb up to about 2N2log⁡N2N^2\sqrt{\log N}2N2logN​, can raise the degree in ω\omegaω past the bound kN2/log⁡NkN^2/\sqrt{\log N}kN2/logN​ required of PPP. With it they stay in a fixed number field. The earlier node is left as it is.

Preamble
import Mathlib
Formal statement
namespace FourExp

theorem norm_to_polynomial_alg
    (x₁ x₂ y₁ y₂ : ℂ)
    (hexp : ∀ i j : Fin 2, IsAlgebraic ℚ (Complex.exp (![x₁, x₂] i * ![y₁, y₂] j))) (ω ω₁ : ℂ) (hω : Transcendental ℚ ω) (Q : Polynomial (Polynomial ℤ)) (hQm : Q.Monic) (hQd : 0 < Q.natDegree)
    (hQroot : Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ Q = 0)
    (hQmin : ∀ A : Polynomial (Polynomial ℤ), A.natDegree < Q.natDegree → Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ A = 0 → A = 0)
    (D : Polynomial (Polynomial ℤ)) (E G : Fin 2 → Polynomial (Polynomial ℤ)) (H : Fin 2 → Fin 2 → Polynomial (Polynomial ℤ))
    (hD : Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ D ≠ 0) (hE : ∀ i, ![x₁, x₂] i * Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ D = Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ (E i))
    (hG : ∀ j, ![y₁, y₂] j * Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ D = Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ (G j))
    (hH : ∀ i j, Complex.exp (![x₁, x₂] i * ![y₁, y₂] j) * Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ D = Polynomial.eval₂ (Polynomial.eval₂RingHom (Int.castRingHom ℂ) ω) ω₁ (H i j))
    (κ κ' : ℝ) (hκ : 0 < κ) (hκ' : 0 < κ') :
    ∃ k : ℝ, 0 < k ∧ ∀ C : ℝ, ∃ N₀ : ℕ, ∀ N : ℕ, N₀ < N →
      ∀ M : ℕ, (M : ℝ) ≤ κ * ⌊(N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ))⌋₊ →
      ∀ q : Fin ⌊(N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ))⌋₊ → Fin (2 * N) → Fin (2 * N) → Fin M → Fin Q.natDegree → ℤ,
      (∀ i j k' μ ν, |((q i j k' μ ν : ℤ) : ℝ)| ≤ Real.exp (κ * ((N : ℝ) ^ 2 * Real.sqrt (Real.log (N : ℝ))))) →
      ∀ a b s : ℕ, a < 14 * ⌊(N : ℝ) / Real.sqrt (Real.log (N : ℝ))⌋₊ → b < 14 * ⌊(N : ℝ) * Real.sqrt (Real.log (N : ℝ))⌋₊ → s < ⌊(N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ))⌋₊ / 2 →
      iteratedDeriv s (fun z : ℂ => ∑ i : Fin ⌊(N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ))⌋₊, ∑ j : Fin (2 * N), ∑ k' : Fin (2 * N),
              (fun i j k' => ∑ μ : Fin M, ∑ ν : Fin Q.natDegree, ((q i j k' μ ν : ℤ) : ℂ) * ω ^ (μ : ℕ) * ω₁ ^ (ν : ℕ)) i j k' * z ^ (i : ℕ) * Complex.exp ((((j : ℕ) : ℂ) * x₁ + ((k' : ℕ) : ℂ) * x₂) * z)) ((a : ℂ) * y₁ + (b : ℂ) * y₂) ≠ 0 →
      ‖iteratedDeriv s (fun z : ℂ => ∑ i : Fin ⌊(N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ))⌋₊, ∑ j : Fin (2 * N), ∑ k' : Fin (2 * N),
              (fun i j k' => ∑ μ : Fin M, ∑ ν : Fin Q.natDegree, ((q i j k' μ ν : ℤ) : ℂ) * ω ^ (μ : ℕ) * ω₁ ^ (ν : ℕ)) i j k' * z ^ (i : ℕ) * Complex.exp ((((j : ℕ) : ℂ) * x₁ + ((k' : ℕ) : ℂ) * x₂) * z)) ((a : ℂ) * y₁ + (b : ℂ) * y₂)‖
          ≤ Real.exp (-(((N : ℝ) ^ 4 * Real.sqrt (Real.log (N : ℝ))) / κ')) →
      ∃ P : Polynomial ℤ, P ≠ 0 ∧
        (∀ i : ℕ, |(P.coeff i : ℝ)| ≤ Real.exp (k * (if (N : ℝ) ≤ 3 then (N : ℝ) - 3 + 9 * Real.sqrt (Real.log 3) else (N : ℝ) ^ 2 * Real.sqrt (Real.log (N : ℝ))))) ∧
        (P.natDegree : ℝ) ≤ k * (if (N : ℝ) ≤ 3 then (N : ℝ) - 3 + 9 / Real.sqrt (Real.log 3) else (N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ))) ∧
        ‖Polynomial.aeval ω P‖ < Real.exp (-(C * (k * (if (N : ℝ) ≤ 3 then (N : ℝ) - 3 + 9 * Real.sqrt (Real.log 3) else (N : ℝ) ^ 2 * Real.sqrt (Real.log (N : ℝ)))) * (k * (if (N : ℝ) ≤ 3 then (N : ℝ) - 3 + 9 / Real.sqrt (Real.log 3) else (N : ℝ) ^ 2 / Real.sqrt (Real.log (N : ℝ)))))) := by
  sorry

end FourExp
Source
M. Waldschmidt, Solution du huitième problème de Schneider, J. Number Theory 5 (1973), 191–202, Lemma 7.

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