This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: A simple path of length 3 from one vertex to another, different vertex via a third vertex. (Contributed by AV, 10-Feb-2021) (Revised by AV, 24-Mar-2021) (Proof shortened by AV, 30-Oct-2021)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | 3wlkd.p | |- P = <" A B C D "> |
|
| 3wlkd.f | |- F = <" J K L "> |
||
| 3wlkd.s | |- ( ph -> ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ) |
||
| 3wlkd.n | |- ( ph -> ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) |
||
| 3wlkd.e | |- ( ph -> ( { A , B } C_ ( I ` J ) /\ { B , C } C_ ( I ` K ) /\ { C , D } C_ ( I ` L ) ) ) |
||
| 3wlkd.v | |- V = ( Vtx ` G ) |
||
| 3wlkd.i | |- I = ( iEdg ` G ) |
||
| 3trld.n | |- ( ph -> ( J =/= K /\ J =/= L /\ K =/= L ) ) |
||
| 3spthd.n | |- ( ph -> A =/= D ) |
||
| Assertion | 3spthd | |- ( ph -> F ( SPaths ` G ) P ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | 3wlkd.p | |- P = <" A B C D "> |
|
| 2 | 3wlkd.f | |- F = <" J K L "> |
|
| 3 | 3wlkd.s | |- ( ph -> ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) ) |
|
| 4 | 3wlkd.n | |- ( ph -> ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) |
|
| 5 | 3wlkd.e | |- ( ph -> ( { A , B } C_ ( I ` J ) /\ { B , C } C_ ( I ` K ) /\ { C , D } C_ ( I ` L ) ) ) |
|
| 6 | 3wlkd.v | |- V = ( Vtx ` G ) |
|
| 7 | 3wlkd.i | |- I = ( iEdg ` G ) |
|
| 8 | 3trld.n | |- ( ph -> ( J =/= K /\ J =/= L /\ K =/= L ) ) |
|
| 9 | 3spthd.n | |- ( ph -> A =/= D ) |
|
| 10 | 1 2 3 4 5 6 7 8 | 3trld | |- ( ph -> F ( Trails ` G ) P ) |
| 11 | simpr | |- ( ( ph /\ F ( Trails ` G ) P ) -> F ( Trails ` G ) P ) |
|
| 12 | df-3an | |- ( ( A =/= B /\ A =/= C /\ A =/= D ) <-> ( ( A =/= B /\ A =/= C ) /\ A =/= D ) ) |
|
| 13 | 12 | simplbi2 | |- ( ( A =/= B /\ A =/= C ) -> ( A =/= D -> ( A =/= B /\ A =/= C /\ A =/= D ) ) ) |
| 14 | 13 | 3ad2ant1 | |- ( ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) -> ( A =/= D -> ( A =/= B /\ A =/= C /\ A =/= D ) ) ) |
| 15 | 9 14 | mpan9 | |- ( ( ph /\ ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) -> ( A =/= B /\ A =/= C /\ A =/= D ) ) |
| 16 | simpr2 | |- ( ( ph /\ ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) -> ( B =/= C /\ B =/= D ) ) |
|
| 17 | simpr3 | |- ( ( ph /\ ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) -> C =/= D ) |
|
| 18 | 15 16 17 | 3jca | |- ( ( ph /\ ( ( A =/= B /\ A =/= C ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) -> ( ( A =/= B /\ A =/= C /\ A =/= D ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) |
| 19 | 4 18 | mpdan | |- ( ph -> ( ( A =/= B /\ A =/= C /\ A =/= D ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) |
| 20 | funcnvs4 | |- ( ( ( ( A e. V /\ B e. V ) /\ ( C e. V /\ D e. V ) ) /\ ( ( A =/= B /\ A =/= C /\ A =/= D ) /\ ( B =/= C /\ B =/= D ) /\ C =/= D ) ) -> Fun `' <" A B C D "> ) |
|
| 21 | 3 19 20 | syl2anc | |- ( ph -> Fun `' <" A B C D "> ) |
| 22 | 21 | adantr | |- ( ( ph /\ F ( Trails ` G ) P ) -> Fun `' <" A B C D "> ) |
| 23 | 1 | a1i | |- ( ( ph /\ F ( Trails ` G ) P ) -> P = <" A B C D "> ) |
| 24 | 23 | cnveqd | |- ( ( ph /\ F ( Trails ` G ) P ) -> `' P = `' <" A B C D "> ) |
| 25 | 24 | funeqd | |- ( ( ph /\ F ( Trails ` G ) P ) -> ( Fun `' P <-> Fun `' <" A B C D "> ) ) |
| 26 | 22 25 | mpbird | |- ( ( ph /\ F ( Trails ` G ) P ) -> Fun `' P ) |
| 27 | isspth | |- ( F ( SPaths ` G ) P <-> ( F ( Trails ` G ) P /\ Fun `' P ) ) |
|
| 28 | 11 26 27 | sylanbrc | |- ( ( ph /\ F ( Trails ` G ) P ) -> F ( SPaths ` G ) P ) |
| 29 | 10 28 | mpdan | |- ( ph -> F ( SPaths ` G ) P ) |