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

Theorem modqval 10686
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 10633 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 9957 . . 3  |-  ( A  e.  QQ  ->  A  e.  RR )
213ad2ant1 1045 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  A  e.  RR )
3 qre 9957 . . . 4  |-  ( B  e.  QQ  ->  B  e.  RR )
433ad2ant2 1046 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR )
5 simp3 1026 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  0  <  B )
64, 5elrpd 10026 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR+ )
75gt0ne0d 8786 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  =/=  0 )
8 qdivcl 9975 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  B  =/=  0 )  ->  ( A  /  B )  e.  QQ )
97, 8syld3an3 1319 . . . . . 6  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  /  B )  e.  QQ )
109flqcld 10637 . . . . 5  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  ZZ )
1110zred 9700 . . . 4  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  RR )
124, 11remulcld 8304 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( B  x.  ( |_ `  ( A  /  B
) ) )  e.  RR )
132, 12resubcld 8654 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  -  ( B  x.  ( |_ `  ( A  /  B ) ) ) )  e.  RR )
14 oveq1 6057 . . . . . 6  |-  ( x  =  A  ->  (
x  /  y )  =  ( A  / 
y ) )
1514fveq2d 5674 . . . . 5  |-  ( x  =  A  ->  ( |_ `  ( x  / 
y ) )  =  ( |_ `  ( A  /  y ) ) )
1615oveq2d 6066 . . . 4  |-  ( x  =  A  ->  (
y  x.  ( |_
`  ( x  / 
y ) ) )  =  ( y  x.  ( |_ `  ( A  /  y ) ) ) )
17 oveq12 6059 . . . 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 6058 . . . . . 6  |-  ( y  =  B  ->  ( A  /  y )  =  ( A  /  B
) )
2019fveq2d 5674 . . . . 5  |-  ( y  =  B  ->  ( |_ `  ( A  / 
y ) )  =  ( |_ `  ( A  /  B ) ) )
21 oveq12 6059 . . . . 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 6066 . . 3  |-  ( y  =  B  ->  ( A  -  ( y  x.  ( |_ `  ( A  /  y ) ) ) )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B
) ) ) ) )
24 df-mod 10685 . . 3  |-  mod  =  ( x  e.  RR ,  y  e.  RR+  |->  ( x  -  ( y  x.  ( |_ `  (
x  /  y ) ) ) ) )
2518, 23, 24ovmpog 6188 . 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 1274 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 1005    = wceq 1398    e. wcel 2203    =/= wne 2412   class class class wbr 4109   ` cfv 5352  (class class class)co 6050   RRcr 8126   0cc0 8127    x. cmul 8132    < clt 8308    - cmin 8444    / cdiv 8946   QQcq 9951   RR+crp 9986   |_cfl 10628    mod cmo 10684
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 2205  ax-14 2206  ax-ext 2214  ax-sep 4228  ax-pow 4287  ax-pr 4322  ax-un 4554  ax-setind 4659  ax-cnex 8218  ax-resscn 8219  ax-1cn 8220  ax-1re 8221  ax-icn 8222  ax-addcl 8223  ax-addrcl 8224  ax-mulcl 8225  ax-mulrcl 8226  ax-addcom 8227  ax-mulcom 8228  ax-addass 8229  ax-mulass 8230  ax-distr 8231  ax-i2m1 8232  ax-0lt1 8233  ax-1rid 8234  ax-0id 8235  ax-rnegex 8236  ax-precex 8237  ax-cnre 8238  ax-pre-ltirr 8239  ax-pre-ltwlin 8240  ax-pre-lttrn 8241  ax-pre-apti 8242  ax-pre-ltadd 8243  ax-pre-mulgt0 8244  ax-pre-mulext 8245  ax-arch 8246
This theorem depends on definitions:  df-bi 117  df-3or 1006  df-3an 1007  df-tru 1401  df-fal 1404  df-nf 1510  df-sb 1812  df-eu 2083  df-mo 2084  df-clab 2219  df-cleq 2225  df-clel 2228  df-nfc 2373  df-ne 2413  df-nel 2508  df-ral 2525  df-rex 2526  df-reu 2527  df-rmo 2528  df-rab 2529  df-v 2815  df-sbc 3043  df-csb 3139  df-dif 3213  df-un 3215  df-in 3217  df-ss 3224  df-pw 3671  df-sn 3695  df-pr 3696  df-op 3698  df-uni 3915  df-int 3950  df-iun 3993  df-br 4110  df-opab 4172  df-mpt 4173  df-id 4414  df-po 4417  df-iso 4418  df-xp 4755  df-rel 4756  df-cnv 4757  df-co 4758  df-dm 4759  df-rn 4760  df-res 4761  df-ima 4762  df-iota 5312  df-fun 5354  df-fn 5355  df-f 5356  df-fv 5360  df-riota 6003  df-ov 6053  df-oprab 6054  df-mpo 6055  df-1st 6334  df-2nd 6335  df-pnf 8310  df-mnf 8311  df-xr 8312  df-ltxr 8313  df-le 8314  df-sub 8446  df-neg 8447  df-reap 8849  df-ap 8856  df-div 8947  df-inn 9238  df-n0 9497  df-z 9578  df-q 9952  df-rp 9987  df-fl 10630  df-mod 10685
This theorem is referenced by:  modqvalr  10687  modqcl  10688  modq0  10691  modqge0  10694  modqlt  10695  modqdiffl  10697  modqfrac  10699  modqmulnn  10704  zmodcl  10706  modqid  10711  modqcyc  10721  modqadd1  10723  modqmul1  10739  modqdi  10754  modqsubdir  10755  iexpcyc  11006  dvdsmod  12548  divalgmod  12613  modgcd  12687  prmdiv  12932  odzdvds  12943  fldivp1  13046  mulgmodid  13878  lgseisenlem4  15946
  Copyright terms: Public domain W3C validator