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

Theorem modqval 10127
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 10076 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 9443 . . 3  |-  ( A  e.  QQ  ->  A  e.  RR )
213ad2ant1 1003 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  A  e.  RR )
3 qre 9443 . . . 4  |-  ( B  e.  QQ  ->  B  e.  RR )
433ad2ant2 1004 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR )
5 simp3 984 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  0  <  B )
64, 5elrpd 9509 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR+ )
75gt0ne0d 8297 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  =/=  0 )
8 qdivcl 9461 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  B  =/=  0 )  ->  ( A  /  B )  e.  QQ )
97, 8syld3an3 1262 . . . . . 6  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  /  B )  e.  QQ )
109flqcld 10080 . . . . 5  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  ZZ )
1110zred 9196 . . . 4  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  RR )
124, 11remulcld 7819 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( B  x.  ( |_ `  ( A  /  B
) ) )  e.  RR )
132, 12resubcld 8166 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  -  ( B  x.  ( |_ `  ( A  /  B ) ) ) )  e.  RR )
14 oveq1 5788 . . . . . 6  |-  ( x  =  A  ->  (
x  /  y )  =  ( A  / 
y ) )
1514fveq2d 5432 . . . . 5  |-  ( x  =  A  ->  ( |_ `  ( x  / 
y ) )  =  ( |_ `  ( A  /  y ) ) )
1615oveq2d 5797 . . . 4  |-  ( x  =  A  ->  (
y  x.  ( |_
`  ( x  / 
y ) ) )  =  ( y  x.  ( |_ `  ( A  /  y ) ) ) )
17 oveq12 5790 . . . 4  |-  ( ( x  =  A  /\  ( y  x.  ( |_ `  ( x  / 
y ) ) )  =  ( y  x.  ( |_ `  ( A  /  y ) ) ) )  ->  (
x  -  ( y  x.  ( |_ `  ( x  /  y
) ) ) )  =  ( A  -  ( y  x.  ( |_ `  ( A  / 
y ) ) ) ) )
1816, 17mpdan 418 . . 3  |-  ( x  =  A  ->  (
x  -  ( y  x.  ( |_ `  ( x  /  y
) ) ) )  =  ( A  -  ( y  x.  ( |_ `  ( A  / 
y ) ) ) ) )
19 oveq2 5789 . . . . . 6  |-  ( y  =  B  ->  ( A  /  y )  =  ( A  /  B
) )
2019fveq2d 5432 . . . . 5  |-  ( y  =  B  ->  ( |_ `  ( A  / 
y ) )  =  ( |_ `  ( A  /  B ) ) )
21 oveq12 5790 . . . . 5  |-  ( ( y  =  B  /\  ( |_ `  ( A  /  y ) )  =  ( |_ `  ( A  /  B
) ) )  -> 
( y  x.  ( |_ `  ( A  / 
y ) ) )  =  ( B  x.  ( |_ `  ( A  /  B ) ) ) )
2220, 21mpdan 418 . . . 4  |-  ( y  =  B  ->  (
y  x.  ( |_
`  ( A  / 
y ) ) )  =  ( B  x.  ( |_ `  ( A  /  B ) ) ) )
2322oveq2d 5797 . . 3  |-  ( y  =  B  ->  ( A  -  ( y  x.  ( |_ `  ( A  /  y ) ) ) )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B
) ) ) ) )
24 df-mod 10126 . . 3  |-  mod  =  ( x  e.  RR ,  y  e.  RR+  |->  ( x  -  ( y  x.  ( |_ `  (
x  /  y ) ) ) ) )
2518, 23, 24ovmpog 5912 . 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 1217 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 963    = wceq 1332    e. wcel 1481    =/= wne 2309   class class class wbr 3936   ` cfv 5130  (class class class)co 5781   RRcr 7642   0cc0 7643    x. cmul 7648    < clt 7823    - cmin 7956    / cdiv 8455   QQcq 9437   RR+crp 9469   |_cfl 10071    mod cmo 10125
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-ia1 105  ax-ia2 106  ax-ia3 107  ax-in1 604  ax-in2 605  ax-io 699  ax-5 1424  ax-7 1425  ax-gen 1426  ax-ie1 1470  ax-ie2 1471  ax-8 1483  ax-10 1484  ax-11 1485  ax-i12 1486  ax-bndl 1487  ax-4 1488  ax-13 1492  ax-14 1493  ax-17 1507  ax-i9 1511  ax-ial 1515  ax-i5r 1516  ax-ext 2122  ax-sep 4053  ax-pow 4105  ax-pr 4138  ax-un 4362  ax-setind 4459  ax-cnex 7734  ax-resscn 7735  ax-1cn 7736  ax-1re 7737  ax-icn 7738  ax-addcl 7739  ax-addrcl 7740  ax-mulcl 7741  ax-mulrcl 7742  ax-addcom 7743  ax-mulcom 7744  ax-addass 7745  ax-mulass 7746  ax-distr 7747  ax-i2m1 7748  ax-0lt1 7749  ax-1rid 7750  ax-0id 7751  ax-rnegex 7752  ax-precex 7753  ax-cnre 7754  ax-pre-ltirr 7755  ax-pre-ltwlin 7756  ax-pre-lttrn 7757  ax-pre-apti 7758  ax-pre-ltadd 7759  ax-pre-mulgt0 7760  ax-pre-mulext 7761  ax-arch 7762
This theorem depends on definitions:  df-bi 116  df-3or 964  df-3an 965  df-tru 1335  df-fal 1338  df-nf 1438  df-sb 1737  df-eu 2003  df-mo 2004  df-clab 2127  df-cleq 2133  df-clel 2136  df-nfc 2271  df-ne 2310  df-nel 2405  df-ral 2422  df-rex 2423  df-reu 2424  df-rmo 2425  df-rab 2426  df-v 2691  df-sbc 2913  df-csb 3007  df-dif 3077  df-un 3079  df-in 3081  df-ss 3088  df-pw 3516  df-sn 3537  df-pr 3538  df-op 3540  df-uni 3744  df-int 3779  df-iun 3822  df-br 3937  df-opab 3997  df-mpt 3998  df-id 4222  df-po 4225  df-iso 4226  df-xp 4552  df-rel 4553  df-cnv 4554  df-co 4555  df-dm 4556  df-rn 4557  df-res 4558  df-ima 4559  df-iota 5095  df-fun 5132  df-fn 5133  df-f 5134  df-fv 5138  df-riota 5737  df-ov 5784  df-oprab 5785  df-mpo 5786  df-1st 6045  df-2nd 6046  df-pnf 7825  df-mnf 7826  df-xr 7827  df-ltxr 7828  df-le 7829  df-sub 7958  df-neg 7959  df-reap 8360  df-ap 8367  df-div 8456  df-inn 8744  df-n0 9001  df-z 9078  df-q 9438  df-rp 9470  df-fl 10073  df-mod 10126
This theorem is referenced by:  modqvalr  10128  modqcl  10129  modq0  10132  modqge0  10135  modqlt  10136  modqdiffl  10138  modqfrac  10140  modqmulnn  10145  zmodcl  10147  modqid  10152  modqcyc  10162  modqadd1  10164  modqmul1  10180  modqdi  10195  modqsubdir  10196  iexpcyc  10427  dvdsmod  11594  divalgmod  11658  modgcd  11713
  Copyright terms: Public domain W3C validator