Step |
Hyp |
Ref |
Expression |
1 |
|
nnrp |
|- ( P e. NN -> P e. RR+ ) |
2 |
1
|
adantr |
|- ( ( P e. NN /\ -. 2 || P ) -> P e. RR+ ) |
3 |
|
elfzelz |
|- ( i e. ( 1 ... ( ( P - 1 ) / 2 ) ) -> i e. ZZ ) |
4 |
|
zre |
|- ( i e. ZZ -> i e. RR ) |
5 |
|
2re |
|- 2 e. RR |
6 |
5
|
a1i |
|- ( i e. ZZ -> 2 e. RR ) |
7 |
4 6
|
remulcld |
|- ( i e. ZZ -> ( i x. 2 ) e. RR ) |
8 |
3 7
|
syl |
|- ( i e. ( 1 ... ( ( P - 1 ) / 2 ) ) -> ( i x. 2 ) e. RR ) |
9 |
2 8
|
anim12ci |
|- ( ( ( P e. NN /\ -. 2 || P ) /\ i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ) -> ( ( i x. 2 ) e. RR /\ P e. RR+ ) ) |
10 |
|
elfznn |
|- ( i e. ( 1 ... ( ( P - 1 ) / 2 ) ) -> i e. NN ) |
11 |
|
nnre |
|- ( i e. NN -> i e. RR ) |
12 |
|
nnnn0 |
|- ( i e. NN -> i e. NN0 ) |
13 |
12
|
nn0ge0d |
|- ( i e. NN -> 0 <_ i ) |
14 |
|
0le2 |
|- 0 <_ 2 |
15 |
5 14
|
pm3.2i |
|- ( 2 e. RR /\ 0 <_ 2 ) |
16 |
15
|
a1i |
|- ( i e. NN -> ( 2 e. RR /\ 0 <_ 2 ) ) |
17 |
|
mulge0 |
|- ( ( ( i e. RR /\ 0 <_ i ) /\ ( 2 e. RR /\ 0 <_ 2 ) ) -> 0 <_ ( i x. 2 ) ) |
18 |
11 13 16 17
|
syl21anc |
|- ( i e. NN -> 0 <_ ( i x. 2 ) ) |
19 |
10 18
|
syl |
|- ( i e. ( 1 ... ( ( P - 1 ) / 2 ) ) -> 0 <_ ( i x. 2 ) ) |
20 |
19
|
adantl |
|- ( ( ( P e. NN /\ -. 2 || P ) /\ i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ) -> 0 <_ ( i x. 2 ) ) |
21 |
|
elfz2 |
|- ( i e. ( 1 ... ( ( P - 1 ) / 2 ) ) <-> ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( 1 <_ i /\ i <_ ( ( P - 1 ) / 2 ) ) ) ) |
22 |
4
|
3ad2ant3 |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> i e. RR ) |
23 |
|
zre |
|- ( ( ( P - 1 ) / 2 ) e. ZZ -> ( ( P - 1 ) / 2 ) e. RR ) |
24 |
23
|
3ad2ant2 |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( ( P - 1 ) / 2 ) e. RR ) |
25 |
|
2pos |
|- 0 < 2 |
26 |
5 25
|
pm3.2i |
|- ( 2 e. RR /\ 0 < 2 ) |
27 |
26
|
a1i |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( 2 e. RR /\ 0 < 2 ) ) |
28 |
|
lemul1 |
|- ( ( i e. RR /\ ( ( P - 1 ) / 2 ) e. RR /\ ( 2 e. RR /\ 0 < 2 ) ) -> ( i <_ ( ( P - 1 ) / 2 ) <-> ( i x. 2 ) <_ ( ( ( P - 1 ) / 2 ) x. 2 ) ) ) |
29 |
22 24 27 28
|
syl3anc |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( i <_ ( ( P - 1 ) / 2 ) <-> ( i x. 2 ) <_ ( ( ( P - 1 ) / 2 ) x. 2 ) ) ) |
30 |
|
nncn |
|- ( P e. NN -> P e. CC ) |
31 |
|
peano2cnm |
|- ( P e. CC -> ( P - 1 ) e. CC ) |
32 |
30 31
|
syl |
|- ( P e. NN -> ( P - 1 ) e. CC ) |
33 |
|
2cnd |
|- ( P e. NN -> 2 e. CC ) |
34 |
|
2ne0 |
|- 2 =/= 0 |
35 |
34
|
a1i |
|- ( P e. NN -> 2 =/= 0 ) |
36 |
32 33 35
|
divcan1d |
|- ( P e. NN -> ( ( ( P - 1 ) / 2 ) x. 2 ) = ( P - 1 ) ) |
37 |
36
|
adantr |
|- ( ( P e. NN /\ -. 2 || P ) -> ( ( ( P - 1 ) / 2 ) x. 2 ) = ( P - 1 ) ) |
38 |
37
|
adantl |
|- ( ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( P e. NN /\ -. 2 || P ) ) -> ( ( ( P - 1 ) / 2 ) x. 2 ) = ( P - 1 ) ) |
39 |
38
|
breq2d |
|- ( ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( P e. NN /\ -. 2 || P ) ) -> ( ( i x. 2 ) <_ ( ( ( P - 1 ) / 2 ) x. 2 ) <-> ( i x. 2 ) <_ ( P - 1 ) ) ) |
40 |
|
id |
|- ( i e. ZZ -> i e. ZZ ) |
41 |
|
2z |
|- 2 e. ZZ |
42 |
41
|
a1i |
|- ( i e. ZZ -> 2 e. ZZ ) |
43 |
40 42
|
zmulcld |
|- ( i e. ZZ -> ( i x. 2 ) e. ZZ ) |
44 |
43
|
3ad2ant3 |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( i x. 2 ) e. ZZ ) |
45 |
|
nnz |
|- ( P e. NN -> P e. ZZ ) |
46 |
45
|
adantr |
|- ( ( P e. NN /\ -. 2 || P ) -> P e. ZZ ) |
47 |
|
zltlem1 |
|- ( ( ( i x. 2 ) e. ZZ /\ P e. ZZ ) -> ( ( i x. 2 ) < P <-> ( i x. 2 ) <_ ( P - 1 ) ) ) |
48 |
44 46 47
|
syl2an |
|- ( ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( P e. NN /\ -. 2 || P ) ) -> ( ( i x. 2 ) < P <-> ( i x. 2 ) <_ ( P - 1 ) ) ) |
49 |
48
|
biimprd |
|- ( ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( P e. NN /\ -. 2 || P ) ) -> ( ( i x. 2 ) <_ ( P - 1 ) -> ( i x. 2 ) < P ) ) |
50 |
39 49
|
sylbid |
|- ( ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( P e. NN /\ -. 2 || P ) ) -> ( ( i x. 2 ) <_ ( ( ( P - 1 ) / 2 ) x. 2 ) -> ( i x. 2 ) < P ) ) |
51 |
50
|
ex |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( ( P e. NN /\ -. 2 || P ) -> ( ( i x. 2 ) <_ ( ( ( P - 1 ) / 2 ) x. 2 ) -> ( i x. 2 ) < P ) ) ) |
52 |
51
|
com23 |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( ( i x. 2 ) <_ ( ( ( P - 1 ) / 2 ) x. 2 ) -> ( ( P e. NN /\ -. 2 || P ) -> ( i x. 2 ) < P ) ) ) |
53 |
29 52
|
sylbid |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( i <_ ( ( P - 1 ) / 2 ) -> ( ( P e. NN /\ -. 2 || P ) -> ( i x. 2 ) < P ) ) ) |
54 |
53
|
a1d |
|- ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) -> ( 1 <_ i -> ( i <_ ( ( P - 1 ) / 2 ) -> ( ( P e. NN /\ -. 2 || P ) -> ( i x. 2 ) < P ) ) ) ) |
55 |
54
|
imp32 |
|- ( ( ( 1 e. ZZ /\ ( ( P - 1 ) / 2 ) e. ZZ /\ i e. ZZ ) /\ ( 1 <_ i /\ i <_ ( ( P - 1 ) / 2 ) ) ) -> ( ( P e. NN /\ -. 2 || P ) -> ( i x. 2 ) < P ) ) |
56 |
21 55
|
sylbi |
|- ( i e. ( 1 ... ( ( P - 1 ) / 2 ) ) -> ( ( P e. NN /\ -. 2 || P ) -> ( i x. 2 ) < P ) ) |
57 |
56
|
impcom |
|- ( ( ( P e. NN /\ -. 2 || P ) /\ i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ) -> ( i x. 2 ) < P ) |
58 |
|
modid |
|- ( ( ( ( i x. 2 ) e. RR /\ P e. RR+ ) /\ ( 0 <_ ( i x. 2 ) /\ ( i x. 2 ) < P ) ) -> ( ( i x. 2 ) mod P ) = ( i x. 2 ) ) |
59 |
9 20 57 58
|
syl12anc |
|- ( ( ( P e. NN /\ -. 2 || P ) /\ i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ) -> ( ( i x. 2 ) mod P ) = ( i x. 2 ) ) |
60 |
59
|
eqcomd |
|- ( ( ( P e. NN /\ -. 2 || P ) /\ i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ) -> ( i x. 2 ) = ( ( i x. 2 ) mod P ) ) |
61 |
60
|
ralrimiva |
|- ( ( P e. NN /\ -. 2 || P ) -> A. i e. ( 1 ... ( ( P - 1 ) / 2 ) ) ( i x. 2 ) = ( ( i x. 2 ) mod P ) ) |