Metamath Proof Explorer


Theorem clwwlkfo

Description: Lemma 4 for clwwlkf1o : F is an onto function. (Contributed by Alexander van der Vekens, 29-Sep-2018) (Revised by AV, 26-Apr-2021) (Revised by AV, 1-Nov-2022)

Ref Expression
Hypotheses clwwlkf1o.d D=wNWWalksNG|lastSw=w0
clwwlkf1o.f F=tDtprefixN
Assertion clwwlkfo NF:DontoNClWWalksNG

Proof

Step Hyp Ref Expression
1 clwwlkf1o.d D=wNWWalksNG|lastSw=w0
2 clwwlkf1o.f F=tDtprefixN
3 1 2 clwwlkf NF:DNClWWalksNG
4 eqid VtxG=VtxG
5 eqid EdgG=EdgG
6 4 5 clwwlknp pNClWWalksNGpWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgG
7 simpr pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNN
8 simpl1 pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNpWordVtxGp=N
9 3simpc pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGi0..^N1pipi+1EdgGlastSpp0EdgG
10 9 adantr pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNi0..^N1pipi+1EdgGlastSpp0EdgG
11 1 clwwlkel NpWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGp++⟨“p0”⟩D
12 7 8 10 11 syl3anc pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNp++⟨“p0”⟩D
13 oveq2 N=pp++⟨“p0”⟩prefixN=p++⟨“p0”⟩prefixp
14 13 eqcoms p=Np++⟨“p0”⟩prefixN=p++⟨“p0”⟩prefixp
15 14 adantl pWordVtxGp=Np++⟨“p0”⟩prefixN=p++⟨“p0”⟩prefixp
16 15 3ad2ant1 pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGp++⟨“p0”⟩prefixN=p++⟨“p0”⟩prefixp
17 16 adantr pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNp++⟨“p0”⟩prefixN=p++⟨“p0”⟩prefixp
18 simpll pWordVtxGp=NNpWordVtxG
19 fstwrdne0 NpWordVtxGp=Np0VtxG
20 19 ancoms pWordVtxGp=NNp0VtxG
21 20 s1cld pWordVtxGp=NN⟨“p0”⟩WordVtxG
22 18 21 jca pWordVtxGp=NNpWordVtxG⟨“p0”⟩WordVtxG
23 22 3ad2antl1 pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNpWordVtxG⟨“p0”⟩WordVtxG
24 pfxccat1 pWordVtxG⟨“p0”⟩WordVtxGp++⟨“p0”⟩prefixp=p
25 23 24 syl pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNp++⟨“p0”⟩prefixp=p
26 17 25 eqtr2d pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNp=p++⟨“p0”⟩prefixN
27 12 26 jca pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNp++⟨“p0”⟩Dp=p++⟨“p0”⟩prefixN
28 27 ex pWordVtxGp=Ni0..^N1pipi+1EdgGlastSpp0EdgGNp++⟨“p0”⟩Dp=p++⟨“p0”⟩prefixN
29 6 28 syl pNClWWalksNGNp++⟨“p0”⟩Dp=p++⟨“p0”⟩prefixN
30 29 impcom NpNClWWalksNGp++⟨“p0”⟩Dp=p++⟨“p0”⟩prefixN
31 oveq1 x=p++⟨“p0”⟩xprefixN=p++⟨“p0”⟩prefixN
32 31 rspceeqv p++⟨“p0”⟩Dp=p++⟨“p0”⟩prefixNxDp=xprefixN
33 30 32 syl NpNClWWalksNGxDp=xprefixN
34 1 2 clwwlkfv xDFx=xprefixN
35 34 eqeq2d xDp=Fxp=xprefixN
36 35 adantl NpNClWWalksNGxDp=Fxp=xprefixN
37 36 rexbidva NpNClWWalksNGxDp=FxxDp=xprefixN
38 33 37 mpbird NpNClWWalksNGxDp=Fx
39 38 ralrimiva NpNClWWalksNGxDp=Fx
40 dffo3 F:DontoNClWWalksNGF:DNClWWalksNGpNClWWalksNGxDp=Fx
41 3 39 40 sylanbrc NF:DontoNClWWalksNG