Metamath Proof Explorer


Theorem sadadd2

Description: Sum of initial segments of the sadd sequence. (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
Assertion sadadd2 φKAsaddB0..^N+ifCN2N0=KA0..^N+KB0..^N

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 oveq2 x=00..^x=0..^0
7 fzo0 0..^0=
8 6 7 eqtrdi x=00..^x=
9 8 ineq2d x=0AsaddB0..^x=AsaddB
10 in0 AsaddB=
11 9 10 eqtrdi x=0AsaddB0..^x=
12 11 fveq2d x=0KAsaddB0..^x=K
13 0nn0 00
14 fvres 00bits00=bits0
15 13 14 ax-mp bits00=bits0
16 0bits bits0=
17 15 16 eqtr2i =bits00
18 5 17 fveq12i K=bits0-1bits00
19 bitsf1o bits0:01-1 onto𝒫0Fin
20 f1ocnvfv1 bits0:01-1 onto𝒫0Fin00bits0-1bits00=0
21 19 13 20 mp2an bits0-1bits00=0
22 18 21 eqtri K=0
23 12 22 eqtrdi x=0KAsaddB0..^x=0
24 fveq2 x=0Cx=C0
25 24 eleq2d x=0CxC0
26 oveq2 x=02x=20
27 25 26 ifbieq1d x=0ifCx2x0=ifC0200
28 23 27 oveq12d x=0KAsaddB0..^x+ifCx2x0=0+ifC0200
29 8 ineq2d x=0A0..^x=A
30 in0 A=
31 29 30 eqtrdi x=0A0..^x=
32 31 fveq2d x=0KA0..^x=K
33 32 22 eqtrdi x=0KA0..^x=0
34 8 ineq2d x=0B0..^x=B
35 in0 B=
36 34 35 eqtrdi x=0B0..^x=
37 36 fveq2d x=0KB0..^x=K
38 37 22 eqtrdi x=0KB0..^x=0
39 33 38 oveq12d x=0KA0..^x+KB0..^x=0+0
40 00id 0+0=0
41 39 40 eqtrdi x=0KA0..^x+KB0..^x=0
42 28 41 eqeq12d x=0KAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^x0+ifC0200=0
43 42 imbi2d x=0φKAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xφ0+ifC0200=0
44 oveq2 x=k0..^x=0..^k
45 44 ineq2d x=kAsaddB0..^x=AsaddB0..^k
46 45 fveq2d x=kKAsaddB0..^x=KAsaddB0..^k
47 fveq2 x=kCx=Ck
48 47 eleq2d x=kCxCk
49 oveq2 x=k2x=2k
50 48 49 ifbieq1d x=kifCx2x0=ifCk2k0
51 46 50 oveq12d x=kKAsaddB0..^x+ifCx2x0=KAsaddB0..^k+ifCk2k0
52 44 ineq2d x=kA0..^x=A0..^k
53 52 fveq2d x=kKA0..^x=KA0..^k
54 44 ineq2d x=kB0..^x=B0..^k
55 54 fveq2d x=kKB0..^x=KB0..^k
56 53 55 oveq12d x=kKA0..^x+KB0..^x=KA0..^k+KB0..^k
57 51 56 eqeq12d x=kKAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xKAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^k
58 57 imbi2d x=kφKAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xφKAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^k
59 oveq2 x=k+10..^x=0..^k+1
60 59 ineq2d x=k+1AsaddB0..^x=AsaddB0..^k+1
61 60 fveq2d x=k+1KAsaddB0..^x=KAsaddB0..^k+1
62 fveq2 x=k+1Cx=Ck+1
63 62 eleq2d x=k+1CxCk+1
64 oveq2 x=k+12x=2k+1
65 63 64 ifbieq1d x=k+1ifCx2x0=ifCk+12k+10
66 61 65 oveq12d x=k+1KAsaddB0..^x+ifCx2x0=KAsaddB0..^k+1+ifCk+12k+10
67 59 ineq2d x=k+1A0..^x=A0..^k+1
68 67 fveq2d x=k+1KA0..^x=KA0..^k+1
69 59 ineq2d x=k+1B0..^x=B0..^k+1
70 69 fveq2d x=k+1KB0..^x=KB0..^k+1
71 68 70 oveq12d x=k+1KA0..^x+KB0..^x=KA0..^k+1+KB0..^k+1
72 66 71 eqeq12d x=k+1KAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xKAsaddB0..^k+1+ifCk+12k+10=KA0..^k+1+KB0..^k+1
73 72 imbi2d x=k+1φKAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xφKAsaddB0..^k+1+ifCk+12k+10=KA0..^k+1+KB0..^k+1
74 oveq2 x=N0..^x=0..^N
75 74 ineq2d x=NAsaddB0..^x=AsaddB0..^N
76 75 fveq2d x=NKAsaddB0..^x=KAsaddB0..^N
77 fveq2 x=NCx=CN
78 77 eleq2d x=NCxCN
79 oveq2 x=N2x=2N
80 78 79 ifbieq1d x=NifCx2x0=ifCN2N0
81 76 80 oveq12d x=NKAsaddB0..^x+ifCx2x0=KAsaddB0..^N+ifCN2N0
82 74 ineq2d x=NA0..^x=A0..^N
83 82 fveq2d x=NKA0..^x=KA0..^N
84 74 ineq2d x=NB0..^x=B0..^N
85 84 fveq2d x=NKB0..^x=KB0..^N
86 83 85 oveq12d x=NKA0..^x+KB0..^x=KA0..^N+KB0..^N
87 81 86 eqeq12d x=NKAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xKAsaddB0..^N+ifCN2N0=KA0..^N+KB0..^N
88 87 imbi2d x=NφKAsaddB0..^x+ifCx2x0=KA0..^x+KB0..^xφKAsaddB0..^N+ifCN2N0=KA0..^N+KB0..^N
89 1 2 3 sadc0 φ¬C0
90 89 iffalsed φifC0200=0
91 90 oveq2d φ0+ifC0200=0+0
92 91 40 eqtrdi φ0+ifC0200=0
93 1 ad2antrr φk0KAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kA0
94 2 ad2antrr φk0KAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kB0
95 simplr φk0KAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kk0
96 simpr φk0KAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kKAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^k
97 93 94 3 95 5 96 sadadd2lem φk0KAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kKAsaddB0..^k+1+ifCk+12k+10=KA0..^k+1+KB0..^k+1
98 97 ex φk0KAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kKAsaddB0..^k+1+ifCk+12k+10=KA0..^k+1+KB0..^k+1
99 98 expcom k0φKAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kKAsaddB0..^k+1+ifCk+12k+10=KA0..^k+1+KB0..^k+1
100 99 a2d k0φKAsaddB0..^k+ifCk2k0=KA0..^k+KB0..^kφKAsaddB0..^k+1+ifCk+12k+10=KA0..^k+1+KB0..^k+1
101 43 58 73 88 92 100 nn0ind N0φKAsaddB0..^N+ifCN2N0=KA0..^N+KB0..^N
102 4 101 mpcom φKAsaddB0..^N+ifCN2N0=KA0..^N+KB0..^N