Metamath Proof Explorer


Theorem umgrwwlks2on

Description: A walk of length 2 between two vertices as word in a multigraph. This theorem would also hold for pseudographs, but to prove this the cases A = B and/or B = C must be considered separately. (Contributed by Alexander van der Vekens, 18-Feb-2018) (Revised by AV, 12-May-2021)

Ref Expression
Hypotheses s3wwlks2on.v
|- V = ( Vtx ` G )
usgrwwlks2on.e
|- E = ( Edg ` G )
Assertion umgrwwlks2on
|- ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C ) <-> ( { A , B } e. E /\ { B , C } e. E ) ) )

Proof

Step Hyp Ref Expression
1 s3wwlks2on.v
 |-  V = ( Vtx ` G )
2 usgrwwlks2on.e
 |-  E = ( Edg ` G )
3 umgrupgr
 |-  ( G e. UMGraph -> G e. UPGraph )
4 3 adantr
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> G e. UPGraph )
5 simp1
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> A e. V )
6 5 adantl
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> A e. V )
7 simpr3
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> C e. V )
8 1 s3wwlks2on
 |-  ( ( G e. UPGraph /\ A e. V /\ C e. V ) -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C ) <-> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
9 4 6 7 8 syl3anc
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C ) <-> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
10 eqid
 |-  ( iEdg ` G ) = ( iEdg ` G )
11 1 10 upgr2wlk
 |-  ( G e. UPGraph -> ( ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) <-> ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) ) ) )
12 3 11 syl
 |-  ( G e. UMGraph -> ( ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) <-> ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) ) ) )
13 12 adantr
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) <-> ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) ) ) )
14 s3fv0
 |-  ( A e. V -> ( <" A B C "> ` 0 ) = A )
15 14 3ad2ant1
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( <" A B C "> ` 0 ) = A )
16 s3fv1
 |-  ( B e. V -> ( <" A B C "> ` 1 ) = B )
17 16 3ad2ant2
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( <" A B C "> ` 1 ) = B )
18 15 17 preq12d
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } = { A , B } )
19 18 eqeq2d
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } <-> ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } ) )
20 s3fv2
 |-  ( C e. V -> ( <" A B C "> ` 2 ) = C )
21 20 3ad2ant3
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( <" A B C "> ` 2 ) = C )
22 17 21 preq12d
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } = { B , C } )
23 22 eqeq2d
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } <-> ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) )
24 19 23 anbi12d
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) <-> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) )
25 24 adantl
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) <-> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) )
26 25 3anbi3d
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) ) <-> ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) )
27 umgruhgr
 |-  ( G e. UMGraph -> G e. UHGraph )
28 10 uhgrfun
 |-  ( G e. UHGraph -> Fun ( iEdg ` G ) )
29 fdmrn
 |-  ( Fun ( iEdg ` G ) <-> ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) )
30 simpr
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) ) -> ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) )
31 id
 |-  ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) -> f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) )
32 c0ex
 |-  0 e. _V
33 32 prid1
 |-  0 e. { 0 , 1 }
34 fzo0to2pr
 |-  ( 0 ..^ 2 ) = { 0 , 1 }
35 33 34 eleqtrri
 |-  0 e. ( 0 ..^ 2 )
36 35 a1i
 |-  ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) -> 0 e. ( 0 ..^ 2 ) )
37 31 36 ffvelcdmd
 |-  ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) -> ( f ` 0 ) e. dom ( iEdg ` G ) )
38 37 adantr
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) ) -> ( f ` 0 ) e. dom ( iEdg ` G ) )
39 30 38 ffvelcdmd
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) ) -> ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) )
40 1ex
 |-  1 e. _V
41 40 prid2
 |-  1 e. { 0 , 1 }
42 41 34 eleqtrri
 |-  1 e. ( 0 ..^ 2 )
43 42 a1i
 |-  ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) -> 1 e. ( 0 ..^ 2 ) )
44 31 43 ffvelcdmd
 |-  ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) -> ( f ` 1 ) e. dom ( iEdg ` G ) )
45 44 adantr
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) ) -> ( f ` 1 ) e. dom ( iEdg ` G ) )
46 30 45 ffvelcdmd
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) ) -> ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) )
47 39 46 jca
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) )
48 47 ex
 |-  ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) -> ( ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) ) )
49 48 3ad2ant1
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> ( ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) ) )
50 49 com12
 |-  ( ( iEdg ` G ) : dom ( iEdg ` G ) --> ran ( iEdg ` G ) -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) ) )
51 29 50 sylbi
 |-  ( Fun ( iEdg ` G ) -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) ) )
52 27 28 51 3syl
 |-  ( G e. UMGraph -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) ) )
