![]() |
Metamath Proof Explorer |
< Previous
Next >
Nearby theorems |
|
Mirrors > Home > MPE Home > Th. List > modmuladd | Structured version Visualization version GIF version |
Description: Decomposition of an integer into a multiple of a modulus and a remainder. (Contributed by AV, 14-Jul-2021.) |
Ref | Expression |
---|---|
modmuladd | ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → ((𝐴 mod 𝑀) = 𝐵 ↔ ∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + 𝐵))) |
Step | Hyp | Ref | Expression |
---|---|---|---|
1 | oveq1 7455 | . . . . . 6 ⊢ (𝑘 = (⌊‘(𝐴 / 𝑀)) → (𝑘 · 𝑀) = ((⌊‘(𝐴 / 𝑀)) · 𝑀)) | |
2 | 1 | oveq1d 7463 | . . . . 5 ⊢ (𝑘 = (⌊‘(𝐴 / 𝑀)) → ((𝑘 · 𝑀) + (𝐴 mod 𝑀)) = (((⌊‘(𝐴 / 𝑀)) · 𝑀) + (𝐴 mod 𝑀))) |
3 | 2 | eqeq2d 2751 | . . . 4 ⊢ (𝑘 = (⌊‘(𝐴 / 𝑀)) → (𝐴 = ((𝑘 · 𝑀) + (𝐴 mod 𝑀)) ↔ 𝐴 = (((⌊‘(𝐴 / 𝑀)) · 𝑀) + (𝐴 mod 𝑀)))) |
4 | zre 12643 | . . . . . . . 8 ⊢ (𝐴 ∈ ℤ → 𝐴 ∈ ℝ) | |
5 | 4 | adantr 480 | . . . . . . 7 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → 𝐴 ∈ ℝ) |
6 | rpre 13065 | . . . . . . . 8 ⊢ (𝑀 ∈ ℝ+ → 𝑀 ∈ ℝ) | |
7 | 6 | adantl 481 | . . . . . . 7 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → 𝑀 ∈ ℝ) |
8 | rpne0 13073 | . . . . . . . 8 ⊢ (𝑀 ∈ ℝ+ → 𝑀 ≠ 0) | |
9 | 8 | adantl 481 | . . . . . . 7 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → 𝑀 ≠ 0) |
10 | 5, 7, 9 | redivcld 12122 | . . . . . 6 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → (𝐴 / 𝑀) ∈ ℝ) |
11 | 10 | flcld 13849 | . . . . 5 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → (⌊‘(𝐴 / 𝑀)) ∈ ℤ) |
12 | 11 | 3adant2 1131 | . . . 4 ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → (⌊‘(𝐴 / 𝑀)) ∈ ℤ) |
13 | flpmodeq 13925 | . . . . . . 7 ⊢ ((𝐴 ∈ ℝ ∧ 𝑀 ∈ ℝ+) → (((⌊‘(𝐴 / 𝑀)) · 𝑀) + (𝐴 mod 𝑀)) = 𝐴) | |
14 | 4, 13 | sylan 579 | . . . . . 6 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → (((⌊‘(𝐴 / 𝑀)) · 𝑀) + (𝐴 mod 𝑀)) = 𝐴) |
15 | 14 | eqcomd 2746 | . . . . 5 ⊢ ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℝ+) → 𝐴 = (((⌊‘(𝐴 / 𝑀)) · 𝑀) + (𝐴 mod 𝑀))) |
16 | 15 | 3adant2 1131 | . . . 4 ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → 𝐴 = (((⌊‘(𝐴 / 𝑀)) · 𝑀) + (𝐴 mod 𝑀))) |
17 | 3, 12, 16 | rspcedvdw 3638 | . . 3 ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → ∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + (𝐴 mod 𝑀))) |
18 | oveq2 7456 | . . . . . 6 ⊢ (𝐵 = (𝐴 mod 𝑀) → ((𝑘 · 𝑀) + 𝐵) = ((𝑘 · 𝑀) + (𝐴 mod 𝑀))) | |
19 | 18 | eqeq2d 2751 | . . . . 5 ⊢ (𝐵 = (𝐴 mod 𝑀) → (𝐴 = ((𝑘 · 𝑀) + 𝐵) ↔ 𝐴 = ((𝑘 · 𝑀) + (𝐴 mod 𝑀)))) |
20 | 19 | eqcoms 2748 | . . . 4 ⊢ ((𝐴 mod 𝑀) = 𝐵 → (𝐴 = ((𝑘 · 𝑀) + 𝐵) ↔ 𝐴 = ((𝑘 · 𝑀) + (𝐴 mod 𝑀)))) |
21 | 20 | rexbidv 3185 | . . 3 ⊢ ((𝐴 mod 𝑀) = 𝐵 → (∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + 𝐵) ↔ ∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + (𝐴 mod 𝑀)))) |
22 | 17, 21 | syl5ibrcom 247 | . 2 ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → ((𝐴 mod 𝑀) = 𝐵 → ∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + 𝐵))) |
23 | oveq1 7455 | . . . 4 ⊢ (𝐴 = ((𝑘 · 𝑀) + 𝐵) → (𝐴 mod 𝑀) = (((𝑘 · 𝑀) + 𝐵) mod 𝑀)) | |
24 | simpr 484 | . . . . 5 ⊢ (((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) ∧ 𝑘 ∈ ℤ) → 𝑘 ∈ ℤ) | |
25 | simpl3 1193 | . . . . 5 ⊢ (((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) ∧ 𝑘 ∈ ℤ) → 𝑀 ∈ ℝ+) | |
26 | simpl2 1192 | . . . . 5 ⊢ (((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) ∧ 𝑘 ∈ ℤ) → 𝐵 ∈ (0[,)𝑀)) | |
27 | muladdmodid 13962 | . . . . 5 ⊢ ((𝑘 ∈ ℤ ∧ 𝑀 ∈ ℝ+ ∧ 𝐵 ∈ (0[,)𝑀)) → (((𝑘 · 𝑀) + 𝐵) mod 𝑀) = 𝐵) | |
28 | 24, 25, 26, 27 | syl3anc 1371 | . . . 4 ⊢ (((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) ∧ 𝑘 ∈ ℤ) → (((𝑘 · 𝑀) + 𝐵) mod 𝑀) = 𝐵) |
29 | 23, 28 | sylan9eqr 2802 | . . 3 ⊢ ((((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) ∧ 𝑘 ∈ ℤ) ∧ 𝐴 = ((𝑘 · 𝑀) + 𝐵)) → (𝐴 mod 𝑀) = 𝐵) |
30 | 29 | rexlimdva2 3163 | . 2 ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → (∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + 𝐵) → (𝐴 mod 𝑀) = 𝐵)) |
31 | 22, 30 | impbid 212 | 1 ⊢ ((𝐴 ∈ ℤ ∧ 𝐵 ∈ (0[,)𝑀) ∧ 𝑀 ∈ ℝ+) → ((𝐴 mod 𝑀) = 𝐵 ↔ ∃𝑘 ∈ ℤ 𝐴 = ((𝑘 · 𝑀) + 𝐵))) |
Colors of variables: wff setvar class |
Syntax hints: → wi 4 ↔ wb 206 ∧ wa 395 ∧ w3a 1087 = wceq 1537 ∈ wcel 2108 ≠ wne 2946 ∃wrex 3076 ‘cfv 6573 (class class class)co 7448 ℝcr 11183 0cc0 11184 + caddc 11187 · cmul 11189 / cdiv 11947 ℤcz 12639 ℝ+crp 13057 [,)cico 13409 ⌊cfl 13841 mod cmo 13920 |
This theorem was proved from axioms: ax-mp 5 ax-1 6 ax-2 7 ax-3 8 ax-gen 1793 ax-4 1807 ax-5 1909 ax-6 1967 ax-7 2007 ax-8 2110 ax-9 2118 ax-10 2141 ax-11 2158 ax-12 2178 ax-ext 2711 ax-sep 5317 ax-nul 5324 ax-pow 5383 ax-pr 5447 ax-un 7770 ax-cnex 11240 ax-resscn 11241 ax-1cn 11242 ax-icn 11243 ax-addcl 11244 ax-addrcl 11245 ax-mulcl 11246 ax-mulrcl 11247 ax-mulcom 11248 ax-addass 11249 ax-mulass 11250 ax-distr 11251 ax-i2m1 11252 ax-1ne0 11253 ax-1rid 11254 ax-rnegex 11255 ax-rrecex 11256 ax-cnre 11257 ax-pre-lttri 11258 ax-pre-lttrn 11259 ax-pre-ltadd 11260 ax-pre-mulgt0 11261 ax-pre-sup 11262 |
This theorem depends on definitions: df-bi 207 df-an 396 df-or 847 df-3or 1088 df-3an 1089 df-tru 1540 df-fal 1550 df-ex 1778 df-nf 1782 df-sb 2065 df-mo 2543 df-eu 2572 df-clab 2718 df-cleq 2732 df-clel 2819 df-nfc 2895 df-ne 2947 df-nel 3053 df-ral 3068 df-rex 3077 df-rmo 3388 df-reu 3389 df-rab 3444 df-v 3490 df-sbc 3805 df-csb 3922 df-dif 3979 df-un 3981 df-in 3983 df-ss 3993 df-pss 3996 df-nul 4353 df-if 4549 df-pw 4624 df-sn 4649 df-pr 4651 df-op 4655 df-uni 4932 df-iun 5017 df-br 5167 df-opab 5229 df-mpt 5250 df-tr 5284 df-id 5593 df-eprel 5599 df-po 5607 df-so 5608 df-fr 5652 df-we 5654 df-xp 5706 df-rel 5707 df-cnv 5708 df-co 5709 df-dm 5710 df-rn 5711 df-res 5712 df-ima 5713 df-pred 6332 df-ord 6398 df-on 6399 df-lim 6400 df-suc 6401 df-iota 6525 df-fun 6575 df-fn 6576 df-f 6577 df-f1 6578 df-fo 6579 df-f1o 6580 df-fv 6581 df-riota 7404 df-ov 7451 df-oprab 7452 df-mpo 7453 df-om 7904 df-2nd 8031 df-frecs 8322 df-wrecs 8353 df-recs 8427 df-rdg 8466 df-er 8763 df-en 9004 df-dom 9005 df-sdom 9006 df-sup 9511 df-inf 9512 df-pnf 11326 df-mnf 11327 df-xr 11328 df-ltxr 11329 df-le 11330 df-sub 11522 df-neg 11523 df-div 11948 df-nn 12294 df-n0 12554 df-z 12640 df-uz 12904 df-rp 13058 df-ico 13413 df-fl 13843 df-mod 13921 |
This theorem is referenced by: modmuladdim 13965 |
Copyright terms: Public domain | W3C validator |