Weil conjectures for curves (Weil)
ProvedWeilConjectures.weil_conjectures_curvesLet and let be a non-singular projective curve over (smooth of relative dimension , geometrically irreducible, projective). Then there are integer polynomials and finite multisets of nonzero complex numbers with
, , and in for ;
Functional equation: with and , there is a sign such that
for every complex at which both sides are defined; and for the multiset equals ;
Riemann hypothesis: for all and all .
This is the case of the Weil conjectures, proved by Weil.
Formalization Note The finite field is a type k with [Field k] [Finite k] [CharP k p], = Nat.card k; is FiniteField.Extension k p m; counts -morphisms ; is zetaFunction p f. Projectivity is a closed immersion into projectiveSpace k N over .
import Mathlib import Definitions.Def_WeilConjectures_projectiveSpace import Definitions.Def_WeilConjectures_zetaFunction open AlgebraicGeometry CategoryTheory Polynomial
namespace WeilConjectures
theorem weil_conjectures_curves (p : ℕ) [Fact p.Prime] (k : Type) [Field k] [Finite k] [CharP k p]
(X : Scheme.{0}) (f : X ⟶ Spec (.of k))
[SmoothOfRelativeDimension 1 f] [GeometricallyIrreducible f]
(hproj : IsProjectiveOver k f) :
∃ (P : ℕ → ℤ[X]) (α : ℕ → Multiset ℂ),
zetaFunction p f *
(∏ i ∈ (Finset.range (2 * 1 + 1)).filter Even,
((P i).map (Int.castRingHom ℚ) : PowerSeries ℚ)) =
∏ i ∈ (Finset.range (2 * 1 + 1)).filter Odd,
((P i).map (Int.castRingHom ℚ) : PowerSeries ℚ) ∧
P 0 = 1 - Polynomial.X ∧
P (2 * 1) = 1 - C ((Nat.card k : ℤ) ^ 1) * Polynomial.X ∧
(∀ i, 1 ≤ i → i ≤ 2 * 1 - 1 →
(P i).map (Int.castRingHom ℂ) = ((α i).map fun a => 1 - C a * Polynomial.X).prod ∧
∀ a ∈ α i, a ≠ 0) ∧
(∃ ε : ℂ, (ε = 1 ∨ ε = -1) ∧
∀ t : ℂ, t ≠ 0 →
(∏ i ∈ (Finset.range (2 * 1 + 1)).filter Even, aeval t (P i)) ≠ 0 →
(∏ i ∈ (Finset.range (2 * 1 + 1)).filter Even,
aeval (((Nat.card k : ℂ) ^ 1 * t)⁻¹) (P i)) ≠ 0 →
(∏ i ∈ (Finset.range (2 * 1 + 1)).filter Odd,
aeval (((Nat.card k : ℂ) ^ 1 * t)⁻¹) (P i)) /
(∏ i ∈ (Finset.range (2 * 1 + 1)).filter Even,
aeval (((Nat.card k : ℂ) ^ 1 * t)⁻¹) (P i)) =
ε * (((Nat.card k : ℝ) ^ ((1 : ℝ) *
((∑ i ∈ Finset.range (2 * 1 + 1), (-1 : ℤ) ^ i * ((P i).natDegree : ℤ) : ℤ) : ℝ)
/ 2) : ℝ) : ℂ) *
t ^ (∑ i ∈ Finset.range (2 * 1 + 1), (-1 : ℤ) ^ i * ((P i).natDegree : ℤ)) *
((∏ i ∈ (Finset.range (2 * 1 + 1)).filter Odd, aeval t (P i)) /
(∏ i ∈ (Finset.range (2 * 1 + 1)).filter Even, aeval t (P i)))) ∧
(∀ i, 1 ≤ i → i ≤ 2 * 1 - 1 →
α (2 * 1 - i) = (α i).map fun a => (Nat.card k : ℂ) ^ 1 / a) ∧
(∀ i, 1 ≤ i → i ≤ 2 * 1 - 1 → ∀ a ∈ α i,
‖a‖ = (Nat.card k : ℝ) ^ ((i : ℝ) / 2)) := by sorry
end WeilConjectures
Confirmed by the mission captain (proposal self-audit).
Confirmed by the moderator at approval.