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

Theorem modqval 10491
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 10438 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 9766 . . 3  |-  ( A  e.  QQ  ->  A  e.  RR )
213ad2ant1 1021 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  A  e.  RR )
3 qre 9766 . . . 4  |-  ( B  e.  QQ  ->  B  e.  RR )
433ad2ant2 1022 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR )
5 simp3 1002 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  0  <  B )
64, 5elrpd 9835 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  e.  RR+ )
75gt0ne0d 8605 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  B  =/=  0 )
8 qdivcl 9784 . . . . . . 7  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  B  =/=  0 )  ->  ( A  /  B )  e.  QQ )
97, 8syld3an3 1295 . . . . . 6  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  /  B )  e.  QQ )
109flqcld 10442 . . . . 5  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  ZZ )
1110zred 9515 . . . 4  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( |_ `  ( A  /  B ) )  e.  RR )
124, 11remulcld 8123 . . 3  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( B  x.  ( |_ `  ( A  /  B
) ) )  e.  RR )
132, 12resubcld 8473 . 2  |-  ( ( A  e.  QQ  /\  B  e.  QQ  /\  0  <  B )  ->  ( A  -  ( B  x.  ( |_ `  ( A  /  B ) ) ) )  e.  RR )
14 oveq1 5964 . . . . . 6  |-  ( x  =  A  ->  (
x  /  y )  =  ( A  / 
y ) )
1514fveq2d 5593 . . . . 5  |-  ( x  =  A  ->  ( |_ `  ( x  / 
y ) )  =  ( |_ `  ( A  /  y ) ) )
1615oveq2d 5973 . . . 4  |-  ( x  =  A  ->  (
y  x.  ( |_
`  ( x  / 
y ) ) )  =  ( y  x.  ( |_ `  ( A  /  y ) ) ) )
17 oveq12 5966 . . . 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 5965 . . . . . 6  |-  ( y  =  B  ->  ( A  /  y )  =  ( A  /  B
) )
2019fveq2d 5593 . . . . 5  |-  ( y  =  B  ->  ( |_ `  ( A  / 
y ) )  =  ( |_ `  ( A  /  B ) ) )
21 oveq12 5966 . . . . 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 5973 . . 3  |-  ( y  =  B  ->  ( A  -  ( y  x.  ( |_ `  ( A  /  y ) ) ) )  =  ( A  -  ( B  x.  ( |_ `  ( A  /  B
) ) ) ) )
24 df-mod 10490 . . 3  |-  mod  =  ( x  e.  RR ,  y  e.  RR+  |->  ( x  -  ( y  x.  ( |_ `  (
x  /  y ) ) ) ) )
2518, 23, 24ovmpog 6093 . 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 1250 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 981    = wceq 1373    e. wcel 2177    =/= wne 2377   class class class wbr 4051   ` cfv 5280  (class class class)co 5957   RRcr 7944   0cc0 7945    x. cmul 7950    < clt 8127    - cmin 8263    / cdiv 8765   QQcq 9760   RR+crp 9795   |_cfl 10433    mod cmo 10489
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 615  ax-in2 616  ax-io 711  ax-5 1471  ax-7 1472  ax-gen 1473  ax-ie1 1517  ax-ie2 1518  ax-8 1528  ax-10 1529  ax-11 1530  ax-i12 1531  ax-bndl 1533  ax-4 1534  ax-17 1550  ax-i9 1554  ax-ial 1558  ax-i5r 1559  ax-13 2179  ax-14 2180  ax-ext 2188  ax-sep 4170  ax-pow 4226  ax-pr 4261  ax-un 4488  ax-setind 4593  ax-cnex 8036  ax-resscn 8037  ax-1cn 8038  ax-1re 8039  ax-icn 8040  ax-addcl 8041  ax-addrcl 8042  ax-mulcl 8043  ax-mulrcl 8044  ax-addcom 8045  ax-mulcom 8046  ax-addass 8047  ax-mulass 8048  ax-distr 8049  ax-i2m1 8050  ax-0lt1 8051  ax-1rid 8052  ax-0id 8053  ax-rnegex 8054  ax-precex 8055  ax-cnre 8056  ax-pre-ltirr 8057  ax-pre-ltwlin 8058  ax-pre-lttrn 8059  ax-pre-apti 8060  ax-pre-ltadd 8061  ax-pre-mulgt0 8062  ax-pre-mulext 8063  ax-arch 8064
This theorem depends on definitions:  df-bi 117  df-3or 982  df-3an 983  df-tru 1376  df-fal 1379  df-nf 1485  df-sb 1787  df-eu 2058  df-mo 2059  df-clab 2193  df-cleq 2199  df-clel 2202  df-nfc 2338  df-ne 2378  df-nel 2473  df-ral 2490  df-rex 2491  df-reu 2492  df-rmo 2493  df-rab 2494  df-v 2775  df-sbc 3003  df-csb 3098  df-dif 3172  df-un 3174  df-in 3176  df-ss 3183  df-pw 3623  df-sn 3644  df-pr 3645  df-op 3647  df-uni 3857  df-int 3892  df-iun 3935  df-br 4052  df-opab 4114  df-mpt 4115  df-id 4348  df-po 4351  df-iso 4352  df-xp 4689  df-rel 4690  df-cnv 4691  df-co 4692  df-dm 4693  df-rn 4694  df-res 4695  df-ima 4696  df-iota 5241  df-fun 5282  df-fn 5283  df-f 5284  df-fv 5288  df-riota 5912  df-ov 5960  df-oprab 5961  df-mpo 5962  df-1st 6239  df-2nd 6240  df-pnf 8129  df-mnf 8130  df-xr 8131  df-ltxr 8132  df-le 8133  df-sub 8265  df-neg 8266  df-reap 8668  df-ap 8675  df-div 8766  df-inn 9057  df-n0 9316  df-z 9393  df-q 9761  df-rp 9796  df-fl 10435  df-mod 10490
This theorem is referenced by:  modqvalr  10492  modqcl  10493  modq0  10496  modqge0  10499  modqlt  10500  modqdiffl  10502  modqfrac  10504  modqmulnn  10509  zmodcl  10511  modqid  10516  modqcyc  10526  modqadd1  10528  modqmul1  10544  modqdi  10559  modqsubdir  10560  iexpcyc  10811  dvdsmod  12248  divalgmod  12313  modgcd  12387  prmdiv  12632  odzdvds  12643  fldivp1  12746  mulgmodid  13572  lgseisenlem4  15625
  Copyright terms: Public domain W3C validator