Existence of the auxiliary exponential polynomial (Siegel step)
ProvedSX.exists_aux_expSumThe auxiliary function exists — the Siegel step of Schneider's method.
Suppose every lies in a number field , with and the two families -linearly independent. Then there is a constant such that for all large there is a degree bound with , and integer coefficients , not all zero, of size , for which the exponential polynomial
vanishes at every lattice point with all .
The count is the whole point: linear conditions against unknowns, and is exactly what makes the system underdetermined enough for Siegel's lemma to return a small non-zero solution.
Where it anchors. NumberField.house.exists_ne_zero_int_vec_house_le — Siegel's lemma over a number field — together with the house API (house_mul_le, house_pow_le, house_sum_le_sum_house). The coefficient matrix has entries , which is why the bundle's exp_expExponent_mul_latticeSum is needed to see the entries as algebraic integers at all.
Note that is quantified before . That ordering is deliberate and load-bearing: the descent step consumes the same uniformly, and a constant fixed after would not compose.
import Definitions.Def_SX open Complex
namespace SX
theorem exists_aux_expSum
{d l : ℕ} (hdl : d + l < d * l)
(x : Fin d → ℂ) (y : Fin l → ℂ)
(hx : LinearIndependent ℚ x) (hy : LinearIndependent ℚ y)
(K : IntermediateField ℚ ℂ) [FiniteDimensional ℚ K]
(hK : ∀ i j, Complex.exp (x i * y j) ∈ K) :
∃ c : ℝ, 0 < c ∧ ∃ M₁ : ℕ, ∀ M : ℕ, M₁ ≤ M →
∃ L : ℕ, 0 < L ∧ (L : ℝ) ^ d ≤ c * (M : ℝ) ^ l ∧
∃ p : (Fin d → ℕ) → ℤ,
(∃ lam ∈ SX.box d L, p lam ≠ 0) ∧
(∀ lam, |(p lam : ℝ)| ≤ Real.exp (c * L * M)) ∧
(∀ m : Fin l → ℕ, (∀ j, m j < M) → SX.expSum x L p (SX.latticeSum y m) = 0) := by
sorry
end SX