This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Conditions for a pair of functions to be a walk in a loop-free graph. (Contributed by AV, 28-Jan-2021)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | lfgrwlkprop.i | |- I = ( iEdg ` G ) |
|
| lfgriswlk.v | |- V = ( Vtx ` G ) |
||
| Assertion | lfgriswlk | |- ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) -> ( F ( Walks ` G ) P <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | lfgrwlkprop.i | |- I = ( iEdg ` G ) |
|
| 2 | lfgriswlk.v | |- V = ( Vtx ` G ) |
|
| 3 | 1 | wlkf | |- ( F ( Walks ` G ) P -> F e. Word dom I ) |
| 4 | 3 | adantl | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ F ( Walks ` G ) P ) -> F e. Word dom I ) |
| 5 | 2 | wlkp | |- ( F ( Walks ` G ) P -> P : ( 0 ... ( # ` F ) ) --> V ) |
| 6 | 5 | adantl | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ F ( Walks ` G ) P ) -> P : ( 0 ... ( # ` F ) ) --> V ) |
| 7 | 1 | lfgrwlkprop | |- ( ( F ( Walks ` G ) P /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) |
| 8 | 7 | expcom | |- ( I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } -> ( F ( Walks ` G ) P -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) ) |
| 9 | 8 | adantl | |- ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) -> ( F ( Walks ` G ) P -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) ) |
| 10 | 9 | imp | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ F ( Walks ` G ) P ) -> A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) ) |
| 11 | 1 | wlkvtxeledg | |- ( F ( Walks ` G ) P -> A. k e. ( 0 ..^ ( # ` F ) ) { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) |
| 12 | 11 | adantl | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ F ( Walks ` G ) P ) -> A. k e. ( 0 ..^ ( # ` F ) ) { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) |
| 13 | r19.26 | |- ( A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) <-> ( A. k e. ( 0 ..^ ( # ` F ) ) ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ A. k e. ( 0 ..^ ( # ` F ) ) { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
|
| 14 | 10 12 13 | sylanbrc | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ F ( Walks ` G ) P ) -> A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
| 15 | 4 6 14 | 3jca | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ F ( Walks ` G ) P ) -> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) |
| 16 | simpr1 | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) -> F e. Word dom I ) |
|
| 17 | simpr2 | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) -> P : ( 0 ... ( # ` F ) ) --> V ) |
|
| 18 | df-ne | |- ( ( P ` k ) =/= ( P ` ( k + 1 ) ) <-> -. ( P ` k ) = ( P ` ( k + 1 ) ) ) |
|
| 19 | ifpfal | |- ( -. ( P ` k ) = ( P ` ( k + 1 ) ) -> ( if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) <-> { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
|
| 20 | 18 19 | sylbi | |- ( ( P ` k ) =/= ( P ` ( k + 1 ) ) -> ( if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) <-> { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
| 21 | 20 | biimpar | |- ( ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) -> if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
| 22 | 21 | ralimi | |- ( A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) -> A. k e. ( 0 ..^ ( # ` F ) ) if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
| 23 | 22 | 3ad2ant3 | |- ( ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) -> A. k e. ( 0 ..^ ( # ` F ) ) if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
| 24 | 23 | adantl | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) -> A. k e. ( 0 ..^ ( # ` F ) ) if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) |
| 25 | 2 1 | iswlkg | |- ( G e. W -> ( F ( Walks ` G ) P <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) ) |
| 26 | 25 | ad2antrr | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) -> ( F ( Walks ` G ) P <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) if- ( ( P ` k ) = ( P ` ( k + 1 ) ) , ( I ` ( F ` k ) ) = { ( P ` k ) } , { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) ) |
| 27 | 16 17 24 26 | mpbir3and | |- ( ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) /\ ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) -> F ( Walks ` G ) P ) |
| 28 | 15 27 | impbida | |- ( ( G e. W /\ I : dom I --> { x e. ~P V | 2 <_ ( # ` x ) } ) -> ( F ( Walks ` G ) P <-> ( F e. Word dom I /\ P : ( 0 ... ( # ` F ) ) --> V /\ A. k e. ( 0 ..^ ( # ` F ) ) ( ( P ` k ) =/= ( P ` ( k + 1 ) ) /\ { ( P ` k ) , ( P ` ( k + 1 ) ) } C_ ( I ` ( F ` k ) ) ) ) ) ) |