This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Two numbers are divisible iff their squares are. (Contributed by Scott Fenton, 18-Apr-2014) (Revised by Mario Carneiro, 19-Apr-2014)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | dvdssq | |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | breq1 | |- ( M = 0 -> ( M || N <-> 0 || N ) ) |
|
| 2 | sq0i | |- ( M = 0 -> ( M ^ 2 ) = 0 ) |
|
| 3 | 2 | breq1d | |- ( M = 0 -> ( ( M ^ 2 ) || ( N ^ 2 ) <-> 0 || ( N ^ 2 ) ) ) |
| 4 | 1 3 | bibi12d | |- ( M = 0 -> ( ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) <-> ( 0 || N <-> 0 || ( N ^ 2 ) ) ) ) |
| 5 | nnabscl | |- ( ( M e. ZZ /\ M =/= 0 ) -> ( abs ` M ) e. NN ) |
|
| 6 | breq2 | |- ( N = 0 -> ( ( abs ` M ) || N <-> ( abs ` M ) || 0 ) ) |
|
| 7 | sq0i | |- ( N = 0 -> ( N ^ 2 ) = 0 ) |
|
| 8 | 7 | breq2d | |- ( N = 0 -> ( ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || 0 ) ) |
| 9 | 6 8 | bibi12d | |- ( N = 0 -> ( ( ( abs ` M ) || N <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) <-> ( ( abs ` M ) || 0 <-> ( ( abs ` M ) ^ 2 ) || 0 ) ) ) |
| 10 | nnabscl | |- ( ( N e. ZZ /\ N =/= 0 ) -> ( abs ` N ) e. NN ) |
|
| 11 | dvdssqlem | |- ( ( ( abs ` M ) e. NN /\ ( abs ` N ) e. NN ) -> ( ( abs ` M ) || ( abs ` N ) <-> ( ( abs ` M ) ^ 2 ) || ( ( abs ` N ) ^ 2 ) ) ) |
|
| 12 | 10 11 | sylan2 | |- ( ( ( abs ` M ) e. NN /\ ( N e. ZZ /\ N =/= 0 ) ) -> ( ( abs ` M ) || ( abs ` N ) <-> ( ( abs ` M ) ^ 2 ) || ( ( abs ` N ) ^ 2 ) ) ) |
| 13 | nnz | |- ( ( abs ` M ) e. NN -> ( abs ` M ) e. ZZ ) |
|
| 14 | simpl | |- ( ( N e. ZZ /\ N =/= 0 ) -> N e. ZZ ) |
|
| 15 | dvdsabsb | |- ( ( ( abs ` M ) e. ZZ /\ N e. ZZ ) -> ( ( abs ` M ) || N <-> ( abs ` M ) || ( abs ` N ) ) ) |
|
| 16 | 13 14 15 | syl2an | |- ( ( ( abs ` M ) e. NN /\ ( N e. ZZ /\ N =/= 0 ) ) -> ( ( abs ` M ) || N <-> ( abs ` M ) || ( abs ` N ) ) ) |
| 17 | nnsqcl | |- ( ( abs ` M ) e. NN -> ( ( abs ` M ) ^ 2 ) e. NN ) |
|
| 18 | 17 | nnzd | |- ( ( abs ` M ) e. NN -> ( ( abs ` M ) ^ 2 ) e. ZZ ) |
| 19 | zsqcl | |- ( N e. ZZ -> ( N ^ 2 ) e. ZZ ) |
|
| 20 | 19 | adantr | |- ( ( N e. ZZ /\ N =/= 0 ) -> ( N ^ 2 ) e. ZZ ) |
| 21 | dvdsabsb | |- ( ( ( ( abs ` M ) ^ 2 ) e. ZZ /\ ( N ^ 2 ) e. ZZ ) -> ( ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( abs ` ( N ^ 2 ) ) ) ) |
|
| 22 | 18 20 21 | syl2an | |- ( ( ( abs ` M ) e. NN /\ ( N e. ZZ /\ N =/= 0 ) ) -> ( ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( abs ` ( N ^ 2 ) ) ) ) |
| 23 | zcn | |- ( N e. ZZ -> N e. CC ) |
|
| 24 | 23 | adantr | |- ( ( N e. ZZ /\ N =/= 0 ) -> N e. CC ) |
| 25 | abssq | |- ( N e. CC -> ( ( abs ` N ) ^ 2 ) = ( abs ` ( N ^ 2 ) ) ) |
|
| 26 | 24 25 | syl | |- ( ( N e. ZZ /\ N =/= 0 ) -> ( ( abs ` N ) ^ 2 ) = ( abs ` ( N ^ 2 ) ) ) |
| 27 | 26 | breq2d | |- ( ( N e. ZZ /\ N =/= 0 ) -> ( ( ( abs ` M ) ^ 2 ) || ( ( abs ` N ) ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( abs ` ( N ^ 2 ) ) ) ) |
| 28 | 27 | adantl | |- ( ( ( abs ` M ) e. NN /\ ( N e. ZZ /\ N =/= 0 ) ) -> ( ( ( abs ` M ) ^ 2 ) || ( ( abs ` N ) ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( abs ` ( N ^ 2 ) ) ) ) |
| 29 | 22 28 | bitr4d | |- ( ( ( abs ` M ) e. NN /\ ( N e. ZZ /\ N =/= 0 ) ) -> ( ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( ( abs ` N ) ^ 2 ) ) ) |
| 30 | 12 16 29 | 3bitr4d | |- ( ( ( abs ` M ) e. NN /\ ( N e. ZZ /\ N =/= 0 ) ) -> ( ( abs ` M ) || N <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 31 | 30 | anassrs | |- ( ( ( ( abs ` M ) e. NN /\ N e. ZZ ) /\ N =/= 0 ) -> ( ( abs ` M ) || N <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 32 | dvds0 | |- ( ( abs ` M ) e. ZZ -> ( abs ` M ) || 0 ) |
|
| 33 | zsqcl | |- ( ( abs ` M ) e. ZZ -> ( ( abs ` M ) ^ 2 ) e. ZZ ) |
|
| 34 | dvds0 | |- ( ( ( abs ` M ) ^ 2 ) e. ZZ -> ( ( abs ` M ) ^ 2 ) || 0 ) |
|
| 35 | 33 34 | syl | |- ( ( abs ` M ) e. ZZ -> ( ( abs ` M ) ^ 2 ) || 0 ) |
| 36 | 32 35 | 2thd | |- ( ( abs ` M ) e. ZZ -> ( ( abs ` M ) || 0 <-> ( ( abs ` M ) ^ 2 ) || 0 ) ) |
| 37 | 13 36 | syl | |- ( ( abs ` M ) e. NN -> ( ( abs ` M ) || 0 <-> ( ( abs ` M ) ^ 2 ) || 0 ) ) |
| 38 | 37 | adantr | |- ( ( ( abs ` M ) e. NN /\ N e. ZZ ) -> ( ( abs ` M ) || 0 <-> ( ( abs ` M ) ^ 2 ) || 0 ) ) |
| 39 | 9 31 38 | pm2.61ne | |- ( ( ( abs ` M ) e. NN /\ N e. ZZ ) -> ( ( abs ` M ) || N <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 40 | 5 39 | sylan | |- ( ( ( M e. ZZ /\ M =/= 0 ) /\ N e. ZZ ) -> ( ( abs ` M ) || N <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 41 | absdvdsb | |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> ( abs ` M ) || N ) ) |
|
| 42 | 41 | adantlr | |- ( ( ( M e. ZZ /\ M =/= 0 ) /\ N e. ZZ ) -> ( M || N <-> ( abs ` M ) || N ) ) |
| 43 | zsqcl | |- ( M e. ZZ -> ( M ^ 2 ) e. ZZ ) |
|
| 44 | 43 | adantr | |- ( ( M e. ZZ /\ M =/= 0 ) -> ( M ^ 2 ) e. ZZ ) |
| 45 | absdvdsb | |- ( ( ( M ^ 2 ) e. ZZ /\ ( N ^ 2 ) e. ZZ ) -> ( ( M ^ 2 ) || ( N ^ 2 ) <-> ( abs ` ( M ^ 2 ) ) || ( N ^ 2 ) ) ) |
|
| 46 | 44 19 45 | syl2an | |- ( ( ( M e. ZZ /\ M =/= 0 ) /\ N e. ZZ ) -> ( ( M ^ 2 ) || ( N ^ 2 ) <-> ( abs ` ( M ^ 2 ) ) || ( N ^ 2 ) ) ) |
| 47 | zcn | |- ( M e. ZZ -> M e. CC ) |
|
| 48 | abssq | |- ( M e. CC -> ( ( abs ` M ) ^ 2 ) = ( abs ` ( M ^ 2 ) ) ) |
|
| 49 | 47 48 | syl | |- ( M e. ZZ -> ( ( abs ` M ) ^ 2 ) = ( abs ` ( M ^ 2 ) ) ) |
| 50 | 49 | eqcomd | |- ( M e. ZZ -> ( abs ` ( M ^ 2 ) ) = ( ( abs ` M ) ^ 2 ) ) |
| 51 | 50 | adantr | |- ( ( M e. ZZ /\ M =/= 0 ) -> ( abs ` ( M ^ 2 ) ) = ( ( abs ` M ) ^ 2 ) ) |
| 52 | 51 | breq1d | |- ( ( M e. ZZ /\ M =/= 0 ) -> ( ( abs ` ( M ^ 2 ) ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 53 | 52 | adantr | |- ( ( ( M e. ZZ /\ M =/= 0 ) /\ N e. ZZ ) -> ( ( abs ` ( M ^ 2 ) ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 54 | 46 53 | bitrd | |- ( ( ( M e. ZZ /\ M =/= 0 ) /\ N e. ZZ ) -> ( ( M ^ 2 ) || ( N ^ 2 ) <-> ( ( abs ` M ) ^ 2 ) || ( N ^ 2 ) ) ) |
| 55 | 40 42 54 | 3bitr4d | |- ( ( ( M e. ZZ /\ M =/= 0 ) /\ N e. ZZ ) -> ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) ) |
| 56 | 55 | an32s | |- ( ( ( M e. ZZ /\ N e. ZZ ) /\ M =/= 0 ) -> ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) ) |
| 57 | 0dvds | |- ( N e. ZZ -> ( 0 || N <-> N = 0 ) ) |
|
| 58 | sqeq0 | |- ( N e. CC -> ( ( N ^ 2 ) = 0 <-> N = 0 ) ) |
|
| 59 | 23 58 | syl | |- ( N e. ZZ -> ( ( N ^ 2 ) = 0 <-> N = 0 ) ) |
| 60 | 57 59 | bitr4d | |- ( N e. ZZ -> ( 0 || N <-> ( N ^ 2 ) = 0 ) ) |
| 61 | 0dvds | |- ( ( N ^ 2 ) e. ZZ -> ( 0 || ( N ^ 2 ) <-> ( N ^ 2 ) = 0 ) ) |
|
| 62 | 19 61 | syl | |- ( N e. ZZ -> ( 0 || ( N ^ 2 ) <-> ( N ^ 2 ) = 0 ) ) |
| 63 | 60 62 | bitr4d | |- ( N e. ZZ -> ( 0 || N <-> 0 || ( N ^ 2 ) ) ) |
| 64 | 63 | adantl | |- ( ( M e. ZZ /\ N e. ZZ ) -> ( 0 || N <-> 0 || ( N ^ 2 ) ) ) |
| 65 | 4 56 64 | pm2.61ne | |- ( ( M e. ZZ /\ N e. ZZ ) -> ( M || N <-> ( M ^ 2 ) || ( N ^ 2 ) ) ) |