53 52 imp
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) )
54 eqcom
 |-  ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } <-> { A , B } = ( ( iEdg ` G ) ` ( f ` 0 ) ) )
55 54 birani
 |-  ( ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) -> { A , B } = ( ( iEdg ` G ) ` ( f ` 0 ) ) )
56 55 3ad2ant3
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> { A , B } = ( ( iEdg ` G ) ` ( f ` 0 ) ) )
57 56 adantl
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> { A , B } = ( ( iEdg ` G ) ` ( f ` 0 ) ) )
58 edgval
 |-  ( Edg ` G ) = ran ( iEdg ` G )
59 2 58 eqtri
 |-  E = ran ( iEdg ` G )
60 59 a1i
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> E = ran ( iEdg ` G ) )
61 57 60 eleq12d
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> ( { A , B } e. E <-> ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) ) )
62 eqcom
 |-  ( ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } <-> { B , C } = ( ( iEdg ` G ) ` ( f ` 1 ) ) )
63 62 bilani
 |-  ( ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) -> { B , C } = ( ( iEdg ` G ) ` ( f ` 1 ) ) )
64 63 3ad2ant3
 |-  ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> { B , C } = ( ( iEdg ` G ) ` ( f ` 1 ) ) )
65 64 adantl
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> { B , C } = ( ( iEdg ` G ) ` ( f ` 1 ) ) )
66 65 60 eleq12d
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> ( { B , C } e. E <-> ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) )
67 61 66 anbi12d
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> ( ( { A , B } e. E /\ { B , C } e. E ) <-> ( ( ( iEdg ` G ) ` ( f ` 0 ) ) e. ran ( iEdg ` G ) /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) e. ran ( iEdg ` G ) ) ) )
68 53 67 mpbird
 |-  ( ( G e. UMGraph /\ ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) ) -> ( { A , B } e. E /\ { B , C } e. E ) )
69 68 ex
 |-  ( G e. UMGraph -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> ( { A , B } e. E /\ { B , C } e. E ) ) )
70 69 adantr
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { A , B } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { B , C } ) ) -> ( { A , B } e. E /\ { B , C } e. E ) ) )
71 26 70 sylbid
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( f : ( 0 ..^ 2 ) --> dom ( iEdg ` G ) /\ <" A B C "> : ( 0 ... 2 ) --> V /\ ( ( ( iEdg ` G ) ` ( f ` 0 ) ) = { ( <" A B C "> ` 0 ) , ( <" A B C "> ` 1 ) } /\ ( ( iEdg ` G ) ` ( f ` 1 ) ) = { ( <" A B C "> ` 1 ) , ( <" A B C "> ` 2 ) } ) ) -> ( { A , B } e. E /\ { B , C } e. E ) ) )
72 13 71 sylbid
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) -> ( { A , B } e. E /\ { B , C } e. E ) ) )
73 72 exlimdv
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) -> ( { A , B } e. E /\ { B , C } e. E ) ) )
74 2 umgr2wlk
 |-  ( ( G e. UMGraph /\ { A , B } e. E /\ { B , C } e. E ) -> E. f E. p ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) )
