Metamath Proof Explorer


Theorem modsubdir

Description: Distribute the modulo operation over a subtraction. (Contributed by NM, 30-Dec-2008)

Ref Expression
Assertion modsubdir ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B mod C ≤ A mod C ↔ A − B mod C = A mod C − B mod C

Proof

Step Hyp Ref Expression
1 modcl ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A mod C ∈ ℝ
2 1 3adant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C ∈ ℝ
3 modcl ⊢ B ∈ ℝ ∧ C ∈ ℝ + → B mod C ∈ ℝ
4 3 3adant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B mod C ∈ ℝ
5 2 4 subge0d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ A mod C − B mod C ↔ B mod C ≤ A mod C
6 resubcl ⊢ A ∈ ℝ ∧ B ∈ ℝ → A − B ∈ ℝ
7 6 3adant3 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A − B ∈ ℝ
8 simp3 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → C ∈ ℝ +
9 rerpdivcl ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A C ∈ ℝ
10 9 flcld ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A C ∈ ℤ
11 10 3adant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A C ∈ ℤ
12 rerpdivcl ⊢ B ∈ ℝ ∧ C ∈ ℝ + → B C ∈ ℝ
13 12 flcld ⊢ B ∈ ℝ ∧ C ∈ ℝ + → B C ∈ ℤ
14 13 3adant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B C ∈ ℤ
15 11 14 zsubcld ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A C − B C ∈ ℤ
16 modcyc2 ⊢ A − B ∈ ℝ ∧ C ∈ ℝ + ∧ A C − B C ∈ ℤ → A - B - C ⁢ A C − B C mod C = A − B mod C
17 7 8 15 16 syl3anc ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A - B - C ⁢ A C − B C mod C = A − B mod C
18 recn ⊢ A ∈ ℝ → A ∈ ℂ
19 18 3ad2ant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A ∈ ℂ
20 recn ⊢ B ∈ ℝ → B ∈ ℂ
21 20 3ad2ant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B ∈ ℂ
22 rpre ⊢ C ∈ ℝ + → C ∈ ℝ
23 22 adantl ⊢ A ∈ ℝ ∧ C ∈ ℝ + → C ∈ ℝ
24 refldivcl ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A C ∈ ℝ
25 23 24 remulcld ⊢ A ∈ ℝ ∧ C ∈ ℝ + → C ⁢ A C ∈ ℝ
26 25 recnd ⊢ A ∈ ℝ ∧ C ∈ ℝ + → C ⁢ A C ∈ ℂ
27 26 3adant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → C ⁢ A C ∈ ℂ
28 22 adantl ⊢ B ∈ ℝ ∧ C ∈ ℝ + → C ∈ ℝ
29 refldivcl ⊢ B ∈ ℝ ∧ C ∈ ℝ + → B C ∈ ℝ
30 28 29 remulcld ⊢ B ∈ ℝ ∧ C ∈ ℝ + → C ⁢ B C ∈ ℝ
31 30 recnd ⊢ B ∈ ℝ ∧ C ∈ ℝ + → C ⁢ B C ∈ ℂ
32 31 3adant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → C ⁢ B C ∈ ℂ
33 19 21 27 32 sub4d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A - B - C ⁢ A C − C ⁢ B C = A - C ⁢ A C - B − C ⁢ B C
34 22 3ad2ant3 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → C ∈ ℝ
35 34 recnd ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → C ∈ ℂ
36 24 recnd ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A C ∈ ℂ
37 36 3adant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A C ∈ ℂ
38 29 recnd ⊢ B ∈ ℝ ∧ C ∈ ℝ + → B C ∈ ℂ
39 38 3adant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B C ∈ ℂ
40 35 37 39 subdid ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → C ⁢ A C − B C = C ⁢ A C − C ⁢ B C
41 40 oveq2d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A - B - C ⁢ A C − B C = A - B - C ⁢ A C − C ⁢ B C
42 modval ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A mod C = A − C ⁢ A C
43 42 3adant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C = A − C ⁢ A C
44 modval ⊢ B ∈ ℝ ∧ C ∈ ℝ + → B mod C = B − C ⁢ B C
45 44 3adant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B mod C = B − C ⁢ B C
46 43 45 oveq12d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C − B mod C = A - C ⁢ A C - B − C ⁢ B C
47 33 41 46 3eqtr4d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A - B - C ⁢ A C − B C = A mod C − B mod C
48 47 oveq1d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A - B - C ⁢ A C − B C mod C = A mod C − B mod C mod C
49 17 48 eqtr3d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A − B mod C = A mod C − B mod C mod C
50 49 adantr ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → A − B mod C = A mod C − B mod C mod C
51 2 4 resubcld ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C − B mod C ∈ ℝ
52 51 adantr ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → A mod C − B mod C ∈ ℝ
53 simpl3 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → C ∈ ℝ +
54 simpr ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → 0 ≤ A mod C − B mod C
55 modge0 ⊢ B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ B mod C
56 55 3adant1 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ B mod C
57 2 4 subge02d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ B mod C ↔ A mod C − B mod C ≤ A mod C
58 56 57 mpbid ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C − B mod C ≤ A mod C
59 modlt ⊢ A ∈ ℝ ∧ C ∈ ℝ + → A mod C < C
60 59 3adant2 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C < C
61 51 2 34 58 60 lelttrd ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → A mod C − B mod C < C
62 61 adantr ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → A mod C − B mod C < C
63 modid ⊢ A mod C − B mod C ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C ∧ A mod C − B mod C < C → A mod C − B mod C mod C = A mod C − B mod C
64 52 53 54 62 63 syl22anc ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → A mod C − B mod C mod C = A mod C − B mod C
65 50 64 eqtrd ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ 0 ≤ A mod C − B mod C → A − B mod C = A mod C − B mod C
66 modge0 ⊢ A − B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ A − B mod C
67 6 66 stoic3 ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ A − B mod C
68 67 adantr ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ A − B mod C = A mod C − B mod C → 0 ≤ A − B mod C
69 simpr ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ A − B mod C = A mod C − B mod C → A − B mod C = A mod C − B mod C
70 68 69 breqtrd ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + ∧ A − B mod C = A mod C − B mod C → 0 ≤ A mod C − B mod C
71 65 70 impbida ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → 0 ≤ A mod C − B mod C ↔ A − B mod C = A mod C − B mod C
72 5 71 bitr3d ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ C ∈ ℝ + → B mod C ≤ A mod C ↔ A − B mod C = A mod C − B mod C