Metamath Proof Explorer


Theorem chnerlem2

Description: Lemma for chner where the I-th element comes before the J-th. (Contributed by Ender Ting, 29-Jan-2026)

Ref Expression
Hypotheses chner.1 ( 𝜑 Er 𝐴 )
chner.2 ( 𝜑𝐶 ∈ ( Chain 𝐴 ) )
chner.3 ( 𝜑𝐽 ∈ ( 0 ..^ ( ♯ ‘ 𝐶 ) ) )
Assertion chnerlem2 ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐶𝐼 ) ( 𝐶𝐽 ) )

Proof

Step Hyp Ref Expression
1 chner.1 ( 𝜑 Er 𝐴 )
2 chner.2 ( 𝜑𝐶 ∈ ( Chain 𝐴 ) )
3 chner.3 ( 𝜑𝐽 ∈ ( 0 ..^ ( ♯ ‘ 𝐶 ) ) )
4 1 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → Er 𝐴 )
5 2 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐶 ∈ ( Chain 𝐴 ) )
6 3 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐽 ∈ ( 0 ..^ ( ♯ ‘ 𝐶 ) ) )
7 fzofzp1 ( 𝐽 ∈ ( 0 ..^ ( ♯ ‘ 𝐶 ) ) → ( 𝐽 + 1 ) ∈ ( 0 ... ( ♯ ‘ 𝐶 ) ) )
8 6 7 syl ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐽 + 1 ) ∈ ( 0 ... ( ♯ ‘ 𝐶 ) ) )
9 5 8 pfxchn ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐶 prefix ( 𝐽 + 1 ) ) ∈ ( Chain 𝐴 ) )
10 animorrl ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐼 ∈ ( 0 ..^ 𝐽 ) ∨ 𝐼 = 𝐽 ) )
11 elfzonn0 ( 𝐽 ∈ ( 0 ..^ ( ♯ ‘ 𝐶 ) ) → 𝐽 ∈ ℕ0 )
12 elnn0uz ( 𝐽 ∈ ℕ0𝐽 ∈ ( ℤ ‘ 0 ) )
13 12 biimpi ( 𝐽 ∈ ℕ0𝐽 ∈ ( ℤ ‘ 0 ) )
14 3 11 13 3syl ( 𝜑𝐽 ∈ ( ℤ ‘ 0 ) )
15 14 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐽 ∈ ( ℤ ‘ 0 ) )
16 fzosplitsni ( 𝐽 ∈ ( ℤ ‘ 0 ) → ( 𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ↔ ( 𝐼 ∈ ( 0 ..^ 𝐽 ) ∨ 𝐼 = 𝐽 ) ) )
17 15 16 syl ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ↔ ( 𝐼 ∈ ( 0 ..^ 𝐽 ) ∨ 𝐼 = 𝐽 ) ) )
18 10 17 mpbird ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) )
19 simpr ( ( 𝜑𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → 𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) )
20 2 chnwrd ( 𝜑𝐶 ∈ Word 𝐴 )
21 20 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → 𝐶 ∈ Word 𝐴 )
22 3 7 syl ( 𝜑 → ( 𝐽 + 1 ) ∈ ( 0 ... ( ♯ ‘ 𝐶 ) ) )
23 22 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → ( 𝐽 + 1 ) ∈ ( 0 ... ( ♯ ‘ 𝐶 ) ) )
24 pfxlen ( ( 𝐶 ∈ Word 𝐴 ∧ ( 𝐽 + 1 ) ∈ ( 0 ... ( ♯ ‘ 𝐶 ) ) ) → ( ♯ ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) = ( 𝐽 + 1 ) )
25 21 23 24 syl2anc ( ( 𝜑𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → ( ♯ ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) = ( 𝐽 + 1 ) )
26 25 oveq2d ( ( 𝜑𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → ( 0 ..^ ( ♯ ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) ) = ( 0 ..^ ( 𝐽 + 1 ) ) )
27 19 26 eleqtrrd ( ( 𝜑𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → 𝐼 ∈ ( 0 ..^ ( ♯ ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) ) )
28 18 27 syldan ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐼 ∈ ( 0 ..^ ( ♯ ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) ) )
29 4 9 28 chnerlem1 ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( ( 𝐶 prefix ( 𝐽 + 1 ) ) ‘ 𝐼 ) ( lastS ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) )
30 20 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐶 ∈ Word 𝐴 )
31 pfxfv ( ( 𝐶 ∈ Word 𝐴 ∧ ( 𝐽 + 1 ) ∈ ( 0 ... ( ♯ ‘ 𝐶 ) ) ∧ 𝐼 ∈ ( 0 ..^ ( 𝐽 + 1 ) ) ) → ( ( 𝐶 prefix ( 𝐽 + 1 ) ) ‘ 𝐼 ) = ( 𝐶𝐼 ) )
32 30 8 18 31 syl3anc ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( ( 𝐶 prefix ( 𝐽 + 1 ) ) ‘ 𝐼 ) = ( 𝐶𝐼 ) )
33 lencl ( 𝐶 ∈ Word 𝐴 → ( ♯ ‘ 𝐶 ) ∈ ℕ0 )
34 20 33 syl ( 𝜑 → ( ♯ ‘ 𝐶 ) ∈ ℕ0 )
35 fz0add1fz1 ( ( ( ♯ ‘ 𝐶 ) ∈ ℕ0𝐽 ∈ ( 0 ..^ ( ♯ ‘ 𝐶 ) ) ) → ( 𝐽 + 1 ) ∈ ( 1 ... ( ♯ ‘ 𝐶 ) ) )
36 34 3 35 syl2anc ( 𝜑 → ( 𝐽 + 1 ) ∈ ( 1 ... ( ♯ ‘ 𝐶 ) ) )
37 36 adantr ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐽 + 1 ) ∈ ( 1 ... ( ♯ ‘ 𝐶 ) ) )
38 pfxfvlsw ( ( 𝐶 ∈ Word 𝐴 ∧ ( 𝐽 + 1 ) ∈ ( 1 ... ( ♯ ‘ 𝐶 ) ) ) → ( lastS ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) = ( 𝐶 ‘ ( ( 𝐽 + 1 ) − 1 ) ) )
39 30 37 38 syl2anc ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( lastS ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) = ( 𝐶 ‘ ( ( 𝐽 + 1 ) − 1 ) ) )
40 elfzoel2 ( 𝐼 ∈ ( 0 ..^ 𝐽 ) → 𝐽 ∈ ℤ )
41 40 adantl ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐽 ∈ ℤ )
42 41 zcnd ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 𝐽 ∈ ℂ )
43 1cnd ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → 1 ∈ ℂ )
44 42 43 pncand ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( ( 𝐽 + 1 ) − 1 ) = 𝐽 )
45 44 fveq2d ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐶 ‘ ( ( 𝐽 + 1 ) − 1 ) ) = ( 𝐶𝐽 ) )
46 39 45 eqtrd ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( lastS ‘ ( 𝐶 prefix ( 𝐽 + 1 ) ) ) = ( 𝐶𝐽 ) )
47 29 32 46 3brtr3d ( ( 𝜑𝐼 ∈ ( 0 ..^ 𝐽 ) ) → ( 𝐶𝐼 ) ( 𝐶𝐽 ) )