Step |
Hyp |
Ref |
Expression |
1 |
|
sadaddlem.c |
|
2 |
|
sadaddlem.k |
|
3 |
|
sadaddlem.1 |
|
4 |
|
sadaddlem.2 |
|
5 |
|
sadaddlem.3 |
|
6 |
2
|
fveq1i |
|
7 |
|
2nn |
|
8 |
7
|
a1i |
|
9 |
8 5
|
nnexpcld |
|
10 |
3 9
|
zmodcld |
|
11 |
10
|
fvresd |
|
12 |
|
bitsmod |
|
13 |
3 5 12
|
syl2anc |
|
14 |
11 13
|
eqtrd |
|
15 |
|
bitsf1o |
|
16 |
|
f1ocnvfv |
|
17 |
15 10 16
|
sylancr |
|
18 |
14 17
|
mpd |
|
19 |
6 18
|
syl5eq |
|
20 |
19
|
oveq2d |
|
21 |
20
|
oveq1d |
|
22 |
3
|
zred |
|
23 |
9
|
nnrpd |
|
24 |
|
moddifz |
|
25 |
22 23 24
|
syl2anc |
|
26 |
21 25
|
eqeltrd |
|
27 |
9
|
nnzd |
|
28 |
9
|
nnne0d |
|
29 |
|
inss1 |
|
30 |
|
bitsss |
|
31 |
29 30
|
sstri |
|
32 |
|
fzofi |
|
33 |
|
inss2 |
|
34 |
|
ssfi |
|
35 |
32 33 34
|
mp2an |
|
36 |
|
elfpw |
|
37 |
31 35 36
|
mpbir2an |
|
38 |
|
f1ocnv |
|
39 |
|
f1of |
|
40 |
15 38 39
|
mp2b |
|
41 |
2
|
feq1i |
|
42 |
40 41
|
mpbir |
|
43 |
42
|
ffvelrni |
|
44 |
37 43
|
mp1i |
|
45 |
44
|
nn0zd |
|
46 |
3 45
|
zsubcld |
|
47 |
|
dvdsval2 |
|
48 |
27 28 46 47
|
syl3anc |
|
49 |
26 48
|
mpbird |
|
50 |
2
|
fveq1i |
|
51 |
4 9
|
zmodcld |
|
52 |
51
|
fvresd |
|
53 |
|
bitsmod |
|
54 |
4 5 53
|
syl2anc |
|
55 |
52 54
|
eqtrd |
|
56 |
|
f1ocnvfv |
|
57 |
15 51 56
|
sylancr |
|
58 |
55 57
|
mpd |
|
59 |
50 58
|
syl5eq |
|
60 |
59
|
oveq2d |
|
61 |
60
|
oveq1d |
|
62 |
4
|
zred |
|
63 |
|
moddifz |
|
64 |
62 23 63
|
syl2anc |
|
65 |
61 64
|
eqeltrd |
|
66 |
|
inss1 |
|
67 |
|
bitsss |
|
68 |
66 67
|
sstri |
|
69 |
|
inss2 |
|
70 |
|
ssfi |
|
71 |
32 69 70
|
mp2an |
|
72 |
|
elfpw |
|
73 |
68 71 72
|
mpbir2an |
|
74 |
42
|
ffvelrni |
|
75 |
73 74
|
mp1i |
|
76 |
75
|
nn0zd |
|
77 |
4 76
|
zsubcld |
|
78 |
|
dvdsval2 |
|
79 |
27 28 77 78
|
syl3anc |
|
80 |
65 79
|
mpbird |
|
81 |
|
dvds2add |
|
82 |
27 46 77 81
|
syl3anc |
|
83 |
49 80 82
|
mp2and |
|
84 |
3
|
zcnd |
|
85 |
4
|
zcnd |
|
86 |
44
|
nn0cnd |
|
87 |
75
|
nn0cnd |
|
88 |
84 85 86 87
|
addsub4d |
|
89 |
83 88
|
breqtrrd |
|
90 |
3 4
|
zaddcld |
|
91 |
45 76
|
zaddcld |
|
92 |
|
moddvds |
|
93 |
9 90 91 92
|
syl3anc |
|
94 |
89 93
|
mpbird |
|
95 |
30
|
a1i |
|
96 |
67
|
a1i |
|
97 |
95 96 1 5 2
|
sadadd3 |
|
98 |
|
inss1 |
|
99 |
|
sadcl |
|
100 |
30 67 99
|
mp2an |
|
101 |
98 100
|
sstri |
|
102 |
|
inss2 |
|
103 |
|
ssfi |
|
104 |
32 102 103
|
mp2an |
|
105 |
|
elfpw |
|
106 |
101 104 105
|
mpbir2an |
|
107 |
42
|
ffvelrni |
|
108 |
106 107
|
mp1i |
|
109 |
108
|
nn0red |
|
110 |
108
|
nn0ge0d |
|
111 |
2
|
fveq1i |
|
112 |
111
|
fveq2i |
|
113 |
108
|
fvresd |
|
114 |
106
|
a1i |
|
115 |
|
f1ocnvfv2 |
|
116 |
15 114 115
|
sylancr |
|
117 |
112 113 116
|
3eqtr3a |
|
118 |
117 102
|
eqsstrdi |
|
119 |
108
|
nn0zd |
|
120 |
|
bitsfzo |
|
121 |
119 5 120
|
syl2anc |
|
122 |
118 121
|
mpbird |
|
123 |
|
elfzolt2 |
|
124 |
122 123
|
syl |
|
125 |
|
modid |
|
126 |
109 23 110 124 125
|
syl22anc |
|
127 |
94 97 126
|
3eqtr2d |
|
128 |
127
|
fveq2d |
|
129 |
128 117
|
eqtr2d |
|