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 ) ) ) |