This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The value of the predecessor class over an upper integer set. (Contributed by Scott Fenton, 16-May-2014)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | preduz | |- ( N e. ( ZZ>= ` M ) -> Pred ( < , ( ZZ>= ` M ) , N ) = ( M ... ( N - 1 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | vex | |- x e. _V |
|
| 2 | 1 | elpred | |- ( N e. ( ZZ>= ` M ) -> ( x e. Pred ( < , ( ZZ>= ` M ) , N ) <-> ( x e. ( ZZ>= ` M ) /\ x < N ) ) ) |
| 3 | eluzelz | |- ( x e. ( ZZ>= ` M ) -> x e. ZZ ) |
|
| 4 | eluzelz | |- ( N e. ( ZZ>= ` M ) -> N e. ZZ ) |
|
| 5 | zltlem1 | |- ( ( x e. ZZ /\ N e. ZZ ) -> ( x < N <-> x <_ ( N - 1 ) ) ) |
|
| 6 | 3 4 5 | syl2anr | |- ( ( N e. ( ZZ>= ` M ) /\ x e. ( ZZ>= ` M ) ) -> ( x < N <-> x <_ ( N - 1 ) ) ) |
| 7 | 6 | pm5.32da | |- ( N e. ( ZZ>= ` M ) -> ( ( x e. ( ZZ>= ` M ) /\ x < N ) <-> ( x e. ( ZZ>= ` M ) /\ x <_ ( N - 1 ) ) ) ) |
| 8 | eluzel2 | |- ( N e. ( ZZ>= ` M ) -> M e. ZZ ) |
|
| 9 | eluz1 | |- ( M e. ZZ -> ( x e. ( ZZ>= ` M ) <-> ( x e. ZZ /\ M <_ x ) ) ) |
|
| 10 | 8 9 | syl | |- ( N e. ( ZZ>= ` M ) -> ( x e. ( ZZ>= ` M ) <-> ( x e. ZZ /\ M <_ x ) ) ) |
| 11 | 10 | anbi1d | |- ( N e. ( ZZ>= ` M ) -> ( ( x e. ( ZZ>= ` M ) /\ x <_ ( N - 1 ) ) <-> ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) |
| 12 | 7 11 | bitrd | |- ( N e. ( ZZ>= ` M ) -> ( ( x e. ( ZZ>= ` M ) /\ x < N ) <-> ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) |
| 13 | 2 12 | bitrd | |- ( N e. ( ZZ>= ` M ) -> ( x e. Pred ( < , ( ZZ>= ` M ) , N ) <-> ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) |
| 14 | peano2zm | |- ( N e. ZZ -> ( N - 1 ) e. ZZ ) |
|
| 15 | 4 14 | syl | |- ( N e. ( ZZ>= ` M ) -> ( N - 1 ) e. ZZ ) |
| 16 | 8 15 | jca | |- ( N e. ( ZZ>= ` M ) -> ( M e. ZZ /\ ( N - 1 ) e. ZZ ) ) |
| 17 | 16 | biantrurd | |- ( N e. ( ZZ>= ` M ) -> ( ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) ) |
| 18 | 13 17 | bitrd | |- ( N e. ( ZZ>= ` M ) -> ( x e. Pred ( < , ( ZZ>= ` M ) , N ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) ) |
| 19 | elfz2 | |- ( x e. ( M ... ( N - 1 ) ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ /\ x e. ZZ ) /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) ) |
|
| 20 | df-3an | |- ( ( M e. ZZ /\ ( N - 1 ) e. ZZ /\ x e. ZZ ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ x e. ZZ ) ) |
|
| 21 | 20 | anbi1i | |- ( ( ( M e. ZZ /\ ( N - 1 ) e. ZZ /\ x e. ZZ ) /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) <-> ( ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ x e. ZZ ) /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) ) |
| 22 | anass | |- ( ( ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ x e. ZZ ) /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( x e. ZZ /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) ) ) |
|
| 23 | anass | |- ( ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) <-> ( x e. ZZ /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) ) |
|
| 24 | 23 | anbi2i | |- ( ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( x e. ZZ /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) ) ) |
| 25 | 22 24 | bitr4i | |- ( ( ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ x e. ZZ ) /\ ( M <_ x /\ x <_ ( N - 1 ) ) ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) |
| 26 | 19 21 25 | 3bitri | |- ( x e. ( M ... ( N - 1 ) ) <-> ( ( M e. ZZ /\ ( N - 1 ) e. ZZ ) /\ ( ( x e. ZZ /\ M <_ x ) /\ x <_ ( N - 1 ) ) ) ) |
| 27 | 18 26 | bitr4di | |- ( N e. ( ZZ>= ` M ) -> ( x e. Pred ( < , ( ZZ>= ` M ) , N ) <-> x e. ( M ... ( N - 1 ) ) ) ) |
| 28 | 27 | eqrdv | |- ( N e. ( ZZ>= ` M ) -> Pred ( < , ( ZZ>= ` M ) , N ) = ( M ... ( N - 1 ) ) ) |