Metamath Proof Explorer


Theorem modmuladd

Description: Decomposition of an integer into a multiple of a modulus and a remainder. (Contributed by AV, 14-Jul-2021)

Ref Expression
Assertion modmuladd ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → A mod M = B ↔ ∃ k ∈ ℤ A = k ⋅ M + B

Proof

Step Hyp Ref Expression
1 oveq1 ⊢ k = A M → k ⋅ M = A M ⋅ M
2 1 oveq1d ⊢ k = A M → k ⋅ M + A mod M = A M ⋅ M + A mod M
3 2 eqeq2d ⊢ k = A M → A = k ⋅ M + A mod M ↔ A = A M ⋅ M + A mod M
4 zre ⊢ A ∈ ℤ → A ∈ ℝ
5 4 adantr ⊢ A ∈ ℤ ∧ M ∈ ℝ + → A ∈ ℝ
6 rpre ⊢ M ∈ ℝ + → M ∈ ℝ
7 6 adantl ⊢ A ∈ ℤ ∧ M ∈ ℝ + → M ∈ ℝ
8 rpne0 ⊢ M ∈ ℝ + → M ≠ 0
9 8 adantl ⊢ A ∈ ℤ ∧ M ∈ ℝ + → M ≠ 0
10 5 7 9 redivcld ⊢ A ∈ ℤ ∧ M ∈ ℝ + → A M ∈ ℝ
11 10 flcld ⊢ A ∈ ℤ ∧ M ∈ ℝ + → A M ∈ ℤ
12 11 3adant2 ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → A M ∈ ℤ
13 flpmodeq ⊢ A ∈ ℝ ∧ M ∈ ℝ + → A M ⋅ M + A mod M = A
14 4 13 sylan ⊢ A ∈ ℤ ∧ M ∈ ℝ + → A M ⋅ M + A mod M = A
15 14 eqcomd ⊢ A ∈ ℤ ∧ M ∈ ℝ + → A = A M ⋅ M + A mod M
16 15 3adant2 ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → A = A M ⋅ M + A mod M
17 3 12 16 rspcedvdw ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → ∃ k ∈ ℤ A = k ⋅ M + A mod M
18 oveq2 ⊢ B = A mod M → k ⋅ M + B = k ⋅ M + A mod M
19 18 eqeq2d ⊢ B = A mod M → A = k ⋅ M + B ↔ A = k ⋅ M + A mod M
20 19 eqcoms ⊢ A mod M = B → A = k ⋅ M + B ↔ A = k ⋅ M + A mod M
21 20 rexbidv ⊢ A mod M = B → ∃ k ∈ ℤ A = k ⋅ M + B ↔ ∃ k ∈ ℤ A = k ⋅ M + A mod M
22 17 21 syl5ibrcom ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → A mod M = B → ∃ k ∈ ℤ A = k ⋅ M + B
23 oveq1 ⊢ A = k ⋅ M + B → A mod M = k ⋅ M + B mod M
24 simpr ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + ∧ k ∈ ℤ → k ∈ ℤ
25 simpl3 ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + ∧ k ∈ ℤ → M ∈ ℝ +
26 simpl2 ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + ∧ k ∈ ℤ → B ∈ 0 M
27 muladdmodid ⊢ k ∈ ℤ ∧ M ∈ ℝ + ∧ B ∈ 0 M → k ⋅ M + B mod M = B
28 24 25 26 27 syl3anc ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + ∧ k ∈ ℤ → k ⋅ M + B mod M = B
29 23 28 sylan9eqr ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + ∧ k ∈ ℤ ∧ A = k ⋅ M + B → A mod M = B
30 29 rexlimdva2 ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → ∃ k ∈ ℤ A = k ⋅ M + B → A mod M = B
31 22 30 impbid ⊢ A ∈ ℤ ∧ B ∈ 0 M ∧ M ∈ ℝ + → A mod M = B ↔ ∃ k ∈ ℤ A = k ⋅ M + B