Metamath Proof Explorer


Theorem sadfval

Description: Define the addition of two bit sequences, using df-had and df-cad bit operations. (Contributed by Mario Carneiro, 5-Sep-2016)

Ref Expression
Hypotheses sadval.a φA0
sadval.b φB0
sadval.c C=seq0c2𝑜,m0ifcaddmAmBc1𝑜n0ifn=0n1
Assertion sadfval φAsaddB=k0|haddkAkBCk

Proof

Step Hyp Ref Expression
1 sadval.a φA0
2 sadval.b φB0
3 sadval.c C=seq0c2𝑜,m0ifcaddmAmBc1𝑜n0ifn=0n1
4 nn0ex 0V
5 4 elpw2 A𝒫0A0
6 1 5 sylibr φA𝒫0
7 4 elpw2 B𝒫0B0
8 2 7 sylibr φB𝒫0
9 simpl x=Ay=Bx=A
10 9 eleq2d x=Ay=BkxkA
11 simpr x=Ay=By=B
12 11 eleq2d x=Ay=BkykB
13 simp1l x=Ay=Bc2𝑜m0x=A
14 13 eleq2d x=Ay=Bc2𝑜m0mxmA
15 simp1r x=Ay=Bc2𝑜m0y=B
16 15 eleq2d x=Ay=Bc2𝑜m0mymB
17 biidd x=Ay=Bc2𝑜m0cc
18 14 16 17 cadbi123d x=Ay=Bc2𝑜m0caddmxmyccaddmAmBc
19 18 ifbid x=Ay=Bc2𝑜m0ifcaddmxmyc1𝑜=ifcaddmAmBc1𝑜
20 19 mpoeq3dva x=Ay=Bc2𝑜,m0ifcaddmxmyc1𝑜=c2𝑜,m0ifcaddmAmBc1𝑜
21 20 seqeq2d x=Ay=Bseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1=seq0c2𝑜,m0ifcaddmAmBc1𝑜n0ifn=0n1
22 21 3 eqtr4di x=Ay=Bseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1=C
23 22 fveq1d x=Ay=Bseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1k=Ck
24 23 eleq2d x=Ay=Bseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1kCk
25 10 12 24 hadbi123d x=Ay=Bhaddkxkyseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1khaddkAkBCk
26 25 rabbidv x=Ay=Bk0|haddkxkyseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1k=k0|haddkAkBCk
27 df-sad sadd=x𝒫0,y𝒫0k0|haddkxkyseq0c2𝑜,m0ifcaddmxmyc1𝑜n0ifn=0n1k
28 4 rabex k0|haddkAkBCkV
29 26 27 28 ovmpoa A𝒫0B𝒫0AsaddB=k0|haddkAkBCk
30 6 8 29 syl2anc φAsaddB=k0|haddkAkBCk