| Step |
Hyp |
Ref |
Expression |
| 1 |
|
gausslemma2d.p |
|- ( ph -> P e. ( Prime \ { 2 } ) ) |
| 2 |
|
gausslemma2d.h |
|- H = ( ( P - 1 ) / 2 ) |
| 3 |
|
gausslemma2d.r |
|- R = ( x e. ( 1 ... H ) |-> if ( ( x x. 2 ) < ( P / 2 ) , ( x x. 2 ) , ( P - ( x x. 2 ) ) ) ) |
| 4 |
1 2
|
gausslemma2dlem0b |
|- ( ph -> H e. NN ) |
| 5 |
4
|
nnnn0d |
|- ( ph -> H e. NN0 ) |
| 6 |
|
fprodfac |
|- ( H e. NN0 -> ( ! ` H ) = prod_ l e. ( 1 ... H ) l ) |
| 7 |
5 6
|
syl |
|- ( ph -> ( ! ` H ) = prod_ l e. ( 1 ... H ) l ) |
| 8 |
|
id |
|- ( l = ( R ` k ) -> l = ( R ` k ) ) |
| 9 |
|
fzfid |
|- ( ph -> ( 1 ... H ) e. Fin ) |
| 10 |
|
fzfi |
|- ( 1 ... H ) e. Fin |
| 11 |
|
ovex |
|- ( x x. 2 ) e. _V |
| 12 |
|
ovex |
|- ( P - ( x x. 2 ) ) e. _V |
| 13 |
11 12
|
ifex |
|- if ( ( x x. 2 ) < ( P / 2 ) , ( x x. 2 ) , ( P - ( x x. 2 ) ) ) e. _V |
| 14 |
13 3
|
fnmpti |
|- R Fn ( 1 ... H ) |
| 15 |
1 2 3
|
gausslemma2dlem1a |
|- ( ph -> ran R = ( 1 ... H ) ) |
| 16 |
|
rneqdmfinf1o |
|- ( ( ( 1 ... H ) e. Fin /\ R Fn ( 1 ... H ) /\ ran R = ( 1 ... H ) ) -> R : ( 1 ... H ) -1-1-onto-> ( 1 ... H ) ) |
| 17 |
10 14 15 16
|
mp3an12i |
|- ( ph -> R : ( 1 ... H ) -1-1-onto-> ( 1 ... H ) ) |
| 18 |
|
eqidd |
|- ( ( ph /\ k e. ( 1 ... H ) ) -> ( R ` k ) = ( R ` k ) ) |
| 19 |
|
elfzelz |
|- ( l e. ( 1 ... H ) -> l e. ZZ ) |
| 20 |
19
|
zcnd |
|- ( l e. ( 1 ... H ) -> l e. CC ) |
| 21 |
20
|
adantl |
|- ( ( ph /\ l e. ( 1 ... H ) ) -> l e. CC ) |
| 22 |
8 9 17 18 21
|
fprodf1o |
|- ( ph -> prod_ l e. ( 1 ... H ) l = prod_ k e. ( 1 ... H ) ( R ` k ) ) |
| 23 |
7 22
|
eqtrd |
|- ( ph -> ( ! ` H ) = prod_ k e. ( 1 ... H ) ( R ` k ) ) |