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 44692
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 15844. (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 44690 . . . 4 (𝐴 ∈ ℕ0𝐴 = Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)))
21adantr 483 . . 3 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → 𝐴 = Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)))
32oveq1d 7173 . 2 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = (Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
4 fzofi 13345 . . . 4 (0..^(#b𝐴)) ∈ Fin
54a1i 11 . . 3 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (0..^(#b𝐴)) ∈ Fin)
6 nn0cn 11910 . . . 4 (𝐵 ∈ ℕ0𝐵 ∈ ℂ)
76adantl 484 . . 3 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → 𝐵 ∈ ℂ)
8 2nn 11713 . . . . . . 7 2 ∈ ℕ
98a1i 11 . . . . . 6 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → 2 ∈ ℕ)
10 elfzoelz 13041 . . . . . . 7 (𝑘 ∈ (0..^(#b𝐴)) → 𝑘 ∈ ℤ)
1110adantl 484 . . . . . 6 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → 𝑘 ∈ ℤ)
12 nn0rp0 12846 . . . . . . . 8 (𝐴 ∈ ℕ0𝐴 ∈ (0[,)+∞))
1312adantr 483 . . . . . . 7 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → 𝐴 ∈ (0[,)+∞))
1413adantr 483 . . . . . 6 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → 𝐴 ∈ (0[,)+∞))
15 digvalnn0 44666 . . . . . 6 ((2 ∈ ℕ ∧ 𝑘 ∈ ℤ ∧ 𝐴 ∈ (0[,)+∞)) → (𝑘(digit‘2)𝐴) ∈ ℕ0)
169, 11, 14, 15syl3anc 1367 . . . . 5 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℕ0)
1716nn0cnd 11960 . . . 4 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℂ)
18 2nn0 11917 . . . . . . . 8 2 ∈ ℕ0
1918a1i 11 . . . . . . 7 (𝑘 ∈ (0..^(#b𝐴)) → 2 ∈ ℕ0)
20 elfzonn0 13085 . . . . . . 7 (𝑘 ∈ (0..^(#b𝐴)) → 𝑘 ∈ ℕ0)
2119, 20nn0expcld 13610 . . . . . 6 (𝑘 ∈ (0..^(#b𝐴)) → (2↑𝑘) ∈ ℕ0)
2221nn0cnd 11960 . . . . 5 (𝑘 ∈ (0..^(#b𝐴)) → (2↑𝑘) ∈ ℂ)
2322adantl 484 . . . 4 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → (2↑𝑘) ∈ ℂ)
2417, 23mulcld 10663 . . 3 (((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b𝐴))) → ((𝑘(digit‘2)𝐴) · (2↑𝑘)) ∈ ℂ)
255, 7, 24fsummulc1 15142 . 2 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (Σ𝑘 ∈ (0..^(#b𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵) = Σ𝑘 ∈ (0..^(#b𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
263, 25eqtrd 2858 1 ((𝐴 ∈ ℕ0𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = Σ𝑘 ∈ (0..^(#b𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 398   = wceq 1537  wcel 2114  cfv 6357  (class class class)co 7158  Fincfn 8511  cc 10537  0cc0 10539   · cmul 10544  +∞cpnf 10674  cn 11640  2c2 11695  0cn0 11900  cz 11984  [,)cico 12743  ..^cfzo 13036  cexp 13432  Σcsu 15044  #bcblen 44636  digitcdig 44662
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 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2177  ax-ext 2795  ax-rep 5192  ax-sep 5205  ax-nul 5212  ax-pow 5268  ax-pr 5332  ax-un 7463  ax-inf2 9106  ax-cnex 10595  ax-resscn 10596  ax-1cn 10597  ax-icn 10598  ax-addcl 10599  ax-addrcl 10600  ax-mulcl 10601  ax-mulrcl 10602  ax-mulcom 10603  ax-addass 10604  ax-mulass 10605  ax-distr 10606  ax-i2m1 10607  ax-1ne0 10608  ax-1rid 10609  ax-rnegex 10610  ax-rrecex 10611  ax-cnre 10612  ax-pre-lttri 10613  ax-pre-lttrn 10614  ax-pre-ltadd 10615  ax-pre-mulgt0 10616  ax-pre-sup 10617  ax-addf 10618  ax-mulf 10619
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-tru 1540  df-fal 1550  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2802  df-cleq 2816  df-clel 2895  df-nfc 2965  df-ne 3019  df-nel 3126  df-ral 3145  df-rex 3146  df-reu 3147  df-rmo 3148  df-rab 3149  df-v 3498  df-sbc 3775  df-csb 3886  df-dif 3941  df-un 3943  df-in 3945  df-ss 3954  df-pss 3956  df-nul 4294  df-if 4470  df-pw 4543  df-sn 4570  df-pr 4572  df-tp 4574  df-op 4576  df-uni 4841  df-int 4879  df-iun 4923  df-iin 4924  df-br 5069  df-opab 5131  df-mpt 5149  df-tr 5175  df-id 5462  df-eprel 5467  df-po 5476  df-so 5477  df-fr 5516  df-se 5517  df-we 5518  df-xp 5563  df-rel 5564  df-cnv 5565  df-co 5566  df-dm 5567  df-rn 5568  df-res 5569  df-ima 5570  df-pred 6150  df-ord 6196  df-on 6197  df-lim 6198  df-suc 6199  df-iota 6316  df-fun 6359  df-fn 6360  df-f 6361  df-f1 6362  df-fo 6363  df-f1o 6364  df-fv 6365  df-isom 6366  df-riota 7116  df-ov 7161  df-oprab 7162  df-mpo 7163  df-of 7411  df-om 7583  df-1st 7691  df-2nd 7692  df-supp 7833  df-wrecs 7949  df-recs 8010  df-rdg 8048  df-1o 8104  df-2o 8105  df-oadd 8108  df-er 8291  df-map 8410  df-pm 8411  df-ixp 8464  df-en 8512  df-dom 8513  df-sdom 8514  df-fin 8515  df-fsupp 8836  df-fi 8877  df-sup 8908  df-inf 8909  df-oi 8976  df-card 9370  df-pnf 10679  df-mnf 10680  df-xr 10681  df-ltxr 10682  df-le 10683  df-sub 10874  df-neg 10875  df-div 11300  df-nn 11641  df-2 11703  df-3 11704  df-4 11705  df-5 11706  df-6 11707  df-7 11708  df-8 11709  df-9 11710  df-n0 11901  df-z 11985  df-dec 12102  df-uz 12247  df-q 12352  df-rp 12393  df-xneg 12510  df-xadd 12511  df-xmul 12512  df-ioo 12745  df-ioc 12746  df-ico 12747  df-icc 12748  df-fz 12896  df-fzo 13037  df-fl 13165  df-mod 13241  df-seq 13373  df-exp 13433  df-fac 13637  df-bc 13666  df-hash 13694  df-shft 14428  df-cj 14460  df-re 14461  df-im 14462  df-sqrt 14596  df-abs 14597  df-limsup 14830  df-clim 14847  df-rlim 14848  df-sum 15045  df-ef 15423  df-sin 15425  df-cos 15426  df-pi 15428  df-dvds 15610  df-struct 16487  df-ndx 16488  df-slot 16489  df-base 16491  df-sets 16492  df-ress 16493  df-plusg 16580  df-mulr 16581  df-starv 16582  df-sca 16583  df-vsca 16584  df-ip 16585  df-tset 16586  df-ple 16587  df-ds 16589  df-unif 16590  df-hom 16591  df-cco 16592  df-rest 16698  df-topn 16699  df-0g 16717  df-gsum 16718  df-topgen 16719  df-pt 16720  df-prds 16723  df-xrs 16777  df-qtop 16782  df-imas 16783  df-xps 16785  df-mre 16859  df-mrc 16860  df-acs 16862  df-mgm 17854  df-sgrp 17903  df-mnd 17914  df-submnd 17959  df-mulg 18227  df-cntz 18449  df-cmn 18910  df-psmet 20539  df-xmet 20540  df-met 20541  df-bl 20542  df-mopn 20543  df-fbas 20544  df-fg 20545  df-cnfld 20548  df-top 21504  df-topon 21521  df-topsp 21543  df-bases 21556  df-cld 21629  df-ntr 21630  df-cls 21631  df-nei 21708  df-lp 21746  df-perf 21747  df-cn 21837  df-cnp 21838  df-haus 21925  df-tx 22172  df-hmeo 22365  df-fil 22456  df-fm 22548  df-flim 22549  df-flf 22550  df-xms 22932  df-ms 22933  df-tms 22934  df-cncf 23488  df-limc 24466  df-dv 24467  df-log 25142  df-cxp 25143  df-logb 25345  df-blen 44637  df-dig 44663
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator