Metamath Proof Explorer


Theorem clwlkclwwlkfolem

Description: Lemma for clwlkclwwlkfo . (Contributed by AV, 25-May-2022)

Ref Expression
Hypothesis clwlkclwwlkf.c 𝐶 = { 𝑤 ∈ ( ClWalks ‘ 𝐺 ) ∣ 1 ≤ ( ♯ ‘ ( 1st𝑤 ) ) }
Assertion clwlkclwwlkfolem ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ∧ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ) → ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ 𝐶 )

Proof

Step Hyp Ref Expression
1 clwlkclwwlkf.c 𝐶 = { 𝑤 ∈ ( ClWalks ‘ 𝐺 ) ∣ 1 ≤ ( ♯ ‘ ( 1st𝑤 ) ) }
2 simp3 ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ∧ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ) → ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) )
3 wrdlenccats1lenm1 ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) → ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) = ( ♯ ‘ 𝑊 ) )
4 3 eqcomd ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) → ( ♯ ‘ 𝑊 ) = ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
5 4 breq2d ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) → ( 1 ≤ ( ♯ ‘ 𝑊 ) ↔ 1 ≤ ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) ) )
6 5 biimpa ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ) → 1 ≤ ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
7 6 3adant3 ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ∧ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ) → 1 ≤ ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
8 df-br ( 𝑓 ( ClWalks ‘ 𝐺 ) ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ↔ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) )
9 clwlkiswlk ( 𝑓 ( ClWalks ‘ 𝐺 ) ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) → 𝑓 ( Walks ‘ 𝐺 ) ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) )
10 wlklenvm1 ( 𝑓 ( Walks ‘ 𝐺 ) ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) → ( ♯ ‘ 𝑓 ) = ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
11 9 10 syl ( 𝑓 ( ClWalks ‘ 𝐺 ) ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) → ( ♯ ‘ 𝑓 ) = ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
12 8 11 sylbir ( ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) → ( ♯ ‘ 𝑓 ) = ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
13 12 3ad2ant3 ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ∧ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ) → ( ♯ ‘ 𝑓 ) = ( ( ♯ ‘ ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ) − 1 ) )
14 7 13 breqtrrd ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ∧ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ) → 1 ≤ ( ♯ ‘ 𝑓 ) )
15 vex 𝑓 ∈ V
16 ovex ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ∈ V
17 15 16 op1std ( 𝑐 = ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ → ( 1st𝑐 ) = 𝑓 )
18 17 fveq2d ( 𝑐 = ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ → ( ♯ ‘ ( 1st𝑐 ) ) = ( ♯ ‘ 𝑓 ) )
19 18 breq2d ( 𝑐 = ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ → ( 1 ≤ ( ♯ ‘ ( 1st𝑐 ) ) ↔ 1 ≤ ( ♯ ‘ 𝑓 ) ) )
20 2fveq3 ( 𝑤 = 𝑐 → ( ♯ ‘ ( 1st𝑤 ) ) = ( ♯ ‘ ( 1st𝑐 ) ) )
21 20 breq2d ( 𝑤 = 𝑐 → ( 1 ≤ ( ♯ ‘ ( 1st𝑤 ) ) ↔ 1 ≤ ( ♯ ‘ ( 1st𝑐 ) ) ) )
22 21 cbvrabv { 𝑤 ∈ ( ClWalks ‘ 𝐺 ) ∣ 1 ≤ ( ♯ ‘ ( 1st𝑤 ) ) } = { 𝑐 ∈ ( ClWalks ‘ 𝐺 ) ∣ 1 ≤ ( ♯ ‘ ( 1st𝑐 ) ) }
23 1 22 eqtri 𝐶 = { 𝑐 ∈ ( ClWalks ‘ 𝐺 ) ∣ 1 ≤ ( ♯ ‘ ( 1st𝑐 ) ) }
24 19 23 elrab2 ( ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ 𝐶 ↔ ( ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑓 ) ) )
25 2 14 24 sylanbrc ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ 1 ≤ ( ♯ ‘ 𝑊 ) ∧ ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ ( ClWalks ‘ 𝐺 ) ) → ⟨ 𝑓 , ( 𝑊 ++ ⟨“ ( 𝑊 ‘ 0 ) ”⟩ ) ⟩ ∈ 𝐶 )