Adapted from Charlie Dorsey’s Apache-2.0 Weil Bounds Toolkit for Lean Pool’s module system, Mathlib version, quality requirements and compilation performance.
Trace fibers for the Kloosterman curve #
Proves that the map x ↦ x^p-x has the prime field as kernel and the trace-zero
hyperplane as image. Each trace-zero fiber has exactly p points. Compare Harcos
(2015), equation (3).
theorem
KloostermanWeil.Stepanov.artinSchreierLinear_apply
(p n : ℕ)
[Fact (Nat.Prime p)]
(x : GaloisField p n)
:
theorem
KloostermanWeil.Stepanov.artin_trace_zero
(p n : ℕ)
[Fact (Nat.Prime p)]
(hn : n ≠ 0)
(x : GaloisField p n)
:
theorem
KloostermanWeil.Stepanov.artinKernelMap_bijective
(p n : ℕ)
[Fact (Nat.Prime p)]
:
Function.Bijective ⇑(artinKernelMap p n)
The prime field is linearly equivalent to the Artin–Schreier kernel.
Equations
Instances For
theorem
KloostermanWeil.Stepanov.artin_range_eq_trace_ker
(p n : ℕ)
[Fact (Nat.Prime p)]
(hn : n ≠ 0)
:
@[reducible, inline]
abbrev
KloostermanWeil.Stepanov.ArtinSchreierFiber
(p n : ℕ)
[Fact (Nat.Prime p)]
(b : GaloisField p n)
:
The fiber of the Artin–Schreier linear map over b.
Equations
- KloostermanWeil.Stepanov.ArtinSchreierFiber p n b = { x : GaloisField p n // (KloostermanWeil.Stepanov.artinSchreierLinear p n) x = b }
Instances For
noncomputable def
KloostermanWeil.Stepanov.artinFiberEquivKernel
(p n : ℕ)
[Fact (Nat.Prime p)]
(b x₀ : GaloisField p n)
(hx₀ : (artinSchreierLinear p n) x₀ = b)
:
Translation by a chosen preimage identifies a fiber with the kernel.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
KloostermanWeil.Stepanov.card_artinSchreierFiber_of_trace_eq_zero
(p n : ℕ)
[Fact (Nat.Prime p)]
(hn : n ≠ 0)
(b : GaloisField p n)
(hb : (Algebra.trace (ZMod p) (GaloisField p n)) b = 0)
: