Step |
Hyp |
Ref |
Expression |
1 |
|
elfzoelz |
|- ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) -> B e. ZZ ) |
2 |
1
|
zred |
|- ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) -> B e. RR ) |
3 |
2
|
adantr |
|- ( ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) /\ ( A e. ZZ /\ M e. NN ) ) -> B e. RR ) |
4 |
|
zmodcl |
|- ( ( A e. ZZ /\ M e. NN ) -> ( A mod M ) e. NN0 ) |
5 |
4
|
nn0red |
|- ( ( A e. ZZ /\ M e. NN ) -> ( A mod M ) e. RR ) |
6 |
5
|
adantl |
|- ( ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) /\ ( A e. ZZ /\ M e. NN ) ) -> ( A mod M ) e. RR ) |
7 |
3 6
|
readdcld |
|- ( ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) /\ ( A e. ZZ /\ M e. NN ) ) -> ( B + ( A mod M ) ) e. RR ) |
8 |
7
|
ancoms |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( B + ( A mod M ) ) e. RR ) |
9 |
|
nnrp |
|- ( M e. NN -> M e. RR+ ) |
10 |
9
|
ad2antlr |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> M e. RR+ ) |
11 |
2
|
adantl |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> B e. RR ) |
12 |
5
|
adantr |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( A mod M ) e. RR ) |
13 |
|
elfzole1 |
|- ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) -> 0 <_ B ) |
14 |
13
|
adantl |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> 0 <_ B ) |
15 |
4
|
nn0ge0d |
|- ( ( A e. ZZ /\ M e. NN ) -> 0 <_ ( A mod M ) ) |
16 |
15
|
adantr |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> 0 <_ ( A mod M ) ) |
17 |
11 12 14 16
|
addge0d |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> 0 <_ ( B + ( A mod M ) ) ) |
18 |
|
elfzolt2 |
|- ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) -> B < ( M - ( A mod M ) ) ) |
19 |
18
|
adantl |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> B < ( M - ( A mod M ) ) ) |
20 |
|
nnre |
|- ( M e. NN -> M e. RR ) |
21 |
20
|
ad2antlr |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> M e. RR ) |
22 |
11 12 21
|
ltaddsubd |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( ( B + ( A mod M ) ) < M <-> B < ( M - ( A mod M ) ) ) ) |
23 |
19 22
|
mpbird |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( B + ( A mod M ) ) < M ) |
24 |
|
modid |
|- ( ( ( ( B + ( A mod M ) ) e. RR /\ M e. RR+ ) /\ ( 0 <_ ( B + ( A mod M ) ) /\ ( B + ( A mod M ) ) < M ) ) -> ( ( B + ( A mod M ) ) mod M ) = ( B + ( A mod M ) ) ) |
25 |
8 10 17 23 24
|
syl22anc |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( ( B + ( A mod M ) ) mod M ) = ( B + ( A mod M ) ) ) |
26 |
|
zre |
|- ( A e. ZZ -> A e. RR ) |
27 |
26
|
adantr |
|- ( ( A e. ZZ /\ M e. NN ) -> A e. RR ) |
28 |
27
|
adantr |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> A e. RR ) |
29 |
|
modadd2mod |
|- ( ( A e. RR /\ B e. RR /\ M e. RR+ ) -> ( ( B + ( A mod M ) ) mod M ) = ( ( B + A ) mod M ) ) |
30 |
28 11 10 29
|
syl3anc |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( ( B + ( A mod M ) ) mod M ) = ( ( B + A ) mod M ) ) |
31 |
25 30
|
eqtr3d |
|- ( ( ( A e. ZZ /\ M e. NN ) /\ B e. ( 0 ..^ ( M - ( A mod M ) ) ) ) -> ( B + ( A mod M ) ) = ( ( B + A ) mod M ) ) |
32 |
31
|
ex |
|- ( ( A e. ZZ /\ M e. NN ) -> ( B e. ( 0 ..^ ( M - ( A mod M ) ) ) -> ( B + ( A mod M ) ) = ( ( B + A ) mod M ) ) ) |