Metamath Proof Explorer


Theorem fusgr2wsp2nb

Description: The set of paths of length 2 with a given vertex in the middle for a finite simple graph is the union of all paths of length 2 from one neighbor to another neighbor of this vertex via this vertex. (Contributed by Alexander van der Vekens, 9-Mar-2018) (Revised by AV, 17-May-2021) (Proof shortened by AV, 16-Mar-2022)

Ref Expression
Hypotheses frgrhash2wsp.v V=VtxG
fusgreg2wsp.m M=aVw2WSPathsNG|w1=a
Assertion fusgr2wsp2nb GFinUSGraphNVMN=xGNeighbVtxNyGNeighbVtxNx⟨“xNy”⟩

Proof

Step Hyp Ref Expression
1 frgrhash2wsp.v V=VtxG
2 fusgreg2wsp.m M=aVw2WSPathsNG|w1=a
3 1 2 fusgreg2wsplem NVzMNz2WSPathsNGz1=N
4 3 adantl GFinUSGraphNVzMNz2WSPathsNGz1=N
5 1 wspthsnwspthsnon z2WSPathsNGxVyVzx2WSPathsNOnGy
6 fusgrusgr GFinUSGraphGUSGraph
7 6 adantr GFinUSGraphNVGUSGraph
8 eqid EdgG=EdgG
9 1 8 usgr2wspthon GUSGraphxVyVzx2WSPathsNOnGymVz=⟨“xmy”⟩xyxmEdgGmyEdgG
10 7 9 sylan GFinUSGraphNVxVyVzx2WSPathsNOnGymVz=⟨“xmy”⟩xyxmEdgGmyEdgG
11 10 2rexbidva GFinUSGraphNVxVyVzx2WSPathsNOnGyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgG
12 5 11 bitrid GFinUSGraphNVz2WSPathsNGxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgG
13 12 anbi1d GFinUSGraphNVz2WSPathsNGz1=NxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=N
14 19.41vv xyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=N
15 velsn z⟨“xNy”⟩z=⟨“xNy”⟩
16 15 bicomi z=⟨“xNy”⟩z⟨“xNy”⟩
17 16 anbi2i xNEdgGyNEdgG¬y=xz=⟨“xNy”⟩xNEdgGyNEdgG¬y=xz⟨“xNy”⟩
18 17 a1i GFinUSGraphNVxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩xNEdgGyNEdgG¬y=xz⟨“xNy”⟩
19 simplr GFinUSGraphNVxVyVz1=NNV
20 anass z=⟨“xmy”⟩xyxmEdgGmyEdgGz=⟨“xmy”⟩xyxmEdgGmyEdgG
21 ancom z=⟨“xmy”⟩xyxmEdgGmyEdgGxyxmEdgGmyEdgGz=⟨“xmy”⟩
22 an12 xyxmEdgGmyEdgGxmEdgGxymyEdgG
23 nesym xy¬y=x
24 prcom my=ym
25 24 eleq1i myEdgGymEdgG
26 23 25 anbi12ci xymyEdgGymEdgG¬y=x
27 26 anbi2i xmEdgGxymyEdgGxmEdgGymEdgG¬y=x
28 22 27 bitri xyxmEdgGmyEdgGxmEdgGymEdgG¬y=x
29 28 anbi1i xyxmEdgGmyEdgGz=⟨“xmy”⟩xmEdgGymEdgG¬y=xz=⟨“xmy”⟩
30 20 21 29 3bitri z=⟨“xmy”⟩xyxmEdgGmyEdgGxmEdgGymEdgG¬y=xz=⟨“xmy”⟩
31 preq2 m=Nxm=xN
32 31 eleq1d m=NxmEdgGxNEdgG
33 preq2 m=Nym=yN
34 33 eleq1d m=NymEdgGyNEdgG
35 34 anbi1d m=NymEdgG¬y=xyNEdgG¬y=x
36 32 35 anbi12d m=NxmEdgGymEdgG¬y=xxNEdgGyNEdgG¬y=x
37 s3eq2 m=N⟨“xmy”⟩=⟨“xNy”⟩
38 37 eqeq2d m=Nz=⟨“xmy”⟩z=⟨“xNy”⟩
39 36 38 anbi12d m=NxmEdgGymEdgG¬y=xz=⟨“xmy”⟩xNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
40 30 39 bitrid m=Nz=⟨“xmy”⟩xyxmEdgGmyEdgGxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
41 40 adantl GFinUSGraphNVxVyVz1=Nm=Nz=⟨“xmy”⟩xyxmEdgGmyEdgGxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
42 fveq1 z=⟨“xmy”⟩z1=⟨“xmy”⟩1
43 s3fv1 mV⟨“xmy”⟩1=m
44 43 elv ⟨“xmy”⟩1=m
45 42 44 eqtrdi z=⟨“xmy”⟩z1=m
46 45 eqeq1d z=⟨“xmy”⟩z1=Nm=N
47 46 biimpd z=⟨“xmy”⟩z1=Nm=N
48 47 adantr z=⟨“xmy”⟩xyz1=Nm=N
49 48 adantr z=⟨“xmy”⟩xyxmEdgGmyEdgGz1=Nm=N
50 49 com12 z1=Nz=⟨“xmy”⟩xyxmEdgGmyEdgGm=N
51 50 ad2antll GFinUSGraphNVxVyVz1=Nz=⟨“xmy”⟩xyxmEdgGmyEdgGm=N
52 51 imp GFinUSGraphNVxVyVz1=Nz=⟨“xmy”⟩xyxmEdgGmyEdgGm=N
53 19 41 52 rspcebdv GFinUSGraphNVxVyVz1=NmVz=⟨“xmy”⟩xyxmEdgGmyEdgGxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
54 53 pm5.32da GFinUSGraphNVxVyVz1=NmVz=⟨“xmy”⟩xyxmEdgGmyEdgGxVyVz1=NxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
55 an32 xVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxVyVz1=NmVz=⟨“xmy”⟩xyxmEdgGmyEdgG
56 55 a1i GFinUSGraphNVxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxVyVz1=NmVz=⟨“xmy”⟩xyxmEdgGmyEdgG
57 usgrumgr GUSGraphGUMGraph
58 1 8 umgrpredgv GUMGraphxNEdgGxVNV
59 58 simpld GUMGraphxNEdgGxV
60 59 ex GUMGraphxNEdgGxV
61 1 8 umgrpredgv GUMGraphyNEdgGyVNV
62 61 simpld GUMGraphyNEdgGyV
63 62 expcom yNEdgGGUMGraphyV
64 63 adantr yNEdgG¬y=xGUMGraphyV
65 64 com12 GUMGraphyNEdgG¬y=xyV
66 60 65 anim12d GUMGraphxNEdgGyNEdgG¬y=xxVyV
67 6 57 66 3syl GFinUSGraphxNEdgGyNEdgG¬y=xxVyV
68 67 adantr GFinUSGraphNVxNEdgGyNEdgG¬y=xxVyV
69 68 com12 xNEdgGyNEdgG¬y=xGFinUSGraphNVxVyV
70 69 adantr xNEdgGyNEdgG¬y=xz=⟨“xNy”⟩GFinUSGraphNVxVyV
71 70 impcom GFinUSGraphNVxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩xVyV
72 fveq1 z=⟨“xNy”⟩z1=⟨“xNy”⟩1
73 72 adantl xNEdgGyNEdgG¬y=xz=⟨“xNy”⟩z1=⟨“xNy”⟩1
74 s3fv1 NV⟨“xNy”⟩1=N
75 74 adantl GFinUSGraphNV⟨“xNy”⟩1=N
76 73 75 sylan9eqr GFinUSGraphNVxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩z1=N
77 71 76 jca GFinUSGraphNVxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩xVyVz1=N
78 77 ex GFinUSGraphNVxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩xVyVz1=N
79 78 pm4.71rd GFinUSGraphNVxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩xVyVz1=NxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
80 54 56 79 3bitr4d GFinUSGraphNVxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxNEdgGyNEdgG¬y=xz=⟨“xNy”⟩
81 8 nbusgreledg GUSGraphxGNeighbVtxNxNEdgG
82 6 81 syl GFinUSGraphxGNeighbVtxNxNEdgG
83 82 adantr GFinUSGraphNVxGNeighbVtxNxNEdgG
84 eldif yGNeighbVtxNxyGNeighbVtxN¬yx
85 8 nbusgreledg GUSGraphyGNeighbVtxNyNEdgG
86 6 85 syl GFinUSGraphyGNeighbVtxNyNEdgG
87 86 adantr GFinUSGraphNVyGNeighbVtxNyNEdgG
88 velsn yxy=x
89 88 a1i GFinUSGraphNVyxy=x
90 89 notbid GFinUSGraphNV¬yx¬y=x
91 87 90 anbi12d GFinUSGraphNVyGNeighbVtxN¬yxyNEdgG¬y=x
92 84 91 bitrid GFinUSGraphNVyGNeighbVtxNxyNEdgG¬y=x
93 83 92 anbi12d GFinUSGraphNVxGNeighbVtxNyGNeighbVtxNxxNEdgGyNEdgG¬y=x
94 93 anbi1d GFinUSGraphNVxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩xNEdgGyNEdgG¬y=xz⟨“xNy”⟩
95 18 80 94 3bitr4d GFinUSGraphNVxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
96 95 2exbidv GFinUSGraphNVxyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxyxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
97 14 96 bitr3id GFinUSGraphNVxyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxyxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
98 r2ex xVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGxyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgG
99 98 anbi1i xVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxyxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=N
100 r2ex xGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩xyxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
101 97 99 100 3bitr4g GFinUSGraphNVxVyVmVz=⟨“xmy”⟩xyxmEdgGmyEdgGz1=NxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
102 vex zV
103 eleq1w p=zp⟨“xNy”⟩z⟨“xNy”⟩
104 103 2rexbidv p=zxGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩xGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
105 102 104 elab zp|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩xGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩
106 105 bicomi xGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩zp|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩
107 106 a1i GFinUSGraphNVxGNeighbVtxNyGNeighbVtxNxz⟨“xNy”⟩zp|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩
108 13 101 107 3bitrd GFinUSGraphNVz2WSPathsNGz1=Nzp|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩
109 4 108 bitrd GFinUSGraphNVzMNzp|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩
110 109 eqrdv GFinUSGraphNVMN=p|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩
111 dfiunv2 xGNeighbVtxNyGNeighbVtxNx⟨“xNy”⟩=p|xGNeighbVtxNyGNeighbVtxNxp⟨“xNy”⟩
112 110 111 eqtr4di GFinUSGraphNVMN=xGNeighbVtxNyGNeighbVtxNx⟨“xNy”⟩