| Step |
Hyp |
Ref |
Expression |
| 1 |
|
2sq.1 |
|- S = ran ( w e. Z[i] |-> ( ( abs ` w ) ^ 2 ) ) |
| 2 |
|
2sqlem7.2 |
|- Y = { z | E. x e. ZZ E. y e. ZZ ( ( x gcd y ) = 1 /\ z = ( ( x ^ 2 ) + ( y ^ 2 ) ) ) } |
| 3 |
|
2sqlem9.5 |
|- ( ph -> A. b e. ( 1 ... ( M - 1 ) ) A. a e. Y ( b || a -> b e. S ) ) |
| 4 |
|
2sqlem9.7 |
|- ( ph -> M || N ) |
| 5 |
|
2sqlem8.n |
|- ( ph -> N e. NN ) |
| 6 |
|
2sqlem8.m |
|- ( ph -> M e. ( ZZ>= ` 2 ) ) |
| 7 |
|
2sqlem8.1 |
|- ( ph -> A e. ZZ ) |
| 8 |
|
2sqlem8.2 |
|- ( ph -> B e. ZZ ) |
| 9 |
|
2sqlem8.3 |
|- ( ph -> ( A gcd B ) = 1 ) |
| 10 |
|
2sqlem8.4 |
|- ( ph -> N = ( ( A ^ 2 ) + ( B ^ 2 ) ) ) |
| 11 |
|
2sqlem8.c |
|- C = ( ( ( A + ( M / 2 ) ) mod M ) - ( M / 2 ) ) |
| 12 |
|
2sqlem8.d |
|- D = ( ( ( B + ( M / 2 ) ) mod M ) - ( M / 2 ) ) |
| 13 |
|
eluz2b3 |
|- ( M e. ( ZZ>= ` 2 ) <-> ( M e. NN /\ M =/= 1 ) ) |
| 14 |
6 13
|
sylib |
|- ( ph -> ( M e. NN /\ M =/= 1 ) ) |
| 15 |
14
|
simpld |
|- ( ph -> M e. NN ) |
| 16 |
7 15 11
|
4sqlem5 |
|- ( ph -> ( C e. ZZ /\ ( ( A - C ) / M ) e. ZZ ) ) |
| 17 |
16
|
simpld |
|- ( ph -> C e. ZZ ) |
| 18 |
8 15 12
|
4sqlem5 |
|- ( ph -> ( D e. ZZ /\ ( ( B - D ) / M ) e. ZZ ) ) |
| 19 |
18
|
simpld |
|- ( ph -> D e. ZZ ) |
| 20 |
14
|
simprd |
|- ( ph -> M =/= 1 ) |
| 21 |
|
simpr |
|- ( ( ph /\ ( C ^ 2 ) = 0 ) -> ( C ^ 2 ) = 0 ) |
| 22 |
7 15 11 21
|
4sqlem9 |
|- ( ( ph /\ ( C ^ 2 ) = 0 ) -> ( M ^ 2 ) || ( A ^ 2 ) ) |
| 23 |
22
|
ex |
|- ( ph -> ( ( C ^ 2 ) = 0 -> ( M ^ 2 ) || ( A ^ 2 ) ) ) |
| 24 |
|
eluzelz |
|- ( M e. ( ZZ>= ` 2 ) -> M e. ZZ ) |
| 25 |
6 24
|
syl |
|- ( ph -> M e. ZZ ) |
| 26 |
|
dvdssq |
|- ( ( M e. ZZ /\ A e. ZZ ) -> ( M || A <-> ( M ^ 2 ) || ( A ^ 2 ) ) ) |
| 27 |
25 7 26
|
syl2anc |
|- ( ph -> ( M || A <-> ( M ^ 2 ) || ( A ^ 2 ) ) ) |
| 28 |
23 27
|
sylibrd |
|- ( ph -> ( ( C ^ 2 ) = 0 -> M || A ) ) |
| 29 |
|
simpr |
|- ( ( ph /\ ( D ^ 2 ) = 0 ) -> ( D ^ 2 ) = 0 ) |
| 30 |
8 15 12 29
|
4sqlem9 |
|- ( ( ph /\ ( D ^ 2 ) = 0 ) -> ( M ^ 2 ) || ( B ^ 2 ) ) |
| 31 |
30
|
ex |
|- ( ph -> ( ( D ^ 2 ) = 0 -> ( M ^ 2 ) || ( B ^ 2 ) ) ) |
| 32 |
|
dvdssq |
|- ( ( M e. ZZ /\ B e. ZZ ) -> ( M || B <-> ( M ^ 2 ) || ( B ^ 2 ) ) ) |
| 33 |
25 8 32
|
syl2anc |
|- ( ph -> ( M || B <-> ( M ^ 2 ) || ( B ^ 2 ) ) ) |
| 34 |
31 33
|
sylibrd |
|- ( ph -> ( ( D ^ 2 ) = 0 -> M || B ) ) |
| 35 |
|
ax-1ne0 |
|- 1 =/= 0 |
| 36 |
35
|
a1i |
|- ( ph -> 1 =/= 0 ) |
| 37 |
9 36
|
eqnetrd |
|- ( ph -> ( A gcd B ) =/= 0 ) |
| 38 |
37
|
neneqd |
|- ( ph -> -. ( A gcd B ) = 0 ) |
| 39 |
|
gcdeq0 |
|- ( ( A e. ZZ /\ B e. ZZ ) -> ( ( A gcd B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) |
| 40 |
7 8 39
|
syl2anc |
|- ( ph -> ( ( A gcd B ) = 0 <-> ( A = 0 /\ B = 0 ) ) ) |
| 41 |
38 40
|
mtbid |
|- ( ph -> -. ( A = 0 /\ B = 0 ) ) |
| 42 |
|
dvdslegcd |
|- ( ( ( M e. ZZ /\ A e. ZZ /\ B e. ZZ ) /\ -. ( A = 0 /\ B = 0 ) ) -> ( ( M || A /\ M || B ) -> M <_ ( A gcd B ) ) ) |
| 43 |
25 7 8 41 42
|
syl31anc |
|- ( ph -> ( ( M || A /\ M || B ) -> M <_ ( A gcd B ) ) ) |
| 44 |
28 34 43
|
syl2and |
|- ( ph -> ( ( ( C ^ 2 ) = 0 /\ ( D ^ 2 ) = 0 ) -> M <_ ( A gcd B ) ) ) |
| 45 |
9
|
breq2d |
|- ( ph -> ( M <_ ( A gcd B ) <-> M <_ 1 ) ) |
| 46 |
|
nnle1eq1 |
|- ( M e. NN -> ( M <_ 1 <-> M = 1 ) ) |
| 47 |
15 46
|
syl |
|- ( ph -> ( M <_ 1 <-> M = 1 ) ) |
| 48 |
45 47
|
bitrd |
|- ( ph -> ( M <_ ( A gcd B ) <-> M = 1 ) ) |
| 49 |
44 48
|
sylibd |
|- ( ph -> ( ( ( C ^ 2 ) = 0 /\ ( D ^ 2 ) = 0 ) -> M = 1 ) ) |
| 50 |
49
|
necon3ad |
|- ( ph -> ( M =/= 1 -> -. ( ( C ^ 2 ) = 0 /\ ( D ^ 2 ) = 0 ) ) ) |
| 51 |
20 50
|
mpd |
|- ( ph -> -. ( ( C ^ 2 ) = 0 /\ ( D ^ 2 ) = 0 ) ) |
| 52 |
17
|
zcnd |
|- ( ph -> C e. CC ) |
| 53 |
|
sqeq0 |
|- ( C e. CC -> ( ( C ^ 2 ) = 0 <-> C = 0 ) ) |
| 54 |
52 53
|
syl |
|- ( ph -> ( ( C ^ 2 ) = 0 <-> C = 0 ) ) |
| 55 |
19
|
zcnd |
|- ( ph -> D e. CC ) |
| 56 |
|
sqeq0 |
|- ( D e. CC -> ( ( D ^ 2 ) = 0 <-> D = 0 ) ) |
| 57 |
55 56
|
syl |
|- ( ph -> ( ( D ^ 2 ) = 0 <-> D = 0 ) ) |
| 58 |
54 57
|
anbi12d |
|- ( ph -> ( ( ( C ^ 2 ) = 0 /\ ( D ^ 2 ) = 0 ) <-> ( C = 0 /\ D = 0 ) ) ) |
| 59 |
51 58
|
mtbid |
|- ( ph -> -. ( C = 0 /\ D = 0 ) ) |
| 60 |
|
gcdn0cl |
|- ( ( ( C e. ZZ /\ D e. ZZ ) /\ -. ( C = 0 /\ D = 0 ) ) -> ( C gcd D ) e. NN ) |
| 61 |
17 19 59 60
|
syl21anc |
|- ( ph -> ( C gcd D ) e. NN ) |