ILE Home Intuitionistic Logic Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  ILE Home  >  Th. List  >  karatsuba Unicode version

Theorem karatsuba 13132
Description: The Karatsuba multiplication algorithm. If  X and  Y are decomposed into two groups of digits of length  M (only the lower group is known to be this size but the algorithm is most efficient when the partition is chosen near the middle of the digit string), then  X Y can be written in three groups of digits, where each group needs only one multiplication. Thus, we can halve both inputs with only three multiplications on the smaller operands, yielding an asymptotic improvement of n^(log2 3) instead of n^2 for the "naive" algorithm decmul1c 9776. (Contributed by Mario Carneiro, 16-Jul-2015.) (Revised by AV, 9-Sep-2021.)
Hypotheses
Ref Expression
karatsuba.a  |-  A  e. 
NN0
karatsuba.b  |-  B  e. 
NN0
karatsuba.c  |-  C  e. 
NN0
karatsuba.d  |-  D  e. 
NN0
karatsuba.s  |-  S  e. 
NN0
karatsuba.m  |-  M  e. 
NN0
karatsuba.r  |-  ( A  x.  C )  =  R
karatsuba.t  |-  ( B  x.  D )  =  T
karatsuba.e  |-  ( ( A  +  B )  x.  ( C  +  D ) )  =  ( ( R  +  S )  +  T
)
karatsuba.x  |-  ( ( A  x.  (; 1 0 ^ M
) )  +  B
)  =  X
karatsuba.y  |-  ( ( C  x.  (; 1 0 ^ M
) )  +  D
)  =  Y
karatsuba.w  |-  ( ( R  x.  (; 1 0 ^ M
) )  +  S
)  =  W
karatsuba.z  |-  ( ( W  x.  (; 1 0 ^ M
) )  +  T
)  =  Z
Assertion
Ref Expression
karatsuba  |-  ( X  x.  Y )  =  Z

