Metamath Proof Explorer


Theorem revwlk

Description: The reverse of a walk is a walk. (Contributed by BTernaryTau, 30-Nov-2023)

Ref Expression
Assertion revwlk FWalksGPreverseFWalksGreverseP

Proof

Step Hyp Ref Expression
1 eqid iEdgG=iEdgG
2 1 wlkf FWalksGPFWorddomiEdgG
3 revcl FWorddomiEdgGreverseFWorddomiEdgG
4 2 3 syl FWalksGPreverseFWorddomiEdgG
5 eqid VtxG=VtxG
6 5 wlkpwrd FWalksGPPWordVtxG
7 revcl PWordVtxGreversePWordVtxG
8 wrdf reversePWordVtxGreverseP:0..^reversePVtxG
9 6 7 8 3syl FWalksGPreverseP:0..^reversePVtxG
10 revlen FWorddomiEdgGreverseF=F
11 2 10 syl FWalksGPreverseF=F
12 11 oveq2d FWalksGP0reverseF=0F
13 wlklenvp1 FWalksGPP=F+1
14 13 oveq2d FWalksGP0..^P=0..^F+1
15 revlen PWordVtxGreverseP=P
16 6 15 syl FWalksGPreverseP=P
17 16 oveq2d FWalksGP0..^reverseP=0..^P
18 wlkcl FWalksGPF0
19 18 nn0zd FWalksGPF
20 fzval3 F0F=0..^F+1
21 19 20 syl FWalksGP0F=0..^F+1
22 14 17 21 3eqtr4rd FWalksGP0F=0..^reverseP
23 12 22 eqtrd FWalksGP0reverseF=0..^reverseP
24 23 feq2d FWalksGPreverseP:0reverseFVtxGreverseP:0..^reversePVtxG
25 9 24 mpbird FWalksGPreverseP:0reverseFVtxG
26 11 oveq2d FWalksGP0..^reverseF=0..^F
27 26 eleq2d FWalksGPk0..^reverseFk0..^F
28 27 biimpa FWalksGPk0..^reverseFk0..^F
29 revfv FWorddomiEdgGk0..^FreverseFk=FF-1-k
30 2 29 sylan FWalksGPk0..^FreverseFk=FF-1-k
31 wlklenvm1 FWalksGPF=P1
32 31 oveq1d FWalksGPF1=P-1-1
33 lencl PWordVtxGP0
34 33 nn0cnd PWordVtxGP
35 sub1m1 PP-1-1=P2
36 6 34 35 3syl FWalksGPP-1-1=P2
37 32 36 eqtrd FWalksGPF1=P2
38 37 fvoveq1d FWalksGPFF-1-k=FP-2-k
39 38 adantr FWalksGPk0..^FFF-1-k=FP-2-k
40 30 39 eqtrd FWalksGPk0..^FreverseFk=FP-2-k
41 40 fveq2d FWalksGPk0..^FiEdgGreverseFk=iEdgGFP-2-k
42 41 adantr FWalksGPk0..^FreversePk=reversePk+1iEdgGreverseFk=iEdgGFP-2-k
43 fzonn0p1p1 k0..^Fk+10..^F+1
44 43 adantl FWalksGPk0..^Fk+10..^F+1
45 14 adantr FWalksGPk0..^F0..^P=0..^F+1
46 44 45 eleqtrrd FWalksGPk0..^Fk+10..^P
47 revfv PWordVtxGk+10..^PreversePk+1=PP-1-k+1
48 6 46 47 syl2an2r FWalksGPk0..^FreversePk+1=PP-1-k+1
49 elfzoelz k0..^Fk
50 49 zcnd k0..^Fk
51 50 adantl FWalksGPk0..^Fk
52 1cnd FWalksGPk0..^F1
53 51 52 addcomd FWalksGPk0..^Fk+1=1+k
54 53 oveq2d FWalksGPk0..^FP-1-k+1=P-1-1+k
55 6 34 syl FWalksGPP
56 55 adantr FWalksGPk0..^FP
57 56 52 subcld FWalksGPk0..^FP1
58 57 52 51 subsub4d FWalksGPk0..^FP1-1-k=P-1-1+k
59 36 oveq1d FWalksGPP1-1-k=P-2-k
60 59 adantr FWalksGPk0..^FP1-1-k=P-2-k
61 54 58 60 3eqtr2d FWalksGPk0..^FP-1-k+1=P-2-k
62 61 fveq2d FWalksGPk0..^FPP-1-k+1=PP-2-k
63 48 62 eqtrd FWalksGPk0..^FreversePk+1=PP-2-k
64 63 sneqd FWalksGPk0..^FreversePk+1=PP-2-k
65 64 adantr FWalksGPk0..^FreversePk=reversePk+1reversePk+1=PP-2-k
66 sneq reversePk=reversePk+1reversePk=reversePk+1
67 66 adantl FWalksGPk0..^FreversePk=reversePk+1reversePk=reversePk+1
68 eqcom reversePk=reversePk+1reversePk+1=reversePk
69 fzossfzop1 F00..^F0..^F+1
70 18 69 syl FWalksGP0..^F0..^F+1
71 70 14 sseqtrrd FWalksGP0..^F0..^P
72 71 sselda FWalksGPk0..^Fk0..^P
73 revfv PWordVtxGk0..^PreversePk=PP-1-k
74 6 72 73 syl2an2r FWalksGPk0..^FreversePk=PP-1-k
75 57 51 52 sub32d FWalksGPk0..^FP1-k-1=P1-1-k
76 75 oveq1d FWalksGPk0..^FP-1-k-1+1=P-1-1-k+1
77 57 51 subcld FWalksGPk0..^FP-1-k
78 77 52 npcand FWalksGPk0..^FP-1-k-1+1=P-1-k
79 59 oveq1d FWalksGPP-1-1-k+1=P2-k+1
80 79 adantr FWalksGPk0..^FP-1-1-k+1=P2-k+1
81 76 78 80 3eqtr3d FWalksGPk0..^FP-1-k=P2-k+1
82 81 fveq2d FWalksGPk0..^FPP-1-k=PP2-k+1
83 74 82 eqtrd FWalksGPk0..^FreversePk=PP2-k+1
84 63 83 eqeq12d FWalksGPk0..^FreversePk+1=reversePkPP-2-k=PP2-k+1
85 68 84 syl5bb FWalksGPk0..^FreversePk=reversePk+1PP-2-k=PP2-k+1
86 wkslem1 x=P-2-kif-Px=Px+1iEdgGFx=PxPxPx+1iEdgGFxif-PP-2-k=PP2-k+1iEdgGFP-2-k=PP-2-kPP-2-kPP2-k+1iEdgGFP-2-k
87 5 1 wlkprop FWalksGPFWorddomiEdgGP:0FVtxGx0..^Fif-Px=Px+1iEdgGFx=PxPxPx+1iEdgGFx
88 87 simp3d FWalksGPx0..^Fif-Px=Px+1iEdgGFx=PxPxPx+1iEdgGFx
89 88 adantr FWalksGPk0..^Fx0..^Fif-Px=Px+1iEdgGFx=PxPxPx+1iEdgGFx
90 18 nn0cnd FWalksGPF
91 90 adantr FWalksGPk0..^FF
92 91 51 52 sub32d FWalksGPk0..^FF-k-1=F-1-k
93 37 adantr FWalksGPk0..^FF1=P2
94 93 oveq1d FWalksGPk0..^FF-1-k=P-2-k
95 92 94 eqtrd FWalksGPk0..^FF-k-1=P-2-k
96 ubmelm1fzo k0..^FF-k-10..^F
97 96 adantl FWalksGPk0..^FF-k-10..^F
98 95 97 eqeltrrd FWalksGPk0..^FP-2-k0..^F
99 86 89 98 rspcdva FWalksGPk0..^Fif-PP-2-k=PP2-k+1iEdgGFP-2-k=PP-2-kPP-2-kPP2-k+1iEdgGFP-2-k
100 dfifp2 if-PP-2-k=PP2-k+1iEdgGFP-2-k=PP-2-kPP-2-kPP2-k+1iEdgGFP-2-kPP-2-k=PP2-k+1iEdgGFP-2-k=PP-2-k¬PP-2-k=PP2-k+1PP-2-kPP2-k+1iEdgGFP-2-k
101 99 100 sylib FWalksGPk0..^FPP-2-k=PP2-k+1iEdgGFP-2-k=PP-2-k¬PP-2-k=PP2-k+1PP-2-kPP2-k+1iEdgGFP-2-k
102 101 simpld FWalksGPk0..^FPP-2-k=PP2-k+1iEdgGFP-2-k=PP-2-k
103 85 102 sylbid FWalksGPk0..^FreversePk=reversePk+1iEdgGFP-2-k=PP-2-k
104 103 imp FWalksGPk0..^FreversePk=reversePk+1iEdgGFP-2-k=PP-2-k
105 65 67 104 3eqtr4rd FWalksGPk0..^FreversePk=reversePk+1iEdgGFP-2-k=reversePk
106 42 105 eqtrd FWalksGPk0..^FreversePk=reversePk+1iEdgGreverseFk=reversePk
107 85 notbid FWalksGPk0..^F¬reversePk=reversePk+1¬PP-2-k=PP2-k+1
108 101 simprd FWalksGPk0..^F¬PP-2-k=PP2-k+1PP-2-kPP2-k+1iEdgGFP-2-k
109 107 108 sylbid FWalksGPk0..^F¬reversePk=reversePk+1PP-2-kPP2-k+1iEdgGFP-2-k
110 109 imp FWalksGPk0..^F¬reversePk=reversePk+1PP-2-kPP2-k+1iEdgGFP-2-k
111 prcom reversePk+1reversePk=reversePkreversePk+1
112 63 83 preq12d FWalksGPk0..^FreversePk+1reversePk=PP-2-kPP2-k+1
113 111 112 eqtr3id FWalksGPk0..^FreversePkreversePk+1=PP-2-kPP2-k+1
114 113 adantr FWalksGPk0..^F¬reversePk=reversePk+1reversePkreversePk+1=PP-2-kPP2-k+1
115 41 adantr FWalksGPk0..^F¬reversePk=reversePk+1iEdgGreverseFk=iEdgGFP-2-k
116 110 114 115 3sstr4d FWalksGPk0..^F¬reversePk=reversePk+1reversePkreversePk+1iEdgGreverseFk
117 106 116 ifpimpda FWalksGPk0..^Fif-reversePk=reversePk+1iEdgGreverseFk=reversePkreversePkreversePk+1iEdgGreverseFk
118 28 117 syldan FWalksGPk0..^reverseFif-reversePk=reversePk+1iEdgGreverseFk=reversePkreversePkreversePk+1iEdgGreverseFk
119 118 ralrimiva FWalksGPk0..^reverseFif-reversePk=reversePk+1iEdgGreverseFk=reversePkreversePkreversePk+1iEdgGreverseFk
120 wlkv FWalksGPGVFVPV
121 120 simp1d FWalksGPGV
122 5 1 iswlkg GVreverseFWalksGreversePreverseFWorddomiEdgGreverseP:0reverseFVtxGk0..^reverseFif-reversePk=reversePk+1iEdgGreverseFk=reversePkreversePkreversePk+1iEdgGreverseFk
123 121 122 syl FWalksGPreverseFWalksGreversePreverseFWorddomiEdgGreverseP:0reverseFVtxGk0..^reverseFif-reversePk=reversePk+1iEdgGreverseFk=reversePkreversePkreversePk+1iEdgGreverseFk
124 4 25 119 123 mpbir3and FWalksGPreverseFWalksGreverseP