Step |
Hyp |
Ref |
Expression |
1 |
|
zre |
|- ( A e. ZZ -> A e. RR ) |
2 |
|
nnrp |
|- ( B e. NN -> B e. RR+ ) |
3 |
|
modval |
|- ( ( A e. RR /\ B e. RR+ ) -> ( A mod B ) = ( A - ( B x. ( |_ ` ( A / B ) ) ) ) ) |
4 |
1 2 3
|
syl2an |
|- ( ( A e. ZZ /\ B e. NN ) -> ( A mod B ) = ( A - ( B x. ( |_ ` ( A / B ) ) ) ) ) |
5 |
|
nnz |
|- ( B e. NN -> B e. ZZ ) |
6 |
5
|
adantl |
|- ( ( A e. ZZ /\ B e. NN ) -> B e. ZZ ) |
7 |
|
nndivre |
|- ( ( A e. RR /\ B e. NN ) -> ( A / B ) e. RR ) |
8 |
1 7
|
sylan |
|- ( ( A e. ZZ /\ B e. NN ) -> ( A / B ) e. RR ) |
9 |
8
|
flcld |
|- ( ( A e. ZZ /\ B e. NN ) -> ( |_ ` ( A / B ) ) e. ZZ ) |
10 |
6 9
|
zmulcld |
|- ( ( A e. ZZ /\ B e. NN ) -> ( B x. ( |_ ` ( A / B ) ) ) e. ZZ ) |
11 |
|
zsubcl |
|- ( ( A e. ZZ /\ ( B x. ( |_ ` ( A / B ) ) ) e. ZZ ) -> ( A - ( B x. ( |_ ` ( A / B ) ) ) ) e. ZZ ) |
12 |
10 11
|
syldan |
|- ( ( A e. ZZ /\ B e. NN ) -> ( A - ( B x. ( |_ ` ( A / B ) ) ) ) e. ZZ ) |
13 |
4 12
|
eqeltrd |
|- ( ( A e. ZZ /\ B e. NN ) -> ( A mod B ) e. ZZ ) |
14 |
|
modge0 |
|- ( ( A e. RR /\ B e. RR+ ) -> 0 <_ ( A mod B ) ) |
15 |
1 2 14
|
syl2an |
|- ( ( A e. ZZ /\ B e. NN ) -> 0 <_ ( A mod B ) ) |
16 |
|
elnn0z |
|- ( ( A mod B ) e. NN0 <-> ( ( A mod B ) e. ZZ /\ 0 <_ ( A mod B ) ) ) |
17 |
13 15 16
|
sylanbrc |
|- ( ( A e. ZZ /\ B e. NN ) -> ( A mod B ) e. NN0 ) |