Metamath Proof Explorer


Theorem divalgb

Description: Express the division algorithm as stated in divalg in terms of || . (Contributed by Paul Chapman, 31-Mar-2011)

Ref Expression
Assertion divalgb
|- ( ( N e. ZZ /\ D e. ZZ /\ D =/= 0 ) -> ( E! r e. ZZ E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> E! r e. NN0 ( r < ( abs ` D ) /\ D || ( N - r ) ) ) )

Proof

Step Hyp Ref Expression
1 df-3an
 |-  ( ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ N = ( ( q x. D ) + r ) ) )
2 1 rexbii
 |-  ( E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> E. q e. ZZ ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ N = ( ( q x. D ) + r ) ) )
3 r19.42v
 |-  ( E. q e. ZZ ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ N = ( ( q x. D ) + r ) ) <-> ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ E. q e. ZZ N = ( ( q x. D ) + r ) ) )
4 2 3 bitri
 |-  ( E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ E. q e. ZZ N = ( ( q x. D ) + r ) ) )
5 zsubcl
 |-  ( ( N e. ZZ /\ r e. ZZ ) -> ( N - r ) e. ZZ )
6 divides
 |-  ( ( D e. ZZ /\ ( N - r ) e. ZZ ) -> ( D || ( N - r ) <-> E. q e. ZZ ( q x. D ) = ( N - r ) ) )
7 5 6 sylan2
 |-  ( ( D e. ZZ /\ ( N e. ZZ /\ r e. ZZ ) ) -> ( D || ( N - r ) <-> E. q e. ZZ ( q x. D ) = ( N - r ) ) )
8 7 3impb
 |-  ( ( D e. ZZ /\ N e. ZZ /\ r e. ZZ ) -> ( D || ( N - r ) <-> E. q e. ZZ ( q x. D ) = ( N - r ) ) )
9 8 3com12
 |-  ( ( N e. ZZ /\ D e. ZZ /\ r e. ZZ ) -> ( D || ( N - r ) <-> E. q e. ZZ ( q x. D ) = ( N - r ) ) )
10 zcn
 |-  ( N e. ZZ -> N e. CC )
11 zcn
 |-  ( r e. ZZ -> r e. CC )
12 zmulcl
 |-  ( ( q e. ZZ /\ D e. ZZ ) -> ( q x. D ) e. ZZ )
13 12 zcnd
 |-  ( ( q e. ZZ /\ D e. ZZ ) -> ( q x. D ) e. CC )
14 subadd
 |-  ( ( N e. CC /\ r e. CC /\ ( q x. D ) e. CC ) -> ( ( N - r ) = ( q x. D ) <-> ( r + ( q x. D ) ) = N ) )
15 10 11 13 14 syl3an
 |-  ( ( N e. ZZ /\ r e. ZZ /\ ( q e. ZZ /\ D e. ZZ ) ) -> ( ( N - r ) = ( q x. D ) <-> ( r + ( q x. D ) ) = N ) )
16 addcom
 |-  ( ( r e. CC /\ ( q x. D ) e. CC ) -> ( r + ( q x. D ) ) = ( ( q x. D ) + r ) )
17 11 13 16 syl2an
 |-  ( ( r e. ZZ /\ ( q e. ZZ /\ D e. ZZ ) ) -> ( r + ( q x. D ) ) = ( ( q x. D ) + r ) )
18 17 3adant1
 |-  ( ( N e. ZZ /\ r e. ZZ /\ ( q e. ZZ /\ D e. ZZ ) ) -> ( r + ( q x. D ) ) = ( ( q x. D ) + r ) )
19 18 eqeq1d
 |-  ( ( N e. ZZ /\ r e. ZZ /\ ( q e. ZZ /\ D e. ZZ ) ) -> ( ( r + ( q x. D ) ) = N <-> ( ( q x. D ) + r ) = N ) )
20 15 19 bitrd
 |-  ( ( N e. ZZ /\ r e. ZZ /\ ( q e. ZZ /\ D e. ZZ ) ) -> ( ( N - r ) = ( q x. D ) <-> ( ( q x. D ) + r ) = N ) )
21 eqcom
 |-  ( ( N - r ) = ( q x. D ) <-> ( q x. D ) = ( N - r ) )
22 eqcom
 |-  ( ( ( q x. D ) + r ) = N <-> N = ( ( q x. D ) + r ) )
23 20 21 22 3bitr3g
 |-  ( ( N e. ZZ /\ r e. ZZ /\ ( q e. ZZ /\ D e. ZZ ) ) -> ( ( q x. D ) = ( N - r ) <-> N = ( ( q x. D ) + r ) ) )
24 23 3expia
 |-  ( ( N e. ZZ /\ r e. ZZ ) -> ( ( q e. ZZ /\ D e. ZZ ) -> ( ( q x. D ) = ( N - r ) <-> N = ( ( q x. D ) + r ) ) ) )
25 24 expcomd
 |-  ( ( N e. ZZ /\ r e. ZZ ) -> ( D e. ZZ -> ( q e. ZZ -> ( ( q x. D ) = ( N - r ) <-> N = ( ( q x. D ) + r ) ) ) ) )
26 25 3impia
 |-  ( ( N e. ZZ /\ r e. ZZ /\ D e. ZZ ) -> ( q e. ZZ -> ( ( q x. D ) = ( N - r ) <-> N = ( ( q x. D ) + r ) ) ) )
27 26 imp
 |-  ( ( ( N e. ZZ /\ r e. ZZ /\ D e. ZZ ) /\ q e. ZZ ) -> ( ( q x. D ) = ( N - r ) <-> N = ( ( q x. D ) + r ) ) )
28 27 rexbidva
 |-  ( ( N e. ZZ /\ r e. ZZ /\ D e. ZZ ) -> ( E. q e. ZZ ( q x. D ) = ( N - r ) <-> E. q e. ZZ N = ( ( q x. D ) + r ) ) )
29 28 3com23
 |-  ( ( N e. ZZ /\ D e. ZZ /\ r e. ZZ ) -> ( E. q e. ZZ ( q x. D ) = ( N - r ) <-> E. q e. ZZ N = ( ( q x. D ) + r ) ) )
30 9 29 bitrd
 |-  ( ( N e. ZZ /\ D e. ZZ /\ r e. ZZ ) -> ( D || ( N - r ) <-> E. q e. ZZ N = ( ( q x. D ) + r ) ) )
31 30 anbi2d
 |-  ( ( N e. ZZ /\ D e. ZZ /\ r e. ZZ ) -> ( ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ D || ( N - r ) ) <-> ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ E. q e. ZZ N = ( ( q x. D ) + r ) ) ) )
32 4 31 bitr4id
 |-  ( ( N e. ZZ /\ D e. ZZ /\ r e. ZZ ) -> ( E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ D || ( N - r ) ) ) )
33 anass
 |-  ( ( ( 0 <_ r /\ r < ( abs ` D ) ) /\ D || ( N - r ) ) <-> ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) )
