Metamath Proof Explorer


Theorem sadadd3

Description: Sum of initial segments of the sadd sequence. (Contributed by Mario Carneiro, 9-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
Assertion sadadd3 φKAsaddB0..^Nmod2N=KA0..^N+KB0..^Nmod2N

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 2nn 2
7 6 a1i φ2
8 7 4 nnexpcld φ2N
9 8 nnzd φ2N
10 iddvds 2N2N2N
11 9 10 syl φ2N2N
12 dvds0 2N2N0
13 9 12 syl φ2N0
14 breq2 2N=ifCN2N02N2N2NifCN2N0
15 breq2 0=ifCN2N02N02NifCN2N0
16 14 15 ifboth 2N2N2N02NifCN2N0
17 11 13 16 syl2anc φ2NifCN2N0
18 inss1 AsaddB0..^NAsaddB
19 1 2 3 sadfval φAsaddB=k0|haddkAkBCk
20 ssrab2 k0|haddkAkBCk0
21 19 20 eqsstrdi φAsaddB0
22 18 21 sstrid φAsaddB0..^N0
23 fzofi 0..^NFin
24 23 a1i φ0..^NFin
25 inss2 AsaddB0..^N0..^N
26 ssfi 0..^NFinAsaddB0..^N0..^NAsaddB0..^NFin
27 24 25 26 sylancl φAsaddB0..^NFin
28 elfpw AsaddB0..^N𝒫0FinAsaddB0..^N0AsaddB0..^NFin
29 22 27 28 sylanbrc φAsaddB0..^N𝒫0Fin
30 bitsf1o bits0:01-1 onto𝒫0Fin
31 f1ocnv bits0:01-1 onto𝒫0Finbits0-1:𝒫0Fin1-1 onto0
32 f1of bits0-1:𝒫0Fin1-1 onto0bits0-1:𝒫0Fin0
33 30 31 32 mp2b bits0-1:𝒫0Fin0
34 5 feq1i K:𝒫0Fin0bits0-1:𝒫0Fin0
35 33 34 mpbir K:𝒫0Fin0
36 35 ffvelcdmi AsaddB0..^N𝒫0FinKAsaddB0..^N0
37 29 36 syl φKAsaddB0..^N0
38 37 nn0cnd φKAsaddB0..^N
39 8 nncnd φ2N
40 0cn 0
41 ifcl 2N0ifCN2N0
42 39 40 41 sylancl φifCN2N0
43 38 42 pncan2d φKAsaddB0..^N+ifCN2N0-KAsaddB0..^N=ifCN2N0
44 17 43 breqtrrd φ2NKAsaddB0..^N+ifCN2N0-KAsaddB0..^N
45 37 nn0zd φKAsaddB0..^N
46 9 adantr φCN2N
47 0zd φ¬CN0
48 46 47 ifclda φifCN2N0
49 45 48 zaddcld φKAsaddB0..^N+ifCN2N0
50 moddvds 2NKAsaddB0..^N+ifCN2N0KAsaddB0..^NKAsaddB0..^N+ifCN2N0mod2N=KAsaddB0..^Nmod2N2NKAsaddB0..^N+ifCN2N0-KAsaddB0..^N
51 8 49 45 50 syl3anc φKAsaddB0..^N+ifCN2N0mod2N=KAsaddB0..^Nmod2N2NKAsaddB0..^N+ifCN2N0-KAsaddB0..^N
52 44 51 mpbird φKAsaddB0..^N+ifCN2N0mod2N=KAsaddB0..^Nmod2N
53 1 2 3 4 5 sadadd2 φKAsaddB0..^N+ifCN2N0=KA0..^N+KB0..^N
54 53 oveq1d φKAsaddB0..^N+ifCN2N0mod2N=KA0..^N+KB0..^Nmod2N
55 52 54 eqtr3d φKAsaddB0..^Nmod2N=KA0..^N+KB0..^Nmod2N