Users' Mathboxes Mathbox for Alexander van der Vekens < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >   Mathboxes  >  nn0mullong Structured version   Visualization version   GIF version

Theorem nn0mullong 45923
Description: Standard algorithm (also known as "long multiplication" or "grade-school multiplication") to calculate the product of two nonnegative integers 𝑎 and 𝑏 by multiplying the multiplicand 𝑏 by each digit of the multiplier 𝑎 and then add up all the properly shifted results. Here, the binary representation of the multiplier 𝑎 is used, i.e., the above mentioned "digits" are 0 or 1. This is a similar result as provided by smumul 16181. (Contributed by AV, 7-Jun-2020.)
Assertion
Ref Expression
nn0mullong ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = Σ𝑘 ∈ (0..^(#b𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
Distinct variable groups:   𝐴,𝑘   𝐵,𝑘

Proof of Theorem nn0mullong
StepHypRef Expression
1 nn0sumshdig 45921 . . . 4 (𝐴 ∈ ℕ0𝐴 = Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)))
21adantr 480 . . 3 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → 𝐴 = Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)))
32oveq1d 7283 . 2 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = (Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
4 fzofi 13675 . . . 4 (0..^(#b𝐴)) ∈ Fin
54a1i 11 . . 3 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (0..^(#b𝐴)) ∈ Fin)
6 nn0cn 12226 . . . 4 (𝐵 ∈ ℕ0𝐵 ∈ ℂ)
76adantl 481 . . 3 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → 𝐵 ∈ ℂ)
8 2nn 12029 . . . . . . 7 2 ∈ ℕ
98a1i 11 . . . . . 6 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → 2 ∈ ℕ)
10 elfzoelz 13369 . . . . . . 7 (𝑘 ∈ (0..^(#b𝐴)) → 𝑘 ∈ ℤ)
1110adantl 481 . . . . . 6 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → 𝑘 ∈ ℤ)
12 nn0rp0 13169 . . . . . . . 8 (𝐴 ∈ ℕ0𝐴 ∈ (0[,)+∞))
1312adantr 480 . . . . . . 7 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → 𝐴 ∈ (0[,)+∞))
1413adantr 480 . . . . . 6 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → 𝐴 ∈ (0[,)+∞))
15 digvalnn0 45897 . . . . . 6 ((2 ∈ ℕ ∧ 𝑘 ∈ ℤ ∧ 𝐴 ∈ (0[,)+∞)) → (𝑘(digit‘2)𝐴) ∈ ℕ0)
169, 11, 14, 15syl3anc 1369 . . . . 5 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℕ0)
1716nn0cnd 12278 . . . 4 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℂ)
18 2nn0 12233 . . . . . . . 8 2 ∈ ℕ0
1918a1i 11 . . . . . . 7 (𝑘 ∈ (0..^(#b𝐴)) → 2 ∈ ℕ0)
20 elfzonn0 13413 . . . . . . 7 (𝑘 ∈ (0..^(#b𝐴)) → 𝑘 ∈ ℕ0)
2119, 20nn0expcld 13942 . . . . . 6 (𝑘 ∈ (0..^(#b𝐴)) → (2↑𝑘) ∈ ℕ0)
2221nn0cnd 12278 . . . . 5 (𝑘 ∈ (0..^(#b𝐴)) → (2↑𝑘) ∈ ℂ)
2322adantl 481 . . . 4 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → (2↑𝑘) ∈ ℂ)
2417, 23mulcld 10979 . . 3 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → ((𝑘(digit‘2)𝐴) · (2↑𝑘)) ∈ ℂ)
255, 7, 24fsummulc1 15478 . 2 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵) = Σ𝑘 ∈ (0..^(#b𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
263, 25eqtrd 2779 1 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = Σ𝑘 ∈ (0..^(#b𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1541  wcel 2109  cfv 6430  (class class class)co 7268  Fincfn 8707  cc 10853  0cc0 10855   · cmul 10860  +∞cpnf 10990  cn 11956  2c2 12011  0cn0 12216  cz 12302  [,)cico 13063  ..^cfzo 13364  cexp 13763  Σcsu 15378  #bcblen 45867  digitcdig 45893
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1801  ax-4 1815  ax-5 1916  ax-6 1974  ax-7 2014  ax-8 2111  ax-9 2119  ax-10 2140  ax-11 2157  ax-12 2174  ax-ext 2710  ax-rep 5213  ax-sep 5226  ax-nul 5233  ax-pow 5291  ax-pr 5355  ax-un 7579  ax-inf2 9360  ax-cnex 10911  ax-resscn 10912  ax-1cn 10913  ax-icn 10914  ax-addcl 10915  ax-addrcl 10916  ax-mulcl 10917  ax-mulrcl 10918  ax-mulcom 10919  ax-addass 10920  ax-mulass 10921  ax-distr 10922  ax-i2m1 10923  ax-1ne0 10924  ax-1rid 10925  ax-rnegex 10926  ax-rrecex 10927  ax-cnre 10928  ax-pre-lttri 10929  ax-pre-lttrn 10930  ax-pre-ltadd 10931  ax-pre-mulgt0 10932  ax-pre-sup 10933  ax-addf 10934  ax-mulf 10935
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 844  df-3or 1086  df-3an 1087  df-tru 1544  df-fal 1554  df-ex 1786  df-nf 1790  df-sb 2071  df-mo 2541  df-eu 2570  df-clab 2717  df-cleq 2731  df-clel 2817  df-nfc 2890  df-ne 2945  df-nel 3051  df-ral 3070  df-rex 3071  df-reu 3072  df-rmo 3073  df-rab 3074  df-v 3432  df-sbc 3720  df-csb 3837  df-dif 3894  df-un 3896  df-in 3898  df-ss 3908  df-pss 3910  df-nul 4262  df-if 4465  df-pw 4540  df-sn 4567  df-pr 4569  df-tp 4571  df-op 4573  df-uni 4845  df-int 4885  df-iun 4931  df-iin 4932  df-br 5079  df-opab 5141  df-mpt 5162  df-tr 5196  df-id 5488  df-eprel 5494  df-po 5502  df-so 5503  df-fr 5543  df-se 5544  df-we 5545  df-xp 5594  df-rel 5595  df-cnv 5596  df-co 5597  df-dm 5598  df-rn 5599  df-res 5600  df-ima 5601  df-pred 6199  df-ord 6266  df-on 6267  df-lim 6268  df-suc 6269  df-iota 6388  df-fun 6432  df-fn 6433  df-f 6434  df-f1 6435  df-fo 6436  df-f1o 6437  df-fv 6438  df-isom 6439  df-riota 7225  df-ov 7271  df-oprab 7272  df-mpo 7273  df-of 7524  df-om 7701  df-1st 7817  df-2nd 7818  df-supp 7962  df-frecs 8081  df-wrecs 8112  df-recs 8186  df-rdg 8225  df-1o 8281  df-2o 8282  df-er 8472  df-map 8591  df-pm 8592  df-ixp 8660  df-en 8708  df-dom 8709  df-sdom 8710  df-fin 8711  df-fsupp 9090  df-fi 9131  df-sup 9162  df-inf 9163  df-oi 9230  df-card 9681  df-pnf 10995  df-mnf 10996  df-xr 10997  df-ltxr 10998  df-le 10999  df-sub 11190  df-neg 11191  df-div 11616  df-nn 11957  df-2 12019  df-3 12020  df-4 12021  df-5 12022  df-6 12023  df-7 12024  df-8 12025  df-9 12026  df-n0 12217  df-z 12303  df-dec 12420  df-uz 12565  df-q 12671  df-rp 12713  df-xneg 12830  df-xadd 12831  df-xmul 12832  df-ioo 13065  df-ioc 13066  df-ico 13067  df-icc 13068  df-fz 13222  df-fzo 13365  df-fl 13493  df-mod 13571  df-seq 13703  df-exp 13764  df-fac 13969  df-bc 13998  df-hash 14026  df-shft 14759  df-cj 14791  df-re 14792  df-im 14793  df-sqrt 14927  df-abs 14928  df-limsup 15161  df-clim 15178  df-rlim 15179  df-sum 15379  df-ef 15758  df-sin 15760  df-cos 15761  df-pi 15763  df-dvds 15945  df-struct 16829  df-sets 16846  df-slot 16864  df-ndx 16876  df-base 16894  df-ress 16923  df-plusg 16956  df-mulr 16957  df-starv 16958  df-sca 16959  df-vsca 16960  df-ip 16961  df-tset 16962  df-ple 16963  df-ds 16965  df-unif 16966  df-hom 16967  df-cco 16968  df-rest 17114  df-topn 17115  df-0g 17133  df-gsum 17134  df-topgen 17135  df-pt 17136  df-prds 17139  df-xrs 17194  df-qtop 17199  df-imas 17200  df-xps 17202  df-mre 17276  df-mrc 17277  df-acs 17279  df-mgm 18307  df-sgrp 18356  df-mnd 18367  df-submnd 18412  df-mulg 18682  df-cntz 18904  df-cmn 19369  df-psmet 20570  df-xmet 20571  df-met 20572  df-bl 20573  df-mopn 20574  df-fbas 20575  df-fg 20576  df-cnfld 20579  df-top 22024  df-topon 22041  df-topsp 22063  df-bases 22077  df-cld 22151  df-ntr 22152  df-cls 22153  df-nei 22230  df-lp 22268  df-perf 22269  df-cn 22359  df-cnp 22360  df-haus 22447  df-tx 22694  df-hmeo 22887  df-fil 22978  df-fm 23070  df-flim 23071  df-flf 23072  df-xms 23454  df-ms 23455  df-tms 23456  df-cncf 24022  df-limc 25011  df-dv 25012  df-log 25693  df-cxp 25694  df-logb 25896  df-blen 45868  df-dig 45894
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator