| Mathbox for Alexander van der Vekens |
< Previous
Next >
Nearby theorems |
||
| Mirrors > Home > MPE Home > Th. List > Mathboxes > nn0mullong | Structured version Visualization version GIF version | ||
| 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 16408. (Contributed by AV, 7-Jun-2020.) |
| Ref | Expression |
|---|---|
| nn0mullong | ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = Σ𝑘 ∈ (0..^(#b‘𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | nn0sumshdig 48751 | . . . 4 ⊢ (𝐴 ∈ ℕ0 → 𝐴 = Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘))) | |
| 2 | 1 | adantr 480 | . . 3 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → 𝐴 = Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘))) |
| 3 | 2 | oveq1d 7369 | . 2 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = (Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
| 4 | fzofi 13885 | . . . 4 ⊢ (0..^(#b‘𝐴)) ∈ Fin | |
| 5 | 4 | a1i 11 | . . 3 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (0..^(#b‘𝐴)) ∈ Fin) |
| 6 | nn0cn 12400 | . . . 4 ⊢ (𝐵 ∈ ℕ0 → 𝐵 ∈ ℂ) | |
| 7 | 6 | adantl 481 | . . 3 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → 𝐵 ∈ ℂ) |
| 8 | 2nn 12207 | . . . . . . 7 ⊢ 2 ∈ ℕ | |
| 9 | 8 | a1i 11 | . . . . . 6 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → 2 ∈ ℕ) |
| 10 | elfzoelz 13563 | . . . . . . 7 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → 𝑘 ∈ ℤ) | |
| 11 | 10 | adantl 481 | . . . . . 6 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → 𝑘 ∈ ℤ) |
| 12 | nn0rp0 13359 | . . . . . . . 8 ⊢ (𝐴 ∈ ℕ0 → 𝐴 ∈ (0[,)+∞)) | |
| 13 | 12 | adantr 480 | . . . . . . 7 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → 𝐴 ∈ (0[,)+∞)) |
| 14 | 13 | adantr 480 | . . . . . 6 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → 𝐴 ∈ (0[,)+∞)) |
| 15 | digvalnn0 48727 | . . . . . 6 ⊢ ((2 ∈ ℕ ∧ 𝑘 ∈ ℤ ∧ 𝐴 ∈ (0[,)+∞)) → (𝑘(digit‘2)𝐴) ∈ ℕ0) | |
| 16 | 9, 11, 14, 15 | syl3anc 1373 | . . . . 5 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℕ0) |
| 17 | 16 | nn0cnd 12453 | . . . 4 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℂ) |
| 18 | 2nn0 12407 | . . . . . . . 8 ⊢ 2 ∈ ℕ0 | |
| 19 | 18 | a1i 11 | . . . . . . 7 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → 2 ∈ ℕ0) |
| 20 | elfzonn0 13611 | . . . . . . 7 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → 𝑘 ∈ ℕ0) | |
| 21 | 19, 20 | nn0expcld 14157 | . . . . . 6 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → (2↑𝑘) ∈ ℕ0) |
| 22 | 21 | nn0cnd 12453 | . . . . 5 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → (2↑𝑘) ∈ ℂ) |
| 23 | 22 | adantl 481 | . . . 4 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → (2↑𝑘) ∈ ℂ) |
| 24 | 17, 23 | mulcld 11141 | . . 3 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → ((𝑘(digit‘2)𝐴) · (2↑𝑘)) ∈ ℂ) |
| 25 | 5, 7, 24 | fsummulc1 15696 | . 2 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵) = Σ𝑘 ∈ (0..^(#b‘𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
| 26 | 3, 25 | eqtrd 2768 | 1 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = Σ𝑘 ∈ (0..^(#b‘𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
| Colors of variables: wff setvar class |
| Syntax hints: → wi 4 ∧ wa 395 = wceq 1541 ∈ wcel 2113 ‘cfv 6488 (class class class)co 7354 Fincfn 8877 ℂcc 11013 0cc0 11015 · cmul 11020 +∞cpnf 11152 ℕcn 12134 2c2 12189 ℕ0cn0 12390 ℤcz 12477 [,)cico 13251 ..^cfzo 13558 ↑cexp 13972 Σcsu 15597 #bcblen 48697 digitcdig 48723 |
| 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 2182 ax-ext 2705 ax-rep 5221 ax-sep 5238 ax-nul 5248 ax-pow 5307 ax-pr 5374 ax-un 7676 ax-inf2 9540 ax-cnex 11071 ax-resscn 11072 ax-1cn 11073 ax-icn 11074 ax-addcl 11075 ax-addrcl 11076 ax-mulcl 11077 ax-mulrcl 11078 ax-mulcom 11079 ax-addass 11080 ax-mulass 11081 ax-distr 11082 ax-i2m1 11083 ax-1ne0 11084 ax-1rid 11085 ax-rnegex 11086 ax-rrecex 11087 ax-cnre 11088 ax-pre-lttri 11089 ax-pre-lttrn 11090 ax-pre-ltadd 11091 ax-pre-mulgt0 11092 ax-pre-sup 11093 ax-addf 11094 |
| This theorem depends on definitions: df-bi 207 df-an 396 df-or 848 df-3or 1087 df-3an 1088 df-tru 1544 df-fal 1554 df-ex 1781 df-nf 1785 df-sb 2068 df-mo 2537 df-eu 2566 df-clab 2712 df-cleq 2725 df-clel 2808 df-nfc 2882 df-ne 2930 df-nel 3034 df-ral 3049 df-rex 3058 df-rmo 3347 df-reu 3348 df-rab 3397 df-v 3439 df-sbc 3738 df-csb 3847 df-dif 3901 df-un 3903 df-in 3905 df-ss 3915 df-pss 3918 df-nul 4283 df-if 4477 df-pw 4553 df-sn 4578 df-pr 4580 df-tp 4582 df-op 4584 df-uni 4861 df-int 4900 df-iun 4945 df-iin 4946 df-br 5096 df-opab 5158 df-mpt 5177 df-tr 5203 df-id 5516 df-eprel 5521 df-po 5529 df-so 5530 df-fr 5574 df-se 5575 df-we 5576 df-xp 5627 df-rel 5628 df-cnv 5629 df-co 5630 df-dm 5631 df-rn 5632 df-res 5633 df-ima 5634 df-pred 6255 df-ord 6316 df-on 6317 df-lim 6318 df-suc 6319 df-iota 6444 df-fun 6490 df-fn 6491 df-f 6492 df-f1 6493 df-fo 6494 df-f1o 6495 df-fv 6496 df-isom 6497 df-riota 7311 df-ov 7357 df-oprab 7358 df-mpo 7359 df-of 7618 df-om 7805 df-1st 7929 df-2nd 7930 df-supp 8099 df-frecs 8219 df-wrecs 8250 df-recs 8299 df-rdg 8337 df-1o 8393 df-2o 8394 df-er 8630 df-map 8760 df-pm 8761 df-ixp 8830 df-en 8878 df-dom 8879 df-sdom 8880 df-fin 8881 df-fsupp 9255 df-fi 9304 df-sup 9335 df-inf 9336 df-oi 9405 df-card 9841 df-pnf 11157 df-mnf 11158 df-xr 11159 df-ltxr 11160 df-le 11161 df-sub 11355 df-neg 11356 df-div 11784 df-nn 12135 df-2 12197 df-3 12198 df-4 12199 df-5 12200 df-6 12201 df-7 12202 df-8 12203 df-9 12204 df-n0 12391 df-z 12478 df-dec 12597 df-uz 12741 df-q 12851 df-rp 12895 df-xneg 13015 df-xadd 13016 df-xmul 13017 df-ioo 13253 df-ioc 13254 df-ico 13255 df-icc 13256 df-fz 13412 df-fzo 13559 df-fl 13700 df-mod 13778 df-seq 13913 df-exp 13973 df-fac 14185 df-bc 14214 df-hash 14242 df-shft 14978 df-cj 15010 df-re 15011 df-im 15012 df-sqrt 15146 df-abs 15147 df-limsup 15382 df-clim 15399 df-rlim 15400 df-sum 15598 df-ef 15978 df-sin 15980 df-cos 15981 df-pi 15983 df-dvds 16168 df-struct 17062 df-sets 17079 df-slot 17097 df-ndx 17109 df-base 17125 df-ress 17146 df-plusg 17178 df-mulr 17179 df-starv 17180 df-sca 17181 df-vsca 17182 df-ip 17183 df-tset 17184 df-ple 17185 df-ds 17187 df-unif 17188 df-hom 17189 df-cco 17190 df-rest 17330 df-topn 17331 df-0g 17349 df-gsum 17350 df-topgen 17351 df-pt 17352 df-prds 17355 df-xrs 17410 df-qtop 17415 df-imas 17416 df-xps 17418 df-mre 17492 df-mrc 17493 df-acs 17495 df-mgm 18552 df-sgrp 18631 df-mnd 18647 df-submnd 18696 df-mulg 18985 df-cntz 19233 df-cmn 19698 df-psmet 21287 df-xmet 21288 df-met 21289 df-bl 21290 df-mopn 21291 df-fbas 21292 df-fg 21293 df-cnfld 21296 df-top 22812 df-topon 22829 df-topsp 22851 df-bases 22864 df-cld 22937 df-ntr 22938 df-cls 22939 df-nei 23016 df-lp 23054 df-perf 23055 df-cn 23145 df-cnp 23146 df-haus 23233 df-tx 23480 df-hmeo 23673 df-fil 23764 df-fm 23856 df-flim 23857 df-flf 23858 df-xms 24238 df-ms 24239 df-tms 24240 df-cncf 24801 df-limc 25797 df-dv 25798 df-log 26495 df-cxp 26496 df-logb 26705 df-blen 48698 df-dig 48724 |
| This theorem is referenced by: (None) |
| Copyright terms: Public domain | W3C validator |