Metamath Proof Explorer


Theorem sadcaddlem

Description: Lemma for sadcadd . (Contributed by Mario Carneiro, 8-Sep-2016)

Ref Expression
Hypotheses sadval.a φA0
sadval.b φB0
sadval.c C=seq0c2𝑜,m0ifcaddmAmBc1𝑜n0ifn=0n1
sadcp1.n φN0
sadcadd.k K=bits0-1
sadcaddlem.1 φCN2NKA0..^N+KB0..^N
Assertion sadcaddlem φCN+12N+1KA0..^N+1+KB0..^N+1

Proof

Step Hyp Ref Expression
1 sadval.a φA0
2 sadval.b φB0
3 sadval.c C=seq0c2𝑜,m0ifcaddmAmBc1𝑜n0ifn=0n1
4 sadcp1.n φN0
5 sadcadd.k K=bits0-1
6 sadcaddlem.1 φCN2NKA0..^N+KB0..^N
7 cad1 CNcaddNANBCNNANB
8 7 adantl φCNcaddNANBCNNANB
9 2nn 2
10 9 a1i φ2
11 10 4 nnexpcld φ2N
12 11 nnred φ2N
13 12 ad2antrr φCNNANB2N
14 inss1 A0..^NA
15 14 1 sstrid φA0..^N0
16 fzofi 0..^NFin
17 16 a1i φ0..^NFin
18 inss2 A0..^N0..^N
19 ssfi 0..^NFinA0..^N0..^NA0..^NFin
20 17 18 19 sylancl φA0..^NFin
21 elfpw A0..^N𝒫0FinA0..^N0A0..^NFin
22 15 20 21 sylanbrc φA0..^N𝒫0Fin
23 bitsf1o bits0:01-1 onto𝒫0Fin
24 f1ocnv bits0:01-1 onto𝒫0Finbits0-1:𝒫0Fin1-1 onto0
25 23 24 ax-mp bits0-1:𝒫0Fin1-1 onto0
26 f1oeq1 K=bits0-1K:𝒫0Fin1-1 onto0bits0-1:𝒫0Fin1-1 onto0
27 5 26 ax-mp K:𝒫0Fin1-1 onto0bits0-1:𝒫0Fin1-1 onto0
28 25 27 mpbir K:𝒫0Fin1-1 onto0
29 f1of K:𝒫0Fin1-1 onto0K:𝒫0Fin0
30 28 29 ax-mp K:𝒫0Fin0
31 30 ffvelcdmi A0..^N𝒫0FinKA0..^N0
32 22 31 syl φKA0..^N0
33 inss1 B0..^NB
34 33 2 sstrid φB0..^N0
35 inss2 B0..^N0..^N
36 ssfi 0..^NFinB0..^N0..^NB0..^NFin
37 17 35 36 sylancl φB0..^NFin
38 elfpw B0..^N𝒫0FinB0..^N0B0..^NFin
39 34 37 38 sylanbrc φB0..^N𝒫0Fin
40 30 ffvelcdmi B0..^N𝒫0FinKB0..^N0
41 39 40 syl φKB0..^N0
42 32 41 nn0addcld φKA0..^N+KB0..^N0
43 42 nn0red φKA0..^N+KB0..^N
44 43 ad2antrr φCNNANBKA0..^N+KB0..^N
45 2nn0 20
46 45 a1i φNA20
47 4 adantr φNAN0
48 46 47 nn0expcld φNA2N0
49 0nn0 00
50 49 a1i φ¬NA00
51 48 50 ifclda φifNA2N00
52 45 a1i φNB20
53 4 adantr φNBN0
54 52 53 nn0expcld φNB2N0
55 49 a1i φ¬NB00
56 54 55 ifclda φifNB2N00
57 51 56 nn0addcld φifNA2N0+ifNB2N00
58 57 nn0red φifNA2N0+ifNB2N0
59 58 ad2antrr φCNNANBifNA2N0+ifNB2N0
60 6 biimpa φCN2NKA0..^N+KB0..^N
61 60 adantr φCNNANB2NKA0..^N+KB0..^N
62 11 nnnn0d φ2N0
63 ifcl 2N000ifNB2N00
64 62 49 63 sylancl φifNB2N00
65 64 nn0ge0d φ0ifNB2N0
66 12 adantr φNB2N
67 0red φ¬NB0
68 66 67 ifclda φifNB2N0
69 12 68 addge01d φ0ifNB2N02N2N+ifNB2N0
70 65 69 mpbid φ2N2N+ifNB2N0
71 70 ad2antrr φCNNA2N2N+ifNB2N0
72 iftrue NAifNA2N0=2N
73 72 adantl φCNNAifNA2N0=2N
74 73 oveq1d φCNNAifNA2N0+ifNB2N0=2N+ifNB2N0
75 71 74 breqtrrd φCNNA2NifNA2N0+ifNB2N0
76 ifcl 2N000ifNA2N00
77 62 49 76 sylancl φifNA2N00
78 77 nn0ge0d φ0ifNA2N0
79 12 adantr φNA2N
80 0red φ¬NA0
81 79 80 ifclda φifNA2N0
82 12 81 addge02d φ0ifNA2N02NifNA2N0+2N
83 78 82 mpbid φ2NifNA2N0+2N
84 83 ad2antrr φCNNB2NifNA2N0+2N
85 iftrue NBifNB2N0=2N
86 85 adantl φCNNBifNB2N0=2N
87 86 oveq2d φCNNBifNA2N0+ifNB2N0=ifNA2N0+2N
88 84 87 breqtrrd φCNNB2NifNA2N0+ifNB2N0
89 75 88 jaodan φCNNANB2NifNA2N0+ifNB2N0
90 13 13 44 59 61 89 le2addd φCNNANB2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
91 90 ex φCNNANB2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
92 ioran ¬NANB¬NA¬NB
93 iffalse ¬NAifNA2N0=0
94 93 ad2antrl φCN¬NA¬NBifNA2N0=0
95 iffalse ¬NBifNB2N0=0
96 95 ad2antll φCN¬NA¬NBifNB2N0=0
97 94 96 oveq12d φCN¬NA¬NBifNA2N0+ifNB2N0=0+0
98 00id 0+0=0
99 97 98 eqtrdi φCN¬NA¬NBifNA2N0+ifNB2N0=0
100 99 oveq2d φCN¬NA¬NBKA0..^N+KB0..^N+ifNA2N0+ifNB2N0=KA0..^N+KB0..^N+0
101 32 nn0red φKA0..^N
102 101 ad2antrr φCN¬NA¬NBKA0..^N
103 41 nn0red φKB0..^N
104 103 ad2antrr φCN¬NA¬NBKB0..^N
105 102 104 readdcld φCN¬NA¬NBKA0..^N+KB0..^N
106 105 recnd φCN¬NA¬NBKA0..^N+KB0..^N
107 106 addridd φCN¬NA¬NBKA0..^N+KB0..^N+0=KA0..^N+KB0..^N
108 100 107 eqtrd φCN¬NA¬NBKA0..^N+KB0..^N+ifNA2N0+ifNB2N0=KA0..^N+KB0..^N
109 5 fveq1i KA0..^N=bits0-1A0..^N
110 109 fveq2i bits0KA0..^N=bits0bits0-1A0..^N
111 32 fvresd φbits0KA0..^N=bitsKA0..^N
112 f1ocnvfv2 bits0:01-1 onto𝒫0FinA0..^N𝒫0Finbits0bits0-1A0..^N=A0..^N
113 23 22 112 sylancr φbits0bits0-1A0..^N=A0..^N
114 110 111 113 3eqtr3a φbitsKA0..^N=A0..^N
115 114 18 eqsstrdi φbitsKA0..^N0..^N
116 32 nn0zd φKA0..^N
117 bitsfzo KA0..^NN0KA0..^N0..^2NbitsKA0..^N0..^N
118 116 4 117 syl2anc φKA0..^N0..^2NbitsKA0..^N0..^N
119 115 118 mpbird φKA0..^N0..^2N
120 elfzolt2 KA0..^N0..^2NKA0..^N<2N
121 119 120 syl φKA0..^N<2N
122 5 fveq1i KB0..^N=bits0-1B0..^N
123 122 fveq2i bits0KB0..^N=bits0bits0-1B0..^N
124 41 fvresd φbits0KB0..^N=bitsKB0..^N
125 f1ocnvfv2 bits0:01-1 onto𝒫0FinB0..^N𝒫0Finbits0bits0-1B0..^N=B0..^N
126 23 39 125 sylancr φbits0bits0-1B0..^N=B0..^N
127 123 124 126 3eqtr3a φbitsKB0..^N=B0..^N
128 127 35 eqsstrdi φbitsKB0..^N0..^N
129 41 nn0zd φKB0..^N
130 bitsfzo KB0..^NN0KB0..^N0..^2NbitsKB0..^N0..^N
131 129 4 130 syl2anc φKB0..^N0..^2NbitsKB0..^N0..^N
132 128 131 mpbird φKB0..^N0..^2N
133 elfzolt2 KB0..^N0..^2NKB0..^N<2N
134 132 133 syl φKB0..^N<2N
135 101 103 12 12 121 134 lt2addd φKA0..^N+KB0..^N<2N+2N
136 135 ad2antrr φCN¬NA¬NBKA0..^N+KB0..^N<2N+2N
137 108 136 eqbrtrd φCN¬NA¬NBKA0..^N+KB0..^N+ifNA2N0+ifNB2N0<2N+2N
138 81 ad2antrr φCN¬NA¬NBifNA2N0
139 68 ad2antrr φCN¬NA¬NBifNB2N0
140 138 139 readdcld φCN¬NA¬NBifNA2N0+ifNB2N0
141 105 140 readdcld φCN¬NA¬NBKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
142 12 ad2antrr φCN¬NA¬NB2N
143 142 142 readdcld φCN¬NA¬NB2N+2N
144 141 143 ltnled φCN¬NA¬NBKA0..^N+KB0..^N+ifNA2N0+ifNB2N0<2N+2N¬2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
145 137 144 mpbid φCN¬NA¬NB¬2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
146 145 ex φCN¬NA¬NB¬2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
147 92 146 biimtrid φCN¬NANB¬2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
148 91 147 impcon4bid φCNNANB2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
149 8 148 bitrd φCNcaddNANBCN2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
150 cad0 ¬CNcaddNANBCNNANB
151 150 adantl φ¬CNcaddNANBCNNANB
152 42 nn0ge0d φ0KA0..^N+KB0..^N
153 12 12 readdcld φ2N+2N
154 153 43 addge02d φ0KA0..^N+KB0..^N2N+2NKA0..^N+KB0..^N+2N+2N
155 152 154 mpbid φ2N+2NKA0..^N+KB0..^N+2N+2N
156 155 ad2antrr φ¬CNNANB2N+2NKA0..^N+KB0..^N+2N+2N
157 72 85 oveqan12d NANBifNA2N0+ifNB2N0=2N+2N
158 157 adantl φ¬CNNANBifNA2N0+ifNB2N0=2N+2N
159 158 oveq2d φ¬CNNANBKA0..^N+KB0..^N+ifNA2N0+ifNB2N0=KA0..^N+KB0..^N+2N+2N
160 156 159 breqtrrd φ¬CNNANB2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
161 160 ex φ¬CNNANB2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
162 101 adantr φ¬CNKA0..^N
163 103 adantr φ¬CNKB0..^N
164 162 163 readdcld φ¬CNKA0..^N+KB0..^N
165 12 adantr φ¬CN2N
166 12 43 lenltd φ2NKA0..^N+KB0..^N¬KA0..^N+KB0..^N<2N
167 6 166 bitrd φCN¬KA0..^N+KB0..^N<2N
168 167 con2bid φKA0..^N+KB0..^N<2N¬CN
169 168 biimpar φ¬CNKA0..^N+KB0..^N<2N
170 164 165 165 169 ltadd1dd φ¬CNKA0..^N+KB0..^N+2N<2N+2N
171 164 165 readdcld φ¬CNKA0..^N+KB0..^N+2N
172 153 adantr φ¬CN2N+2N
173 43 58 readdcld φKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
174 173 adantr φ¬CNKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
175 ltletr KA0..^N+KB0..^N+2N2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0KA0..^N+KB0..^N+2N<2N+2N2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0KA0..^N+KB0..^N+2N<KA0..^N+KB0..^N+ifNA2N0+ifNB2N0
176 171 172 174 175 syl3anc φ¬CNKA0..^N+KB0..^N+2N<2N+2N2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0KA0..^N+KB0..^N+2N<KA0..^N+KB0..^N+ifNA2N0+ifNB2N0
177 170 176 mpand φ¬CN2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0KA0..^N+KB0..^N+2N<KA0..^N+KB0..^N+ifNA2N0+ifNB2N0
178 58 adantr φ¬CNifNA2N0+ifNB2N0
179 43 adantr φ¬CNKA0..^N+KB0..^N
180 165 178 179 ltadd2d φ¬CN2N<ifNA2N0+ifNB2N0KA0..^N+KB0..^N+2N<KA0..^N+KB0..^N+ifNA2N0+ifNB2N0
181 177 180 sylibrd φ¬CN2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N02N<ifNA2N0+ifNB2N0
182 12 58 ltnled φ2N<ifNA2N0+ifNB2N0¬ifNA2N0+ifNB2N02N
183 64 nn0cnd φifNB2N0
184 183 addlidd φ0+ifNB2N0=ifNB2N0
185 12 leidd φ2N2N
186 62 nn0ge0d φ02N
187 breq1 2N=ifNB2N02N2NifNB2N02N
188 breq1 0=ifNB2N002NifNB2N02N
189 187 188 ifboth 2N2N02NifNB2N02N
190 185 186 189 syl2anc φifNB2N02N
191 184 190 eqbrtrd φ0+ifNB2N02N
192 93 oveq1d ¬NAifNA2N0+ifNB2N0=0+ifNB2N0
193 192 breq1d ¬NAifNA2N0+ifNB2N02N0+ifNB2N02N
194 191 193 syl5ibrcom φ¬NAifNA2N0+ifNB2N02N
195 194 con1d φ¬ifNA2N0+ifNB2N02NNA
196 77 nn0cnd φifNA2N0
197 196 addridd φifNA2N0+0=ifNA2N0
198 breq1 2N=ifNA2N02N2NifNA2N02N
199 breq1 0=ifNA2N002NifNA2N02N
200 198 199 ifboth 2N2N02NifNA2N02N
201 185 186 200 syl2anc φifNA2N02N
202 197 201 eqbrtrd φifNA2N0+02N
203 95 oveq2d ¬NBifNA2N0+ifNB2N0=ifNA2N0+0
204 203 breq1d ¬NBifNA2N0+ifNB2N02NifNA2N0+02N
205 202 204 syl5ibrcom φ¬NBifNA2N0+ifNB2N02N
206 205 con1d φ¬ifNA2N0+ifNB2N02NNB
207 195 206 jcad φ¬ifNA2N0+ifNB2N02NNANB
208 182 207 sylbid φ2N<ifNA2N0+ifNB2N0NANB
209 208 adantr φ¬CN2N<ifNA2N0+ifNB2N0NANB
210 181 209 syld φ¬CN2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0NANB
211 161 210 impbid φ¬CNNANB2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
212 151 211 bitrd φ¬CNcaddNANBCN2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
213 149 212 pm2.61dan φcaddNANBCN2N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
214 1 2 3 4 sadcp1 φCN+1caddNANBCN
215 2cnd φ2
216 215 4 expp1d φ2N+1=2N2
217 11 nncnd φ2N
218 217 times2d φ2N2=2N+2N
219 216 218 eqtrd φ2N+1=2N+2N
220 5 bitsinvp1 A0N0KA0..^N+1=KA0..^N+ifNA2N0
221 1 4 220 syl2anc φKA0..^N+1=KA0..^N+ifNA2N0
222 5 bitsinvp1 B0N0KB0..^N+1=KB0..^N+ifNB2N0
223 2 4 222 syl2anc φKB0..^N+1=KB0..^N+ifNB2N0
224 221 223 oveq12d φKA0..^N+1+KB0..^N+1=KA0..^N+ifNA2N0+KB0..^N+ifNB2N0
225 32 nn0cnd φKA0..^N
226 41 nn0cnd φKB0..^N
227 225 196 226 183 add4d φKA0..^N+ifNA2N0+KB0..^N+ifNB2N0=KA0..^N+KB0..^N+ifNA2N0+ifNB2N0
228 224 227 eqtrd φKA0..^N+1+KB0..^N+1=KA0..^N+KB0..^N+ifNA2N0+ifNB2N0
229 219 228 breq12d φ2N+1KA0..^N+1+KB0..^N+12N+2NKA0..^N+KB0..^N+ifNA2N0+ifNB2N0
230 213 214 229 3bitr4d φCN+12N+1KA0..^N+1+KB0..^N+1