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 16181. (Contributed by AV, 7-Jun-2020.) |
Ref | Expression |
---|---|
nn0mullong | ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = Σ𝑘 ∈ (0..^(#b‘𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | nn0sumshdig 45921 | . . . 4 ⊢ (𝐴 ∈ ℕ0 → 𝐴 = Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘))) | |
2 | 1 | adantr 480 | . . 3 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → 𝐴 = Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘))) |
3 | 2 | oveq1d 7283 | . 2 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (𝐴 · 𝐵) = (Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
4 | fzofi 13675 | . . . 4 ⊢ (0..^(#b‘𝐴)) ∈ Fin | |
5 | 4 | a1i 11 | . . 3 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (0..^(#b‘𝐴)) ∈ Fin) |
6 | nn0cn 12226 | . . . 4 ⊢ (𝐵 ∈ ℕ0 → 𝐵 ∈ ℂ) | |
7 | 6 | adantl 481 | . . 3 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → 𝐵 ∈ ℂ) |
8 | 2nn 12029 | . . . . . . 7 ⊢ 2 ∈ ℕ | |
9 | 8 | a1i 11 | . . . . . 6 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → 2 ∈ ℕ) |
10 | elfzoelz 13369 | . . . . . . 7 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → 𝑘 ∈ ℤ) | |
11 | 10 | adantl 481 | . . . . . 6 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → 𝑘 ∈ ℤ) |
12 | nn0rp0 13169 | . . . . . . . 8 ⊢ (𝐴 ∈ ℕ0 → 𝐴 ∈ (0[,)+∞)) | |
13 | 12 | adantr 480 | . . . . . . 7 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → 𝐴 ∈ (0[,)+∞)) |
14 | 13 | adantr 480 | . . . . . 6 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → 𝐴 ∈ (0[,)+∞)) |
15 | digvalnn0 45897 | . . . . . 6 ⊢ ((2 ∈ ℕ ∧ 𝑘 ∈ ℤ ∧ 𝐴 ∈ (0[,)+∞)) → (𝑘(digit‘2)𝐴) ∈ ℕ0) | |
16 | 9, 11, 14, 15 | syl3anc 1369 | . . . . 5 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℕ0) |
17 | 16 | nn0cnd 12278 | . . . 4 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → (𝑘(digit‘2)𝐴) ∈ ℂ) |
18 | 2nn0 12233 | . . . . . . . 8 ⊢ 2 ∈ ℕ0 | |
19 | 18 | a1i 11 | . . . . . . 7 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → 2 ∈ ℕ0) |
20 | elfzonn0 13413 | . . . . . . 7 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → 𝑘 ∈ ℕ0) | |
21 | 19, 20 | nn0expcld 13942 | . . . . . 6 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → (2↑𝑘) ∈ ℕ0) |
22 | 21 | nn0cnd 12278 | . . . . 5 ⊢ (𝑘 ∈ (0..^(#b‘𝐴)) → (2↑𝑘) ∈ ℂ) |
23 | 22 | adantl 481 | . . . 4 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → (2↑𝑘) ∈ ℂ) |
24 | 17, 23 | mulcld 10979 | . . 3 ⊢ (((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) ∧ 𝑘 ∈ (0..^(#b‘𝐴))) → ((𝑘(digit‘2)𝐴) · (2↑𝑘)) ∈ ℂ) |
25 | 5, 7, 24 | fsummulc1 15478 | . 2 ⊢ ((𝐴 ∈ ℕ0 ∧ 𝐵 ∈ ℕ0) → (Σ𝑘 ∈ (0..^(#b‘𝐴))((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵) = Σ𝑘 ∈ (0..^(#b‘𝐴))(((𝑘(digit‘2)𝐴) · (2↑𝑘)) · 𝐵)) |
26 | 3, 25 | eqtrd 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 |