Proof of Theorem modsubdir
Step | Hyp | Ref
| Expression |
1 | | modcl 13593 |
. . . 4
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 mod 𝐶) ∈
ℝ) |
2 | 1 | 3adant2 1130 |
. . 3
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 mod 𝐶) ∈
ℝ) |
3 | | modcl 13593 |
. . . 4
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐵 mod 𝐶) ∈
ℝ) |
4 | 3 | 3adant1 1129 |
. . 3
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐵 mod 𝐶) ∈
ℝ) |
5 | 2, 4 | subge0d 11565 |
. 2
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (0 ≤ ((𝐴 mod
𝐶) − (𝐵 mod 𝐶)) ↔ (𝐵 mod 𝐶) ≤ (𝐴 mod 𝐶))) |
6 | | resubcl 11285 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ) → (𝐴 − 𝐵) ∈ ℝ) |
7 | 6 | 3adant3 1131 |
. . . . . . 7
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 − 𝐵) ∈
ℝ) |
8 | | simp3 1137 |
. . . . . . 7
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐶 ∈
ℝ+) |
9 | | rerpdivcl 12760 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 / 𝐶) ∈
ℝ) |
10 | 9 | flcld 13518 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐴 /
𝐶)) ∈
ℤ) |
11 | 10 | 3adant2 1130 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐴 /
𝐶)) ∈
ℤ) |
12 | | rerpdivcl 12760 |
. . . . . . . . . 10
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐵 / 𝐶) ∈
ℝ) |
13 | 12 | flcld 13518 |
. . . . . . . . 9
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐵 /
𝐶)) ∈
ℤ) |
14 | 13 | 3adant1 1129 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐵 /
𝐶)) ∈
ℤ) |
15 | 11, 14 | zsubcld 12431 |
. . . . . . 7
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((⌊‘(𝐴 /
𝐶)) −
(⌊‘(𝐵 / 𝐶))) ∈
ℤ) |
16 | | modcyc2 13627 |
. . . . . . 7
⊢ (((𝐴 − 𝐵) ∈ ℝ ∧ 𝐶 ∈ ℝ+ ∧
((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶))) ∈ ℤ) → (((𝐴 − 𝐵) − (𝐶 · ((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶))))) mod 𝐶) = ((𝐴 − 𝐵) mod 𝐶)) |
17 | 7, 8, 15, 16 | syl3anc 1370 |
. . . . . 6
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (((𝐴 − 𝐵) − (𝐶 · ((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶))))) mod 𝐶) = ((𝐴 − 𝐵) mod 𝐶)) |
18 | | recn 10961 |
. . . . . . . . . 10
⊢ (𝐴 ∈ ℝ → 𝐴 ∈
ℂ) |
19 | 18 | 3ad2ant1 1132 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐴 ∈
ℂ) |
20 | | recn 10961 |
. . . . . . . . . 10
⊢ (𝐵 ∈ ℝ → 𝐵 ∈
ℂ) |
21 | 20 | 3ad2ant2 1133 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐵 ∈
ℂ) |
22 | | rpre 12738 |
. . . . . . . . . . . . 13
⊢ (𝐶 ∈ ℝ+
→ 𝐶 ∈
ℝ) |
23 | 22 | adantl 482 |
. . . . . . . . . . . 12
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐶 ∈
ℝ) |
24 | | refldivcl 13543 |
. . . . . . . . . . . 12
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐴 /
𝐶)) ∈
ℝ) |
25 | 23, 24 | remulcld 11005 |
. . . . . . . . . . 11
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
(⌊‘(𝐴 / 𝐶))) ∈
ℝ) |
26 | 25 | recnd 11003 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
(⌊‘(𝐴 / 𝐶))) ∈
ℂ) |
27 | 26 | 3adant2 1130 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
(⌊‘(𝐴 / 𝐶))) ∈
ℂ) |
28 | 22 | adantl 482 |
. . . . . . . . . . . 12
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐶 ∈
ℝ) |
29 | | refldivcl 13543 |
. . . . . . . . . . . 12
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐵 /
𝐶)) ∈
ℝ) |
30 | 28, 29 | remulcld 11005 |
. . . . . . . . . . 11
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
(⌊‘(𝐵 / 𝐶))) ∈
ℝ) |
31 | 30 | recnd 11003 |
. . . . . . . . . 10
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
(⌊‘(𝐵 / 𝐶))) ∈
ℂ) |
32 | 31 | 3adant1 1129 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
(⌊‘(𝐵 / 𝐶))) ∈
ℂ) |
33 | 19, 21, 27, 32 | sub4d 11381 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 − 𝐵) − ((𝐶 · (⌊‘(𝐴 / 𝐶))) − (𝐶 · (⌊‘(𝐵 / 𝐶))))) = ((𝐴 − (𝐶 · (⌊‘(𝐴 / 𝐶)))) − (𝐵 − (𝐶 · (⌊‘(𝐵 / 𝐶)))))) |
34 | 22 | 3ad2ant3 1134 |
. . . . . . . . . . 11
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐶 ∈
ℝ) |
35 | 34 | recnd 11003 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 𝐶 ∈
ℂ) |
36 | 24 | recnd 11003 |
. . . . . . . . . . 11
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐴 /
𝐶)) ∈
ℂ) |
37 | 36 | 3adant2 1130 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐴 /
𝐶)) ∈
ℂ) |
38 | 29 | recnd 11003 |
. . . . . . . . . . 11
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐵 /
𝐶)) ∈
ℂ) |
39 | 38 | 3adant1 1129 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (⌊‘(𝐵 /
𝐶)) ∈
ℂ) |
40 | 35, 37, 39 | subdid 11431 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐶 ·
((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶)))) = ((𝐶 · (⌊‘(𝐴 / 𝐶))) − (𝐶 · (⌊‘(𝐵 / 𝐶))))) |
41 | 40 | oveq2d 7291 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 − 𝐵) − (𝐶 · ((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶))))) = ((𝐴 − 𝐵) − ((𝐶 · (⌊‘(𝐴 / 𝐶))) − (𝐶 · (⌊‘(𝐵 / 𝐶)))))) |
42 | | modval 13591 |
. . . . . . . . . 10
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 mod 𝐶) = (𝐴 − (𝐶 · (⌊‘(𝐴 / 𝐶))))) |
43 | 42 | 3adant2 1130 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 mod 𝐶) = (𝐴 − (𝐶 · (⌊‘(𝐴 / 𝐶))))) |
44 | | modval 13591 |
. . . . . . . . . 10
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐵 mod 𝐶) = (𝐵 − (𝐶 · (⌊‘(𝐵 / 𝐶))))) |
45 | 44 | 3adant1 1129 |
. . . . . . . . 9
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐵 mod 𝐶) = (𝐵 − (𝐶 · (⌊‘(𝐵 / 𝐶))))) |
46 | 43, 45 | oveq12d 7293 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) = ((𝐴 − (𝐶 · (⌊‘(𝐴 / 𝐶)))) − (𝐵 − (𝐶 · (⌊‘(𝐵 / 𝐶)))))) |
47 | 33, 41, 46 | 3eqtr4d 2788 |
. . . . . . 7
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 − 𝐵) − (𝐶 · ((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶))))) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
48 | 47 | oveq1d 7290 |
. . . . . 6
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (((𝐴 − 𝐵) − (𝐶 · ((⌊‘(𝐴 / 𝐶)) − (⌊‘(𝐵 / 𝐶))))) mod 𝐶) = (((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) mod 𝐶)) |
49 | 17, 48 | eqtr3d 2780 |
. . . . 5
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 − 𝐵) mod 𝐶) = (((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) mod 𝐶)) |
50 | 49 | adantr 481 |
. . . 4
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → ((𝐴 − 𝐵) mod 𝐶) = (((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) mod 𝐶)) |
51 | 2, 4 | resubcld 11403 |
. . . . . 6
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) ∈ ℝ) |
52 | 51 | adantr 481 |
. . . . 5
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) ∈ ℝ) |
53 | | simpl3 1192 |
. . . . 5
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → 𝐶 ∈
ℝ+) |
54 | | simpr 485 |
. . . . 5
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
55 | | modge0 13599 |
. . . . . . . . 9
⊢ ((𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 0 ≤ (𝐵 mod 𝐶)) |
56 | 55 | 3adant1 1129 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 0 ≤ (𝐵 mod 𝐶)) |
57 | 2, 4 | subge02d 11567 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (0 ≤ (𝐵 mod 𝐶) ↔ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) ≤ (𝐴 mod 𝐶))) |
58 | 56, 57 | mpbid 231 |
. . . . . . 7
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) ≤ (𝐴 mod 𝐶)) |
59 | | modlt 13600 |
. . . . . . . 8
⊢ ((𝐴 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 mod 𝐶) < 𝐶) |
60 | 59 | 3adant2 1130 |
. . . . . . 7
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (𝐴 mod 𝐶) < 𝐶) |
61 | 51, 2, 34, 58, 60 | lelttrd 11133 |
. . . . . 6
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) < 𝐶) |
62 | 61 | adantr 481 |
. . . . 5
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) < 𝐶) |
63 | | modid 13616 |
. . . . 5
⊢
(((((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) ∈ ℝ ∧ 𝐶 ∈ ℝ+) ∧ (0 ≤
((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) ∧ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) < 𝐶)) → (((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
64 | 52, 53, 54, 62, 63 | syl22anc 836 |
. . . 4
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → (((𝐴 mod 𝐶) − (𝐵 mod 𝐶)) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
65 | 50, 64 | eqtrd 2778 |
. . 3
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
66 | | modge0 13599 |
. . . . . 6
⊢ (((𝐴 − 𝐵) ∈ ℝ ∧ 𝐶 ∈ ℝ+) → 0 ≤
((𝐴 − 𝐵) mod 𝐶)) |
67 | 6, 66 | stoic3 1779 |
. . . . 5
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ 0 ≤ ((𝐴 −
𝐵) mod 𝐶)) |
68 | 67 | adantr 481 |
. . . 4
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → 0 ≤ ((𝐴 − 𝐵) mod 𝐶)) |
69 | | simpr 485 |
. . . 4
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
70 | 68, 69 | breqtrd 5100 |
. . 3
⊢ (((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
∧ ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) → 0 ≤ ((𝐴 mod 𝐶) − (𝐵 mod 𝐶))) |
71 | 65, 70 | impbida 798 |
. 2
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ (0 ≤ ((𝐴 mod
𝐶) − (𝐵 mod 𝐶)) ↔ ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)))) |
72 | 5, 71 | bitr3d 280 |
1
⊢ ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝐶 ∈ ℝ+)
→ ((𝐵 mod 𝐶) ≤ (𝐴 mod 𝐶) ↔ ((𝐴 − 𝐵) mod 𝐶) = ((𝐴 mod 𝐶) − (𝐵 mod 𝐶)))) |