mathlib3 documentation

field_theory.chevalley_warning

The Chevalley–Warning theorem #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

This file contains a proof of the Chevalley–Warning theorem. Throughout most of this file, K denotes a finite field and q is notation for the cardinality of K.

Main results #

  1. Let f be a multivariate polynomial in finitely many variables (X s, s : σ) such that the total degree of f is less than (q-1) times the cardinality of σ. Then the evaluation of f on all points of σ → K (aka K^σ) sums to 0. (sum_eval_eq_zero)
  2. The Chevalley–Warning theorem (char_dvd_card_solutions_of_sum_lt). Let f i be a finite family of multivariate polynomials in finitely many variables (X s, s : σ) such that the sum of the total degrees of the f i is less than the cardinality of σ. Then the number of common solutions of the f i is divisible by the characteristic of K.

Notation #

theorem mv_polynomial.sum_eval_eq_zero {K : Type u_1} {σ : Type u_2} [fintype K] [field K] [fintype σ] [decidable_eq σ] (f : mv_polynomial σ K) (h : f.total_degree < (fintype.card K - 1) * fintype.card σ) :
finset.univ.sum (λ (x : σ K), (mv_polynomial.eval x) f) = 0
theorem char_dvd_card_solutions_of_sum_lt {K : Type u_1} {σ : Type u_2} {ι : Type u_3} [fintype K] [field K] [fintype σ] [decidable_eq σ] [decidable_eq K] (p : ) [char_p K p] {s : finset ι} {f : ι mv_polynomial σ K} (h : s.sum (λ (i : ι), (f i).total_degree) < fintype.card σ) :
p fintype.card {x // (i : ι), i s (mv_polynomial.eval x) (f i) = 0}

The Chevalley–Warning theorem, finitary version. Let (f i) be a finite family of multivariate polynomials in finitely many variables (X s, s : σ) over a finite field of characteristic p. Assume that the sum of the total degrees of the f i is less than the cardinality of σ. Then the number of common solutions of the f i is divisible by p.

theorem char_dvd_card_solutions_of_fintype_sum_lt {K : Type u_1} {σ : Type u_2} {ι : Type u_3} [fintype K] [field K] [fintype σ] [decidable_eq σ] [decidable_eq K] (p : ) [char_p K p] [fintype ι] {f : ι mv_polynomial σ K} (h : finset.univ.sum (λ (i : ι), (f i).total_degree) < fintype.card σ) :
p fintype.card {x // (i : ι), (mv_polynomial.eval x) (f i) = 0}

The Chevalley–Warning theorem, fintype version. Let (f i) be a finite family of multivariate polynomials in finitely many variables (X s, s : σ) over a finite field of characteristic p. Assume that the sum of the total degrees of the f i is less than the cardinality of σ. Then the number of common solutions of the f i is divisible by p.

theorem char_dvd_card_solutions {K : Type u_1} {σ : Type u_2} [fintype K] [field K] [fintype σ] [decidable_eq σ] [decidable_eq K] (p : ) [char_p K p] {f : mv_polynomial σ K} (h : f.total_degree < fintype.card σ) :

The Chevalley–Warning theorem, unary version. Let f be a multivariate polynomial in finitely many variables (X s, s : σ) over a finite field of characteristic p. Assume that the total degree of f is less than the cardinality of σ. Then the number of solutions of f is divisible by p. See char_dvd_card_solutions_of_sum_lt for a version that takes a family of polynomials f i.

theorem char_dvd_card_solutions_of_add_lt {K : Type u_1} {σ : Type u_2} [fintype K] [field K] [fintype σ] [decidable_eq σ] [decidable_eq K] (p : ) [char_p K p] {f₁ f₂ : mv_polynomial σ K} (h : f₁.total_degree + f₂.total_degree < fintype.card σ) :

The Chevalley–Warning theorem, binary version. Let f₁, f₂ be two multivariate polynomials in finitely many variables (X s, s : σ) over a finite field of characteristic p. Assume that the sum of the total degrees of f₁ and f₂ is less than the cardinality of σ. Then the number of common solutions of the f₁ and f₂ is divisible by p.