| Step |
Hyp |
Ref |
Expression |
| 1 |
|
prmuz2 |
|- ( N e. Prime -> N e. ( ZZ>= ` 2 ) ) |
| 2 |
|
eqid |
|- ( mulGrp ` CCfld ) = ( mulGrp ` CCfld ) |
| 3 |
|
eleq2w |
|- ( z = x -> ( ( N - 1 ) e. z <-> ( N - 1 ) e. x ) ) |
| 4 |
|
oveq1 |
|- ( n = y -> ( n ^ ( N - 2 ) ) = ( y ^ ( N - 2 ) ) ) |
| 5 |
4
|
oveq1d |
|- ( n = y -> ( ( n ^ ( N - 2 ) ) mod N ) = ( ( y ^ ( N - 2 ) ) mod N ) ) |
| 6 |
5
|
eleq1d |
|- ( n = y -> ( ( ( n ^ ( N - 2 ) ) mod N ) e. z <-> ( ( y ^ ( N - 2 ) ) mod N ) e. z ) ) |
| 7 |
6
|
cbvralvw |
|- ( A. n e. z ( ( n ^ ( N - 2 ) ) mod N ) e. z <-> A. y e. z ( ( y ^ ( N - 2 ) ) mod N ) e. z ) |
| 8 |
|
eleq2w |
|- ( z = x -> ( ( ( y ^ ( N - 2 ) ) mod N ) e. z <-> ( ( y ^ ( N - 2 ) ) mod N ) e. x ) ) |
| 9 |
8
|
raleqbi1dv |
|- ( z = x -> ( A. y e. z ( ( y ^ ( N - 2 ) ) mod N ) e. z <-> A. y e. x ( ( y ^ ( N - 2 ) ) mod N ) e. x ) ) |
| 10 |
7 9
|
bitrid |
|- ( z = x -> ( A. n e. z ( ( n ^ ( N - 2 ) ) mod N ) e. z <-> A. y e. x ( ( y ^ ( N - 2 ) ) mod N ) e. x ) ) |
| 11 |
3 10
|
anbi12d |
|- ( z = x -> ( ( ( N - 1 ) e. z /\ A. n e. z ( ( n ^ ( N - 2 ) ) mod N ) e. z ) <-> ( ( N - 1 ) e. x /\ A. y e. x ( ( y ^ ( N - 2 ) ) mod N ) e. x ) ) ) |
| 12 |
11
|
cbvrabv |
|- { z e. ~P ( 1 ... ( N - 1 ) ) | ( ( N - 1 ) e. z /\ A. n e. z ( ( n ^ ( N - 2 ) ) mod N ) e. z ) } = { x e. ~P ( 1 ... ( N - 1 ) ) | ( ( N - 1 ) e. x /\ A. y e. x ( ( y ^ ( N - 2 ) ) mod N ) e. x ) } |
| 13 |
2 12
|
wilthlem3 |
|- ( N e. Prime -> N || ( ( ! ` ( N - 1 ) ) + 1 ) ) |
| 14 |
1 13
|
jca |
|- ( N e. Prime -> ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |
| 15 |
|
simpl |
|- ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) -> N e. ( ZZ>= ` 2 ) ) |
| 16 |
|
elfzuz |
|- ( n e. ( 2 ... ( N - 1 ) ) -> n e. ( ZZ>= ` 2 ) ) |
| 17 |
16
|
adantl |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> n e. ( ZZ>= ` 2 ) ) |
| 18 |
|
eluz2nn |
|- ( n e. ( ZZ>= ` 2 ) -> n e. NN ) |
| 19 |
17 18
|
syl |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> n e. NN ) |
| 20 |
|
elfzuz3 |
|- ( n e. ( 2 ... ( N - 1 ) ) -> ( N - 1 ) e. ( ZZ>= ` n ) ) |
| 21 |
20
|
adantl |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( N - 1 ) e. ( ZZ>= ` n ) ) |
| 22 |
|
dvdsfac |
|- ( ( n e. NN /\ ( N - 1 ) e. ( ZZ>= ` n ) ) -> n || ( ! ` ( N - 1 ) ) ) |
| 23 |
19 21 22
|
syl2anc |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> n || ( ! ` ( N - 1 ) ) ) |
| 24 |
|
eluz2nn |
|- ( N e. ( ZZ>= ` 2 ) -> N e. NN ) |
| 25 |
24
|
ad2antrr |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> N e. NN ) |
| 26 |
|
nnm1nn0 |
|- ( N e. NN -> ( N - 1 ) e. NN0 ) |
| 27 |
|
faccl |
|- ( ( N - 1 ) e. NN0 -> ( ! ` ( N - 1 ) ) e. NN ) |
| 28 |
25 26 27
|
3syl |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( ! ` ( N - 1 ) ) e. NN ) |
| 29 |
28
|
nnzd |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( ! ` ( N - 1 ) ) e. ZZ ) |
| 30 |
|
eluz2gt1 |
|- ( n e. ( ZZ>= ` 2 ) -> 1 < n ) |
| 31 |
17 30
|
syl |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> 1 < n ) |
| 32 |
|
ndvdsp1 |
|- ( ( ( ! ` ( N - 1 ) ) e. ZZ /\ n e. NN /\ 1 < n ) -> ( n || ( ! ` ( N - 1 ) ) -> -. n || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |
| 33 |
29 19 31 32
|
syl3anc |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( n || ( ! ` ( N - 1 ) ) -> -. n || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |
| 34 |
23 33
|
mpd |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> -. n || ( ( ! ` ( N - 1 ) ) + 1 ) ) |
| 35 |
|
simplr |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> N || ( ( ! ` ( N - 1 ) ) + 1 ) ) |
| 36 |
19
|
nnzd |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> n e. ZZ ) |
| 37 |
25
|
nnzd |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> N e. ZZ ) |
| 38 |
29
|
peano2zd |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( ( ! ` ( N - 1 ) ) + 1 ) e. ZZ ) |
| 39 |
|
dvdstr |
|- ( ( n e. ZZ /\ N e. ZZ /\ ( ( ! ` ( N - 1 ) ) + 1 ) e. ZZ ) -> ( ( n || N /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) -> n || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |
| 40 |
36 37 38 39
|
syl3anc |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( ( n || N /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) -> n || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |
| 41 |
35 40
|
mpan2d |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> ( n || N -> n || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |
| 42 |
34 41
|
mtod |
|- ( ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) /\ n e. ( 2 ... ( N - 1 ) ) ) -> -. n || N ) |
| 43 |
42
|
ralrimiva |
|- ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) -> A. n e. ( 2 ... ( N - 1 ) ) -. n || N ) |
| 44 |
|
isprm3 |
|- ( N e. Prime <-> ( N e. ( ZZ>= ` 2 ) /\ A. n e. ( 2 ... ( N - 1 ) ) -. n || N ) ) |
| 45 |
15 43 44
|
sylanbrc |
|- ( ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) -> N e. Prime ) |
| 46 |
14 45
|
impbii |
|- ( N e. Prime <-> ( N e. ( ZZ>= ` 2 ) /\ N || ( ( ! ` ( N - 1 ) ) + 1 ) ) ) |