Metamath Proof Explorer


Theorem elwspths2spth

Description: A simple path of length 2 between two vertices as length 3 string in a pseudograph. (Contributed by Alexander van der Vekens, 28-Feb-2018) (Revised by AV, 18-May-2021) (Proof shortened by AV, 16-Mar-2022)

Ref Expression
Hypothesis elwwlks2.v V=VtxG
Assertion elwspths2spth GUPGraphW2WSPathsNGaVbVcVW=⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2

Proof

Step Hyp Ref Expression
1 elwwlks2.v V=VtxG
2 1 wspthsnwspthsnon W2WSPathsNGaVcVWa2WSPathsNOnGc
3 2 a1i GUPGraphW2WSPathsNGaVcVWa2WSPathsNOnGc
4 1 elwspths2on GUPGraphaVcVWa2WSPathsNOnGcbVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGc
5 4 3expb GUPGraphaVcVWa2WSPathsNOnGcbVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGc
6 5 2rexbidva GUPGraphaVcVWa2WSPathsNOnGcaVcVbVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGc
7 rexcom cVbVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGcbVcVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGc
8 wspthnon ⟨“abc”⟩a2WSPathsNOnGc⟨“abc”⟩a2WWalksNOnGcffaSPathsOnGc⟨“abc”⟩
9 ancom ⟨“abc”⟩a2WWalksNOnGcffaSPathsOnGc⟨“abc”⟩ffaSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGc
10 19.41v ffaSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGcffaSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGc
11 9 10 bitr4i ⟨“abc”⟩a2WWalksNOnGcffaSPathsOnGc⟨“abc”⟩ffaSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGc
12 simpr GUPGraphaVaV
13 simpr bVcVcV
14 12 13 anim12i GUPGraphaVbVcVaVcV
15 vex fV
16 s3cli ⟨“abc”⟩WordV
17 15 16 pm3.2i fV⟨“abc”⟩WordV
18 1 isspthonpth aVcVfV⟨“abc”⟩WordVfaSPathsOnGc⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c
19 14 17 18 sylancl GUPGraphaVbVcVfaSPathsOnGc⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c
20 wwlknon ⟨“abc”⟩a2WWalksNOnGc⟨“abc”⟩2WWalksNG⟨“abc”⟩0=a⟨“abc”⟩2=c
21 2nn0 20
22 iswwlksn 20⟨“abc”⟩2WWalksNG⟨“abc”⟩WWalksG⟨“abc”⟩=2+1
23 21 22 mp1i GUPGraphaVbVcV⟨“abc”⟩2WWalksNG⟨“abc”⟩WWalksG⟨“abc”⟩=2+1
24 23 3anbi1d GUPGraphaVbVcV⟨“abc”⟩2WWalksNG⟨“abc”⟩0=a⟨“abc”⟩2=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
25 20 24 bitrid GUPGraphaVbVcV⟨“abc”⟩a2WWalksNOnGc⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
26 19 25 anbi12d GUPGraphaVbVcVfaSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGcfSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
27 26 adantr GUPGraphaVbVcVW=⟨“abc”⟩faSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGcfSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
28 16 a1i GUPGraphaVbVcV⟨“abc”⟩WordV
29 simprl1 GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cfSPathsG⟨“abc”⟩
30 spthiswlk fSPathsG⟨“abc”⟩fWalksG⟨“abc”⟩
31 wlklenvm1 fWalksG⟨“abc”⟩f=⟨“abc”⟩1
32 simpl f=⟨“abc”⟩1⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=⟨“abc”⟩1
33 oveq1 ⟨“abc”⟩=2+1⟨“abc”⟩1=2+1-1
34 2cn 2
35 pncan1 22+1-1=2
36 34 35 ax-mp 2+1-1=2
37 33 36 eqtrdi ⟨“abc”⟩=2+1⟨“abc”⟩1=2
38 37 adantl ⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩1=2
39 38 3ad2ant1 ⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c⟨“abc”⟩1=2
40 39 adantl f=⟨“abc”⟩1⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c⟨“abc”⟩1=2
41 32 40 eqtrd f=⟨“abc”⟩1⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=2
42 41 ex f=⟨“abc”⟩1⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=2
43 30 31 42 3syl fSPathsG⟨“abc”⟩⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=2
44 43 3ad2ant1 fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=2
45 44 imp fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=2
46 45 adantl GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cf=2
47 s3fv0 aV⟨“abc”⟩0=a
48 47 elv ⟨“abc”⟩0=a
49 48 eqcomi a=⟨“abc”⟩0
50 s3fv1 bV⟨“abc”⟩1=b
51 50 elv ⟨“abc”⟩1=b
52 51 eqcomi b=⟨“abc”⟩1
53 s3fv2 cV⟨“abc”⟩2=c
54 53 elv ⟨“abc”⟩2=c
55 54 eqcomi c=⟨“abc”⟩2
56 49 52 55 3pm3.2i a=⟨“abc”⟩0b=⟨“abc”⟩1c=⟨“abc”⟩2
57 56 a1i GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=ca=⟨“abc”⟩0b=⟨“abc”⟩1c=⟨“abc”⟩2
58 29 46 57 3jca GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cfSPathsG⟨“abc”⟩f=2a=⟨“abc”⟩0b=⟨“abc”⟩1c=⟨“abc”⟩2
59 breq2 p=⟨“abc”⟩fSPathsGpfSPathsG⟨“abc”⟩
60 fveq1 p=⟨“abc”⟩p0=⟨“abc”⟩0
61 60 eqeq2d p=⟨“abc”⟩a=p0a=⟨“abc”⟩0
62 fveq1 p=⟨“abc”⟩p1=⟨“abc”⟩1
63 62 eqeq2d p=⟨“abc”⟩b=p1b=⟨“abc”⟩1
64 fveq1 p=⟨“abc”⟩p2=⟨“abc”⟩2
65 64 eqeq2d p=⟨“abc”⟩c=p2c=⟨“abc”⟩2
66 61 63 65 3anbi123d p=⟨“abc”⟩a=p0b=p1c=p2a=⟨“abc”⟩0b=⟨“abc”⟩1c=⟨“abc”⟩2
67 59 66 3anbi13d p=⟨“abc”⟩fSPathsGpf=2a=p0b=p1c=p2fSPathsG⟨“abc”⟩f=2a=⟨“abc”⟩0b=⟨“abc”⟩1c=⟨“abc”⟩2
68 67 ad2antlr GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cfSPathsGpf=2a=p0b=p1c=p2fSPathsG⟨“abc”⟩f=2a=⟨“abc”⟩0b=⟨“abc”⟩1c=⟨“abc”⟩2
69 58 68 mpbird GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cfSPathsGpf=2a=p0b=p1c=p2
70 69 ex GUPGraphaVbVcVp=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cfSPathsGpf=2a=p0b=p1c=p2
71 28 70 spcimedv GUPGraphaVbVcVfSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cpfSPathsGpf=2a=p0b=p1c=p2
72 spthiswlk fSPathsGpfWalksGp
73 wlklenvp1 fWalksGpp=f+1
74 oveq1 f=2f+1=2+1
75 2p1e3 2+1=3
76 74 75 eqtrdi f=2f+1=3
77 76 eqeq2d f=2p=f+1p=3
78 77 biimpcd p=f+1f=2p=3
79 72 73 78 3syl fSPathsGpf=2p=3
80 79 imp fSPathsGpf=2p=3
81 80 3adant3 fSPathsGpf=2a=p0b=p1c=p2p=3
82 81 adantl GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=3
83 eqcom a=p0p0=a
84 eqcom b=p1p1=b
85 eqcom c=p2p2=c
86 83 84 85 3anbi123i a=p0b=p1c=p2p0=ap1=bp2=c
87 86 biimpi a=p0b=p1c=p2p0=ap1=bp2=c
88 87 3ad2ant3 fSPathsGpf=2a=p0b=p1c=p2p0=ap1=bp2=c
89 88 adantl GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p0=ap1=bp2=c
90 82 89 jca GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=3p0=ap1=bp2=c
91 1 wlkpwrd fWalksGppWordV
92 72 91 syl fSPathsGppWordV
93 92 3ad2ant1 fSPathsGpf=2a=p0b=p1c=p2pWordV
94 12 anim1i GUPGraphaVbVcVaVbVcV
95 3anass aVbVcVaVbVcV
96 94 95 sylibr GUPGraphaVbVcVaVbVcV
97 eqwrds3 pWordVaVbVcVp=⟨“abc”⟩p=3p0=ap1=bp2=c
98 93 96 97 syl2anr GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩p=3p0=ap1=bp2=c
99 90 98 mpbird GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩
100 59 biimpcd fSPathsGpp=⟨“abc”⟩fSPathsG⟨“abc”⟩
101 100 3ad2ant1 fSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩fSPathsG⟨“abc”⟩
102 101 adantl GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩fSPathsG⟨“abc”⟩
103 102 imp GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩fSPathsG⟨“abc”⟩
104 48 a1i GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩0=a
105 fveq2 f=2⟨“abc”⟩f=⟨“abc”⟩2
106 105 54 eqtrdi f=2⟨“abc”⟩f=c
107 106 3ad2ant2 fSPathsGpf=2a=p0b=p1c=p2⟨“abc”⟩f=c
108 107 ad2antlr GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩f=c
109 103 104 108 3jca GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c
110 wlkiswwlks1 GUPGraphfWalksGppWWalksG
111 110 adantr GUPGraphaVfWalksGppWWalksG
112 111 adantr GUPGraphaVbVcVfWalksGppWWalksG
113 72 112 syl5com fSPathsGpGUPGraphaVbVcVpWWalksG
114 113 3ad2ant1 fSPathsGpf=2a=p0b=p1c=p2GUPGraphaVbVcVpWWalksG
115 114 impcom GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2pWWalksG
116 115 adantr GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩pWWalksG
117 eleq1 p=⟨“abc”⟩pWWalksG⟨“abc”⟩WWalksG
118 117 bicomd p=⟨“abc”⟩⟨“abc”⟩WWalksGpWWalksG
119 118 adantl GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩WWalksGpWWalksG
120 116 119 mpbird GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩WWalksG
121 s3len ⟨“abc”⟩=3
122 df-3 3=2+1
123 121 122 eqtri ⟨“abc”⟩=2+1
124 120 123 jctir GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩WWalksG⟨“abc”⟩=2+1
125 54 a1i GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩2=c
126 124 104 125 3jca GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
127 109 126 jca GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2p=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
128 99 127 mpdan GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
129 128 ex GUPGraphaVbVcVfSPathsGpf=2a=p0b=p1c=p2fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
130 129 exlimdv GUPGraphaVbVcVpfSPathsGpf=2a=p0b=p1c=p2fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=c
131 71 130 impbid GUPGraphaVbVcVfSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cpfSPathsGpf=2a=p0b=p1c=p2
132 131 adantr GUPGraphaVbVcVW=⟨“abc”⟩fSPathsG⟨“abc”⟩⟨“abc”⟩0=a⟨“abc”⟩f=c⟨“abc”⟩WWalksG⟨“abc”⟩=2+1⟨“abc”⟩0=a⟨“abc”⟩2=cpfSPathsGpf=2a=p0b=p1c=p2
133 27 132 bitrd GUPGraphaVbVcVW=⟨“abc”⟩faSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGcpfSPathsGpf=2a=p0b=p1c=p2
134 133 exbidv GUPGraphaVbVcVW=⟨“abc”⟩ffaSPathsOnGc⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGcfpfSPathsGpf=2a=p0b=p1c=p2
135 11 134 bitrid GUPGraphaVbVcVW=⟨“abc”⟩⟨“abc”⟩a2WWalksNOnGcffaSPathsOnGc⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2
136 8 135 bitrid GUPGraphaVbVcVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGcfpfSPathsGpf=2a=p0b=p1c=p2
137 136 pm5.32da GUPGraphaVbVcVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGcW=⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2
138 137 2rexbidva GUPGraphaVbVcVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGcbVcVW=⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2
139 7 138 bitrid GUPGraphaVcVbVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGcbVcVW=⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2
140 139 rexbidva GUPGraphaVcVbVW=⟨“abc”⟩⟨“abc”⟩a2WSPathsNOnGcaVbVcVW=⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2
141 3 6 140 3bitrd GUPGraphW2WSPathsNGaVbVcVW=⟨“abc”⟩fpfSPathsGpf=2a=p0b=p1c=p2