MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  modaddmodup Structured version   Visualization version   GIF version

Theorem modaddmodup 13839
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.)
Assertion
Ref Expression
modaddmodup ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) → ((𝐵 + (𝐴 mod 𝑀)) − 𝑀) = ((𝐵 + 𝐴) mod 𝑀)))

Proof of Theorem modaddmodup
StepHypRef Expression
1 elfzoelz 13572 . . . . . . . 8 (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) → 𝐵 ∈ ℤ)
21zred 12607 . . . . . . 7 (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) → 𝐵 ∈ ℝ)
32adantr 481 . . . . . 6 ((𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → 𝐵 ∈ ℝ)
4 zmodcl 13796 . . . . . . . 8 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐴 mod 𝑀) ∈ ℕ0)
54nn0red 12474 . . . . . . 7 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐴 mod 𝑀) ∈ ℝ)
65adantl 482 . . . . . 6 ((𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → (𝐴 mod 𝑀) ∈ ℝ)
73, 6readdcld 11184 . . . . 5 ((𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → (𝐵 + (𝐴 mod 𝑀)) ∈ ℝ)
87ancoms 459 . . . 4 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → (𝐵 + (𝐴 mod 𝑀)) ∈ ℝ)
9 nnrp 12926 . . . . 5 (𝑀 ∈ ℕ → 𝑀 ∈ ℝ+)
109ad2antlr 725 . . . 4 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → 𝑀 ∈ ℝ+)
11 elfzo2 13575 . . . . . 6 (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) ↔ (𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) ∧ 𝑀 ∈ ℤ ∧ 𝐵 < 𝑀))
12 eluz2 12769 . . . . . . . 8 (𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) ↔ ((𝑀 − (𝐴 mod 𝑀)) ∈ ℤ ∧ 𝐵 ∈ ℤ ∧ (𝑀 − (𝐴 mod 𝑀)) ≤ 𝐵))
13 nnre 12160 . . . . . . . . . . . . . 14 (𝑀 ∈ ℕ → 𝑀 ∈ ℝ)
1413adantl 482 . . . . . . . . . . . . 13 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝑀 ∈ ℝ)
1514adantl 482 . . . . . . . . . . . 12 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → 𝑀 ∈ ℝ)
165adantl 482 . . . . . . . . . . . 12 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → (𝐴 mod 𝑀) ∈ ℝ)
17 zre 12503 . . . . . . . . . . . . 13 (𝐵 ∈ ℤ → 𝐵 ∈ ℝ)
1817adantr 481 . . . . . . . . . . . 12 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → 𝐵 ∈ ℝ)
1915, 16, 18lesubaddd 11752 . . . . . . . . . . 11 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → ((𝑀 − (𝐴 mod 𝑀)) ≤ 𝐵𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
2019biimpd 228 . . . . . . . . . 10 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → ((𝑀 − (𝐴 mod 𝑀)) ≤ 𝐵𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
2120impancom 452 . . . . . . . . 9 ((𝐵 ∈ ℤ ∧ (𝑀 − (𝐴 mod 𝑀)) ≤ 𝐵) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
22213adant1 1130 . . . . . . . 8 (((𝑀 − (𝐴 mod 𝑀)) ∈ ℤ ∧ 𝐵 ∈ ℤ ∧ (𝑀 − (𝐴 mod 𝑀)) ≤ 𝐵) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
2312, 22sylbi 216 . . . . . . 7 (𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
24233ad2ant1 1133 . . . . . 6 ((𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) ∧ 𝑀 ∈ ℤ ∧ 𝐵 < 𝑀) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
2511, 24sylbi 216 . . . . 5 (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝑀 ≤ (𝐵 + (𝐴 mod 𝑀))))
2625impcom 408 . . . 4 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → 𝑀 ≤ (𝐵 + (𝐴 mod 𝑀)))
27 eluzelz 12773 . . . . . . . . 9 (𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) → 𝐵 ∈ ℤ)
2817, 5anim12i 613 . . . . . . . . . . . . . . 15 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → (𝐵 ∈ ℝ ∧ (𝐴 mod 𝑀) ∈ ℝ))
2913, 13jca 512 . . . . . . . . . . . . . . . . 17 (𝑀 ∈ ℕ → (𝑀 ∈ ℝ ∧ 𝑀 ∈ ℝ))
3029adantl 482 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝑀 ∈ ℝ ∧ 𝑀 ∈ ℝ))
3130adantl 482 . . . . . . . . . . . . . . 15 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → (𝑀 ∈ ℝ ∧ 𝑀 ∈ ℝ))
3228, 31jca 512 . . . . . . . . . . . . . 14 ((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) → ((𝐵 ∈ ℝ ∧ (𝐴 mod 𝑀) ∈ ℝ) ∧ (𝑀 ∈ ℝ ∧ 𝑀 ∈ ℝ)))
3332adantr 481 . . . . . . . . . . . . 13 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → ((𝐵 ∈ ℝ ∧ (𝐴 mod 𝑀) ∈ ℝ) ∧ (𝑀 ∈ ℝ ∧ 𝑀 ∈ ℝ)))
34 simpr 485 . . . . . . . . . . . . . 14 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → 𝐵 < 𝑀)
35 zre 12503 . . . . . . . . . . . . . . . . 17 (𝐴 ∈ ℤ → 𝐴 ∈ ℝ)
36 modlt 13785 . . . . . . . . . . . . . . . . 17 ((𝐴 ∈ ℝ ∧ 𝑀 ∈ ℝ+) → (𝐴 mod 𝑀) < 𝑀)
3735, 9, 36syl2an 596 . . . . . . . . . . . . . . . 16 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐴 mod 𝑀) < 𝑀)
385, 14, 37ltled 11303 . . . . . . . . . . . . . . 15 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐴 mod 𝑀) ≤ 𝑀)
3938ad2antlr 725 . . . . . . . . . . . . . 14 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → (𝐴 mod 𝑀) ≤ 𝑀)
4034, 39jca 512 . . . . . . . . . . . . 13 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → (𝐵 < 𝑀 ∧ (𝐴 mod 𝑀) ≤ 𝑀))
41 ltleadd 11638 . . . . . . . . . . . . 13 (((𝐵 ∈ ℝ ∧ (𝐴 mod 𝑀) ∈ ℝ) ∧ (𝑀 ∈ ℝ ∧ 𝑀 ∈ ℝ)) → ((𝐵 < 𝑀 ∧ (𝐴 mod 𝑀) ≤ 𝑀) → (𝐵 + (𝐴 mod 𝑀)) < (𝑀 + 𝑀)))
4233, 40, 41sylc 65 . . . . . . . . . . . 12 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → (𝐵 + (𝐴 mod 𝑀)) < (𝑀 + 𝑀))
43 nncn 12161 . . . . . . . . . . . . . . 15 (𝑀 ∈ ℕ → 𝑀 ∈ ℂ)
44432timesd 12396 . . . . . . . . . . . . . 14 (𝑀 ∈ ℕ → (2 · 𝑀) = (𝑀 + 𝑀))
4544adantl 482 . . . . . . . . . . . . 13 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (2 · 𝑀) = (𝑀 + 𝑀))
4645ad2antlr 725 . . . . . . . . . . . 12 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → (2 · 𝑀) = (𝑀 + 𝑀))
4742, 46breqtrrd 5133 . . . . . . . . . . 11 (((𝐵 ∈ ℤ ∧ (𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ)) ∧ 𝐵 < 𝑀) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))
4847exp31 420 . . . . . . . . . 10 (𝐵 ∈ ℤ → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 < 𝑀 → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))))
4948com23 86 . . . . . . . . 9 (𝐵 ∈ ℤ → (𝐵 < 𝑀 → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))))
5027, 49syl 17 . . . . . . . 8 (𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) → (𝐵 < 𝑀 → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))))
5150imp 407 . . . . . . 7 ((𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) ∧ 𝐵 < 𝑀) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀)))
52513adant2 1131 . . . . . 6 ((𝐵 ∈ (ℤ‘(𝑀 − (𝐴 mod 𝑀))) ∧ 𝑀 ∈ ℤ ∧ 𝐵 < 𝑀) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀)))
5311, 52sylbi 216 . . . . 5 (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) → ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀)))
5453impcom 408 . . . 4 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))
55 2submod 13837 . . . . 5 ((((𝐵 + (𝐴 mod 𝑀)) ∈ ℝ ∧ 𝑀 ∈ ℝ+) ∧ (𝑀 ≤ (𝐵 + (𝐴 mod 𝑀)) ∧ (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))) → ((𝐵 + (𝐴 mod 𝑀)) mod 𝑀) = ((𝐵 + (𝐴 mod 𝑀)) − 𝑀))
5655eqcomd 2742 . . . 4 ((((𝐵 + (𝐴 mod 𝑀)) ∈ ℝ ∧ 𝑀 ∈ ℝ+) ∧ (𝑀 ≤ (𝐵 + (𝐴 mod 𝑀)) ∧ (𝐵 + (𝐴 mod 𝑀)) < (2 · 𝑀))) → ((𝐵 + (𝐴 mod 𝑀)) − 𝑀) = ((𝐵 + (𝐴 mod 𝑀)) mod 𝑀))
578, 10, 26, 54, 56syl22anc 837 . . 3 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → ((𝐵 + (𝐴 mod 𝑀)) − 𝑀) = ((𝐵 + (𝐴 mod 𝑀)) mod 𝑀))
5835adantr 481 . . . . 5 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → 𝐴 ∈ ℝ)
5958adantr 481 . . . 4 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → 𝐴 ∈ ℝ)
602adantl 482 . . . 4 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → 𝐵 ∈ ℝ)
61 modadd2mod 13826 . . . 4 ((𝐴 ∈ ℝ ∧ 𝐵 ∈ ℝ ∧ 𝑀 ∈ ℝ+) → ((𝐵 + (𝐴 mod 𝑀)) mod 𝑀) = ((𝐵 + 𝐴) mod 𝑀))
6259, 60, 10, 61syl3anc 1371 . . 3 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → ((𝐵 + (𝐴 mod 𝑀)) mod 𝑀) = ((𝐵 + 𝐴) mod 𝑀))
6357, 62eqtrd 2776 . 2 (((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) ∧ 𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀)) → ((𝐵 + (𝐴 mod 𝑀)) − 𝑀) = ((𝐵 + 𝐴) mod 𝑀))
6463ex 413 1 ((𝐴 ∈ ℤ ∧ 𝑀 ∈ ℕ) → (𝐵 ∈ ((𝑀 − (𝐴 mod 𝑀))..^𝑀) → ((𝐵 + (𝐴 mod 𝑀)) − 𝑀) = ((𝐵 + 𝐴) mod 𝑀)))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 396  w3a 1087   = wceq 1541  wcel 2106   class class class wbr 5105  cfv 6496  (class class class)co 7357  cr 11050   + caddc 11054   · cmul 11056   < clt 11189  cle 11190  cmin 11385  cn 12153  2c2 12208  cz 12499  cuz 12763  +crp 12915  ..^cfzo 13567   mod cmo 13774
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1797  ax-4 1811  ax-5 1913  ax-6 1971  ax-7 2011  ax-8 2108  ax-9 2116  ax-10 2137  ax-11 2154  ax-12 2171  ax-ext 2707  ax-sep 5256  ax-nul 5263  ax-pow 5320  ax-pr 5384  ax-un 7672  ax-cnex 11107  ax-resscn 11108  ax-1cn 11109  ax-icn 11110  ax-addcl 11111  ax-addrcl 11112  ax-mulcl 11113  ax-mulrcl 11114  ax-mulcom 11115  ax-addass 11116  ax-mulass 11117  ax-distr 11118  ax-i2m1 11119  ax-1ne0 11120  ax-1rid 11121  ax-rnegex 11122  ax-rrecex 11123  ax-cnre 11124  ax-pre-lttri 11125  ax-pre-lttrn 11126  ax-pre-ltadd 11127  ax-pre-mulgt0 11128  ax-pre-sup 11129
This theorem depends on definitions:  df-bi 206  df-an 397  df-or 846  df-3or 1088  df-3an 1089  df-tru 1544  df-fal 1554  df-ex 1782  df-nf 1786  df-sb 2068  df-mo 2538  df-eu 2567  df-clab 2714  df-cleq 2728  df-clel 2814  df-nfc 2889  df-ne 2944  df-nel 3050  df-ral 3065  df-rex 3074  df-rmo 3353  df-reu 3354  df-rab 3408  df-v 3447  df-sbc 3740  df-csb 3856  df-dif 3913  df-un 3915  df-in 3917  df-ss 3927  df-pss 3929  df-nul 4283  df-if 4487  df-pw 4562  df-sn 4587  df-pr 4589  df-op 4593  df-uni 4866  df-iun 4956  df-br 5106  df-opab 5168  df-mpt 5189  df-tr 5223  df-id 5531  df-eprel 5537  df-po 5545  df-so 5546  df-fr 5588  df-we 5590  df-xp 5639  df-rel 5640  df-cnv 5641  df-co 5642  df-dm 5643  df-rn 5644  df-res 5645  df-ima 5646  df-pred 6253  df-ord 6320  df-on 6321  df-lim 6322  df-suc 6323  df-iota 6448  df-fun 6498  df-fn 6499  df-f 6500  df-f1 6501  df-fo 6502  df-f1o 6503  df-fv 6504  df-riota 7313  df-ov 7360  df-oprab 7361  df-mpo 7362  df-om 7803  df-1st 7921  df-2nd 7922  df-frecs 8212  df-wrecs 8243  df-recs 8317  df-rdg 8356  df-er 8648  df-en 8884  df-dom 8885  df-sdom 8886  df-sup 9378  df-inf 9379  df-pnf 11191  df-mnf 11192  df-xr 11193  df-ltxr 11194  df-le 11195  df-sub 11387  df-neg 11388  df-div 11813  df-nn 12154  df-2 12216  df-n0 12414  df-z 12500  df-uz 12764  df-rp 12916  df-fz 13425  df-fzo 13568  df-fl 13697  df-mod 13775
This theorem is referenced by:  cshwidxmod  14691
  Copyright terms: Public domain W3C validator