Metamath Proof Explorer


Theorem modmuladdnn0

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

Ref Expression
Assertion modmuladdnn0 ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A mod M = B → ∃ k ∈ ℕ 0 A = k ⋅ M + B

Proof

Step Hyp Ref Expression
1 oveq1 ⊢ k = i → k ⋅ M = i ⋅ M
2 1 oveq1d ⊢ k = i → k ⋅ M + B = i ⋅ M + B
3 2 eqeq2d ⊢ k = i → A = k ⋅ M + B ↔ A = i ⋅ M + B
4 simpr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → i ∈ ℤ
5 4 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ ∧ A = i ⋅ M + B → i ∈ ℤ
6 eqcom ⊢ A = i ⋅ M + B ↔ i ⋅ M + B = A
7 nn0cn ⊢ A ∈ ℕ 0 → A ∈ ℂ
8 7 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A ∈ ℂ
9 8 ad2antrr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A ∈ ℂ
10 nn0re ⊢ A ∈ ℕ 0 → A ∈ ℝ
11 modcl ⊢ A ∈ ℝ ∧ M ∈ ℝ + → A mod M ∈ ℝ
12 10 11 sylan ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A mod M ∈ ℝ
13 12 recnd ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A mod M ∈ ℂ
14 13 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → A mod M ∈ ℂ
15 eleq1 ⊢ A mod M = B → A mod M ∈ ℂ ↔ B ∈ ℂ
16 15 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → A mod M ∈ ℂ ↔ B ∈ ℂ
17 14 16 mpbid ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → B ∈ ℂ
18 17 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → B ∈ ℂ
19 zcn ⊢ i ∈ ℤ → i ∈ ℂ
20 19 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → i ∈ ℂ
21 rpcn ⊢ M ∈ ℝ + → M ∈ ℂ
22 21 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → M ∈ ℂ
23 22 ad2antrr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → M ∈ ℂ
24 20 23 mulcld ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → i ⋅ M ∈ ℂ
25 9 18 24 subadd2d ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − B = i ⋅ M ↔ i ⋅ M + B = A
26 6 25 bitr4id ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A = i ⋅ M + B ↔ A − B = i ⋅ M
27 7 ad2antrr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → A ∈ ℂ
28 27 17 subcld ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → A − B ∈ ℂ
29 28 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − B ∈ ℂ
30 rpcnne0 ⊢ M ∈ ℝ + → M ∈ ℂ ∧ M ≠ 0
31 30 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → M ∈ ℂ ∧ M ≠ 0
32 31 ad2antrr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → M ∈ ℂ ∧ M ≠ 0
33 divmul3 ⊢ A − B ∈ ℂ ∧ i ∈ ℂ ∧ M ∈ ℂ ∧ M ≠ 0 → A − B M = i ↔ A − B = i ⋅ M
34 29 20 32 33 syl3anc ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − B M = i ↔ A − B = i ⋅ M
35 oveq2 ⊢ B = A mod M → A − B = A − A mod M
36 35 oveq1d ⊢ B = A mod M → A − B M = A − A mod M M
37 36 eqcoms ⊢ A mod M = B → A − B M = A − A mod M M
38 37 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → A − B M = A − A mod M M
39 38 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − B M = A − A mod M M
40 moddiffl ⊢ A ∈ ℝ ∧ M ∈ ℝ + → A − A mod M M = A M
41 10 40 sylan ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A − A mod M M = A M
42 41 ad2antrr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − A mod M M = A M
43 39 42 eqtrd ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − B M = A M
44 43 eqeq1d ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A − B M = i ↔ A M = i
45 26 34 44 3bitr2d ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A = i ⋅ M + B ↔ A M = i
46 nn0ge0 ⊢ A ∈ ℕ 0 → 0 ≤ A
47 10 46 jca ⊢ A ∈ ℕ 0 → A ∈ ℝ ∧ 0 ≤ A
48 rpregt0 ⊢ M ∈ ℝ + → M ∈ ℝ ∧ 0 < M
49 divge0 ⊢ A ∈ ℝ ∧ 0 ≤ A ∧ M ∈ ℝ ∧ 0 < M → 0 ≤ A M
50 47 48 49 syl2an ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → 0 ≤ A M
51 10 adantr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A ∈ ℝ
52 rpre ⊢ M ∈ ℝ + → M ∈ ℝ
53 52 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → M ∈ ℝ
54 rpne0 ⊢ M ∈ ℝ + → M ≠ 0
55 54 adantl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → M ≠ 0
56 51 53 55 redivcld ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A M ∈ ℝ
57 0z ⊢ 0 ∈ ℤ
58 flge ⊢ A M ∈ ℝ ∧ 0 ∈ ℤ → 0 ≤ A M ↔ 0 ≤ A M
59 56 57 58 sylancl ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → 0 ≤ A M ↔ 0 ≤ A M
60 50 59 mpbid ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → 0 ≤ A M
61 breq2 ⊢ A M = i → 0 ≤ A M ↔ 0 ≤ i
62 60 61 syl5ibcom ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A M = i → 0 ≤ i
63 62 ad2antrr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A M = i → 0 ≤ i
64 45 63 sylbid ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ → A = i ⋅ M + B → 0 ≤ i
65 64 imp ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ ∧ A = i ⋅ M + B → 0 ≤ i
66 elnn0z ⊢ i ∈ ℕ 0 ↔ i ∈ ℤ ∧ 0 ≤ i
67 5 65 66 sylanbrc ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ ∧ A = i ⋅ M + B → i ∈ ℕ 0
68 simpr ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ ∧ A = i ⋅ M + B → A = i ⋅ M + B
69 3 67 68 rspcedvdw ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B ∧ i ∈ ℤ ∧ A = i ⋅ M + B → ∃ k ∈ ℕ 0 A = k ⋅ M + B
70 nn0z ⊢ A ∈ ℕ 0 → A ∈ ℤ
71 modmuladdim ⊢ A ∈ ℤ ∧ M ∈ ℝ + → A mod M = B → ∃ i ∈ ℤ A = i ⋅ M + B
72 70 71 sylan ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A mod M = B → ∃ i ∈ ℤ A = i ⋅ M + B
73 72 imp ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → ∃ i ∈ ℤ A = i ⋅ M + B
74 69 73 r19.29a ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + ∧ A mod M = B → ∃ k ∈ ℕ 0 A = k ⋅ M + B
75 74 ex ⊢ A ∈ ℕ 0 ∧ M ∈ ℝ + → A mod M = B → ∃ k ∈ ℕ 0 A = k ⋅ M + B