This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: In a graph with two vertices and an edge connecting these two vertices, to go from one vertex to the other vertex via this edge is a path from one of these vertices to the other vertex. The two vertices need not be distinct (in the case of a loop) - in this case, however, the path is not a simple path. (Contributed by Alexander van der Vekens, 4-Dec-2017) (Revised by AV, 22-Jan-2021) (Revised by AV, 23-Mar-2021)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | 1wlkd.p | |- P = <" X Y "> |
|
| 1wlkd.f | |- F = <" J "> |
||
| 1wlkd.x | |- ( ph -> X e. V ) |
||
| 1wlkd.y | |- ( ph -> Y e. V ) |
||
| 1wlkd.l | |- ( ( ph /\ X = Y ) -> ( I ` J ) = { X } ) |
||
| 1wlkd.j | |- ( ( ph /\ X =/= Y ) -> { X , Y } C_ ( I ` J ) ) |
||
| 1wlkd.v | |- V = ( Vtx ` G ) |
||
| 1wlkd.i | |- I = ( iEdg ` G ) |
||
| Assertion | 1pthond | |- ( ph -> F ( X ( PathsOn ` G ) Y ) P ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | 1wlkd.p | |- P = <" X Y "> |
|
| 2 | 1wlkd.f | |- F = <" J "> |
|
| 3 | 1wlkd.x | |- ( ph -> X e. V ) |
|
| 4 | 1wlkd.y | |- ( ph -> Y e. V ) |
|
| 5 | 1wlkd.l | |- ( ( ph /\ X = Y ) -> ( I ` J ) = { X } ) |
|
| 6 | 1wlkd.j | |- ( ( ph /\ X =/= Y ) -> { X , Y } C_ ( I ` J ) ) |
|
| 7 | 1wlkd.v | |- V = ( Vtx ` G ) |
|
| 8 | 1wlkd.i | |- I = ( iEdg ` G ) |
|
| 9 | 1 2 3 4 5 6 7 8 | 1wlkd | |- ( ph -> F ( Walks ` G ) P ) |
| 10 | 1 | fveq1i | |- ( P ` 0 ) = ( <" X Y "> ` 0 ) |
| 11 | s2fv0 | |- ( X e. V -> ( <" X Y "> ` 0 ) = X ) |
|
| 12 | 10 11 | eqtrid | |- ( X e. V -> ( P ` 0 ) = X ) |
| 13 | 3 12 | syl | |- ( ph -> ( P ` 0 ) = X ) |
| 14 | 2 | fveq2i | |- ( # ` F ) = ( # ` <" J "> ) |
| 15 | s1len | |- ( # ` <" J "> ) = 1 |
|
| 16 | 14 15 | eqtri | |- ( # ` F ) = 1 |
| 17 | 1 16 | fveq12i | |- ( P ` ( # ` F ) ) = ( <" X Y "> ` 1 ) |
| 18 | s2fv1 | |- ( Y e. V -> ( <" X Y "> ` 1 ) = Y ) |
|
| 19 | 4 18 | syl | |- ( ph -> ( <" X Y "> ` 1 ) = Y ) |
| 20 | 17 19 | eqtrid | |- ( ph -> ( P ` ( # ` F ) ) = Y ) |
| 21 | wlkv | |- ( F ( Walks ` G ) P -> ( G e. _V /\ F e. _V /\ P e. _V ) ) |
|
| 22 | 3simpc | |- ( ( G e. _V /\ F e. _V /\ P e. _V ) -> ( F e. _V /\ P e. _V ) ) |
|
| 23 | 9 21 22 | 3syl | |- ( ph -> ( F e. _V /\ P e. _V ) ) |
| 24 | 3 4 23 | jca31 | |- ( ph -> ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) ) |
| 25 | 7 | iswlkon | |- ( ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) -> ( F ( X ( WalksOn ` G ) Y ) P <-> ( F ( Walks ` G ) P /\ ( P ` 0 ) = X /\ ( P ` ( # ` F ) ) = Y ) ) ) |
| 26 | 24 25 | syl | |- ( ph -> ( F ( X ( WalksOn ` G ) Y ) P <-> ( F ( Walks ` G ) P /\ ( P ` 0 ) = X /\ ( P ` ( # ` F ) ) = Y ) ) ) |
| 27 | 9 13 20 26 | mpbir3and | |- ( ph -> F ( X ( WalksOn ` G ) Y ) P ) |
| 28 | 1 2 3 4 5 6 7 8 | 1trld | |- ( ph -> F ( Trails ` G ) P ) |
| 29 | 7 | istrlson | |- ( ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) -> ( F ( X ( TrailsOn ` G ) Y ) P <-> ( F ( X ( WalksOn ` G ) Y ) P /\ F ( Trails ` G ) P ) ) ) |
| 30 | 24 29 | syl | |- ( ph -> ( F ( X ( TrailsOn ` G ) Y ) P <-> ( F ( X ( WalksOn ` G ) Y ) P /\ F ( Trails ` G ) P ) ) ) |
| 31 | 27 28 30 | mpbir2and | |- ( ph -> F ( X ( TrailsOn ` G ) Y ) P ) |
| 32 | 1 2 3 4 5 6 7 8 | 1pthd | |- ( ph -> F ( Paths ` G ) P ) |
| 33 | 3 | adantl | |- ( ( ( F e. _V /\ P e. _V ) /\ ph ) -> X e. V ) |
| 34 | 4 | adantl | |- ( ( ( F e. _V /\ P e. _V ) /\ ph ) -> Y e. V ) |
| 35 | simpl | |- ( ( ( F e. _V /\ P e. _V ) /\ ph ) -> ( F e. _V /\ P e. _V ) ) |
|
| 36 | 33 34 35 | jca31 | |- ( ( ( F e. _V /\ P e. _V ) /\ ph ) -> ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) ) |
| 37 | 36 | ex | |- ( ( F e. _V /\ P e. _V ) -> ( ph -> ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) ) ) |
| 38 | 21 22 37 | 3syl | |- ( F ( Walks ` G ) P -> ( ph -> ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) ) ) |
| 39 | 9 38 | mpcom | |- ( ph -> ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) ) |
| 40 | 7 | ispthson | |- ( ( ( X e. V /\ Y e. V ) /\ ( F e. _V /\ P e. _V ) ) -> ( F ( X ( PathsOn ` G ) Y ) P <-> ( F ( X ( TrailsOn ` G ) Y ) P /\ F ( Paths ` G ) P ) ) ) |
| 41 | 39 40 | syl | |- ( ph -> ( F ( X ( PathsOn ` G ) Y ) P <-> ( F ( X ( TrailsOn ` G ) Y ) P /\ F ( Paths ` G ) P ) ) ) |
| 42 | 31 32 41 | mpbir2and | |- ( ph -> F ( X ( PathsOn ` G ) Y ) P ) |