| Step |
Hyp |
Ref |
Expression |
| 1 |
|
gausslemma2d.p |
⊢ ( 𝜑 → 𝑃 ∈ ( ℙ ∖ { 2 } ) ) |
| 2 |
|
gausslemma2d.h |
⊢ 𝐻 = ( ( 𝑃 − 1 ) / 2 ) |
| 3 |
|
gausslemma2d.r |
⊢ 𝑅 = ( 𝑥 ∈ ( 1 ... 𝐻 ) ↦ if ( ( 𝑥 · 2 ) < ( 𝑃 / 2 ) , ( 𝑥 · 2 ) , ( 𝑃 − ( 𝑥 · 2 ) ) ) ) |
| 4 |
|
gausslemma2d.m |
⊢ 𝑀 = ( ⌊ ‘ ( 𝑃 / 4 ) ) |
| 5 |
1 2 3 4
|
gausslemma2dlem3 |
⊢ ( 𝜑 → ∀ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) = ( 𝑃 − ( 𝑘 · 2 ) ) ) |
| 6 |
|
prodeq2 |
⊢ ( ∀ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) = ( 𝑃 − ( 𝑘 · 2 ) ) → ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) = ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑃 − ( 𝑘 · 2 ) ) ) |
| 7 |
6
|
oveq1d |
⊢ ( ∀ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) = ( 𝑃 − ( 𝑘 · 2 ) ) → ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) mod 𝑃 ) = ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 8 |
5 7
|
syl |
⊢ ( 𝜑 → ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) mod 𝑃 ) = ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 9 |
|
eldifi |
⊢ ( 𝑃 ∈ ( ℙ ∖ { 2 } ) → 𝑃 ∈ ℙ ) |
| 10 |
|
fzfid |
⊢ ( 𝑃 ∈ ℙ → ( ( 𝑀 + 1 ) ... 𝐻 ) ∈ Fin ) |
| 11 |
|
prmz |
⊢ ( 𝑃 ∈ ℙ → 𝑃 ∈ ℤ ) |
| 12 |
11
|
adantr |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → 𝑃 ∈ ℤ ) |
| 13 |
|
elfzelz |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → 𝑘 ∈ ℤ ) |
| 14 |
|
2z |
⊢ 2 ∈ ℤ |
| 15 |
14
|
a1i |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → 2 ∈ ℤ ) |
| 16 |
13 15
|
zmulcld |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → ( 𝑘 · 2 ) ∈ ℤ ) |
| 17 |
16
|
adantl |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( 𝑘 · 2 ) ∈ ℤ ) |
| 18 |
12 17
|
zsubcld |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( 𝑃 − ( 𝑘 · 2 ) ) ∈ ℤ ) |
| 19 |
|
neg1z |
⊢ - 1 ∈ ℤ |
| 20 |
19
|
a1i |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → - 1 ∈ ℤ ) |
| 21 |
20 16
|
zmulcld |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → ( - 1 · ( 𝑘 · 2 ) ) ∈ ℤ ) |
| 22 |
21
|
adantl |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( - 1 · ( 𝑘 · 2 ) ) ∈ ℤ ) |
| 23 |
|
prmnn |
⊢ ( 𝑃 ∈ ℙ → 𝑃 ∈ ℕ ) |
| 24 |
16
|
zcnd |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → ( 𝑘 · 2 ) ∈ ℂ ) |
| 25 |
24
|
mulm1d |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → ( - 1 · ( 𝑘 · 2 ) ) = - ( 𝑘 · 2 ) ) |
| 26 |
25
|
adantl |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( - 1 · ( 𝑘 · 2 ) ) = - ( 𝑘 · 2 ) ) |
| 27 |
26
|
oveq1d |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( ( - 1 · ( 𝑘 · 2 ) ) mod 𝑃 ) = ( - ( 𝑘 · 2 ) mod 𝑃 ) ) |
| 28 |
16
|
zred |
⊢ ( 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) → ( 𝑘 · 2 ) ∈ ℝ ) |
| 29 |
23
|
nnrpd |
⊢ ( 𝑃 ∈ ℙ → 𝑃 ∈ ℝ+ ) |
| 30 |
|
negmod |
⊢ ( ( ( 𝑘 · 2 ) ∈ ℝ ∧ 𝑃 ∈ ℝ+ ) → ( - ( 𝑘 · 2 ) mod 𝑃 ) = ( ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 31 |
28 29 30
|
syl2anr |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( - ( 𝑘 · 2 ) mod 𝑃 ) = ( ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 32 |
27 31
|
eqtr2d |
⊢ ( ( 𝑃 ∈ ℙ ∧ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ) → ( ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) = ( ( - 1 · ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 33 |
10 18 22 23 32
|
fprodmodd |
⊢ ( 𝑃 ∈ ℙ → ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) = ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( - 1 · ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 34 |
1 9 33
|
3syl |
⊢ ( 𝜑 → ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑃 − ( 𝑘 · 2 ) ) mod 𝑃 ) = ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( - 1 · ( 𝑘 · 2 ) ) mod 𝑃 ) ) |
| 35 |
8 34
|
eqtrd |
⊢ ( 𝜑 → ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( 𝑅 ‘ 𝑘 ) mod 𝑃 ) = ( ∏ 𝑘 ∈ ( ( 𝑀 + 1 ) ... 𝐻 ) ( - 1 · ( 𝑘 · 2 ) ) mod 𝑃 ) ) |