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

Theorem modqval 10294
Description: The value of the modulo operation. The modulo congruence notation of number theory,  J  ==  K (modulo  N), can be expressed in our notation as  ( J  mod  N )  =  ( K  mod  N ). Definition 1 in Knuth, The Art of Computer Programming, Vol. I (1972), p. 38. Knuth uses "mod" for the operation and "modulo" for the congruence. Unlike Knuth, we restrict the second argument to positive numbers to simplify certain theorems. (This also gives us future flexibility to extend it to any one of several different conventions for a zero or negative second argument, should there be an advantage in doing so.) As with flqcl 10243 we only prove this for rationals although other particular kinds of real numbers may be possible. (Contributed by Jim Kingdon, 16-Oct-2021.)
Assertion
Ref Expression
modqval  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  mod  B )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B
) ) ) ) )

Proof of Theorem modqval
Dummy variables  x  y are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 qre 9598 . . 3  |-  ( A  e.  QQ  ->  A  e.  RR )
213ad2ant1 1018 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  A  e.  RR )
3 qre 9598 . . . 4  |-  ( B  e.  QQ  ->  B  e.  RR )
433ad2ant2 1019 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR )
5 simp3 999 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  0  <  B )
64, 5elrpd 9664 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR+ )
75gt0ne0d 8443 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  =/=  0 )
8 qdivcl 9616 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  B  =/=  0 )  ->  ( A  /  B )  e.  QQ )
97, 8syld3an3 1283 . . . . . 6  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  /  B )  e.  QQ )
109flqcld 10247 . . . . 5  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  ZZ )
1110zred 9348 . . . 4  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  RR )
124, 11remulcld 7962 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( B  x.  ( |_ `  ( A  /  B
) ) )  e.  RR )
132, 12resubcld 8312 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  -  ( B  x.  ( |_ `  ( A  /  B ) ) ) )  e.  RR )
14 oveq1 5872 . . . . . 6  |-  ( x  =  A  ->  (
x  /  y )  =  ( A  / 
y ) )
1514fveq2d 5511 . . . . 5  |-  ( x  =  A  ->  ( |_ `  ( x  / 
y ) )  =  ( |_ `  ( A  /  y ) ) )
1615oveq2d 5881 . . . 4  |-  ( x  =  A  ->  (
y  x.  ( |_
`  ( x  / 
y ) ) )  =  ( y  x.  ( |_ `  ( A  /  y ) ) ) )
17 oveq12 5874 . . . 4  |-  ( ( x  =  A  /\  ( y  x.  ( |_ `  ( x  / 
y ) ) )  =  ( y  x.  ( |_ `  ( A  /  y ) ) ) )  ->  (
x  -  ( y  x.  ( |_ `  ( x  /  y
) ) ) )  =  ( A  -  ( y  x.  ( |_ `  ( A  / 
y ) ) ) ) )
1816, 17mpdan 421 . . 3  |-  ( x  =  A  ->  (
x  -  ( y  x.  ( |_ `  ( x  /  y
) ) ) )  =  ( A  -  ( y  x.  ( |_ `  ( A  / 
y ) ) ) ) )
19 oveq2 5873 . . . . . 6  |-  ( y  =  B  ->  ( A  /  y )  =  ( A  /  B
) )
2019fveq2d 5511 . . . . 5  |-  ( y  =  B  ->  ( |_ `  ( A  / 
y ) )  =  ( |_ `  ( A  /  B ) ) )
21 oveq12 5874 . . . . 5  |-  ( ( y  =  B  /\  ( |_ `  ( A  /  y ) )  =  ( |_ `  ( A  /  B
) ) )  -> 
( y  x.  ( |_ `  ( A  / 
y ) ) )  =  ( B  x.  ( |_ `  ( A  /  B ) ) ) )
2220, 21mpdan 421 . . . 4  |-  ( y  =  B  ->  (
y  x.  ( |_
`  ( A  / 
y ) ) )  =  ( B  x.  ( |_ `  ( A  /  B ) ) ) )
2322oveq2d 5881 . . 3  |-  ( y  =  B  ->  ( A  -  ( y  x.  ( |_ `  ( A  /  y ) ) ) )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B
) ) ) ) )
24 df-mod 10293 . . 3  |-  mod  =  ( x  e.  RR ,  y  e.  RR+  |->  ( x  -  ( y  x.  ( |_ `  (
x  /  y ) ) ) ) )
2518, 23, 24ovmpog 5999 . 2  |-  ( ( A  e.  RR  /\  B  e.  RR+  /\  ( A  -  ( B  x.  ( |_ `  ( A  /  B ) ) ) )  e.  RR )  ->  ( A  mod  B )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B ) ) ) ) )
262, 6, 13, 25syl3anc 1238 1  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  mod  B )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B
) ) ) ) )
Colors of variables: wff set class
Syntax hints:    -> wi 4    /\ w3a 978    = wceq 1353    e. wcel 2146    =/= wne 2345   class class class wbr 3998   ` cfv 5208  (class class class)co 5865   RRcr 7785   0cc0 7786    x. cmul 7791    < clt 7966    - cmin 8102    / cdiv 8602   QQcq 9592   RR+crp 9624   |_cfl 10238    mod cmo 10292
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 614  ax-in2 615  ax-io 709  ax-5 1445  ax-7 1446  ax-gen 1447  ax-ie1 1491  ax-ie2 1492  ax-8 1502  ax-10 1503  ax-11 1504  ax-i12 1505  ax-bndl 1507  ax-4 1508  ax-17 1524  ax-i9 1528  ax-ial 1532  ax-i5r 1533  ax-13 2148  ax-14 2149  ax-ext 2157  ax-sep 4116  ax-pow 4169  ax-pr 4203  ax-un 4427  ax-setind 4530  ax-cnex 7877  ax-resscn 7878  ax-1cn 7879  ax-1re 7880  ax-icn 7881  ax-addcl 7882  ax-addrcl 7883  ax-mulcl 7884  ax-mulrcl 7885  ax-addcom 7886  ax-mulcom 7887  ax-addass 7888  ax-mulass 7889  ax-distr 7890  ax-i2m1 7891  ax-0lt1 7892  ax-1rid 7893  ax-0id 7894  ax-rnegex 7895  ax-precex 7896  ax-cnre 7897  ax-pre-ltirr 7898  ax-pre-ltwlin 7899  ax-pre-lttrn 7900  ax-pre-apti 7901  ax-pre-ltadd 7902  ax-pre-mulgt0 7903  ax-pre-mulext 7904  ax-arch 7905
This theorem depends on definitions:  df-bi 117  df-3or 979  df-3an 980  df-tru 1356  df-fal 1359  df-nf 1459  df-sb 1761  df-eu 2027  df-mo 2028  df-clab 2162  df-cleq 2168  df-clel 2171  df-nfc 2306  df-ne 2346  df-nel 2441  df-ral 2458  df-rex 2459  df-reu 2460  df-rmo 2461  df-rab 2462  df-v 2737  df-sbc 2961  df-csb 3056  df-dif 3129  df-un 3131  df-in 3133  df-ss 3140  df-pw 3574  df-sn 3595  df-pr 3596  df-op 3598  df-uni 3806  df-int 3841  df-iun 3884  df-br 3999  df-opab 4060  df-mpt 4061  df-id 4287  df-po 4290  df-iso 4291  df-xp 4626  df-rel 4627  df-cnv 4628  df-co 4629  df-dm 4630  df-rn 4631  df-res 4632  df-ima 4633  df-iota 5170  df-fun 5210  df-fn 5211  df-f 5212  df-fv 5216  df-riota 5821  df-ov 5868  df-oprab 5869  df-mpo 5870  df-1st 6131  df-2nd 6132  df-pnf 7968  df-mnf 7969  df-xr 7970  df-ltxr 7971  df-le 7972  df-sub 8104  df-neg 8105  df-reap 8506  df-ap 8513  df-div 8603  df-inn 8893  df-n0 9150  df-z 9227  df-q 9593  df-rp 9625  df-fl 10240  df-mod 10293
This theorem is referenced by:  modqvalr  10295  modqcl  10296  modq0  10299  modqge0  10302  modqlt  10303  modqdiffl  10305  modqfrac  10307  modqmulnn  10312  zmodcl  10314  modqid  10319  modqcyc  10329  modqadd1  10331  modqmul1  10347  modqdi  10362  modqsubdir  10363  iexpcyc  10594  dvdsmod  11835  divalgmod  11899  modgcd  11959  prmdiv  12202  odzdvds  12212  fldivp1  12313  mulgmodid  12882
  Copyright terms: Public domain W3C validator