Metamath Proof Explorer


Theorem numclwwlk2lem1lem

Description: Lemma for numclwwlk2lem1 . (Contributed by Alexander van der Vekens, 3-Oct-2018) (Revised by AV, 27-May-2021) (Revised by AV, 15-Mar-2022)

Ref Expression
Assertion numclwwlk2lem1lem ( ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ 𝑊 ∈ ( 𝑁 WWalksN 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) → ( ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) ∧ ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) )

Proof

Step Hyp Ref Expression
1 wwlknbp1 ( 𝑊 ∈ ( 𝑁 WWalksN 𝐺 ) → ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) )
2 simpl2 ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) )
3 s1cl ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) → ⟨“ 𝑋 ”⟩ ∈ Word ( Vtx ‘ 𝐺 ) )
4 3 ad2antrl ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → ⟨“ 𝑋 ”⟩ ∈ Word ( Vtx ‘ 𝐺 ) )
5 nn0p1gt0 ( 𝑁 ∈ ℕ0 → 0 < ( 𝑁 + 1 ) )
6 5 3ad2ant1 ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → 0 < ( 𝑁 + 1 ) )
7 6 adantr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → 0 < ( 𝑁 + 1 ) )
8 breq2 ( ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) → ( 0 < ( ♯ ‘ 𝑊 ) ↔ 0 < ( 𝑁 + 1 ) ) )
9 8 3ad2ant3 ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → ( 0 < ( ♯ ‘ 𝑊 ) ↔ 0 < ( 𝑁 + 1 ) ) )
10 9 adantr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → ( 0 < ( ♯ ‘ 𝑊 ) ↔ 0 < ( 𝑁 + 1 ) ) )
11 7 10 mpbird ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → 0 < ( ♯ ‘ 𝑊 ) )
12 ccatfv0 ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ⟨“ 𝑋 ”⟩ ∈ Word ( Vtx ‘ 𝐺 ) ∧ 0 < ( ♯ ‘ 𝑊 ) ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) )
13 2 4 11 12 syl3anc ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) )
14 oveq1 ( ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) → ( ( ♯ ‘ 𝑊 ) − 1 ) = ( ( 𝑁 + 1 ) − 1 ) )
15 14 3ad2ant3 ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → ( ( ♯ ‘ 𝑊 ) − 1 ) = ( ( 𝑁 + 1 ) − 1 ) )
16 nn0cn ( 𝑁 ∈ ℕ0𝑁 ∈ ℂ )
17 pncan1 ( 𝑁 ∈ ℂ → ( ( 𝑁 + 1 ) − 1 ) = 𝑁 )
18 16 17 syl ( 𝑁 ∈ ℕ0 → ( ( 𝑁 + 1 ) − 1 ) = 𝑁 )
19 18 3ad2ant1 ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → ( ( 𝑁 + 1 ) − 1 ) = 𝑁 )
20 15 19 eqtr2d ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → 𝑁 = ( ( ♯ ‘ 𝑊 ) − 1 ) )
21 20 adantr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → 𝑁 = ( ( ♯ ‘ 𝑊 ) − 1 ) )
22 21 fveq2d ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) = ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ ( ( ♯ ‘ 𝑊 ) − 1 ) ) )
23 simpl2 ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) )
24 3 adantl ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ⟨“ 𝑋 ”⟩ ∈ Word ( Vtx ‘ 𝐺 ) )
25 6 adantr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → 0 < ( 𝑁 + 1 ) )
26 9 adantr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( 0 < ( ♯ ‘ 𝑊 ) ↔ 0 < ( 𝑁 + 1 ) ) )
27 25 26 mpbird ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → 0 < ( ♯ ‘ 𝑊 ) )
28 hashneq0 ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) → ( 0 < ( ♯ ‘ 𝑊 ) ↔ 𝑊 ≠ ∅ ) )
29 28 bicomd ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) → ( 𝑊 ≠ ∅ ↔ 0 < ( ♯ ‘ 𝑊 ) ) )
30 29 3ad2ant2 ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → ( 𝑊 ≠ ∅ ↔ 0 < ( ♯ ‘ 𝑊 ) ) )
31 30 adantr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( 𝑊 ≠ ∅ ↔ 0 < ( ♯ ‘ 𝑊 ) ) )
32 27 31 mpbird ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → 𝑊 ≠ ∅ )
33 ccatval1lsw ( ( 𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ⟨“ 𝑋 ”⟩ ∈ Word ( Vtx ‘ 𝐺 ) ∧ 𝑊 ≠ ∅ ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ ( ( ♯ ‘ 𝑊 ) − 1 ) ) = ( lastS ‘ 𝑊 ) )
34 23 24 32 33 syl3anc ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ ( ( ♯ ‘ 𝑊 ) − 1 ) ) = ( lastS ‘ 𝑊 ) )
35 22 34 eqtr2d ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( lastS ‘ 𝑊 ) = ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) )
36 35 neeq1d ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ↔ ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) )
37 36 biimpd ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ 𝑋 ∈ ( Vtx ‘ 𝐺 ) ) → ( ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) )
38 37 impr ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) )
39 13 38 jca ( ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) ∧ ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) ) → ( ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) ∧ ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) )
40 39 exp32 ( ( 𝑁 ∈ ℕ0𝑊 ∈ Word ( Vtx ‘ 𝐺 ) ∧ ( ♯ ‘ 𝑊 ) = ( 𝑁 + 1 ) ) → ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) → ( ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) → ( ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) ∧ ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) ) ) )
41 1 40 syl ( 𝑊 ∈ ( 𝑁 WWalksN 𝐺 ) → ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) → ( ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) → ( ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) ∧ ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) ) ) )
42 41 3imp21 ( ( 𝑋 ∈ ( Vtx ‘ 𝐺 ) ∧ 𝑊 ∈ ( 𝑁 WWalksN 𝐺 ) ∧ ( lastS ‘ 𝑊 ) ≠ ( 𝑊 ‘ 0 ) ) → ( ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 0 ) = ( 𝑊 ‘ 0 ) ∧ ( ( 𝑊 ++ ⟨“ 𝑋 ”⟩ ) ‘ 𝑁 ) ≠ ( 𝑊 ‘ 0 ) ) )