| Step |
Hyp |
Ref |
Expression |
| 1 |
|
eldifi |
|- ( P e. ( Prime \ { 2 } ) -> P e. Prime ) |
| 2 |
|
2nn |
|- 2 e. NN |
| 3 |
2
|
a1i |
|- ( N e. NN -> 2 e. NN ) |
| 4 |
|
2nn0 |
|- 2 e. NN0 |
| 5 |
4
|
a1i |
|- ( N e. NN -> 2 e. NN0 ) |
| 6 |
|
peano2nn |
|- ( N e. NN -> ( N + 1 ) e. NN ) |
| 7 |
6
|
nnnn0d |
|- ( N e. NN -> ( N + 1 ) e. NN0 ) |
| 8 |
5 7
|
nn0expcld |
|- ( N e. NN -> ( 2 ^ ( N + 1 ) ) e. NN0 ) |
| 9 |
3 8
|
nnexpcld |
|- ( N e. NN -> ( 2 ^ ( 2 ^ ( N + 1 ) ) ) e. NN ) |
| 10 |
9
|
nnzd |
|- ( N e. NN -> ( 2 ^ ( 2 ^ ( N + 1 ) ) ) e. ZZ ) |
| 11 |
|
modprm1div |
|- ( ( P e. Prime /\ ( 2 ^ ( 2 ^ ( N + 1 ) ) ) e. ZZ ) -> ( ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) mod P ) = 1 <-> P || ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) - 1 ) ) ) |
| 12 |
1 10 11
|
syl2anr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) mod P ) = 1 <-> P || ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) - 1 ) ) ) |
| 13 |
|
prmnn |
|- ( P e. Prime -> P e. NN ) |
| 14 |
1 13
|
syl |
|- ( P e. ( Prime \ { 2 } ) -> P e. NN ) |
| 15 |
14
|
adantl |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> P e. NN ) |
| 16 |
|
2z |
|- 2 e. ZZ |
| 17 |
16
|
a1i |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> 2 e. ZZ ) |
| 18 |
|
eldifsn |
|- ( P e. ( Prime \ { 2 } ) <-> ( P e. Prime /\ P =/= 2 ) ) |
| 19 |
|
simpr |
|- ( ( P e. Prime /\ P =/= 2 ) -> P =/= 2 ) |
| 20 |
19
|
necomd |
|- ( ( P e. Prime /\ P =/= 2 ) -> 2 =/= P ) |
| 21 |
18 20
|
sylbi |
|- ( P e. ( Prime \ { 2 } ) -> 2 =/= P ) |
| 22 |
|
2prm |
|- 2 e. Prime |
| 23 |
|
prmrp |
|- ( ( 2 e. Prime /\ P e. Prime ) -> ( ( 2 gcd P ) = 1 <-> 2 =/= P ) ) |
| 24 |
22 1 23
|
sylancr |
|- ( P e. ( Prime \ { 2 } ) -> ( ( 2 gcd P ) = 1 <-> 2 =/= P ) ) |
| 25 |
21 24
|
mpbird |
|- ( P e. ( Prime \ { 2 } ) -> ( 2 gcd P ) = 1 ) |
| 26 |
25
|
adantl |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( 2 gcd P ) = 1 ) |
| 27 |
15 17 26
|
3jca |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( P e. NN /\ 2 e. ZZ /\ ( 2 gcd P ) = 1 ) ) |
| 28 |
8
|
adantr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( 2 ^ ( N + 1 ) ) e. NN0 ) |
| 29 |
|
odzdvds |
|- ( ( ( P e. NN /\ 2 e. ZZ /\ ( 2 gcd P ) = 1 ) /\ ( 2 ^ ( N + 1 ) ) e. NN0 ) -> ( P || ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) - 1 ) <-> ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) ) ) |
| 30 |
27 28 29
|
syl2anc |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( P || ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) - 1 ) <-> ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) ) ) |
| 31 |
12 30
|
bitrd |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) mod P ) = 1 <-> ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) ) ) |
| 32 |
|
nnnn0 |
|- ( N e. NN -> N e. NN0 ) |
| 33 |
5 32
|
nn0expcld |
|- ( N e. NN -> ( 2 ^ N ) e. NN0 ) |
| 34 |
3 33
|
nnexpcld |
|- ( N e. NN -> ( 2 ^ ( 2 ^ N ) ) e. NN ) |
| 35 |
34
|
nnzd |
|- ( N e. NN -> ( 2 ^ ( 2 ^ N ) ) e. ZZ ) |
| 36 |
|
modprm1div |
|- ( ( P e. Prime /\ ( 2 ^ ( 2 ^ N ) ) e. ZZ ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) = 1 <-> P || ( ( 2 ^ ( 2 ^ N ) ) - 1 ) ) ) |
| 37 |
1 35 36
|
syl2anr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) = 1 <-> P || ( ( 2 ^ ( 2 ^ N ) ) - 1 ) ) ) |
| 38 |
33
|
adantr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( 2 ^ N ) e. NN0 ) |
| 39 |
|
odzdvds |
|- ( ( ( P e. NN /\ 2 e. ZZ /\ ( 2 gcd P ) = 1 ) /\ ( 2 ^ N ) e. NN0 ) -> ( P || ( ( 2 ^ ( 2 ^ N ) ) - 1 ) <-> ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) ) ) |
| 40 |
27 38 39
|
syl2anc |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( P || ( ( 2 ^ ( 2 ^ N ) ) - 1 ) <-> ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) ) ) |
| 41 |
37 40
|
bitrd |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) = 1 <-> ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) ) ) |
| 42 |
41
|
necon3abid |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) =/= 1 <-> -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) ) ) |
| 43 |
|
odzcl |
|- ( ( P e. NN /\ 2 e. ZZ /\ ( 2 gcd P ) = 1 ) -> ( ( odZ ` P ) ` 2 ) e. NN ) |
| 44 |
27 43
|
syl |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( odZ ` P ) ` 2 ) e. NN ) |
| 45 |
7
|
adantr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( N + 1 ) e. NN0 ) |
| 46 |
|
dvdsprmpweqle |
|- ( ( 2 e. Prime /\ ( ( odZ ` P ) ` 2 ) e. NN /\ ( N + 1 ) e. NN0 ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) -> E. n e. NN0 ( n <_ ( N + 1 ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) ) ) |
| 47 |
22 44 45 46
|
mp3an2i |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) -> E. n e. NN0 ( n <_ ( N + 1 ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) ) ) |
| 48 |
|
breq1 |
|- ( ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) <-> ( 2 ^ n ) || ( 2 ^ N ) ) ) |
| 49 |
48
|
adantl |
|- ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) <-> ( 2 ^ n ) || ( 2 ^ N ) ) ) |
| 50 |
49
|
notbid |
|- ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) <-> -. ( 2 ^ n ) || ( 2 ^ N ) ) ) |
| 51 |
|
simpr |
|- ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) |
| 52 |
51
|
adantr |
|- ( ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) /\ -. ( 2 ^ n ) || ( 2 ^ N ) ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) |
| 53 |
|
nn0re |
|- ( n e. NN0 -> n e. RR ) |
| 54 |
6
|
nnred |
|- ( N e. NN -> ( N + 1 ) e. RR ) |
| 55 |
54
|
adantr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( N + 1 ) e. RR ) |
| 56 |
|
leloe |
|- ( ( n e. RR /\ ( N + 1 ) e. RR ) -> ( n <_ ( N + 1 ) <-> ( n < ( N + 1 ) \/ n = ( N + 1 ) ) ) ) |
| 57 |
53 55 56
|
syl2anr |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( n <_ ( N + 1 ) <-> ( n < ( N + 1 ) \/ n = ( N + 1 ) ) ) ) |
| 58 |
|
simpr |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> n e. NN0 ) |
| 59 |
|
nn0z |
|- ( n e. NN0 -> n e. ZZ ) |
| 60 |
59
|
adantl |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> n e. ZZ ) |
| 61 |
60
|
adantr |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n < ( N + 1 ) ) -> n e. ZZ ) |
| 62 |
|
nnz |
|- ( N e. NN -> N e. ZZ ) |
| 63 |
62
|
adantr |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> N e. ZZ ) |
| 64 |
63
|
adantr |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> N e. ZZ ) |
| 65 |
64
|
adantr |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n < ( N + 1 ) ) -> N e. ZZ ) |
| 66 |
|
zleltp1 |
|- ( ( n e. ZZ /\ N e. ZZ ) -> ( n <_ N <-> n < ( N + 1 ) ) ) |
| 67 |
59 63 66
|
syl2anr |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( n <_ N <-> n < ( N + 1 ) ) ) |
| 68 |
67
|
biimpar |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n < ( N + 1 ) ) -> n <_ N ) |
| 69 |
|
eluz2 |
|- ( N e. ( ZZ>= ` n ) <-> ( n e. ZZ /\ N e. ZZ /\ n <_ N ) ) |
| 70 |
61 65 68 69
|
syl3anbrc |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n < ( N + 1 ) ) -> N e. ( ZZ>= ` n ) ) |
| 71 |
|
dvdsexp |
|- ( ( 2 e. ZZ /\ n e. NN0 /\ N e. ( ZZ>= ` n ) ) -> ( 2 ^ n ) || ( 2 ^ N ) ) |
| 72 |
16 58 70 71
|
mp3an2ani |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n < ( N + 1 ) ) -> ( 2 ^ n ) || ( 2 ^ N ) ) |
| 73 |
72
|
pm2.24d |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n < ( N + 1 ) ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) |
| 74 |
73
|
expcom |
|- ( n < ( N + 1 ) -> ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 75 |
|
oveq2 |
|- ( n = ( N + 1 ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) |
| 76 |
75
|
2a1d |
|- ( n = ( N + 1 ) -> ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 77 |
74 76
|
jaoi |
|- ( ( n < ( N + 1 ) \/ n = ( N + 1 ) ) -> ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 78 |
77
|
com12 |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( ( n < ( N + 1 ) \/ n = ( N + 1 ) ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 79 |
57 78
|
sylbid |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( n <_ ( N + 1 ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 80 |
79
|
imp |
|- ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) |
| 81 |
80
|
adantr |
|- ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) ) |
| 82 |
81
|
imp |
|- ( ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) /\ -. ( 2 ^ n ) || ( 2 ^ N ) ) -> ( 2 ^ n ) = ( 2 ^ ( N + 1 ) ) ) |
| 83 |
52 82
|
eqtrd |
|- ( ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) /\ -. ( 2 ^ n ) || ( 2 ^ N ) ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) |
| 84 |
83
|
ex |
|- ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( -. ( 2 ^ n ) || ( 2 ^ N ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) |
| 85 |
50 84
|
sylbid |
|- ( ( ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) /\ n <_ ( N + 1 ) ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) |
| 86 |
85
|
expl |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ n e. NN0 ) -> ( ( n <_ ( N + 1 ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 87 |
86
|
rexlimdva |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( E. n e. NN0 ( n <_ ( N + 1 ) /\ ( ( odZ ` P ) ` 2 ) = ( 2 ^ n ) ) -> ( -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 88 |
47 87
|
syld |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) -> ( -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 89 |
88
|
com23 |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( -. ( ( odZ ` P ) ` 2 ) || ( 2 ^ N ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 90 |
42 89
|
sylbid |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) =/= 1 -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 91 |
90
|
com23 |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( odZ ` P ) ` 2 ) || ( 2 ^ ( N + 1 ) ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) =/= 1 -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 92 |
31 91
|
sylbid |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) mod P ) = 1 -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) =/= 1 -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 93 |
92
|
com23 |
|- ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) -> ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) =/= 1 -> ( ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) mod P ) = 1 -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) ) ) |
| 94 |
93
|
imp32 |
|- ( ( ( N e. NN /\ P e. ( Prime \ { 2 } ) ) /\ ( ( ( 2 ^ ( 2 ^ N ) ) mod P ) =/= 1 /\ ( ( 2 ^ ( 2 ^ ( N + 1 ) ) ) mod P ) = 1 ) ) -> ( ( odZ ` P ) ` 2 ) = ( 2 ^ ( N + 1 ) ) ) |