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

Theorem karatsuba 13232
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 9851. (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 9580 . . . . 5  |-  A  e.  CC
3 10nn0 9803 . . . . . . 7  |- ; 1 0  e.  NN0
43nn0cni 9580 . . . . . 6  |- ; 1 0  e.  CC
5 karatsuba.m . . . . . 6  |-  M  e. 
NN0
6 expcl 11008 . . . . . 6  |-  ( (; 1
0  e.  CC  /\  M  e.  NN0 )  -> 
(; 1 0 ^ M
)  e.  CC )
74, 5, 6mp2an 430 . . . . 5  |-  (; 1 0 ^ M
)  e.  CC
82, 7mulcli 8332 . . . 4  |-  ( A  x.  (; 1 0 ^ M
) )  e.  CC
9 karatsuba.b . . . . 5  |-  B  e. 
NN0
109nn0cni 9580 . . . 4  |-  B  e.  CC
11 karatsuba.c . . . . . 6  |-  C  e. 
NN0
1211nn0cni 9580 . . . . 5  |-  C  e.  CC
1312, 7mulcli 8332 . . . 4  |-  ( C  x.  (; 1 0 ^ M
) )  e.  CC
14 karatsuba.d . . . . 5  |-  D  e. 
NN0
1514nn0cni 9580 . . . 4  |-  D  e.  CC
168, 10, 13, 15muladdi 8738 . . 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 8332 . . . 4  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  ( C  x.  (; 1 0 ^ M
) ) )  e.  CC
1815, 10mulcli 8332 . . . 4  |-  ( D  x.  B )  e.  CC
198, 15mulcli 8332 . . . . 5  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  D
)  e.  CC
2013, 10mulcli 8332 . . . . 5  |-  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
)  e.  CC
2119, 20addcli 8331 . . . 4  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M ) )  x.  B ) )  e.  CC
2217, 18, 21add32i 8492 . . 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 8332 . . . . . 6  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  e.  CC
24 karatsuba.s . . . . . . 7  |-  S  e. 
NN0
2524nn0cni 9580 . . . . . 6  |-  S  e.  CC
2623, 25, 7adddiri 8338 . . . . 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 8475 . . . . . . . . 9  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  =  ( ( A  x.  C )  x.  (; 1 0 ^ M
) )
28 karatsuba.r . . . . . . . . . 10  |-  ( A  x.  C )  =  R
2928oveq1i 6095 . . . . . . . . 9  |-  ( ( A  x.  C )  x.  (; 1 0 ^ M
) )  =  ( R  x.  (; 1 0 ^ M
) )
3027, 29eqtri 2259 . . . . . . . 8  |-  ( ( A  x.  (; 1 0 ^ M
) )  x.  C
)  =  ( R  x.  (; 1 0 ^ M
) )
3130oveq1i 6095 . . . . . . 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 2259 . . . . . 6  |-  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  +  S )  =  W
3433oveq1i 6095 . . . . 5  |-  ( ( ( ( A  x.  (; 1 0 ^ M ) )  x.  C )  +  S )  x.  (; 1 0 ^ M
) )  =  ( W  x.  (; 1 0 ^ M
) )
358, 12, 7mulassi 8336 . . . . . 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 8332 . . . . . . . . . . . 12  |-  ( A  x.  C )  e.  CC
3736, 18, 25add32i 8492 . . . . . . . . . . 11  |-  ( ( ( A  x.  C
)  +  ( D  x.  B ) )  +  S )  =  ( ( ( A  x.  C )  +  S )  +  ( D  x.  B ) )
3828oveq1i 6095 . . . . . . . . . . . 12  |-  ( ( A  x.  C )  +  S )  =  ( R  +  S
)
39 karatsuba.t . . . . . . . . . . . . 13  |-  ( B  x.  D )  =  T
4010, 15, 39mulcomli 8334 . . . . . . . . . . . 12  |-  ( D  x.  B )  =  T
4138, 40oveq12i 6097 . . . . . . . . . . 11  |-  ( ( ( A  x.  C
)  +  S )  +  ( D  x.  B ) )  =  ( ( R  +  S )  +  T
)
4237, 41eqtri 2259 . . . . . . . . . 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 8738 . . . . . . . . . 10  |-  ( ( A  +  B )  x.  ( C  +  D ) )  =  ( ( ( A  x.  C )  +  ( D  x.  B
) )  +  ( ( A  x.  D
)  +  ( C  x.  B ) ) )
4542, 43, 443eqtr2i 2265 . . . . . . . . 9  |-  ( ( ( A  x.  C
)  +  ( D  x.  B ) )  +  S )  =  ( ( ( A  x.  C )  +  ( D  x.  B
) )  +  ( ( A  x.  D
)  +  ( C  x.  B ) ) )
4636, 18addcli 8331 . . . . . . . . . 10  |-  ( ( A  x.  C )  +  ( D  x.  B ) )  e.  CC
472, 15mulcli 8332 . . . . . . . . . . 11  |-  ( A  x.  D )  e.  CC
4812, 10mulcli 8332 . . . . . . . . . . 11  |-  ( C  x.  B )  e.  CC
4947, 48addcli 8331 . . . . . . . . . 10  |-  ( ( A  x.  D )  +  ( C  x.  B ) )  e.  CC
5046, 25, 49addcani 8510 . . . . . . . . 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 6095 . . . . . . 7  |-  ( S  x.  (; 1 0 ^ M
) )  =  ( ( ( A  x.  D )  +  ( C  x.  B ) )  x.  (; 1 0 ^ M
) )
5347, 48, 7adddiri 8338 . . . . . . 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 8475 . . . . . . . 8  |-  ( ( A  x.  D )  x.  (; 1 0 ^ M
) )  =  ( ( A  x.  (; 1 0 ^ M ) )  x.  D )
5512, 10, 7mul32i 8475 . . . . . . . 8  |-  ( ( C  x.  B )  x.  (; 1 0 ^ M
) )  =  ( ( C  x.  (; 1 0 ^ M ) )  x.  B )
5654, 55oveq12i 6097 . . . . . . 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 2263 . . . . . 6  |-  ( S  x.  (; 1 0 ^ M
) )  =  ( ( ( A  x.  (; 1 0 ^ M ) )  x.  D )  +  ( ( C  x.  (; 1 0 ^ M
) )  x.  B
) )
5835, 57oveq12i 6097 . . . . 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 2268 . . . 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 6097 . . 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 2263 . 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 6097 . 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 2267 1  |-  ( X  x.  Y )  =  Z
Colors of variables:    wff set class
This proof depends on syntax axioms:    = wceq 1402    e. wcel 2209  (class class class)co 6085   CCcc 8178   0cc0 8180   1c1 8181    + caddc 8183    x. cmul 8185   NN0cn0 9568  ;cdc 9782   ^cexp 10989
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 106  ax-ia2 107  ax-ia3 108  ax-in1 623  ax-in2 624  ax-io 721  ax-5 1500  ax-7 1501  ax-gen 1502  ax-ie1 1546  ax-ie2 1547  ax-8 1557  ax-10 1558  ax-11 1559  ax-i12 1560  ax-bndl 1562  ax-4 1563  ax-17 1579  ax-i9 1583  ax-ial 1587  ax-i5r 1588  ax-14 2212  ax-ext 2220  ax-coll 4246  ax-sep 4249  ax-nul 4259  ax-pow 4311  ax-pr 4346  ax-un 4578  ax-setind 4684  ax-iinf 4735  ax-cnex 8271  ax-resscn 8272  ax-1cn 8273  ax-1re 8274  ax-icn 8275  ax-addcl 8276  ax-addrcl 8277  ax-mulcl 8278  ax-mulrcl 8279  ax-addcom 8280  ax-mulcom 8281  ax-addass 8282  ax-mulass 8283  ax-distr 8284  ax-i2m1 8285  ax-0lt1 8286  ax-1rid 8287  ax-0id 8288  ax-rnegex 8289  ax-precex 8290  ax-cnre 8291  ax-pre-ltirr 8292  ax-pre-ltwlin 8293  ax-pre-lttrn 8294  ax-pre-apti 8295  ax-pre-ltadd 8296  ax-pre-mulgt0 8297  ax-pre-mulext 8298
This proof depends on definitions:  df-bi 117  df-dc 847  df-3or 1010  df-3an 1011  df-tru 1405  df-fal 1408  df-nf 1514  df-sb 1816  df-eu 2089  df-mo 2090  df-clab 2225  df-cleq 2231  df-clel 2234  df-nfc 2381  df-ne 2421  df-nel 2516  df-ral 2533  df-rex 2534  df-reu 2535  df-rmo 2536  df-rab 2537  df-v 2823  df-sbc 3052  df-csb 3148  df-dif 3222  df-un 3224  df-in 3226  df-ss 3233  df-nul 3521  df-if 3639  df-pw 3690  df-sn 3715  df-pr 3716  df-op 3718  df-uni 3936  df-int 3971  df-iun 4014  df-br 4131  df-opab 4193  df-mpt 4194  df-tr 4230  df-id 4438  df-po 4441  df-iso 4442  df-iord 4511  df-on 4513  df-ilim 4514  df-suc 4516  df-iom 4738  df-xp 4780  df-rel 4781  df-cnv 4782  df-co 4783  df-dm 4784  df-rn 4785  df-res 4786  df-ima 4787  df-iota 5337  df-fun 5379  df-fn 5380  df-f 5381  df-f1 5382  df-fo 5383  df-f1o 5384  df-fv 5385  df-riota 6038  df-ov 6088  df-oprab 6089  df-mpo 6090  df-1st 6374  df-2nd 6375  df-recs 6576  df-frec 6662  df-pnf 8363  df-mnf 8364  df-xr 8365  df-ltxr 8366  df-le 8367  df-sub 8501  df-neg 8502  df-reap 8906  df-ap 8913  df-div 9006  df-inn 9308  df-2 9366  df-3 9367  df-4 9368  df-5 9369  df-6 9370  df-7 9371  df-8 9372  df-9 9373  df-n0 9569  df-z 9650  df-dec 9783  df-uz 9932  df-seqfrec 10899  df-exp 10990
This theorem is used by: (None)
  Copyright terms: Public domain W3C validator