34 32 33 bitrdi
 |-  ( ( N e. ZZ /\ D e. ZZ /\ r e. ZZ ) -> ( E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
35 34 3expa
 |-  ( ( ( N e. ZZ /\ D e. ZZ ) /\ r e. ZZ ) -> ( E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
36 35 reubidva
 |-  ( ( N e. ZZ /\ D e. ZZ ) -> ( E! r e. ZZ E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> E! r e. ZZ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
37 elnn0z
 |-  ( r e. NN0 <-> ( r e. ZZ /\ 0 <_ r ) )
38 37 anbi1i
 |-  ( ( r e. NN0 /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) <-> ( ( r e. ZZ /\ 0 <_ r ) /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) )
39 anass
 |-  ( ( ( r e. ZZ /\ 0 <_ r ) /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) <-> ( r e. ZZ /\ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
40 38 39 bitri
 |-  ( ( r e. NN0 /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) <-> ( r e. ZZ /\ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
41 40 eubii
 |-  ( E! r ( r e. NN0 /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) <-> E! r ( r e. ZZ /\ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
42 df-reu
 |-  ( E! r e. NN0 ( r < ( abs ` D ) /\ D || ( N - r ) ) <-> E! r ( r e. NN0 /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) )
43 df-reu
 |-  ( E! r e. ZZ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) <-> E! r ( r e. ZZ /\ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) ) )
44 41 42 43 3bitr4ri
 |-  ( E! r e. ZZ ( 0 <_ r /\ ( r < ( abs ` D ) /\ D || ( N - r ) ) ) <-> E! r e. NN0 ( r < ( abs ` D ) /\ D || ( N - r ) ) )
45 36 44 bitrdi
 |-  ( ( N e. ZZ /\ D e. ZZ ) -> ( E! r e. ZZ E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> E! r e. NN0 ( r < ( abs ` D ) /\ D || ( N - r ) ) ) )
46 45 3adant3
 |-  ( ( N e. ZZ /\ D e. ZZ /\ D =/= 0 ) -> ( E! r e. ZZ E. q e. ZZ ( 0 <_ r /\ r < ( abs ` D ) /\ N = ( ( q x. D ) + r ) ) <-> E! r e. NN0 ( r < ( abs ` D ) /\ D || ( N - r ) ) ) )