MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  smumul Unicode version

Theorem smumul 12700
Description: For sequences that correspond to valid integers, the sequence multiplication function produces the sequence for the product. This is effectively a proof of the correctness of the multiplication process, implemented in terms of logic gates for df-sad 12658, whose correctness is verified in sadadd 12674.

Outside this range, the sequences cannot be representing integers, but the smul function still "works". This extended function is best interpreted in terms of the ring structure of the 2-adic integers. (Contributed by Mario Carneiro, 22-Sep-2016.)

Assertion
Ref Expression
smumul  |-  ( ( A  e.  ZZ  /\  B  e.  ZZ )  ->  ( (bits `  A
) smul  (bits `  B )
)  =  (bits `  ( A  x.  B
) ) )

Proof of Theorem smumul
Dummy variable  k is distinct from all other variables.
StepHypRef Expression
1 bitsss 12633 . . . . . 6  |-  (bits `  A )  C_  NN0
2 bitsss 12633 . . . . . 6  |-  (bits `  B )  C_  NN0
3 smucl 12691 . . . . . 6  |-  ( ( (bits `  A )  C_ 
NN0  /\  (bits `  B
)  C_  NN0 )  -> 
( (bits `  A
) smul  (bits `  B )
)  C_  NN0 )
41, 2, 3mp2an 653 . . . . 5  |-  ( (bits `  A ) smul  (bits `  B ) )  C_  NN0
54sseli 3189 . . . 4  |-  ( k  e.  ( (bits `  A ) smul  (bits `  B
) )  ->  k  e.  NN0 )
65a1i 10 . . 3  |-  ( ( A  e.  ZZ  /\  B  e.  ZZ )  ->  ( k  e.  ( (bits `  A ) smul  (bits `  B ) )  ->  k  e.  NN0 ) )
7 bitsss 12633 . . . . 5  |-  (bits `  ( A  x.  B
) )  C_  NN0
87sseli 3189 . . . 4  |-  ( k  e.  (bits `  ( A  x.  B )
)  ->  k  e.  NN0 )
98a1i 10 . . 3  |-  ( ( A  e.  ZZ  /\  B  e.  ZZ )  ->  ( k  e.  (bits `  ( A  x.  B
) )  ->  k  e.  NN0 ) )
10 simpll 730 . . . . . . . . . . . 12  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  A  e.  ZZ )
11 simplr 731 . . . . . . . . . . . 12  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  B  e.  ZZ )
12 simpr 447 . . . . . . . . . . . . 13  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  k  e.  NN0 )
13 1nn0 9997 . . . . . . . . . . . . . 14  |-  1  e.  NN0
1413a1i 10 . . . . . . . . . . . . 13  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  1  e.  NN0 )
1512, 14nn0addcld 10038 . . . . . . . . . . . 12  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( k  +  1 )  e.  NN0 )
1610, 11, 15smumullem 12699 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( (bits `  A )  i^i  (
0..^ ( k  +  1 ) ) ) smul  (bits `  B )
)  =  (bits `  ( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
) ) )
1716ineq1d 3382 . . . . . . . . . 10  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  (bits `  B
) )  i^i  (
0..^ ( k  +  1 ) ) )  =  ( (bits `  ( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) ) )
18 2nn 9893 . . . . . . . . . . . . . . . 16  |-  2  e.  NN
1918a1i 10 . . . . . . . . . . . . . . 15  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  2  e.  NN )
2019, 15nnexpcld 11282 . . . . . . . . . . . . . 14  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( 2 ^ ( k  +  1 ) )  e.  NN )
2110, 20zmodcld 11006 . . . . . . . . . . . . 13  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( A  mod  ( 2 ^ (
k  +  1 ) ) )  e.  NN0 )
2221nn0zd 10131 . . . . . . . . . . . 12  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( A  mod  ( 2 ^ (
k  +  1 ) ) )  e.  ZZ )
2322, 11zmulcld 10139 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( A  mod  ( 2 ^ ( k  +  1 ) ) )  x.  B )  e.  ZZ )
24 bitsmod 12643 . . . . . . . . . . 11  |-  ( ( ( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
)  e.  ZZ  /\  ( k  +  1 )  e.  NN0 )  ->  (bits `  ( (
( A  mod  (
2 ^ ( k  +  1 ) ) )  x.  B )  mod  ( 2 ^ ( k  +  1 ) ) ) )  =  ( (bits `  ( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) ) )
2523, 15, 24syl2anc 642 . . . . . . . . . 10  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  (bits `  (
( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
)  mod  ( 2 ^ ( k  +  1 ) ) ) )  =  ( (bits `  ( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) ) )
2617, 25eqtr4d 2331 . . . . . . . . 9  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  (bits `  B
) )  i^i  (
0..^ ( k  +  1 ) ) )  =  (bits `  (
( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
)  mod  ( 2 ^ ( k  +  1 ) ) ) ) )
27 inass 3392 . . . . . . . . . . . . 13  |-  ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  ( (bits `  A
)  i^i  ( (
0..^ ( k  +  1 ) )  i^i  ( 0..^ ( k  +  1 ) ) ) )
28 inidm 3391 . . . . . . . . . . . . . 14  |-  ( ( 0..^ ( k  +  1 ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  ( 0..^ ( k  +  1 ) )
2928ineq2i 3380 . . . . . . . . . . . . 13  |-  ( (bits `  A )  i^i  (
( 0..^ ( k  +  1 ) )  i^i  ( 0..^ ( k  +  1 ) ) ) )  =  ( (bits `  A
)  i^i  ( 0..^ ( k  +  1 ) ) )
3027, 29eqtri 2316 . . . . . . . . . . . 12  |-  ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  ( (bits `  A
)  i^i  ( 0..^ ( k  +  1 ) ) )
3130oveq1i 5884 . . . . . . . . . . 11  |-  ( ( ( (bits `  A
)  i^i  ( 0..^ ( k  +  1 ) ) )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  ( (bits `  B )  i^i  (
0..^ ( k  +  1 ) ) ) )  =  ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  ( (bits `  B )  i^i  (
0..^ ( k  +  1 ) ) ) )
3231ineq1i 3379 . . . . . . . . . 10  |-  ( ( ( ( (bits `  A )  i^i  (
0..^ ( k  +  1 ) ) )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  ( (bits `  B )  i^i  (
0..^ ( k  +  1 ) ) ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  ( ( ( (bits `  A )  i^i  (
0..^ ( k  +  1 ) ) ) smul  ( (bits `  B
)  i^i  ( 0..^ ( k  +  1 ) ) ) )  i^i  ( 0..^ ( k  +  1 ) ) )
33 inss1 3402 . . . . . . . . . . . 12  |-  ( (bits `  A )  i^i  (
0..^ ( k  +  1 ) ) ) 
C_  (bits `  A
)
341a1i 10 . . . . . . . . . . . 12  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  (bits `  A
)  C_  NN0 )
3533, 34syl5ss 3203 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( (bits `  A )  i^i  (
0..^ ( k  +  1 ) ) ) 
C_  NN0 )
362a1i 10 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  (bits `  B
)  C_  NN0 )
3735, 36, 15smueq 12698 . . . . . . . . . 10  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  (bits `  B
) )  i^i  (
0..^ ( k  +  1 ) ) )  =  ( ( ( ( (bits `  A
)  i^i  ( 0..^ ( k  +  1 ) ) )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  ( (bits `  B )  i^i  (
0..^ ( k  +  1 ) ) ) )  i^i  ( 0..^ ( k  +  1 ) ) ) )
3834, 36, 15smueq 12698 . . . . . . . . . 10  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( (bits `  A ) smul  (bits `  B ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  ( ( ( (bits `  A
)  i^i  ( 0..^ ( k  +  1 ) ) ) smul  (
(bits `  B )  i^i  ( 0..^ ( k  +  1 ) ) ) )  i^i  (
0..^ ( k  +  1 ) ) ) )
3932, 37, 383eqtr4a 2354 . . . . . . . . 9  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( ( (bits `  A )  i^i  ( 0..^ ( k  +  1 ) ) ) smul  (bits `  B
) )  i^i  (
0..^ ( k  +  1 ) ) )  =  ( ( (bits `  A ) smul  (bits `  B ) )  i^i  ( 0..^ ( k  +  1 ) ) ) )
4020nnrpd 10405 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( 2 ^ ( k  +  1 ) )  e.  RR+ )
4110zred 10133 . . . . . . . . . . . 12  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  A  e.  RR )
42 modabs2 11014 . . . . . . . . . . . 12  |-  ( ( A  e.  RR  /\  ( 2 ^ (
k  +  1 ) )  e.  RR+ )  ->  ( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  mod  (
2 ^ ( k  +  1 ) ) )  =  ( A  mod  ( 2 ^ ( k  +  1 ) ) ) )
4341, 40, 42syl2anc 642 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( A  mod  ( 2 ^ ( k  +  1 ) ) )  mod  ( 2 ^ (
k  +  1 ) ) )  =  ( A  mod  ( 2 ^ ( k  +  1 ) ) ) )
44 eqidd 2297 . . . . . . . . . . 11  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( B  mod  ( 2 ^ (
k  +  1 ) ) )  =  ( B  mod  ( 2 ^ ( k  +  1 ) ) ) )
4522, 10, 11, 11, 40, 43, 44modmul12d 11019 . . . . . . . . . 10  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( ( A  mod  ( 2 ^ ( k  +  1 ) ) )  x.  B )  mod  ( 2 ^ (
k  +  1 ) ) )  =  ( ( A  x.  B
)  mod  ( 2 ^ ( k  +  1 ) ) ) )
4645fveq2d 5545 . . . . . . . . 9  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  (bits `  (
( ( A  mod  ( 2 ^ (
k  +  1 ) ) )  x.  B
)  mod  ( 2 ^ ( k  +  1 ) ) ) )  =  (bits `  ( ( A  x.  B )  mod  (
2 ^ ( k  +  1 ) ) ) ) )
4726, 39, 463eqtr3d 2336 . . . . . . . 8  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( (bits `  A ) smul  (bits `  B ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  (bits `  ( ( A  x.  B )  mod  (
2 ^ ( k  +  1 ) ) ) ) )
4810, 11zmulcld 10139 . . . . . . . . 9  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( A  x.  B )  e.  ZZ )
49 bitsmod 12643 . . . . . . . . 9  |-  ( ( ( A  x.  B
)  e.  ZZ  /\  ( k  +  1 )  e.  NN0 )  ->  (bits `  ( ( A  x.  B )  mod  ( 2 ^ (
k  +  1 ) ) ) )  =  ( (bits `  ( A  x.  B )
)  i^i  ( 0..^ ( k  +  1 ) ) ) )
5048, 15, 49syl2anc 642 . . . . . . . 8  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  (bits `  (
( A  x.  B
)  mod  ( 2 ^ ( k  +  1 ) ) ) )  =  ( (bits `  ( A  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) ) )
5147, 50eqtrd 2328 . . . . . . 7  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( (bits `  A ) smul  (bits `  B ) )  i^i  ( 0..^ ( k  +  1 ) ) )  =  ( (bits `  ( A  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) ) )
5251eleq2d 2363 . . . . . 6  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( k  e.  ( ( (bits `  A ) smul  (bits `  B
) )  i^i  (
0..^ ( k  +  1 ) ) )  <-> 
k  e.  ( (bits `  ( A  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) ) ) )
53 elin 3371 . . . . . 6  |-  ( k  e.  ( ( (bits `  A ) smul  (bits `  B ) )  i^i  ( 0..^ ( k  +  1 ) ) )  <->  ( k  e.  ( (bits `  A
) smul  (bits `  B )
)  /\  k  e.  ( 0..^ ( k  +  1 ) ) ) )
54 elin 3371 . . . . . 6  |-  ( k  e.  ( (bits `  ( A  x.  B
) )  i^i  (
0..^ ( k  +  1 ) ) )  <-> 
( k  e.  (bits `  ( A  x.  B
) )  /\  k  e.  ( 0..^ ( k  +  1 ) ) ) )
5552, 53, 543bitr3g 278 . . . . 5  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( ( k  e.  ( (bits `  A ) smul  (bits `  B
) )  /\  k  e.  ( 0..^ ( k  +  1 ) ) )  <->  ( k  e.  (bits `  ( A  x.  B ) )  /\  k  e.  ( 0..^ ( k  +  1 ) ) ) ) )
56 nn0uz 10278 . . . . . . . . 9  |-  NN0  =  ( ZZ>= `  0 )
5712, 56syl6eleq 2386 . . . . . . . 8  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  k  e.  (
ZZ>= `  0 ) )
58 eluzfz2b 10821 . . . . . . . 8  |-  ( k  e.  ( ZZ>= `  0
)  <->  k  e.  ( 0 ... k ) )
5957, 58sylib 188 . . . . . . 7  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  k  e.  ( 0 ... k ) )
6012nn0zd 10131 . . . . . . . 8  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  k  e.  ZZ )
61 fzval3 10927 . . . . . . . 8  |-  ( k  e.  ZZ  ->  (
0 ... k )  =  ( 0..^ ( k  +  1 ) ) )
6260, 61syl 15 . . . . . . 7  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( 0 ... k )  =  ( 0..^ ( k  +  1 ) ) )
6359, 62eleqtrd 2372 . . . . . 6  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  k  e.  ( 0..^ ( k  +  1 ) ) )
6463biantrud 493 . . . . 5  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( k  e.  ( (bits `  A
) smul  (bits `  B )
)  <->  ( k  e.  ( (bits `  A
) smul  (bits `  B )
)  /\  k  e.  ( 0..^ ( k  +  1 ) ) ) ) )
6563biantrud 493 . . . . 5  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( k  e.  (bits `  ( A  x.  B ) )  <->  ( k  e.  (bits `  ( A  x.  B ) )  /\  k  e.  ( 0..^ ( k  +  1 ) ) ) ) )
6655, 64, 653bitr4d 276 . . . 4  |-  ( ( ( A  e.  ZZ  /\  B  e.  ZZ )  /\  k  e.  NN0 )  ->  ( k  e.  ( (bits `  A
) smul  (bits `  B )
)  <->  k  e.  (bits `  ( A  x.  B
) ) ) )
6766ex 423 . . 3  |-  ( ( A  e.  ZZ  /\  B  e.  ZZ )  ->  ( k  e.  NN0  ->  ( k  e.  ( (bits `  A ) smul  (bits `  B ) )  <-> 
k  e.  (bits `  ( A  x.  B
) ) ) ) )
686, 9, 67pm5.21ndd 343 . 2  |-  ( ( A  e.  ZZ  /\  B  e.  ZZ )  ->  ( k  e.  ( (bits `  A ) smul  (bits `  B ) )  <-> 
k  e.  (bits `  ( A  x.  B
) ) ) )
6968eqrdv 2294 1  |-  ( ( A  e.  ZZ  /\  B  e.  ZZ )  ->  ( (bits `  A
) smul  (bits `  B )
)  =  (bits `  ( A  x.  B
) ) )
Colors of variables: wff set class
Syntax hints:    -> wi 4    <-> wb 176    /\ wa 358    = wceq 1632    e. wcel 1696    i^i cin 3164    C_ wss 3165   ` cfv 5271  (class class class)co 5874   RRcr 8752   0cc0 8753   1c1 8754    + caddc 8756    x. cmul 8758   NNcn 9762   2c2 9811   NN0cn0 9981   ZZcz 10040   ZZ>=cuz 10246   RR+crp 10370   ...cfz 10798  ..^cfzo 10886    mod cmo 10989   ^cexp 11120  bitscbits 12626   smul csmu 12628
This theorem was proved from axioms:  ax-1 5  ax-2 6  ax-3 7  ax-mp 8  ax-gen 1536  ax-5 1547  ax-17 1606  ax-9 1644  ax-8 1661  ax-13 1698  ax-14 1700  ax-6 1715  ax-7 1720  ax-11 1727  ax-12 1878  ax-ext 2277  ax-rep 4147  ax-sep 4157  ax-nul 4165  ax-pow 4204  ax-pr 4230  ax-un 4528  ax-inf2 7358  ax-cnex 8809  ax-resscn 8810  ax-1cn 8811  ax-icn 8812  ax-addcl 8813  ax-addrcl 8814  ax-mulcl 8815  ax-mulrcl 8816  ax-mulcom 8817  ax-addass 8818  ax-mulass 8819  ax-distr 8820  ax-i2m1 8821  ax-1ne0 8822  ax-1rid 8823  ax-rnegex 8824  ax-rrecex 8825  ax-cnre 8826  ax-pre-lttri 8827  ax-pre-lttrn 8828  ax-pre-ltadd 8829  ax-pre-mulgt0 8830  ax-pre-sup 8831
This theorem depends on definitions:  df-bi 177  df-or 359  df-an 360  df-3or 935  df-3an 936  df-xor 1296  df-tru 1310  df-had 1370  df-cad 1371  df-ex 1532  df-nf 1535  df-sb 1639  df-eu 2160  df-mo 2161  df-clab 2283  df-cleq 2289  df-clel 2292  df-nfc 2421  df-ne 2461  df-nel 2462  df-ral 2561  df-rex 2562  df-reu 2563  df-rmo 2564  df-rab 2565  df-v 2803  df-sbc 3005  df-csb 3095  df-dif 3168  df-un 3170  df-in 3172  df-ss 3179  df-pss 3181  df-nul 3469  df-if 3579  df-pw 3640  df-sn 3659  df-pr 3660  df-tp 3661  df-op 3662  df-uni 3844  df-int 3879  df-iun 3923  df-disj 4010  df-br 4040  df-opab 4094  df-mpt 4095  df-tr 4130  df-eprel 4321  df-id 4325  df-po 4330  df-so 4331  df-fr 4368  df-se 4369  df-we 4370  df-ord 4411  df-on 4412  df-lim 4413  df-suc 4414  df-om 4673  df-xp 4711  df-rel 4712  df-cnv 4713  df-co 4714  df-dm 4715  df-rn 4716  df-res 4717  df-ima 4718  df-iota 5235  df-fun 5273  df-fn 5274  df-f 5275  df-f1 5276  df-fo 5277  df-f1o 5278  df-fv 5279  df-isom 5280  df-ov 5877  df-oprab 5878  df-mpt2 5879  df-1st 6138  df-2nd 6139  df-riota 6320  df-recs 6404  df-rdg 6439  df-1o 6495  df-2o 6496  df-oadd 6499  df-er 6676  df-map 6790  df-pm 6791  df-en 6880  df-dom 6881  df-sdom 6882  df-fin 6883  df-sup 7210  df-oi 7241  df-card 7588  df-cda 7810  df-pnf 8885  df-mnf 8886  df-xr 8887  df-ltxr 8888  df-le 8889  df-sub 9055  df-neg 9056  df-div 9440  df-nn 9763  df-2 9820  df-3 9821  df-n0 9982  df-z 10041  df-uz 10247  df-rp 10371  df-fz 10799  df-fzo 10887  df-fl 10941  df-mod 10990  df-seq 11063  df-exp 11121  df-hash 11354  df-cj 11600  df-re 11601  df-im 11602  df-sqr 11736  df-abs 11737  df-clim 11978  df-sum 12175  df-dvds 12548  df-bits 12629  df-sad 12658  df-smu 12683
  Copyright terms: Public domain W3C validator