This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Two nonnegative integers less than the modulus are equal iff the sums of these integer with another integer are equal modulo the modulus. Shorter proof of addmodlteq based on the "divides" relation. (Contributed by AV, 14-Mar-2021) (New usage is discouraged.) (Proof modification is discouraged.)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | addmodlteqALT | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( ( ( I + S ) mod N ) = ( ( J + S ) mod N ) <-> I = J ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | elfzo0 | |- ( I e. ( 0 ..^ N ) <-> ( I e. NN0 /\ N e. NN /\ I < N ) ) |
|
| 2 | elfzoelz | |- ( J e. ( 0 ..^ N ) -> J e. ZZ ) |
|
| 3 | simplrr | |- ( ( ( J e. ZZ /\ ( I e. NN0 /\ N e. NN ) ) /\ S e. ZZ ) -> N e. NN ) |
|
| 4 | nn0z | |- ( I e. NN0 -> I e. ZZ ) |
|
| 5 | 4 | ad2antrl | |- ( ( J e. ZZ /\ ( I e. NN0 /\ N e. NN ) ) -> I e. ZZ ) |
| 6 | zaddcl | |- ( ( I e. ZZ /\ S e. ZZ ) -> ( I + S ) e. ZZ ) |
|
| 7 | 5 6 | sylan | |- ( ( ( J e. ZZ /\ ( I e. NN0 /\ N e. NN ) ) /\ S e. ZZ ) -> ( I + S ) e. ZZ ) |
| 8 | zaddcl | |- ( ( J e. ZZ /\ S e. ZZ ) -> ( J + S ) e. ZZ ) |
|
| 9 | 8 | adantlr | |- ( ( ( J e. ZZ /\ ( I e. NN0 /\ N e. NN ) ) /\ S e. ZZ ) -> ( J + S ) e. ZZ ) |
| 10 | 3 7 9 | 3jca | |- ( ( ( J e. ZZ /\ ( I e. NN0 /\ N e. NN ) ) /\ S e. ZZ ) -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) |
| 11 | 10 | exp31 | |- ( J e. ZZ -> ( ( I e. NN0 /\ N e. NN ) -> ( S e. ZZ -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) ) ) |
| 12 | 2 11 | syl | |- ( J e. ( 0 ..^ N ) -> ( ( I e. NN0 /\ N e. NN ) -> ( S e. ZZ -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) ) ) |
| 13 | 12 | com12 | |- ( ( I e. NN0 /\ N e. NN ) -> ( J e. ( 0 ..^ N ) -> ( S e. ZZ -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) ) ) |
| 14 | 13 | 3adant3 | |- ( ( I e. NN0 /\ N e. NN /\ I < N ) -> ( J e. ( 0 ..^ N ) -> ( S e. ZZ -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) ) ) |
| 15 | 1 14 | sylbi | |- ( I e. ( 0 ..^ N ) -> ( J e. ( 0 ..^ N ) -> ( S e. ZZ -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) ) ) |
| 16 | 15 | 3imp | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) ) |
| 17 | moddvds | |- ( ( N e. NN /\ ( I + S ) e. ZZ /\ ( J + S ) e. ZZ ) -> ( ( ( I + S ) mod N ) = ( ( J + S ) mod N ) <-> N || ( ( I + S ) - ( J + S ) ) ) ) |
|
| 18 | 16 17 | syl | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( ( ( I + S ) mod N ) = ( ( J + S ) mod N ) <-> N || ( ( I + S ) - ( J + S ) ) ) ) |
| 19 | elfzoel2 | |- ( I e. ( 0 ..^ N ) -> N e. ZZ ) |
|
| 20 | zcn | |- ( N e. ZZ -> N e. CC ) |
|
| 21 | 20 | subid1d | |- ( N e. ZZ -> ( N - 0 ) = N ) |
| 22 | 21 | eqcomd | |- ( N e. ZZ -> N = ( N - 0 ) ) |
| 23 | 19 22 | syl | |- ( I e. ( 0 ..^ N ) -> N = ( N - 0 ) ) |
| 24 | 23 | 3ad2ant1 | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> N = ( N - 0 ) ) |
| 25 | elfzoelz | |- ( I e. ( 0 ..^ N ) -> I e. ZZ ) |
|
| 26 | 25 | zcnd | |- ( I e. ( 0 ..^ N ) -> I e. CC ) |
| 27 | 2 | zcnd | |- ( J e. ( 0 ..^ N ) -> J e. CC ) |
| 28 | zcn | |- ( S e. ZZ -> S e. CC ) |
|
| 29 | pnpcan2 | |- ( ( I e. CC /\ J e. CC /\ S e. CC ) -> ( ( I + S ) - ( J + S ) ) = ( I - J ) ) |
|
| 30 | 26 27 28 29 | syl3an | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( ( I + S ) - ( J + S ) ) = ( I - J ) ) |
| 31 | 24 30 | breq12d | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( N || ( ( I + S ) - ( J + S ) ) <-> ( N - 0 ) || ( I - J ) ) ) |
| 32 | fzocongeq | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) ) -> ( ( N - 0 ) || ( I - J ) <-> I = J ) ) |
|
| 33 | 32 | 3adant3 | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( ( N - 0 ) || ( I - J ) <-> I = J ) ) |
| 34 | 18 31 33 | 3bitrd | |- ( ( I e. ( 0 ..^ N ) /\ J e. ( 0 ..^ N ) /\ S e. ZZ ) -> ( ( ( I + S ) mod N ) = ( ( J + S ) mod N ) <-> I = J ) ) |