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