This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: A zero length substring. (Contributed by Stefan O'Rear, 27-Aug-2015)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | swrd00 | |- ( S substr <. X , X >. ) = (/) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | opelxp | |- ( <. S , <. X , X >. >. e. ( _V X. ( ZZ X. ZZ ) ) <-> ( S e. _V /\ <. X , X >. e. ( ZZ X. ZZ ) ) ) |
|
| 2 | opelxp | |- ( <. X , X >. e. ( ZZ X. ZZ ) <-> ( X e. ZZ /\ X e. ZZ ) ) |
|
| 3 | swrdval | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> ( S substr <. X , X >. ) = if ( ( X ..^ X ) C_ dom S , ( x e. ( 0 ..^ ( X - X ) ) |-> ( S ` ( x + X ) ) ) , (/) ) ) |
|
| 4 | fzo0 | |- ( X ..^ X ) = (/) |
|
| 5 | 0ss | |- (/) C_ dom S |
|
| 6 | 4 5 | eqsstri | |- ( X ..^ X ) C_ dom S |
| 7 | 6 | iftruei | |- if ( ( X ..^ X ) C_ dom S , ( x e. ( 0 ..^ ( X - X ) ) |-> ( S ` ( x + X ) ) ) , (/) ) = ( x e. ( 0 ..^ ( X - X ) ) |-> ( S ` ( x + X ) ) ) |
| 8 | zcn | |- ( X e. ZZ -> X e. CC ) |
|
| 9 | 8 | subidd | |- ( X e. ZZ -> ( X - X ) = 0 ) |
| 10 | 9 | oveq2d | |- ( X e. ZZ -> ( 0 ..^ ( X - X ) ) = ( 0 ..^ 0 ) ) |
| 11 | 10 | 3ad2ant2 | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> ( 0 ..^ ( X - X ) ) = ( 0 ..^ 0 ) ) |
| 12 | fzo0 | |- ( 0 ..^ 0 ) = (/) |
|
| 13 | 11 12 | eqtrdi | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> ( 0 ..^ ( X - X ) ) = (/) ) |
| 14 | 13 | mpteq1d | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> ( x e. ( 0 ..^ ( X - X ) ) |-> ( S ` ( x + X ) ) ) = ( x e. (/) |-> ( S ` ( x + X ) ) ) ) |
| 15 | mpt0 | |- ( x e. (/) |-> ( S ` ( x + X ) ) ) = (/) |
|
| 16 | 14 15 | eqtrdi | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> ( x e. ( 0 ..^ ( X - X ) ) |-> ( S ` ( x + X ) ) ) = (/) ) |
| 17 | 7 16 | eqtrid | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> if ( ( X ..^ X ) C_ dom S , ( x e. ( 0 ..^ ( X - X ) ) |-> ( S ` ( x + X ) ) ) , (/) ) = (/) ) |
| 18 | 3 17 | eqtrd | |- ( ( S e. _V /\ X e. ZZ /\ X e. ZZ ) -> ( S substr <. X , X >. ) = (/) ) |
| 19 | 18 | 3expb | |- ( ( S e. _V /\ ( X e. ZZ /\ X e. ZZ ) ) -> ( S substr <. X , X >. ) = (/) ) |
| 20 | 2 19 | sylan2b | |- ( ( S e. _V /\ <. X , X >. e. ( ZZ X. ZZ ) ) -> ( S substr <. X , X >. ) = (/) ) |
| 21 | 1 20 | sylbi | |- ( <. S , <. X , X >. >. e. ( _V X. ( ZZ X. ZZ ) ) -> ( S substr <. X , X >. ) = (/) ) |
| 22 | df-substr | |- substr = ( s e. _V , b e. ( ZZ X. ZZ ) |-> if ( ( ( 1st ` b ) ..^ ( 2nd ` b ) ) C_ dom s , ( x e. ( 0 ..^ ( ( 2nd ` b ) - ( 1st ` b ) ) ) |-> ( s ` ( x + ( 1st ` b ) ) ) ) , (/) ) ) |
|
| 23 | ovex | |- ( 0 ..^ ( ( 2nd ` b ) - ( 1st ` b ) ) ) e. _V |
|
| 24 | 23 | mptex | |- ( x e. ( 0 ..^ ( ( 2nd ` b ) - ( 1st ` b ) ) ) |-> ( s ` ( x + ( 1st ` b ) ) ) ) e. _V |
| 25 | 0ex | |- (/) e. _V |
|
| 26 | 24 25 | ifex | |- if ( ( ( 1st ` b ) ..^ ( 2nd ` b ) ) C_ dom s , ( x e. ( 0 ..^ ( ( 2nd ` b ) - ( 1st ` b ) ) ) |-> ( s ` ( x + ( 1st ` b ) ) ) ) , (/) ) e. _V |
| 27 | 22 26 | dmmpo | |- dom substr = ( _V X. ( ZZ X. ZZ ) ) |
| 28 | 21 27 | eleq2s | |- ( <. S , <. X , X >. >. e. dom substr -> ( S substr <. X , X >. ) = (/) ) |
| 29 | df-ov | |- ( S substr <. X , X >. ) = ( substr ` <. S , <. X , X >. >. ) |
|
| 30 | ndmfv | |- ( -. <. S , <. X , X >. >. e. dom substr -> ( substr ` <. S , <. X , X >. >. ) = (/) ) |
|
| 31 | 29 30 | eqtrid | |- ( -. <. S , <. X , X >. >. e. dom substr -> ( S substr <. X , X >. ) = (/) ) |
| 32 | 28 31 | pm2.61i | |- ( S substr <. X , X >. ) = (/) |