| Step |
Hyp |
Ref |
Expression |
| 1 |
|
elfzelz |
|- ( N e. ( 1 ... ( P - 1 ) ) -> N e. ZZ ) |
| 2 |
1
|
adantl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. ZZ ) |
| 3 |
|
peano2zm |
|- ( N e. ZZ -> ( N - 1 ) e. ZZ ) |
| 4 |
2 3
|
syl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N - 1 ) e. ZZ ) |
| 5 |
4
|
zcnd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N - 1 ) e. CC ) |
| 6 |
2
|
peano2zd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N + 1 ) e. ZZ ) |
| 7 |
6
|
zcnd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N + 1 ) e. CC ) |
| 8 |
5 7
|
mulcomd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N - 1 ) x. ( N + 1 ) ) = ( ( N + 1 ) x. ( N - 1 ) ) ) |
| 9 |
2
|
zcnd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. CC ) |
| 10 |
|
ax-1cn |
|- 1 e. CC |
| 11 |
|
subsq |
|- ( ( N e. CC /\ 1 e. CC ) -> ( ( N ^ 2 ) - ( 1 ^ 2 ) ) = ( ( N + 1 ) x. ( N - 1 ) ) ) |
| 12 |
9 10 11
|
sylancl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N ^ 2 ) - ( 1 ^ 2 ) ) = ( ( N + 1 ) x. ( N - 1 ) ) ) |
| 13 |
9
|
sqvald |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N ^ 2 ) = ( N x. N ) ) |
| 14 |
|
sq1 |
|- ( 1 ^ 2 ) = 1 |
| 15 |
14
|
a1i |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( 1 ^ 2 ) = 1 ) |
| 16 |
13 15
|
oveq12d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N ^ 2 ) - ( 1 ^ 2 ) ) = ( ( N x. N ) - 1 ) ) |
| 17 |
8 12 16
|
3eqtr2d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N - 1 ) x. ( N + 1 ) ) = ( ( N x. N ) - 1 ) ) |
| 18 |
17
|
breq2d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( ( N - 1 ) x. ( N + 1 ) ) <-> P || ( ( N x. N ) - 1 ) ) ) |
| 19 |
|
fz1ssfz0 |
|- ( 1 ... ( P - 1 ) ) C_ ( 0 ... ( P - 1 ) ) |
| 20 |
|
simpr |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. ( 1 ... ( P - 1 ) ) ) |
| 21 |
19 20
|
sselid |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. ( 0 ... ( P - 1 ) ) ) |
| 22 |
21
|
biantrurd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( ( N x. N ) - 1 ) <-> ( N e. ( 0 ... ( P - 1 ) ) /\ P || ( ( N x. N ) - 1 ) ) ) ) |
| 23 |
18 22
|
bitrd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( ( N - 1 ) x. ( N + 1 ) ) <-> ( N e. ( 0 ... ( P - 1 ) ) /\ P || ( ( N x. N ) - 1 ) ) ) ) |
| 24 |
|
simpl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> P e. Prime ) |
| 25 |
|
euclemma |
|- ( ( P e. Prime /\ ( N - 1 ) e. ZZ /\ ( N + 1 ) e. ZZ ) -> ( P || ( ( N - 1 ) x. ( N + 1 ) ) <-> ( P || ( N - 1 ) \/ P || ( N + 1 ) ) ) ) |
| 26 |
24 4 6 25
|
syl3anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( ( N - 1 ) x. ( N + 1 ) ) <-> ( P || ( N - 1 ) \/ P || ( N + 1 ) ) ) ) |
| 27 |
|
prmnn |
|- ( P e. Prime -> P e. NN ) |
| 28 |
|
fzm1ndvds |
|- ( ( P e. NN /\ N e. ( 1 ... ( P - 1 ) ) ) -> -. P || N ) |
| 29 |
27 28
|
sylan |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> -. P || N ) |
| 30 |
|
eqid |
|- ( ( N ^ ( P - 2 ) ) mod P ) = ( ( N ^ ( P - 2 ) ) mod P ) |
| 31 |
30
|
prmdiveq |
|- ( ( P e. Prime /\ N e. ZZ /\ -. P || N ) -> ( ( N e. ( 0 ... ( P - 1 ) ) /\ P || ( ( N x. N ) - 1 ) ) <-> N = ( ( N ^ ( P - 2 ) ) mod P ) ) ) |
| 32 |
24 2 29 31
|
syl3anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N e. ( 0 ... ( P - 1 ) ) /\ P || ( ( N x. N ) - 1 ) ) <-> N = ( ( N ^ ( P - 2 ) ) mod P ) ) ) |
| 33 |
23 26 32
|
3bitr3rd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N = ( ( N ^ ( P - 2 ) ) mod P ) <-> ( P || ( N - 1 ) \/ P || ( N + 1 ) ) ) ) |
| 34 |
24 27
|
syl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> P e. NN ) |
| 35 |
|
1zzd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> 1 e. ZZ ) |
| 36 |
|
moddvds |
|- ( ( P e. NN /\ N e. ZZ /\ 1 e. ZZ ) -> ( ( N mod P ) = ( 1 mod P ) <-> P || ( N - 1 ) ) ) |
| 37 |
34 2 35 36
|
syl3anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N mod P ) = ( 1 mod P ) <-> P || ( N - 1 ) ) ) |
| 38 |
|
elfznn |
|- ( N e. ( 1 ... ( P - 1 ) ) -> N e. NN ) |
| 39 |
38
|
adantl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. NN ) |
| 40 |
39
|
nnred |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. RR ) |
| 41 |
34
|
nnrpd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> P e. RR+ ) |
| 42 |
39
|
nnnn0d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N e. NN0 ) |
| 43 |
42
|
nn0ge0d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> 0 <_ N ) |
| 44 |
|
elfzle2 |
|- ( N e. ( 1 ... ( P - 1 ) ) -> N <_ ( P - 1 ) ) |
| 45 |
44
|
adantl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N <_ ( P - 1 ) ) |
| 46 |
|
prmz |
|- ( P e. Prime -> P e. ZZ ) |
| 47 |
|
zltlem1 |
|- ( ( N e. ZZ /\ P e. ZZ ) -> ( N < P <-> N <_ ( P - 1 ) ) ) |
| 48 |
1 46 47
|
syl2anr |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N < P <-> N <_ ( P - 1 ) ) ) |
| 49 |
45 48
|
mpbird |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> N < P ) |
| 50 |
|
modid |
|- ( ( ( N e. RR /\ P e. RR+ ) /\ ( 0 <_ N /\ N < P ) ) -> ( N mod P ) = N ) |
| 51 |
40 41 43 49 50
|
syl22anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N mod P ) = N ) |
| 52 |
34
|
nnred |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> P e. RR ) |
| 53 |
|
prmuz2 |
|- ( P e. Prime -> P e. ( ZZ>= ` 2 ) ) |
| 54 |
24 53
|
syl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> P e. ( ZZ>= ` 2 ) ) |
| 55 |
|
eluz2gt1 |
|- ( P e. ( ZZ>= ` 2 ) -> 1 < P ) |
| 56 |
54 55
|
syl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> 1 < P ) |
| 57 |
|
1mod |
|- ( ( P e. RR /\ 1 < P ) -> ( 1 mod P ) = 1 ) |
| 58 |
52 56 57
|
syl2anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( 1 mod P ) = 1 ) |
| 59 |
51 58
|
eqeq12d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N mod P ) = ( 1 mod P ) <-> N = 1 ) ) |
| 60 |
37 59
|
bitr3d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( N - 1 ) <-> N = 1 ) ) |
| 61 |
35
|
znegcld |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> -u 1 e. ZZ ) |
| 62 |
|
moddvds |
|- ( ( P e. NN /\ N e. ZZ /\ -u 1 e. ZZ ) -> ( ( N mod P ) = ( -u 1 mod P ) <-> P || ( N - -u 1 ) ) ) |
| 63 |
34 2 61 62
|
syl3anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N mod P ) = ( -u 1 mod P ) <-> P || ( N - -u 1 ) ) ) |
| 64 |
34
|
nncnd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> P e. CC ) |
| 65 |
64
|
mullidd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( 1 x. P ) = P ) |
| 66 |
65
|
oveq2d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( -u 1 + ( 1 x. P ) ) = ( -u 1 + P ) ) |
| 67 |
|
neg1cn |
|- -u 1 e. CC |
| 68 |
|
addcom |
|- ( ( -u 1 e. CC /\ P e. CC ) -> ( -u 1 + P ) = ( P + -u 1 ) ) |
| 69 |
67 64 68
|
sylancr |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( -u 1 + P ) = ( P + -u 1 ) ) |
| 70 |
|
negsub |
|- ( ( P e. CC /\ 1 e. CC ) -> ( P + -u 1 ) = ( P - 1 ) ) |
| 71 |
64 10 70
|
sylancl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P + -u 1 ) = ( P - 1 ) ) |
| 72 |
66 69 71
|
3eqtrd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( -u 1 + ( 1 x. P ) ) = ( P - 1 ) ) |
| 73 |
72
|
oveq1d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( -u 1 + ( 1 x. P ) ) mod P ) = ( ( P - 1 ) mod P ) ) |
| 74 |
|
neg1rr |
|- -u 1 e. RR |
| 75 |
74
|
a1i |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> -u 1 e. RR ) |
| 76 |
|
modcyc |
|- ( ( -u 1 e. RR /\ P e. RR+ /\ 1 e. ZZ ) -> ( ( -u 1 + ( 1 x. P ) ) mod P ) = ( -u 1 mod P ) ) |
| 77 |
75 41 35 76
|
syl3anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( -u 1 + ( 1 x. P ) ) mod P ) = ( -u 1 mod P ) ) |
| 78 |
|
peano2rem |
|- ( P e. RR -> ( P - 1 ) e. RR ) |
| 79 |
52 78
|
syl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P - 1 ) e. RR ) |
| 80 |
|
nnm1nn0 |
|- ( P e. NN -> ( P - 1 ) e. NN0 ) |
| 81 |
34 80
|
syl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P - 1 ) e. NN0 ) |
| 82 |
81
|
nn0ge0d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> 0 <_ ( P - 1 ) ) |
| 83 |
52
|
ltm1d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P - 1 ) < P ) |
| 84 |
|
modid |
|- ( ( ( ( P - 1 ) e. RR /\ P e. RR+ ) /\ ( 0 <_ ( P - 1 ) /\ ( P - 1 ) < P ) ) -> ( ( P - 1 ) mod P ) = ( P - 1 ) ) |
| 85 |
79 41 82 83 84
|
syl22anc |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( P - 1 ) mod P ) = ( P - 1 ) ) |
| 86 |
73 77 85
|
3eqtr3d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( -u 1 mod P ) = ( P - 1 ) ) |
| 87 |
51 86
|
eqeq12d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( N mod P ) = ( -u 1 mod P ) <-> N = ( P - 1 ) ) ) |
| 88 |
|
subneg |
|- ( ( N e. CC /\ 1 e. CC ) -> ( N - -u 1 ) = ( N + 1 ) ) |
| 89 |
9 10 88
|
sylancl |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N - -u 1 ) = ( N + 1 ) ) |
| 90 |
89
|
breq2d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( N - -u 1 ) <-> P || ( N + 1 ) ) ) |
| 91 |
63 87 90
|
3bitr3rd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( P || ( N + 1 ) <-> N = ( P - 1 ) ) ) |
| 92 |
60 91
|
orbi12d |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( ( P || ( N - 1 ) \/ P || ( N + 1 ) ) <-> ( N = 1 \/ N = ( P - 1 ) ) ) ) |
| 93 |
33 92
|
bitrd |
|- ( ( P e. Prime /\ N e. ( 1 ... ( P - 1 ) ) ) -> ( N = ( ( N ^ ( P - 2 ) ) mod P ) <-> ( N = 1 \/ N = ( P - 1 ) ) ) ) |