Metamath Proof Explorer


Theorem modaddmodup

Description: The sum of an integer modulo a positive integer and another integer minus the positive integer equals the sum of the two integers modulo the positive integer if the other integer is in the upper part of the range between 0 and the positive integer. (Contributed by AV, 30-Oct-2018)

Ref Expression
Assertion modaddmodup ⊢ A ∈ ℤ ∧ M ∈ ℕ → B ∈ M − A mod M ..^ M → B + A mod M - M = B + A mod M

Proof

Step Hyp Ref Expression
1 elfzoelz ⊢ B ∈ M − A mod M ..^ M → B ∈ ℤ
2 1 zred ⊢ B ∈ M − A mod M ..^ M → B ∈ ℝ
3 2 adantr ⊢ B ∈ M − A mod M ..^ M ∧ A ∈ ℤ ∧ M ∈ ℕ → B ∈ ℝ
4 zmodcl ⊢ A ∈ ℤ ∧ M ∈ ℕ → A mod M ∈ ℕ 0
5 4 nn0red ⊢ A ∈ ℤ ∧ M ∈ ℕ → A mod M ∈ ℝ
6 5 adantl ⊢ B ∈ M − A mod M ..^ M ∧ A ∈ ℤ ∧ M ∈ ℕ → A mod M ∈ ℝ
7 3 6 readdcld ⊢ B ∈ M − A mod M ..^ M ∧ A ∈ ℤ ∧ M ∈ ℕ → B + A mod M ∈ ℝ
8 7 ancoms ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → B + A mod M ∈ ℝ
9 nnrp ⊢ M ∈ ℕ → M ∈ ℝ +
10 9 ad2antlr ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → M ∈ ℝ +
11 elfzo2 ⊢ B ∈ M − A mod M ..^ M ↔ B ∈ ℤ ≥ M − A mod M ∧ M ∈ ℤ ∧ B < M
12 eluz2 ⊢ B ∈ ℤ ≥ M − A mod M ↔ M − A mod M ∈ ℤ ∧ B ∈ ℤ ∧ M − A mod M ≤ B
13 nnre ⊢ M ∈ ℕ → M ∈ ℝ
14 13 adantl ⊢ A ∈ ℤ ∧ M ∈ ℕ → M ∈ ℝ
15 14 adantl ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → M ∈ ℝ
16 5 adantl ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → A mod M ∈ ℝ
17 zre ⊢ B ∈ ℤ → B ∈ ℝ
18 17 adantr ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → B ∈ ℝ
19 15 16 18 lesubaddd ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → M − A mod M ≤ B ↔ M ≤ B + A mod M
20 19 biimpd ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → M − A mod M ≤ B → M ≤ B + A mod M
21 20 impancom ⊢ B ∈ ℤ ∧ M − A mod M ≤ B → A ∈ ℤ ∧ M ∈ ℕ → M ≤ B + A mod M
22 21 3adant1 ⊢ M − A mod M ∈ ℤ ∧ B ∈ ℤ ∧ M − A mod M ≤ B → A ∈ ℤ ∧ M ∈ ℕ → M ≤ B + A mod M
23 12 22 sylbi ⊢ B ∈ ℤ ≥ M − A mod M → A ∈ ℤ ∧ M ∈ ℕ → M ≤ B + A mod M
24 23 3ad2ant1 ⊢ B ∈ ℤ ≥ M − A mod M ∧ M ∈ ℤ ∧ B < M → A ∈ ℤ ∧ M ∈ ℕ → M ≤ B + A mod M
25 11 24 sylbi ⊢ B ∈ M − A mod M ..^ M → A ∈ ℤ ∧ M ∈ ℕ → M ≤ B + A mod M
26 25 impcom ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → M ≤ B + A mod M
27 eluzelz ⊢ B ∈ ℤ ≥ M − A mod M → B ∈ ℤ
28 17 5 anim12i ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → B ∈ ℝ ∧ A mod M ∈ ℝ
29 13 13 jca ⊢ M ∈ ℕ → M ∈ ℝ ∧ M ∈ ℝ
30 29 adantl ⊢ A ∈ ℤ ∧ M ∈ ℕ → M ∈ ℝ ∧ M ∈ ℝ
31 30 adantl ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → M ∈ ℝ ∧ M ∈ ℝ
32 28 31 jca ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ → B ∈ ℝ ∧ A mod M ∈ ℝ ∧ M ∈ ℝ ∧ M ∈ ℝ
33 32 adantr ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → B ∈ ℝ ∧ A mod M ∈ ℝ ∧ M ∈ ℝ ∧ M ∈ ℝ
34 simpr ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → B < M
35 zre ⊢ A ∈ ℤ → A ∈ ℝ
36 modlt ⊢ A ∈ ℝ ∧ M ∈ ℝ + → A mod M < M
37 35 9 36 syl2an ⊢ A ∈ ℤ ∧ M ∈ ℕ → A mod M < M
38 5 14 37 ltled ⊢ A ∈ ℤ ∧ M ∈ ℕ → A mod M ≤ M
39 38 ad2antlr ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → A mod M ≤ M
40 34 39 jca ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → B < M ∧ A mod M ≤ M
41 ltleadd ⊢ B ∈ ℝ ∧ A mod M ∈ ℝ ∧ M ∈ ℝ ∧ M ∈ ℝ → B < M ∧ A mod M ≤ M → B + A mod M < M + M
42 33 40 41 sylc ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → B + A mod M < M + M
43 nncn ⊢ M ∈ ℕ → M ∈ ℂ
44 43 2timesd ⊢ M ∈ ℕ → 2 ⋅ M = M + M
45 44 adantl ⊢ A ∈ ℤ ∧ M ∈ ℕ → 2 ⋅ M = M + M
46 45 ad2antlr ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → 2 ⋅ M = M + M
47 42 46 breqtrrd ⊢ B ∈ ℤ ∧ A ∈ ℤ ∧ M ∈ ℕ ∧ B < M → B + A mod M < 2 ⋅ M
48 47 exp31 ⊢ B ∈ ℤ → A ∈ ℤ ∧ M ∈ ℕ → B < M → B + A mod M < 2 ⋅ M
49 48 com23 ⊢ B ∈ ℤ → B < M → A ∈ ℤ ∧ M ∈ ℕ → B + A mod M < 2 ⋅ M
50 27 49 syl ⊢ B ∈ ℤ ≥ M − A mod M → B < M → A ∈ ℤ ∧ M ∈ ℕ → B + A mod M < 2 ⋅ M
51 50 imp ⊢ B ∈ ℤ ≥ M − A mod M ∧ B < M → A ∈ ℤ ∧ M ∈ ℕ → B + A mod M < 2 ⋅ M
52 51 3adant2 ⊢ B ∈ ℤ ≥ M − A mod M ∧ M ∈ ℤ ∧ B < M → A ∈ ℤ ∧ M ∈ ℕ → B + A mod M < 2 ⋅ M
53 11 52 sylbi ⊢ B ∈ M − A mod M ..^ M → A ∈ ℤ ∧ M ∈ ℕ → B + A mod M < 2 ⋅ M
54 53 impcom ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → B + A mod M < 2 ⋅ M
55 2submod ⊢ B + A mod M ∈ ℝ ∧ M ∈ ℝ + ∧ M ≤ B + A mod M ∧ B + A mod M < 2 ⋅ M → B + A mod M mod M = B + A mod M - M
56 55 eqcomd ⊢ B + A mod M ∈ ℝ ∧ M ∈ ℝ + ∧ M ≤ B + A mod M ∧ B + A mod M < 2 ⋅ M → B + A mod M - M = B + A mod M mod M
57 8 10 26 54 56 syl22anc ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → B + A mod M - M = B + A mod M mod M
58 35 adantr ⊢ A ∈ ℤ ∧ M ∈ ℕ → A ∈ ℝ
59 58 adantr ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → A ∈ ℝ
60 2 adantl ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → B ∈ ℝ
61 modadd2mod ⊢ A ∈ ℝ ∧ B ∈ ℝ ∧ M ∈ ℝ + → B + A mod M mod M = B + A mod M
62 59 60 10 61 syl3anc ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → B + A mod M mod M = B + A mod M
63 57 62 eqtrd ⊢ A ∈ ℤ ∧ M ∈ ℕ ∧ B ∈ M − A mod M ..^ M → B + A mod M - M = B + A mod M
64 63 ex ⊢ A ∈ ℤ ∧ M ∈ ℕ → B ∈ M − A mod M ..^ M → B + A mod M - M = B + A mod M