Elementary Frobenius-sum infrastructure #
This module packages the elementary facts about the partial Frobenius sum
T_k(s) = ∑ i < k, s^(2^i) used by both the Fourier and permutation proofs.
The logical hierarchy is:
frobSum_succgives the recurrence used byfrobSum_sq_add_self;- if
frobSum k s = 0, the Artin--Schreier identity givess^(2^k) = s; - the shared arithmetic lemmas
pow_card_two_powandpow_two_pow_gcdfromPreliminaries/Arithmetic.leanthen gives^(2^gcd(k,n)) = s; - coprimality together with
s ≠ 0forcess = 1, while oddness givesfrobSum k 1 = 1, contradicting the assumed zero. The resultingfrobSum_ne_zero_of_oddtheorem is the public payoff.
frobSum_succ
|
v
frobSum_sq_add_self
|
| if frobSum k s = 0
v
s^(2^k) = s -----------\
\
pow_card_two_pow --------> pow_two_pow_gcd
|
v
s^(2^gcd(k,n)) = s
|
gcd(k,n) = 1
|
v
s^2 = s
|
s ≠ 0 => s = 1
|
frobSum_one --------------+
|
v
contradiction
T_k(s)=s+s^2+...+s^(2^(k-1)).
Equations
- KasamiCyclicAdditive.frobSum k s = ∑ i ∈ Finset.range k, s ^ 2 ^ i