This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: A simple path of fixed length is a simple path of fixed length between two vertices. (Contributed by Alexander van der Vekens, 1-Mar-2018) (Revised by AV, 16-May-2021) (Revised by AV, 13-Mar-2022)
| Ref | Expression | ||
|---|---|---|---|
| Hypothesis | wwlksnwwlksnon.v | |- V = ( Vtx ` G ) |
|
| Assertion | wspthsnwspthsnon | |- ( W e. ( N WSPathsN G ) <-> E. a e. V E. b e. V W e. ( a ( N WSPathsNOn G ) b ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | wwlksnwwlksnon.v | |- V = ( Vtx ` G ) |
|
| 2 | iswspthn | |- ( W e. ( N WSPathsN G ) <-> ( W e. ( N WWalksN G ) /\ E. f f ( SPaths ` G ) W ) ) |
|
| 3 | 1 | wwlksnwwlksnon | |- ( W e. ( N WWalksN G ) <-> E. a e. V E. b e. V W e. ( a ( N WWalksNOn G ) b ) ) |
| 4 | 3 | anbi1i | |- ( ( W e. ( N WWalksN G ) /\ E. f f ( SPaths ` G ) W ) <-> ( E. a e. V E. b e. V W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) ) |
| 5 | r19.41vv | |- ( E. a e. V E. b e. V ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) <-> ( E. a e. V E. b e. V W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) ) |
|
| 6 | 4 5 | bitr4i | |- ( ( W e. ( N WWalksN G ) /\ E. f f ( SPaths ` G ) W ) <-> E. a e. V E. b e. V ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) ) |
| 7 | 3anass | |- ( ( f ( SPaths ` G ) W /\ ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) <-> ( f ( SPaths ` G ) W /\ ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
|
| 8 | 7 | a1i | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( ( f ( SPaths ` G ) W /\ ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) <-> ( f ( SPaths ` G ) W /\ ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) ) |
| 9 | vex | |- f e. _V |
|
| 10 | 1 | isspthonpth | |- ( ( ( a e. V /\ b e. V ) /\ ( f e. _V /\ W e. ( a ( N WWalksNOn G ) b ) ) ) -> ( f ( a ( SPathsOn ` G ) b ) W <-> ( f ( SPaths ` G ) W /\ ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 11 | 9 10 | mpanr1 | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( f ( a ( SPathsOn ` G ) b ) W <-> ( f ( SPaths ` G ) W /\ ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 12 | spthiswlk | |- ( f ( SPaths ` G ) W -> f ( Walks ` G ) W ) |
|
| 13 | wlklenvm1 | |- ( f ( Walks ` G ) W -> ( # ` f ) = ( ( # ` W ) - 1 ) ) |
|
| 14 | wwlknon | |- ( W e. ( a ( N WWalksNOn G ) b ) <-> ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) ) |
|
| 15 | simpl2 | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( W ` 0 ) = a ) |
|
| 16 | simpr | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( # ` f ) = ( ( # ` W ) - 1 ) ) |
|
| 17 | wwlknbp1 | |- ( W e. ( N WWalksN G ) -> ( N e. NN0 /\ W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( N + 1 ) ) ) |
|
| 18 | oveq1 | |- ( ( # ` W ) = ( N + 1 ) -> ( ( # ` W ) - 1 ) = ( ( N + 1 ) - 1 ) ) |
|
| 19 | 18 | 3ad2ant3 | |- ( ( N e. NN0 /\ W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( N + 1 ) ) -> ( ( # ` W ) - 1 ) = ( ( N + 1 ) - 1 ) ) |
| 20 | nn0cn | |- ( N e. NN0 -> N e. CC ) |
|
| 21 | pncan1 | |- ( N e. CC -> ( ( N + 1 ) - 1 ) = N ) |
|
| 22 | 20 21 | syl | |- ( N e. NN0 -> ( ( N + 1 ) - 1 ) = N ) |
| 23 | 22 | 3ad2ant1 | |- ( ( N e. NN0 /\ W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( N + 1 ) ) -> ( ( N + 1 ) - 1 ) = N ) |
| 24 | 19 23 | eqtrd | |- ( ( N e. NN0 /\ W e. Word ( Vtx ` G ) /\ ( # ` W ) = ( N + 1 ) ) -> ( ( # ` W ) - 1 ) = N ) |
| 25 | 17 24 | syl | |- ( W e. ( N WWalksN G ) -> ( ( # ` W ) - 1 ) = N ) |
| 26 | 25 | 3ad2ant1 | |- ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) -> ( ( # ` W ) - 1 ) = N ) |
| 27 | 26 | adantr | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( ( # ` W ) - 1 ) = N ) |
| 28 | 16 27 | eqtrd | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( # ` f ) = N ) |
| 29 | 28 | fveq2d | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( W ` ( # ` f ) ) = ( W ` N ) ) |
| 30 | simpl3 | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( W ` N ) = b ) |
|
| 31 | 29 30 | eqtrd | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( W ` ( # ` f ) ) = b ) |
| 32 | 15 31 | jca | |- ( ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) /\ ( # ` f ) = ( ( # ` W ) - 1 ) ) -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) |
| 33 | 32 | ex | |- ( ( W e. ( N WWalksN G ) /\ ( W ` 0 ) = a /\ ( W ` N ) = b ) -> ( ( # ` f ) = ( ( # ` W ) - 1 ) -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 34 | 14 33 | sylbi | |- ( W e. ( a ( N WWalksNOn G ) b ) -> ( ( # ` f ) = ( ( # ` W ) - 1 ) -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 35 | 34 | adantl | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( ( # ` f ) = ( ( # ` W ) - 1 ) -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 36 | 35 | com12 | |- ( ( # ` f ) = ( ( # ` W ) - 1 ) -> ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 37 | 12 13 36 | 3syl | |- ( f ( SPaths ` G ) W -> ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 38 | 37 | com12 | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( f ( SPaths ` G ) W -> ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) |
| 39 | 38 | pm4.71d | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( f ( SPaths ` G ) W <-> ( f ( SPaths ` G ) W /\ ( ( W ` 0 ) = a /\ ( W ` ( # ` f ) ) = b ) ) ) ) |
| 40 | 8 11 39 | 3bitr4rd | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( f ( SPaths ` G ) W <-> f ( a ( SPathsOn ` G ) b ) W ) ) |
| 41 | 40 | exbidv | |- ( ( ( a e. V /\ b e. V ) /\ W e. ( a ( N WWalksNOn G ) b ) ) -> ( E. f f ( SPaths ` G ) W <-> E. f f ( a ( SPathsOn ` G ) b ) W ) ) |
| 42 | 41 | pm5.32da | |- ( ( a e. V /\ b e. V ) -> ( ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) <-> ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( a ( SPathsOn ` G ) b ) W ) ) ) |
| 43 | wspthnon | |- ( W e. ( a ( N WSPathsNOn G ) b ) <-> ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( a ( SPathsOn ` G ) b ) W ) ) |
|
| 44 | 42 43 | bitr4di | |- ( ( a e. V /\ b e. V ) -> ( ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) <-> W e. ( a ( N WSPathsNOn G ) b ) ) ) |
| 45 | 44 | 2rexbiia | |- ( E. a e. V E. b e. V ( W e. ( a ( N WWalksNOn G ) b ) /\ E. f f ( SPaths ` G ) W ) <-> E. a e. V E. b e. V W e. ( a ( N WSPathsNOn G ) b ) ) |
| 46 | 2 6 45 | 3bitri | |- ( W e. ( N WSPathsN G ) <-> E. a e. V E. b e. V W e. ( a ( N WSPathsNOn G ) b ) ) |