Metamath Proof Explorer


Theorem 2spthd

Description: A simple path of length 2 from one vertex to another, different vertex via a third vertex. (Contributed by Alexander van der Vekens, 1-Feb-2018) (Revised by AV, 24-Jan-2021) (Revised by AV, 24-Mar-2021) (Proof shortened by AV, 30-Oct-2021)

Ref Expression
Hypotheses 2wlkd.p
|- P = <" A B C ">
2wlkd.f
|- F = <" J K ">
2wlkd.s
|- ( ph -> ( A e. V /\ B e. V /\ C e. V ) )
2wlkd.n
|- ( ph -> ( A =/= B /\ B =/= C ) )
2wlkd.e
|- ( ph -> ( { A , B } C_ ( I ` J ) /\ { B , C } C_ ( I ` K ) ) )
2wlkd.v
|- V = ( Vtx ` G )
2wlkd.i
|- I = ( iEdg ` G )
2trld.n
|- ( ph -> J =/= K )
2spthd.n
|- ( ph -> A =/= C )
Assertion 2spthd
|- ( ph -> F ( SPaths ` G ) P )

Proof

Step Hyp Ref Expression
1 2wlkd.p
 |-  P = <" A B C ">
2 2wlkd.f
 |-  F = <" J K ">
3 2wlkd.s
 |-  ( ph -> ( A e. V /\ B e. V /\ C e. V ) )
4 2wlkd.n
 |-  ( ph -> ( A =/= B /\ B =/= C ) )
5 2wlkd.e
 |-  ( ph -> ( { A , B } C_ ( I ` J ) /\ { B , C } C_ ( I ` K ) ) )
6 2wlkd.v
 |-  V = ( Vtx ` G )
7 2wlkd.i
 |-  I = ( iEdg ` G )
8 2trld.n
 |-  ( ph -> J =/= K )
9 2spthd.n
 |-  ( ph -> A =/= C )
10 1 2 3 4 5 6 7 8 2trld
 |-  ( ph -> F ( Trails ` G ) P )
11 3anan32
 |-  ( ( A =/= B /\ A =/= C /\ B =/= C ) <-> ( ( A =/= B /\ B =/= C ) /\ A =/= C ) )
12 4 9 11 sylanbrc
 |-  ( ph -> ( A =/= B /\ A =/= C /\ B =/= C ) )
13 funcnvs3
 |-  ( ( ( A e. V /\ B e. V /\ C e. V ) /\ ( A =/= B /\ A =/= C /\ B =/= C ) ) -> Fun `' <" A B C "> )
14 3 12 13 syl2anc
 |-  ( ph -> Fun `' <" A B C "> )
15 1 a1i
 |-  ( ph -> P = <" A B C "> )
16 15 cnveqd
 |-  ( ph -> `' P = `' <" A B C "> )
17 16 funeqd
 |-  ( ph -> ( Fun `' P <-> Fun `' <" A B C "> ) )
18 14 17 mpbird
 |-  ( ph -> Fun `' P )
19 isspth
 |-  ( F ( SPaths ` G ) P <-> ( F ( Trails ` G ) P /\ Fun `' P ) )
20 10 18 19 sylanbrc
 |-  ( ph -> F ( SPaths ` G ) P )