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

Theorem sadfval 16159
Description: Define the addition of two bit sequences, using df-had 1595 and df-cad 1609 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 12239 . . . 4 0 ∈ V
32elpw2 5269 . . 3 (𝐴 ∈ 𝒫 ℕ0𝐴 ⊆ ℕ0)
41, 3sylibr 233 . 2 (𝜑𝐴 ∈ 𝒫 ℕ0)
5 sadval.b . . 3 (𝜑𝐵 ⊆ ℕ0)
62elpw2 5269 . . 3 (𝐵 ∈ 𝒫 ℕ0𝐵 ⊆ ℕ0)
75, 6sylibr 233 . 2 (𝜑𝐵 ∈ 𝒫 ℕ0)
8 simpl 483 . . . . . 6 ((𝑥 = 𝐴𝑦 = 𝐵) → 𝑥 = 𝐴)
98eleq2d 2824 . . . . 5 ((𝑥 = 𝐴𝑦 = 𝐵) → (𝑘𝑥𝑘𝐴))
10 simpr 485 . . . . . 6 ((𝑥 = 𝐴𝑦 = 𝐵) → 𝑦 = 𝐵)
1110eleq2d 2824 . . . . 5 ((𝑥 = 𝐴𝑦 = 𝐵) → (𝑘𝑦𝑘𝐵))
12 simp1l 1196 . . . . . . . . . . . . 13 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → 𝑥 = 𝐴)
1312eleq2d 2824 . . . . . . . . . . . 12 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (𝑚𝑥𝑚𝐴))
14 simp1r 1197 . . . . . . . . . . . . 13 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → 𝑦 = 𝐵)
1514eleq2d 2824 . . . . . . . . . . . 12 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (𝑚𝑦𝑚𝐵))
16 biidd 261 . . . . . . . . . . . 12 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (∅ ∈ 𝑐 ↔ ∅ ∈ 𝑐))
1713, 15, 16cadbi123d 1612 . . . . . . . . . . 11 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → (cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐) ↔ cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐)))
1817ifbid 4482 . . . . . . . . . 10 (((𝑥 = 𝐴𝑦 = 𝐵) ∧ 𝑐 ∈ 2o𝑚 ∈ ℕ0) → if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅) = if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅))
1918mpoeq3dva 7352 . . . . . . . . 9 ((𝑥 = 𝐴𝑦 = 𝐵) → (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)) = (𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝐴, 𝑚𝐵, ∅ ∈ 𝑐), 1o, ∅)))
2019seqeq2d 13728 . . . . . . . 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 2796 . . . . . . 7 ((𝑥 = 𝐴𝑦 = 𝐵) → seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1)))) = 𝐶)
2322fveq1d 6776 . . . . . 6 ((𝑥 = 𝐴𝑦 = 𝐵) → (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘) = (𝐶𝑘))
2423eleq2d 2824 . . . . 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 3414 . . 3 ((𝑥 = 𝐴𝑦 = 𝐵) → {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝑥, 𝑘𝑦, ∅ ∈ (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘))} = {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))})
27 df-sad 16158 . . 3 sadd = (𝑥 ∈ 𝒫 ℕ0, 𝑦 ∈ 𝒫 ℕ0 ↦ {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝑥, 𝑘𝑦, ∅ ∈ (seq0((𝑐 ∈ 2o, 𝑚 ∈ ℕ0 ↦ if(cadd(𝑚𝑥, 𝑚𝑦, ∅ ∈ 𝑐), 1o, ∅)), (𝑛 ∈ ℕ0 ↦ if(𝑛 = 0, ∅, (𝑛 − 1))))‘𝑘))})
282rabex 5256 . . 3 {𝑘 ∈ ℕ0 ∣ hadd(𝑘𝐴, 𝑘𝐵, ∅ ∈ (𝐶𝑘))} ∈ V
2926, 27, 28ovmpoa 7428 . 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 396  w3a 1086   = wceq 1539  haddwhad 1594  caddwcad 1608  wcel 2106  {crab 3068  wss 3887  c0 4256  ifcif 4459  𝒫 cpw 4533  cmpt 5157  cfv 6433  (class class class)co 7275  cmpo 7277  1oc1o 8290  2oc2o 8291  0cc0 10871  1c1 10872  cmin 11205  0cn0 12233  seqcseq 13721   sadd csad 16127
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1798  ax-4 1812  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2709  ax-sep 5223  ax-nul 5230  ax-pr 5352  ax-un 7588  ax-cnex 10927  ax-1cn 10929  ax-addcl 10931
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 845  df-3or 1087  df-3an 1088  df-xor 1507  df-tru 1542  df-fal 1552  df-had 1595  df-cad 1609  df-ex 1783  df-nf 1787  df-sb 2068  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2816  df-nfc 2889  df-ne 2944  df-ral 3069  df-rex 3070  df-reu 3072  df-rab 3073  df-v 3434  df-sbc 3717  df-csb 3833  df-dif 3890  df-un 3892  df-in 3894  df-ss 3904  df-pss 3906  df-nul 4257  df-if 4460  df-pw 4535  df-sn 4562  df-pr 4564  df-op 4568  df-uni 4840  df-iun 4926  df-br 5075  df-opab 5137  df-mpt 5158  df-tr 5192  df-id 5489  df-eprel 5495  df-po 5503  df-so 5504  df-fr 5544  df-we 5546  df-xp 5595  df-rel 5596  df-cnv 5597  df-co 5598  df-dm 5599  df-rn 5600  df-res 5601  df-ima 5602  df-pred 6202  df-ord 6269  df-on 6270  df-lim 6271  df-suc 6272  df-iota 6391  df-fun 6435  df-fn 6436  df-f 6437  df-f1 6438  df-fo 6439  df-f1o 6440  df-fv 6441  df-ov 7278  df-oprab 7279  df-mpo 7280  df-om 7713  df-2nd 7832  df-frecs 8097  df-wrecs 8128  df-recs 8202  df-rdg 8241  df-nn 11974  df-n0 12234  df-seq 13722  df-sad 16158
This theorem is referenced by:  sadval  16163  sadadd2lem  16166  sadadd3  16168  sadcl  16169  sadcom  16170
  Copyright terms: Public domain W3C validator