Proof of Theorem karatsuba
StepHypRef Expression
1 karatsuba.a . . . . . 6  |-  A  e. 
NN0
21nn0cni 9510 . . . . 5  |-  A  e.  CC
3 10nn0 9729 . . . . . . 7  |- ; 1 0  e.  NN0
43nn0cni 9510 . . . . . 6  |- ; 1 0  e.  CC
5 karatsuba.m . . . . . 6  |-  M  e. 
NN0
6 expcl 10923 . . . . . 6  |-  ( (; 1
0  e.  CC  /\  M  e.  NN0 )  -> 
(; 1 0 ^ M
)  e.  CC )
74, 5, 6mp2an 426 . . . . 5  |-  (; 1 0 ^ M
)  e.  CC
82, 7mulcli 8281 . . . 4  |-  ( A  x.  (; 1 0 ^ M
) )  e.  CC
9 karatsuba.b . . . . 5  |-  B  e. 
NN0
109nn0cni 9510 . . . 4  |-  B  e.  CC
11 karatsuba.c . . . . . 6  |-  C  e. 
NN0
1211nn0cni 9510 . . . . 5  |-  C  e.  CC
1312, 7mulcli 8281 . . . 4  |-  ( C  x.  (; 1 0 ^ M
) )  e.  CC
14 karatsuba.d . . . . 5  |-  D  e. 
NN0
1514nn0cni 9510 . . . 4  |-  D  e.  CC
168, 10, 13, 15muladdi 8684 . . 3  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  +  B )  x.  ( ( C  x.  (; 1 0 ^ M ) )  +  D ) )  =  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  +  ( D  x.  B
) )  +  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) ) )
178, 13mulcli 8281 . . . 4  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  e.  CC
1815, 10mulcli 8281 . . . 4  |-  ( D  x.  B )  e.  CC
198, 15mulcli 8281 . . . . 5  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  D
)  e.  CC
2013, 10mulcli 8281 . . . . 5  |-  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
)  e.  CC
2119, 20addcli 8280 . . . 4  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M ) )  x.  B ) )  e.  CC
2217, 18, 21add32i 8439 . . 3  |-  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  +  ( D  x.  B
) )  +  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) ) )  =  ( ( ( ( A  x.  (; 1 0 ^ M
) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  +  ( ( ( A  x.  (; 1 0 ^ M
) )  x.  D
)  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) ) )  +  ( D  x.  B
) )
238, 12mulcli 8281 . . . . . 6  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  e.  CC
24 karatsuba.s . . . . . . 7  |-  S  e. 
NN0
2524nn0cni 9510 . . . . . 6  |-  S  e.  CC
2623, 25, 7adddiri 8287 . . . . 5  |-  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  +  S )  x.  (; 1 0 ^ M
) )  =  ( ( ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  x.  (; 1 0 ^ M
) )  +  ( S  x.  (; 1 0 ^ M
) ) )
272, 7, 12mul32i 8422 . . . . . . . . 9  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  =  ( ( A  x.  C )  x.  (; 1 0 ^ M
) )
28 karatsuba.r . . . . . . . . . 10  |-  ( A  x.  C )  =  R
2928oveq1i 6062 . . . . . . . . 9  |-  ( ( A  x.  C )  x.  (; 1 0 ^ M
) )  =  ( R  x.  (; 1 0 ^ M
) )
3027, 29eqtri 2255 . . . . . . . 8  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  =  ( R  x.  (; 1 0 ^ M
) )
3130oveq1i 6062 . . . . . . 7  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  +  S )  =  ( ( R  x.  (; 1 0 ^ M ) )  +  S )
32 karatsuba.w . . . . . . 7  |-  ( ( R  x.  (; 1 0 ^ M
) )  +  S
)  =  W
3331, 32eqtri 2255 . . . . . 6  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  +  S )  =  W
3433oveq1i 6062 . . . . 5  |-  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  +  S )  x.  (; 1 0 ^ M
) )  =  ( W  x.  (; 1 0 ^ M
) )
358, 12, 7mulassi 8285 . . . . . 6  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  x.  (; 1 0 ^ M
) )  =  ( ( A  x.  (; 1 0 ^ M ) )  x.  ( C  x.  (; 1 0 ^ M ) ) )
362, 12mulcli 8281 . . . . . . . . . . . 12  |-  ( A  x.  C )  e.  CC
3736, 18, 25add32i 8439 . . . . . . . . . . 11  |-  ( ( ( A  x.  C
)  +  ( D  x.  B ) )  +  S )  =  ( ( ( A  x.  C )  +  S )  +  ( D  x.  B ) )
3828oveq1i 6062 . . . . . . . . . . . 12  |-  ( ( A  x.  C )  +  S )  =  ( R  +  S
)
39 karatsuba.t . . . . . . . . . . . . 13  |-  ( B  x.  D )  =  T
4010, 15, 39mulcomli 8283 . . . . . . . . . . . 12  |-  ( D  x.  B )  =  T
4138, 40oveq12i 6064 . . . . . . . . . . 11  |-  ( ( ( A  x.  C
)  +  S )  +  ( D  x.  B ) )  =  ( ( R  +  S )  +  T
)
4237, 41eqtri 2255 . . . . . . . . . 10  |-  ( ( ( A  x.  C
)  +  ( D  x.  B ) )  +  S )  =  ( ( R  +  S )  +  T
)
43 karatsuba.e . . . . . . . . . 10  |-  ( ( A  +  B )  x.  ( C  +  D ) )  =  ( ( R  +  S )  +  T
)
442, 10, 12, 15muladdi 8684 . . . . . . . . . 10  |-  ( ( A  +  B )  x.  ( C  +  D ) )  =  ( ( ( A  x.  C )  +  ( D  x.  B
) )  +  ( ( A  x.  D
)  +  ( C  x.  B ) ) )
4542, 43, 443eqtr2i 2261 . . . . . . . . 9  |-  ( ( ( A  x.  C
)  +  ( D  x.  B ) )  +  S )  =  ( ( ( A  x.  C )  +  ( D  x.  B
) )  +  ( ( A  x.  D
)  +  ( C  x.  B ) ) )
4636, 18addcli 8280 . . . . . . . . . 10  |-  ( ( A  x.  C )  +  ( D  x.  B ) )  e.  CC
472, 15mulcli 8281 . . . . . . . . . . 11  |-  ( A  x.  D )  e.  CC
4812, 10mulcli 8281 . . . . . . . . . . 11  |-  ( C  x.  B )  e.  CC
4947, 48addcli 8280 . . . . . . . . . 10  |-  ( ( A  x.  D )  +  ( C  x.  B ) )  e.  CC
5046, 25, 49addcani 8457 . . . . . . . . 9  |-  ( ( ( ( A  x.  C )  +  ( D  x.  B ) )  +  S )  =  ( ( ( A  x.  C )  +  ( D  x.  B ) )  +  ( ( A  x.  D )  +  ( C  x.  B ) ) )  <->  S  =  ( ( A  x.  D )  +  ( C  x.  B ) ) )
5145, 50mpbi 145 . . . . . . . 8  |-  S  =  ( ( A  x.  D )  +  ( C  x.  B ) )
5251oveq1i 6062 . . . . . . 7  |-  ( S  x.  (; 1 0 ^ M
) )  =  ( ( ( A  x.  D )  +  ( C  x.  B ) )  x.  (; 1 0 ^ M
) )
5347, 48, 7adddiri 8287 . . . . . . 7  |-  ( ( ( A  x.  D
)  +  ( C  x.  B ) )  x.  (; 1 0 ^ M
) )  =  ( ( ( A  x.  D )  x.  (; 1 0 ^ M ) )  +  ( ( C  x.  B )  x.  (; 1 0 ^ M
) ) )
542, 15, 7mul32i 8422 . . . . . . . 8  |-  ( ( A  x.  D )  x.  (; 1 0 ^ M
) )  =  ( ( A  x.  (; 1 0 ^ M ) )  x.  D )
5512, 10, 7mul32i 8422 . . . . . . . 8  |-  ( ( C  x.  B )  x.  (; 1 0 ^ M
) )  =  ( ( C  x.  (; 1 0 ^ M ) )  x.  B )
5654, 55oveq12i 6064 . . . . . . 7  |-  ( ( ( A  x.  D
)  x.  (; 1 0 ^ M
) )  +  ( ( C  x.  B
)  x.  (; 1 0 ^ M
) ) )  =  ( ( ( A  x.  (; 1 0 ^ M
) )  x.  D
)  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) )
5752, 53, 563eqtri 2259 . . . . . 6  |-  ( S  x.  (; 1 0 ^ M
) )  =  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) )
5835, 57oveq12i 6064 . . . . 5  |-  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  x.  (; 1 0 ^ M
) )  +  ( S  x.  (; 1 0 ^ M
) ) )  =  ( ( ( A  x.  (; 1 0 ^ M
) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  +  ( ( ( A  x.  (; 1 0 ^ M
) )  x.  D
)  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) ) )
5926, 34, 583eqtr3ri 2264 . . . 4  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  ( C  x.  (; 1 0 ^ M ) ) )  +  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) ) )  =  ( W  x.  (; 1 0 ^ M ) )
6059, 40oveq12i 6064 . . 3  |-  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  +  ( ( ( A  x.  (; 1 0 ^ M
) )  x.  D
)  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) ) )  +  ( D  x.  B
) )  =  ( ( W  x.  (; 1 0 ^ M ) )  +  T )
6116, 22, 603eqtri 2259 . 2  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  +  B )  x.  ( ( C  x.  (; 1 0 ^ M ) )  +  D ) )  =  ( ( W  x.  (; 1 0 ^ M
) )  +  T
)
62 karatsuba.x . . 3  |-  ( ( A  x.  (; 1 0 ^ M
) )  +  B
)  =  X
63 karatsuba.y . . 3  |-  ( ( C  x.  (; 1 0 ^ M
) )  +  D
)  =  Y
6462, 63oveq12i 6064 . 2  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  +  B )  x.  ( ( C  x.  (; 1 0 ^ M ) )  +  D ) )  =  ( X  x.  Y )
65 karatsuba.z . 2  |-  ( ( W  x.  (; 1 0 ^ M
) )  +  T
)  =  Z
6661, 64, 653eqtr3i 2263 1  |-  ( X  x.  Y )  =  Z
Colors of variables: wff set class
Syntax hints:    = wceq 1398    e. wcel 2205  (class class class)co 6052   CCcc 8127   0cc0 8129   1c1 8130    + caddc 8132    x. cmul 8134   NN0cn0 9498  ;cdc 9712   ^cexp 10904
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 619  ax-in2 620  ax-io 717  ax-5 1496  ax-7 1497  ax-gen 1498  ax-ie1 1542  ax-ie2 1543  ax-8 1553  ax-10 1554  ax-11 1555  ax-i12 1556  ax-bndl 1558  ax-4 1559  ax-17 1575  ax-i9 1579  ax-ial 1583  ax-i5r 1584  ax-13 2207  ax-14 2208  ax-ext 2216  ax-coll 4227  ax-sep 4230  ax-nul 4238  ax-pow 4289  ax-pr 4324  ax-un 4556  ax-setind 4661  ax-iinf 4712  ax-cnex 8220  ax-resscn 8221  ax-1cn 8222  ax-1re 8223  ax-icn 8224  ax-addcl 8225  ax-addrcl 8226  ax-mulcl 8227  ax-mulrcl 8228  ax-addcom 8229  ax-mulcom 8230  ax-addass 8231  ax-mulass 8232  ax-distr 8233  ax-i2m1 8234  ax-0lt1 8235  ax-1rid 8236  ax-0id 8237  ax-rnegex 8238  ax-precex 8239  ax-cnre 8240  ax-pre-ltirr 8241  ax-pre-ltwlin 8242  ax-pre-lttrn 8243  ax-pre-apti 8244  ax-pre-ltadd 8245  ax-pre-mulgt0 8246  ax-pre-mulext 8247
This theorem depends on definitions:  df-bi 117  df-dc 843  df-3or 1006  df-3an 1007  df-tru 1401  df-fal 1404  df-nf 1510  df-sb 1812  df-eu 2085  df-mo 2086  df-clab 2221  df-cleq 2227  df-clel 2230  df-nfc 2375  df-ne 2415  df-nel 2510  df-ral 2527  df-rex 2528  df-reu 2529  df-rmo 2530  df-rab 2531  df-v 2817  df-sbc 3045  df-csb 3141  df-dif 3215  df-un 3217  df-in 3219  df-ss 3226  df-nul 3511  df-if 3623  df-pw 3673  df-sn 3697  df-pr 3698  df-op 3700  df-uni 3917  df-int 3952  df-iun 3995  df-br 4112  df-opab 4174  df-mpt 4175  df-tr 4211  df-id 4416  df-po 4419  df-iso 4420  df-iord 4489  df-on 4491  df-ilim 4492  df-suc 4494  df-iom 4715  df-xp 4757  df-rel 4758  df-cnv 4759  df-co 4760  df-dm 4761  df-rn 4762  df-res 4763  df-ima 4764  df-iota 5314  df-fun 5356  df-fn 5357  df-f 5358  df-f1 5359  df-fo 5360  df-f1o 5361  df-fv 5362  df-riota 6005  df-ov 6055  df-oprab 6056  df-mpo 6057  df-1st 6336  df-2nd 6337  df-recs 6538  df-frec 6624  df-pnf 8312  df-mnf 8313  df-xr 8314  df-ltxr 8315  df-le 8316  df-sub 8448  df-neg 8449  df-reap 8851  df-ap 8858  df-div 8949  df-inn 9240  df-2 9298  df-3 9299  df-4 9300  df-5 9301  df-6 9302  df-7 9303  df-8 9304  df-9 9305  df-n0 9499  df-z 9580  df-dec 9713  df-uz 9857  df-seqfrec 10814  df-exp 10905
This theorem is referenced by: (None)
  Copyright terms: Public domain W3C validator