MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  sadfval Structured version   Visualization version   GIF version

Theorem sadfval 16379
Description: Define the addition of two bit sequences, using df-had 1595 and df-cad 1608 bit operations. (Contributed by Mario Carneiro, 5-Sep-2016.)
Hypotheses
Ref Expression
sadval.a (𝜑𝐴 ⊆ ℕ0)
sadval.b (𝜑𝐵 ⊆ ℕ0)
sadval.c 𝐶 = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
Assertion
Ref Expression
sadfval (𝜑 → (𝐴 sadd 𝐵) = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
Distinct variable groups:   𝑘,𝑐,𝑚,𝑛   𝐴,𝑐,𝑘,𝑚   𝐵,𝑐,𝑘,𝑚   𝐶,𝑘   𝜑,𝑘
Allowed substitution hints:   𝜑(𝑚,𝑛,𝑐)   𝐴(𝑛)   𝐵(𝑛)   𝐶(𝑚,𝑛,𝑐)

Proof of Theorem sadfval
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 sadval.a . . 3 (𝜑𝐴 ⊆ ℕ0)
2 nn0ex 12407 . . . 4 0 ∈ V
32elpw2 5279 . . 3 (𝐴 ∈ 𝒫 ℕ0𝐴 ⊆ ℕ0)
41, 3sylibr 234 . 2 (𝜑𝐴 ∈ 𝒫 ℕ0)
5 sadval.b . . 3 (𝜑𝐵 ⊆ ℕ0)
62elpw2 5279 . . 3 (𝐵 ∈ 𝒫 ℕ0𝐵 ⊆ ℕ0)
75, 6sylibr 234 . 2 (𝜑𝐵 ∈ 𝒫 ℕ0)
8 simpl 482 . . . . . 6 ((𝑥 = 𝐴𝑦 = 𝐵) → 𝑥 = 𝐴)
98eleq2d 2822 . . . . 5 ((𝑥 = 𝐴𝑦 = 𝐵) → (𝑘𝑥𝑘𝐴))
10 simpr 484 . . . . . 6 ((𝑥 = 𝐴𝑦 = 𝐵) → 𝑦 = 𝐵)
1110eleq2d 2822 . . . . 5 ((𝑥 = 𝐴𝑦 = 𝐵) → (𝑘𝑦𝑘𝐵))
12 simp1l 1198 . . . . . . . . . . . . 13 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → 𝑥 = 𝐴)
1312eleq2d 2822 . . . . . . . . . . . 12 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (𝑚𝑥𝑚𝐴))
14 simp1r 1199 . . . . . . . . . . . . 13 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → 𝑦 = 𝐵)
1514eleq2d 2822 . . . . . . . . . . . 12 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (𝑚𝑦𝑚𝐵))
16 biidd 262 . . . . . . . . . . . 12 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (∅ ∈ 𝑐 ↔ ∅ ∈ 𝑐))
1713, 15, 16cadbi123d 1611 . . . . . . . . . . 11 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐) ↔ cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐)))
1817ifbid 4503 . . . . . . . . . 10 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅) = if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))
1918mpoeq3dva 7435 . . . . . . . . 9 ((𝑥 = 𝐴𝑦 = 𝐵) → (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)) = (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)))
2019seqeq2d 13931 . . . . . . . 8 ((𝑥 = 𝐴𝑦 = 𝐵) → seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))) = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))))
21 sadval.c . . . . . . . 8 𝐶 = seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))
2220, 21eqtr4di 2789 . . . . . . 7 ((𝑥 = 𝐴𝑦 = 𝐵) → seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))) = 𝐶)
2322fveq1d 6836 . . . . . 6 ((𝑥 = 𝐴𝑦 = 𝐵) → (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘) = (𝐶𝑘))
2423eleq2d 2822 . . . . 5 ((𝑥 = 𝐴𝑦 = 𝐵) → (∅ ∈ (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘) ↔ ∅ ∈ (𝐶𝑘)))
259, 11, 24hadbi123d 1596 . . . 4 ((𝑥 = 𝐴𝑦 = 𝐵) → (hadd(𝑘𝑥, 𝑘𝑦, ∅ ∈ (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘)) ↔ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))))
2625rabbidv 3406 . . 3 ((𝑥 = 𝐴𝑦 = 𝐵) → {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝑥, 𝑘𝑦, ∅ ∈ (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘))} = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
27 df-sad 16378 . . 3 sadd = (𝑥 ∈ 𝒫 ℕ0, 𝑦 ∈ 𝒫 ℕ0 ↦ {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝑥, 𝑘𝑦, ∅ ∈ (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘))})
282rabex 5284 . . 3 {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))} ∈ V
2926, 27, 28ovmpoa 7513 . 2 ((𝐴 ∈ 𝒫 ℕ0𝐵 ∈ 𝒫 ℕ0) → (𝐴 sadd 𝐵) = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
304, 7, 29syl2anc 584 1 (𝜑 → (𝐴 sadd 𝐵) = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395  w3a 1086   = wceq 1541  haddwhad 1594  caddwcad 1607  wcel 2113  {crab 3399  wss 3901  c0 4285  ifcif 4479  𝒫 cpw 4554  cmpt 5179  cfv 6492  (class class class)co 7358  cmpo 7360  1oc1o 8390  2oc2o 8391  0cc0 11026  1c1 11027  cmin 11364  0cn0 12401  seqcseq 13924   sadd csad 16347
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1968  ax-7 2009  ax-8 2115  ax-9 2123  ax-10 2146  ax-11 2162  ax-12 2184  ax-ext 2708  ax-sep 5241  ax-nul 5251  ax-pr 5377  ax-un 7680  ax-cnex 11082  ax-1cn 11084  ax-addcl 11086
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3or 1087  df-3an 1088  df-xor 1513  df-tru 1544  df-fal 1554  df-had 1595  df-cad 1608  df-ex 1781  df-nf 1785  df-sb 2068  df-mo 2539  df-eu 2569  df-clab 2715  df-cleq 2728  df-clel 2811  df-nfc 2885  df-ne 2933  df-ral 3052  df-rex 3061  df-reu 3351  df-rab 3400  df-v 3442  df-sbc 3741  df-csb 3850  df-dif 3904  df-un 3906  df-in 3908  df-ss 3918  df-pss 3921  df-nul 4286  df-if 4480  df-pw 4556  df-sn 4581  df-pr 4583  df-op 4587  df-uni 4864  df-iun 4948  df-br 5099  df-opab 5161  df-mpt 5180  df-tr 5206  df-id 5519  df-eprel 5524  df-po 5532  df-so 5533  df-fr 5577  df-we 5579  df-xp 5630  df-rel 5631  df-cnv 5632  df-co 5633  df-dm 5634  df-rn 5635  df-res 5636  df-ima 5637  df-pred 6259  df-ord 6320  df-on 6321  df-lim 6322  df-suc 6323  df-iota 6448  df-fun 6494  df-fn 6495  df-f 6496  df-f1 6497  df-fo 6498  df-f1o 6499  df-fv 6500  df-ov 7361  df-oprab 7362  df-mpo 7363  df-om 7809  df-2nd 7934  df-frecs 8223  df-wrecs 8254  df-recs 8303  df-rdg 8341  df-nn 12146  df-n0 12402  df-seq 13925  df-sad 16378
This theorem is referenced by:  sadval  16383  sadadd2lem  16386  sadadd3  16388  sadcl  16389  sadcom  16390
  Copyright terms: Public domain W3C validator