75 wlklenvp1
 |-  ( f ( Walks ` G ) p -> ( # ` p ) = ( ( # ` f ) + 1 ) )
76 oveq1
 |-  ( ( # ` f ) = 2 -> ( ( # ` f ) + 1 ) = ( 2 + 1 ) )
77 2p1e3
 |-  ( 2 + 1 ) = 3
78 76 77 eqtrdi
 |-  ( ( # ` f ) = 2 -> ( ( # ` f ) + 1 ) = 3 )
79 78 adantr
 |-  ( ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( ( # ` f ) + 1 ) = 3 )
80 75 79 sylan9eq
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( # ` p ) = 3 )
81 eqcom
 |-  ( A = ( p ` 0 ) <-> ( p ` 0 ) = A )
82 eqcom
 |-  ( B = ( p ` 1 ) <-> ( p ` 1 ) = B )
83 eqcom
 |-  ( C = ( p ` 2 ) <-> ( p ` 2 ) = C )
84 81 82 83 3anbi123i
 |-  ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) <-> ( ( p ` 0 ) = A /\ ( p ` 1 ) = B /\ ( p ` 2 ) = C ) )
85 84 bilani
 |-  ( ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( ( p ` 0 ) = A /\ ( p ` 1 ) = B /\ ( p ` 2 ) = C ) )
86 85 adantl
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( ( p ` 0 ) = A /\ ( p ` 1 ) = B /\ ( p ` 2 ) = C ) )
87 80 86 jca
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( ( # ` p ) = 3 /\ ( ( p ` 0 ) = A /\ ( p ` 1 ) = B /\ ( p ` 2 ) = C ) ) )
88 1 wlkpwrd
 |-  ( f ( Walks ` G ) p -> p e. Word V )
89 78 eqeq2d
 |-  ( ( # ` f ) = 2 -> ( ( # ` p ) = ( ( # ` f ) + 1 ) <-> ( # ` p ) = 3 ) )
90 89 adantl
 |-  ( ( p e. Word V /\ ( # ` f ) = 2 ) -> ( ( # ` p ) = ( ( # ` f ) + 1 ) <-> ( # ` p ) = 3 ) )
91 simp1
 |-  ( ( p e. Word V /\ ( # ` p ) = 3 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> p e. Word V )
92 oveq2
 |-  ( ( # ` p ) = 3 -> ( 0 ..^ ( # ` p ) ) = ( 0 ..^ 3 ) )
93 fzo0to3tp
 |-  ( 0 ..^ 3 ) = { 0 , 1 , 2 }
94 92 93 eqtrdi
 |-  ( ( # ` p ) = 3 -> ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } )
95 32 tpid1
 |-  0 e. { 0 , 1 , 2 }
96 eleq2
 |-  ( ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } -> ( 0 e. ( 0 ..^ ( # ` p ) ) <-> 0 e. { 0 , 1 , 2 } ) )
97 95 96 mpbiri
 |-  ( ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } -> 0 e. ( 0 ..^ ( # ` p ) ) )
98 wrdsymbcl
 |-  ( ( p e. Word V /\ 0 e. ( 0 ..^ ( # ` p ) ) ) -> ( p ` 0 ) e. V )
99 97 98 sylan2
 |-  ( ( p e. Word V /\ ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } ) -> ( p ` 0 ) e. V )
100 40 tpid2
 |-  1 e. { 0 , 1 , 2 }
101 eleq2
 |-  ( ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } -> ( 1 e. ( 0 ..^ ( # ` p ) ) <-> 1 e. { 0 , 1 , 2 } ) )
102 100 101 mpbiri
 |-  ( ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } -> 1 e. ( 0 ..^ ( # ` p ) ) )
103 wrdsymbcl
 |-  ( ( p e. Word V /\ 1 e. ( 0 ..^ ( # ` p ) ) ) -> ( p ` 1 ) e. V )
104 102 103 sylan2
 |-  ( ( p e. Word V /\ ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } ) -> ( p ` 1 ) e. V )
105 2ex
 |-  2 e. _V
106 105 tpid3
 |-  2 e. { 0 , 1 , 2 }
107 eleq2
 |-  ( ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } -> ( 2 e. ( 0 ..^ ( # ` p ) ) <-> 2 e. { 0 , 1 , 2 } ) )
108 106 107 mpbiri
 |-  ( ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } -> 2 e. ( 0 ..^ ( # ` p ) ) )
109 wrdsymbcl
 |-  ( ( p e. Word V /\ 2 e. ( 0 ..^ ( # ` p ) ) ) -> ( p ` 2 ) e. V )
110 108 109 sylan2
 |-  ( ( p e. Word V /\ ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } ) -> ( p ` 2 ) e. V )
111 99 104 110 3jca
 |-  ( ( p e. Word V /\ ( 0 ..^ ( # ` p ) ) = { 0 , 1 , 2 } ) -> ( ( p ` 0 ) e. V /\ ( p ` 1 ) e. V /\ ( p ` 2 ) e. V ) )
112 94 111 sylan2
 |-  ( ( p e. Word V /\ ( # ` p ) = 3 ) -> ( ( p ` 0 ) e. V /\ ( p ` 1 ) e. V /\ ( p ` 2 ) e. V ) )
113 112 3adant3
 |-  ( ( p e. Word V /\ ( # ` p ) = 3 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( ( p ` 0 ) e. V /\ ( p ` 1 ) e. V /\ ( p ` 2 ) e. V ) )
114 eleq1
 |-  ( A = ( p ` 0 ) -> ( A e. V <-> ( p ` 0 ) e. V ) )
115 114 3ad2ant1
 |-  ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( A e. V <-> ( p ` 0 ) e. V ) )
116 eleq1
 |-  ( B = ( p ` 1 ) -> ( B e. V <-> ( p ` 1 ) e. V ) )
117 116 3ad2ant2
 |-  ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( B e. V <-> ( p ` 1 ) e. V ) )
118 eleq1
 |-  ( C = ( p ` 2 ) -> ( C e. V <-> ( p ` 2 ) e. V ) )
119 118 3ad2ant3
 |-  ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( C e. V <-> ( p ` 2 ) e. V ) )
120 115 117 119 3anbi123d
 |-  ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( ( A e. V /\ B e. V /\ C e. V ) <-> ( ( p ` 0 ) e. V /\ ( p ` 1 ) e. V /\ ( p ` 2 ) e. V ) ) )
121 120 3ad2ant3
 |-  ( ( p e. Word V /\ ( # ` p ) = 3 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( ( A e. V /\ B e. V /\ C e. V ) <-> ( ( p ` 0 ) e. V /\ ( p ` 1 ) e. V /\ ( p ` 2 ) e. V ) ) )
122 113 121 mpbird
 |-  ( ( p e. Word V /\ ( # ` p ) = 3 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( A e. V /\ B e. V /\ C e. V ) )
123 91 122 jca
 |-  ( ( p e. Word V /\ ( # ` p ) = 3 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) )
124 123 3exp
 |-  ( p e. Word V -> ( ( # ` p ) = 3 -> ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) ) ) )
125 124 adantr
 |-  ( ( p e. Word V /\ ( # ` f ) = 2 ) -> ( ( # ` p ) = 3 -> ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) ) ) )
126 90 125 sylbid
 |-  ( ( p e. Word V /\ ( # ` f ) = 2 ) -> ( ( # ` p ) = ( ( # ` f ) + 1 ) -> ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) ) ) )
127 126 impancom
 |-  ( ( p e. Word V /\ ( # ` p ) = ( ( # ` f ) + 1 ) ) -> ( ( # ` f ) = 2 -> ( ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) ) ) )
128 127 impd
 |-  ( ( p e. Word V /\ ( # ` p ) = ( ( # ` f ) + 1 ) ) -> ( ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) ) )
129 88 75 128 syl2anc
 |-  ( f ( Walks ` G ) p -> ( ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) ) )
130 129 imp
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) )
131 eqwrds3
 |-  ( ( p e. Word V /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( p = <" A B C "> <-> ( ( # ` p ) = 3 /\ ( ( p ` 0 ) = A /\ ( p ` 1 ) = B /\ ( p ` 2 ) = C ) ) ) )
132 130 131 syl
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( p = <" A B C "> <-> ( ( # ` p ) = 3 /\ ( ( p ` 0 ) = A /\ ( p ` 1 ) = B /\ ( p ` 2 ) = C ) ) ) )
133 87 132 mpbird
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> p = <" A B C "> )
134 133 breq2d
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( f ( Walks ` G ) p <-> f ( Walks ` G ) <" A B C "> ) )
135 134 biimpd
 |-  ( ( f ( Walks ` G ) p /\ ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( f ( Walks ` G ) p -> f ( Walks ` G ) <" A B C "> ) )
136 135 ex
 |-  ( f ( Walks ` G ) p -> ( ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( f ( Walks ` G ) p -> f ( Walks ` G ) <" A B C "> ) ) )
137 136 pm2.43a
 |-  ( f ( Walks ` G ) p -> ( ( ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> f ( Walks ` G ) <" A B C "> ) )
138 137 3impib
 |-  ( ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> f ( Walks ` G ) <" A B C "> )
139 138 adantl
 |-  ( ( ( A e. V /\ B e. V /\ C e. V ) /\ ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> f ( Walks ` G ) <" A B C "> )
140 simpr2
 |-  ( ( ( A e. V /\ B e. V /\ C e. V ) /\ ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( # ` f ) = 2 )
141 139 140 jca
 |-  ( ( ( A e. V /\ B e. V /\ C e. V ) /\ ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) ) -> ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) )
142 141 ex
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
143 142 exlimdv
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( E. p ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
144 143 eximdv
 |-  ( ( A e. V /\ B e. V /\ C e. V ) -> ( E. f E. p ( f ( Walks ` G ) p /\ ( # ` f ) = 2 /\ ( A = ( p ` 0 ) /\ B = ( p ` 1 ) /\ C = ( p ` 2 ) ) ) -> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
145 74 144 syl5com
 |-  ( ( G e. UMGraph /\ { A , B } e. E /\ { B , C } e. E ) -> ( ( A e. V /\ B e. V /\ C e. V ) -> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
146 145 3expib
 |-  ( G e. UMGraph -> ( ( { A , B } e. E /\ { B , C } e. E ) -> ( ( A e. V /\ B e. V /\ C e. V ) -> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) ) )
147 146 com23
 |-  ( G e. UMGraph -> ( ( A e. V /\ B e. V /\ C e. V ) -> ( ( { A , B } e. E /\ { B , C } e. E ) -> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) ) )
148 147 imp
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( ( { A , B } e. E /\ { B , C } e. E ) -> E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) ) )
149 73 148 impbid
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( E. f ( f ( Walks ` G ) <" A B C "> /\ ( # ` f ) = 2 ) <-> ( { A , B } e. E /\ { B , C } e. E ) ) )
150 9 149 bitrd
 |-  ( ( G e. UMGraph /\ ( A e. V /\ B e. V /\ C e. V ) ) -> ( <" A B C "> e. ( A ( 2 WWalksNOn G ) C ) <-> ( { A , B } e. E /\ { B , C } e. E ) ) )