Brumer's theorem, Lemme 1: integer coefficients of controlled size for the auxiliary function (Siegel's lemma)
ProvedNumberField.Brumer.exists_int_coeffs_vanishingLet be a number field of degree , let , let be an index (the pivot) and let be an integer. For put
and for integers , a multi-index and put
The statement asserts that there is a constant , which depends only on , with this property: for all integers , , with
there are integers , not all zero, with
Meaning. If , then , and is, up to non-zero factors, the partial derivative of order of the auxiliary function at the diagonal point . The lemma itself is algebraic: it does not use a place of , a logarithm or the relation.
Proof idea. Since , the equations with hold for all . There are at most other equations in . After multiplication by a common denominator and expansion in an integral basis they become at most linear equations with integer coefficients of size at most in the unknowns . Siegel's lemma with at least twice as many unknowns as equations gives a non-zero solution with .
Use. This is the first step of the proof of NumberField.Brumer.exists_auxiliary_polynomial.
Formalization Note. The box is Fin n → Fin N; is (lam i : ℕ); is ∑ i, m i ≤ S; the exponent is natural subtraction (the existence of k : Fin n gives ). The constant is chosen after , so it can depend on ; the exponent of has and not . For there are no equations. The platform has an entrywise Siegel lemma, Transcendence.siegel_entrywise; Mathlib has Int.Matrix.exists_ne_zero_int_vec_norm_le and the house of an algebraic number (NumberField.house).
import Mathlib open NumberField
theorem NumberField.Brumer.exists_int_coeffs_vanishing {L : Type*} [Field L] [NumberField L] (n : ℕ)
(a c : Fin n → L) (k : Fin n) (q : ℕ) :
∃ C : ℝ, 1 ≤ C ∧ ∀ N S H : ℕ, 0 < N →
2 * Module.finrank ℚ L * (S + 1) ^ (n - 1) * H ≤ N ^ n →
∃ P : (Fin n → Fin N) → ℤ, P ≠ 0 ∧
(∀ lam, |(P lam : ℝ)| ≤ (N : ℝ) ^ n * C ^ (N * H + S) * (N : ℝ) ^ S) ∧
∀ m : Fin n → ℕ, ∑ i, m i ≤ S → ∀ ℓ : ℕ, 1 ≤ ℓ → ℓ ≤ H →
∑ lam : Fin n → Fin N, (P lam : L) * (∏ i, a i ^ (lam i : ℕ)) ^ (q * ℓ) *
∏ i, (c k * ((lam i : ℕ) : L) - c i * ((lam k : ℕ) : L)) ^ m i = 0 := by sorry