![]() |
Intuitionistic Logic Explorer |
< Previous
Next >
Nearby theorems |
|
Mirrors > Home > ILE Home > Th. List > modqval | GIF version |
Description: The value of the modulo operation. The modulo congruence notation of number theory, 𝐽≡𝐾 (modulo 𝑁), can be expressed in our notation as (𝐽 mod 𝑁) = (𝐾 mod 𝑁). 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 9569 we only prove this for rationals although other particular kinds of real numbers may be possible. (Contributed by Jim Kingdon, 16-Oct-2021.) |
Ref | Expression |
---|---|
modqval | ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵))))) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | qre 9005 | . . 3 ⊢ (𝐴 ∈ ℚ → 𝐴 ∈ ℝ) | |
2 | 1 | 3ad2ant1 960 | . 2 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → 𝐴 ∈ ℝ) |
3 | qre 9005 | . . . 4 ⊢ (𝐵 ∈ ℚ → 𝐵 ∈ ℝ) | |
4 | 3 | 3ad2ant2 961 | . . 3 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → 𝐵 ∈ ℝ) |
5 | simp3 941 | . . 3 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → 0 < 𝐵) | |
6 | 4, 5 | elrpd 9066 | . 2 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → 𝐵 ∈ ℝ+) |
7 | 5 | gt0ne0d 7890 | . . . . . . 7 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → 𝐵 ≠ 0) |
8 | qdivcl 9023 | . . . . . . 7 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 𝐵 ≠ 0) → (𝐴 / 𝐵) ∈ ℚ) | |
9 | 7, 8 | syld3an3 1215 | . . . . . 6 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (𝐴 / 𝐵) ∈ ℚ) |
10 | 9 | flqcld 9573 | . . . . 5 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (⌊‘(𝐴 / 𝐵)) ∈ ℤ) |
11 | 10 | zred 8764 | . . . 4 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (⌊‘(𝐴 / 𝐵)) ∈ ℝ) |
12 | 4, 11 | remulcld 7421 | . . 3 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (𝐵 · (⌊‘(𝐴 / 𝐵))) ∈ ℝ) |
13 | 2, 12 | resubcld 7762 | . 2 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))) ∈ ℝ) |
14 | oveq1 5598 | . . . . . 6 ⊢ (𝑥 = 𝐴 → (𝑥 / 𝑦) = (𝐴 / 𝑦)) | |
15 | 14 | fveq2d 5257 | . . . . 5 ⊢ (𝑥 = 𝐴 → (⌊‘(𝑥 / 𝑦)) = (⌊‘(𝐴 / 𝑦))) |
16 | 15 | oveq2d 5607 | . . . 4 ⊢ (𝑥 = 𝐴 → (𝑦 · (⌊‘(𝑥 / 𝑦))) = (𝑦 · (⌊‘(𝐴 / 𝑦)))) |
17 | oveq12 5600 | . . . 4 ⊢ ((𝑥 = 𝐴 ∧ (𝑦 · (⌊‘(𝑥 / 𝑦))) = (𝑦 · (⌊‘(𝐴 / 𝑦)))) → (𝑥 − (𝑦 · (⌊‘(𝑥 / 𝑦)))) = (𝐴 − (𝑦 · (⌊‘(𝐴 / 𝑦))))) | |
18 | 16, 17 | mpdan 412 | . . 3 ⊢ (𝑥 = 𝐴 → (𝑥 − (𝑦 · (⌊‘(𝑥 / 𝑦)))) = (𝐴 − (𝑦 · (⌊‘(𝐴 / 𝑦))))) |
19 | oveq2 5599 | . . . . . 6 ⊢ (𝑦 = 𝐵 → (𝐴 / 𝑦) = (𝐴 / 𝐵)) | |
20 | 19 | fveq2d 5257 | . . . . 5 ⊢ (𝑦 = 𝐵 → (⌊‘(𝐴 / 𝑦)) = (⌊‘(𝐴 / 𝐵))) |
21 | oveq12 5600 | . . . . 5 ⊢ ((𝑦 = 𝐵 ∧ (⌊‘(𝐴 / 𝑦)) = (⌊‘(𝐴 / 𝐵))) → (𝑦 · (⌊‘(𝐴 / 𝑦))) = (𝐵 · (⌊‘(𝐴 / 𝐵)))) | |
22 | 20, 21 | mpdan 412 | . . . 4 ⊢ (𝑦 = 𝐵 → (𝑦 · (⌊‘(𝐴 / 𝑦))) = (𝐵 · (⌊‘(𝐴 / 𝐵)))) |
23 | 22 | oveq2d 5607 | . . 3 ⊢ (𝑦 = 𝐵 → (𝐴 − (𝑦 · (⌊‘(𝐴 / 𝑦)))) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵))))) |
24 | df-mod 9619 | . . 3 ⊢ mod = (𝑥 ∈ ℝ, 𝑦 ∈ ℝ+ ↦ (𝑥 − (𝑦 · (⌊‘(𝑥 / 𝑦))))) | |
25 | 18, 23, 24 | ovmpt2g 5714 | . 2 ⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ+ ∧ (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵)))) ∈ ℝ) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵))))) |
26 | 2, 6, 13, 25 | syl3anc 1170 | 1 ⊢ ((𝐴 ∈ ℚ ∧ 𝐵 ∈ ℚ ∧ 0 < 𝐵) → (𝐴 mod 𝐵) = (𝐴 − (𝐵 · (⌊‘(𝐴 / 𝐵))))) |
Colors of variables: wff set class |
Syntax hints: → wi 4 ∧ w3a 920 = wceq 1285 ∈ wcel 1434 ≠ wne 2249 class class class wbr 3811 ‘cfv 4969 (class class class)co 5591 ℝcr 7252 0cc0 7253 · cmul 7258 < clt 7425 − cmin 7556 / cdiv 8037 ℚcq 8999 ℝ+crp 9029 ⌊cfl 9564 mod cmo 9618 |
This theorem was proved from axioms: ax-1 5 ax-2 6 ax-mp 7 ax-ia1 104 ax-ia2 105 ax-ia3 106 ax-in1 577 ax-in2 578 ax-io 663 ax-5 1377 ax-7 1378 ax-gen 1379 ax-ie1 1423 ax-ie2 1424 ax-8 1436 ax-10 1437 ax-11 1438 ax-i12 1439 ax-bndl 1440 ax-4 1441 ax-13 1445 ax-14 1446 ax-17 1460 ax-i9 1464 ax-ial 1468 ax-i5r 1469 ax-ext 2065 ax-sep 3922 ax-pow 3974 ax-pr 4000 ax-un 4224 ax-setind 4316 ax-cnex 7339 ax-resscn 7340 ax-1cn 7341 ax-1re 7342 ax-icn 7343 ax-addcl 7344 ax-addrcl 7345 ax-mulcl 7346 ax-mulrcl 7347 ax-addcom 7348 ax-mulcom 7349 ax-addass 7350 ax-mulass 7351 ax-distr 7352 ax-i2m1 7353 ax-0lt1 7354 ax-1rid 7355 ax-0id 7356 ax-rnegex 7357 ax-precex 7358 ax-cnre 7359 ax-pre-ltirr 7360 ax-pre-ltwlin 7361 ax-pre-lttrn 7362 ax-pre-apti 7363 ax-pre-ltadd 7364 ax-pre-mulgt0 7365 ax-pre-mulext 7366 ax-arch 7367 |
This theorem depends on definitions: df-bi 115 df-3or 921 df-3an 922 df-tru 1288 df-fal 1291 df-nf 1391 df-sb 1688 df-eu 1946 df-mo 1947 df-clab 2070 df-cleq 2076 df-clel 2079 df-nfc 2212 df-ne 2250 df-nel 2345 df-ral 2358 df-rex 2359 df-reu 2360 df-rmo 2361 df-rab 2362 df-v 2614 df-sbc 2827 df-csb 2920 df-dif 2986 df-un 2988 df-in 2990 df-ss 2997 df-pw 3408 df-sn 3428 df-pr 3429 df-op 3431 df-uni 3628 df-int 3663 df-iun 3706 df-br 3812 df-opab 3866 df-mpt 3867 df-id 4084 df-po 4087 df-iso 4088 df-xp 4407 df-rel 4408 df-cnv 4409 df-co 4410 df-dm 4411 df-rn 4412 df-res 4413 df-ima 4414 df-iota 4934 df-fun 4971 df-fn 4972 df-f 4973 df-fv 4977 df-riota 5547 df-ov 5594 df-oprab 5595 df-mpt2 5596 df-1st 5846 df-2nd 5847 df-pnf 7427 df-mnf 7428 df-xr 7429 df-ltxr 7430 df-le 7431 df-sub 7558 df-neg 7559 df-reap 7952 df-ap 7959 df-div 8038 df-inn 8317 df-n0 8566 df-z 8647 df-q 9000 df-rp 9030 df-fl 9566 df-mod 9619 |
This theorem is referenced by: modqvalr 9621 modqcl 9622 modq0 9625 modqge0 9628 modqlt 9629 modqdiffl 9631 modqfrac 9633 modqmulnn 9638 zmodcl 9640 modqid 9645 modqcyc 9655 modqadd1 9657 modqmul1 9673 modqdi 9688 modqsubdir 9689 iexpcyc 9895 dvdsmod 10643 divalgmod 10707 modgcd 10762 |
Copyright terms: Public domain | W3C validator |