Step |
Hyp |
Ref |
Expression |
1 |
|
4sqlem5.2 |
|- ( ph -> A e. ZZ ) |
2 |
|
4sqlem5.3 |
|- ( ph -> M e. NN ) |
3 |
|
4sqlem5.4 |
|- B = ( ( ( A + ( M / 2 ) ) mod M ) - ( M / 2 ) ) |
4 |
|
4sqlem10.5 |
|- ( ( ph /\ ps ) -> ( ( ( ( M ^ 2 ) / 2 ) / 2 ) - ( B ^ 2 ) ) = 0 ) |
5 |
2
|
adantr |
|- ( ( ph /\ ps ) -> M e. NN ) |
6 |
5
|
nnzd |
|- ( ( ph /\ ps ) -> M e. ZZ ) |
7 |
|
zsqcl |
|- ( M e. ZZ -> ( M ^ 2 ) e. ZZ ) |
8 |
6 7
|
syl |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) e. ZZ ) |
9 |
1
|
adantr |
|- ( ( ph /\ ps ) -> A e. ZZ ) |
10 |
5
|
nnred |
|- ( ( ph /\ ps ) -> M e. RR ) |
11 |
10
|
rehalfcld |
|- ( ( ph /\ ps ) -> ( M / 2 ) e. RR ) |
12 |
11
|
recnd |
|- ( ( ph /\ ps ) -> ( M / 2 ) e. CC ) |
13 |
12
|
negnegd |
|- ( ( ph /\ ps ) -> -u -u ( M / 2 ) = ( M / 2 ) ) |
14 |
1 2 3
|
4sqlem5 |
|- ( ph -> ( B e. ZZ /\ ( ( A - B ) / M ) e. ZZ ) ) |
15 |
14
|
adantr |
|- ( ( ph /\ ps ) -> ( B e. ZZ /\ ( ( A - B ) / M ) e. ZZ ) ) |
16 |
15
|
simpld |
|- ( ( ph /\ ps ) -> B e. ZZ ) |
17 |
16
|
zred |
|- ( ( ph /\ ps ) -> B e. RR ) |
18 |
1 2 3
|
4sqlem6 |
|- ( ph -> ( -u ( M / 2 ) <_ B /\ B < ( M / 2 ) ) ) |
19 |
18
|
adantr |
|- ( ( ph /\ ps ) -> ( -u ( M / 2 ) <_ B /\ B < ( M / 2 ) ) ) |
20 |
19
|
simprd |
|- ( ( ph /\ ps ) -> B < ( M / 2 ) ) |
21 |
17 20
|
ltned |
|- ( ( ph /\ ps ) -> B =/= ( M / 2 ) ) |
22 |
21
|
neneqd |
|- ( ( ph /\ ps ) -> -. B = ( M / 2 ) ) |
23 |
|
2cnd |
|- ( ( ph /\ ps ) -> 2 e. CC ) |
24 |
23
|
sqvald |
|- ( ( ph /\ ps ) -> ( 2 ^ 2 ) = ( 2 x. 2 ) ) |
25 |
24
|
oveq2d |
|- ( ( ph /\ ps ) -> ( ( M ^ 2 ) / ( 2 ^ 2 ) ) = ( ( M ^ 2 ) / ( 2 x. 2 ) ) ) |
26 |
5
|
nncnd |
|- ( ( ph /\ ps ) -> M e. CC ) |
27 |
|
2ne0 |
|- 2 =/= 0 |
28 |
27
|
a1i |
|- ( ( ph /\ ps ) -> 2 =/= 0 ) |
29 |
26 23 28
|
sqdivd |
|- ( ( ph /\ ps ) -> ( ( M / 2 ) ^ 2 ) = ( ( M ^ 2 ) / ( 2 ^ 2 ) ) ) |
30 |
26
|
sqcld |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) e. CC ) |
31 |
30 23 23 28 28
|
divdiv1d |
|- ( ( ph /\ ps ) -> ( ( ( M ^ 2 ) / 2 ) / 2 ) = ( ( M ^ 2 ) / ( 2 x. 2 ) ) ) |
32 |
25 29 31
|
3eqtr4d |
|- ( ( ph /\ ps ) -> ( ( M / 2 ) ^ 2 ) = ( ( ( M ^ 2 ) / 2 ) / 2 ) ) |
33 |
30
|
halfcld |
|- ( ( ph /\ ps ) -> ( ( M ^ 2 ) / 2 ) e. CC ) |
34 |
33
|
halfcld |
|- ( ( ph /\ ps ) -> ( ( ( M ^ 2 ) / 2 ) / 2 ) e. CC ) |
35 |
16
|
zcnd |
|- ( ( ph /\ ps ) -> B e. CC ) |
36 |
35
|
sqcld |
|- ( ( ph /\ ps ) -> ( B ^ 2 ) e. CC ) |
37 |
34 36 4
|
subeq0d |
|- ( ( ph /\ ps ) -> ( ( ( M ^ 2 ) / 2 ) / 2 ) = ( B ^ 2 ) ) |
38 |
32 37
|
eqtr2d |
|- ( ( ph /\ ps ) -> ( B ^ 2 ) = ( ( M / 2 ) ^ 2 ) ) |
39 |
|
sqeqor |
|- ( ( B e. CC /\ ( M / 2 ) e. CC ) -> ( ( B ^ 2 ) = ( ( M / 2 ) ^ 2 ) <-> ( B = ( M / 2 ) \/ B = -u ( M / 2 ) ) ) ) |
40 |
35 12 39
|
syl2anc |
|- ( ( ph /\ ps ) -> ( ( B ^ 2 ) = ( ( M / 2 ) ^ 2 ) <-> ( B = ( M / 2 ) \/ B = -u ( M / 2 ) ) ) ) |
41 |
38 40
|
mpbid |
|- ( ( ph /\ ps ) -> ( B = ( M / 2 ) \/ B = -u ( M / 2 ) ) ) |
42 |
41
|
ord |
|- ( ( ph /\ ps ) -> ( -. B = ( M / 2 ) -> B = -u ( M / 2 ) ) ) |
43 |
22 42
|
mpd |
|- ( ( ph /\ ps ) -> B = -u ( M / 2 ) ) |
44 |
43 16
|
eqeltrrd |
|- ( ( ph /\ ps ) -> -u ( M / 2 ) e. ZZ ) |
45 |
44
|
znegcld |
|- ( ( ph /\ ps ) -> -u -u ( M / 2 ) e. ZZ ) |
46 |
13 45
|
eqeltrrd |
|- ( ( ph /\ ps ) -> ( M / 2 ) e. ZZ ) |
47 |
9 46
|
zaddcld |
|- ( ( ph /\ ps ) -> ( A + ( M / 2 ) ) e. ZZ ) |
48 |
|
zsqcl |
|- ( ( A + ( M / 2 ) ) e. ZZ -> ( ( A + ( M / 2 ) ) ^ 2 ) e. ZZ ) |
49 |
47 48
|
syl |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) ^ 2 ) e. ZZ ) |
50 |
47 6
|
zmulcld |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) x. M ) e. ZZ ) |
51 |
47
|
zred |
|- ( ( ph /\ ps ) -> ( A + ( M / 2 ) ) e. RR ) |
52 |
5
|
nnrpd |
|- ( ( ph /\ ps ) -> M e. RR+ ) |
53 |
51 52
|
modcld |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) mod M ) e. RR ) |
54 |
53
|
recnd |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) mod M ) e. CC ) |
55 |
|
0cnd |
|- ( ( ph /\ ps ) -> 0 e. CC ) |
56 |
|
df-neg |
|- -u ( M / 2 ) = ( 0 - ( M / 2 ) ) |
57 |
43 3 56
|
3eqtr3g |
|- ( ( ph /\ ps ) -> ( ( ( A + ( M / 2 ) ) mod M ) - ( M / 2 ) ) = ( 0 - ( M / 2 ) ) ) |
58 |
54 55 12 57
|
subcan2d |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) mod M ) = 0 ) |
59 |
|
dvdsval3 |
|- ( ( M e. NN /\ ( A + ( M / 2 ) ) e. ZZ ) -> ( M || ( A + ( M / 2 ) ) <-> ( ( A + ( M / 2 ) ) mod M ) = 0 ) ) |
60 |
5 47 59
|
syl2anc |
|- ( ( ph /\ ps ) -> ( M || ( A + ( M / 2 ) ) <-> ( ( A + ( M / 2 ) ) mod M ) = 0 ) ) |
61 |
58 60
|
mpbird |
|- ( ( ph /\ ps ) -> M || ( A + ( M / 2 ) ) ) |
62 |
|
dvdssq |
|- ( ( M e. ZZ /\ ( A + ( M / 2 ) ) e. ZZ ) -> ( M || ( A + ( M / 2 ) ) <-> ( M ^ 2 ) || ( ( A + ( M / 2 ) ) ^ 2 ) ) ) |
63 |
6 47 62
|
syl2anc |
|- ( ( ph /\ ps ) -> ( M || ( A + ( M / 2 ) ) <-> ( M ^ 2 ) || ( ( A + ( M / 2 ) ) ^ 2 ) ) ) |
64 |
61 63
|
mpbid |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) || ( ( A + ( M / 2 ) ) ^ 2 ) ) |
65 |
26
|
sqvald |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) = ( M x. M ) ) |
66 |
5
|
nnne0d |
|- ( ( ph /\ ps ) -> M =/= 0 ) |
67 |
|
dvdsmulcr |
|- ( ( M e. ZZ /\ ( A + ( M / 2 ) ) e. ZZ /\ ( M e. ZZ /\ M =/= 0 ) ) -> ( ( M x. M ) || ( ( A + ( M / 2 ) ) x. M ) <-> M || ( A + ( M / 2 ) ) ) ) |
68 |
6 47 6 66 67
|
syl112anc |
|- ( ( ph /\ ps ) -> ( ( M x. M ) || ( ( A + ( M / 2 ) ) x. M ) <-> M || ( A + ( M / 2 ) ) ) ) |
69 |
61 68
|
mpbird |
|- ( ( ph /\ ps ) -> ( M x. M ) || ( ( A + ( M / 2 ) ) x. M ) ) |
70 |
65 69
|
eqbrtrd |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) || ( ( A + ( M / 2 ) ) x. M ) ) |
71 |
8 49 50 64 70
|
dvds2subd |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) || ( ( ( A + ( M / 2 ) ) ^ 2 ) - ( ( A + ( M / 2 ) ) x. M ) ) ) |
72 |
47
|
zcnd |
|- ( ( ph /\ ps ) -> ( A + ( M / 2 ) ) e. CC ) |
73 |
72
|
sqvald |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) ^ 2 ) = ( ( A + ( M / 2 ) ) x. ( A + ( M / 2 ) ) ) ) |
74 |
73
|
oveq1d |
|- ( ( ph /\ ps ) -> ( ( ( A + ( M / 2 ) ) ^ 2 ) - ( ( A + ( M / 2 ) ) x. M ) ) = ( ( ( A + ( M / 2 ) ) x. ( A + ( M / 2 ) ) ) - ( ( A + ( M / 2 ) ) x. M ) ) ) |
75 |
72 72 26
|
subdid |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) x. ( ( A + ( M / 2 ) ) - M ) ) = ( ( ( A + ( M / 2 ) ) x. ( A + ( M / 2 ) ) ) - ( ( A + ( M / 2 ) ) x. M ) ) ) |
76 |
26
|
2halvesd |
|- ( ( ph /\ ps ) -> ( ( M / 2 ) + ( M / 2 ) ) = M ) |
77 |
76
|
oveq2d |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) - ( ( M / 2 ) + ( M / 2 ) ) ) = ( ( A + ( M / 2 ) ) - M ) ) |
78 |
9
|
zcnd |
|- ( ( ph /\ ps ) -> A e. CC ) |
79 |
78 12 12
|
pnpcan2d |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) - ( ( M / 2 ) + ( M / 2 ) ) ) = ( A - ( M / 2 ) ) ) |
80 |
77 79
|
eqtr3d |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) - M ) = ( A - ( M / 2 ) ) ) |
81 |
80
|
oveq2d |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) x. ( ( A + ( M / 2 ) ) - M ) ) = ( ( A + ( M / 2 ) ) x. ( A - ( M / 2 ) ) ) ) |
82 |
|
subsq |
|- ( ( A e. CC /\ ( M / 2 ) e. CC ) -> ( ( A ^ 2 ) - ( ( M / 2 ) ^ 2 ) ) = ( ( A + ( M / 2 ) ) x. ( A - ( M / 2 ) ) ) ) |
83 |
78 12 82
|
syl2anc |
|- ( ( ph /\ ps ) -> ( ( A ^ 2 ) - ( ( M / 2 ) ^ 2 ) ) = ( ( A + ( M / 2 ) ) x. ( A - ( M / 2 ) ) ) ) |
84 |
32
|
oveq2d |
|- ( ( ph /\ ps ) -> ( ( A ^ 2 ) - ( ( M / 2 ) ^ 2 ) ) = ( ( A ^ 2 ) - ( ( ( M ^ 2 ) / 2 ) / 2 ) ) ) |
85 |
81 83 84
|
3eqtr2d |
|- ( ( ph /\ ps ) -> ( ( A + ( M / 2 ) ) x. ( ( A + ( M / 2 ) ) - M ) ) = ( ( A ^ 2 ) - ( ( ( M ^ 2 ) / 2 ) / 2 ) ) ) |
86 |
74 75 85
|
3eqtr2d |
|- ( ( ph /\ ps ) -> ( ( ( A + ( M / 2 ) ) ^ 2 ) - ( ( A + ( M / 2 ) ) x. M ) ) = ( ( A ^ 2 ) - ( ( ( M ^ 2 ) / 2 ) / 2 ) ) ) |
87 |
71 86
|
breqtrd |
|- ( ( ph /\ ps ) -> ( M ^ 2 ) || ( ( A ^ 2 ) - ( ( ( M ^ 2 ) / 2 ) / 2 ) ) ) |