Metamath Proof Explorer


Theorem lmatfval

Description: Entries of a literal matrix. (Contributed by Thierry Arnoux, 28-Aug-2020)

Ref Expression
Hypotheses lmatfval.m 𝑀 = ( litMat ‘ 𝑊 )
lmatfval.n ( 𝜑𝑁 ∈ ℕ )
lmatfval.w ( 𝜑𝑊 ∈ Word Word 𝑉 )
lmatfval.1 ( 𝜑 → ( ♯ ‘ 𝑊 ) = 𝑁 )
lmatfval.2 ( ( 𝜑𝑖 ∈ ( 0 ..^ 𝑁 ) ) → ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 )
lmatfval.i ( 𝜑𝐼 ∈ ( 1 ... 𝑁 ) )
lmatfval.j ( 𝜑𝐽 ∈ ( 1 ... 𝑁 ) )
Assertion lmatfval ( 𝜑 → ( 𝐼 𝑀 𝐽 ) = ( ( 𝑊 ‘ ( 𝐼 − 1 ) ) ‘ ( 𝐽 − 1 ) ) )

Proof

Step Hyp Ref Expression
1 lmatfval.m 𝑀 = ( litMat ‘ 𝑊 )
2 lmatfval.n ( 𝜑𝑁 ∈ ℕ )
3 lmatfval.w ( 𝜑𝑊 ∈ Word Word 𝑉 )
4 lmatfval.1 ( 𝜑 → ( ♯ ‘ 𝑊 ) = 𝑁 )
5 lmatfval.2 ( ( 𝜑𝑖 ∈ ( 0 ..^ 𝑁 ) ) → ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 )
6 lmatfval.i ( 𝜑𝐼 ∈ ( 1 ... 𝑁 ) )
7 lmatfval.j ( 𝜑𝐽 ∈ ( 1 ... 𝑁 ) )
8 lmatval ( 𝑊 ∈ Word Word 𝑉 → ( litMat ‘ 𝑊 ) = ( 𝑖 ∈ ( 1 ... ( ♯ ‘ 𝑊 ) ) , 𝑗 ∈ ( 1 ... ( ♯ ‘ ( 𝑊 ‘ 0 ) ) ) ↦ ( ( 𝑊 ‘ ( 𝑖 − 1 ) ) ‘ ( 𝑗 − 1 ) ) ) )
9 3 8 syl ( 𝜑 → ( litMat ‘ 𝑊 ) = ( 𝑖 ∈ ( 1 ... ( ♯ ‘ 𝑊 ) ) , 𝑗 ∈ ( 1 ... ( ♯ ‘ ( 𝑊 ‘ 0 ) ) ) ↦ ( ( 𝑊 ‘ ( 𝑖 − 1 ) ) ‘ ( 𝑗 − 1 ) ) ) )
10 1 9 eqtrid ( 𝜑𝑀 = ( 𝑖 ∈ ( 1 ... ( ♯ ‘ 𝑊 ) ) , 𝑗 ∈ ( 1 ... ( ♯ ‘ ( 𝑊 ‘ 0 ) ) ) ↦ ( ( 𝑊 ‘ ( 𝑖 − 1 ) ) ‘ ( 𝑗 − 1 ) ) ) )
11 simprl ( ( 𝜑 ∧ ( 𝑖 = 𝐼𝑗 = 𝐽 ) ) → 𝑖 = 𝐼 )
12 11 fvoveq1d ( ( 𝜑 ∧ ( 𝑖 = 𝐼𝑗 = 𝐽 ) ) → ( 𝑊 ‘ ( 𝑖 − 1 ) ) = ( 𝑊 ‘ ( 𝐼 − 1 ) ) )
13 simprr ( ( 𝜑 ∧ ( 𝑖 = 𝐼𝑗 = 𝐽 ) ) → 𝑗 = 𝐽 )
14 13 oveq1d ( ( 𝜑 ∧ ( 𝑖 = 𝐼𝑗 = 𝐽 ) ) → ( 𝑗 − 1 ) = ( 𝐽 − 1 ) )
15 12 14 fveq12d ( ( 𝜑 ∧ ( 𝑖 = 𝐼𝑗 = 𝐽 ) ) → ( ( 𝑊 ‘ ( 𝑖 − 1 ) ) ‘ ( 𝑗 − 1 ) ) = ( ( 𝑊 ‘ ( 𝐼 − 1 ) ) ‘ ( 𝐽 − 1 ) ) )
16 4 oveq2d ( 𝜑 → ( 1 ... ( ♯ ‘ 𝑊 ) ) = ( 1 ... 𝑁 ) )
17 6 16 eleqtrrd ( 𝜑𝐼 ∈ ( 1 ... ( ♯ ‘ 𝑊 ) ) )
18 1m1e0 ( 1 − 1 ) = 0
19 nnuz ℕ = ( ℤ ‘ 1 )
20 2 19 eleqtrdi ( 𝜑𝑁 ∈ ( ℤ ‘ 1 ) )
21 eluzfz1 ( 𝑁 ∈ ( ℤ ‘ 1 ) → 1 ∈ ( 1 ... 𝑁 ) )
22 20 21 syl ( 𝜑 → 1 ∈ ( 1 ... 𝑁 ) )
23 fz1fzo0m1 ( 1 ∈ ( 1 ... 𝑁 ) → ( 1 − 1 ) ∈ ( 0 ..^ 𝑁 ) )
24 22 23 syl ( 𝜑 → ( 1 − 1 ) ∈ ( 0 ..^ 𝑁 ) )
25 18 24 eqeltrrid ( 𝜑 → 0 ∈ ( 0 ..^ 𝑁 ) )
26 simpr ( ( 𝜑𝑖 = 0 ) → 𝑖 = 0 )
27 26 eleq1d ( ( 𝜑𝑖 = 0 ) → ( 𝑖 ∈ ( 0 ..^ 𝑁 ) ↔ 0 ∈ ( 0 ..^ 𝑁 ) ) )
28 26 fveq2d ( ( 𝜑𝑖 = 0 ) → ( 𝑊𝑖 ) = ( 𝑊 ‘ 0 ) )
29 28 fveqeq2d ( ( 𝜑𝑖 = 0 ) → ( ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 ↔ ( ♯ ‘ ( 𝑊 ‘ 0 ) ) = 𝑁 ) )
30 27 29 imbi12d ( ( 𝜑𝑖 = 0 ) → ( ( 𝑖 ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 ) ↔ ( 0 ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊 ‘ 0 ) ) = 𝑁 ) ) )
31 5 ex ( 𝜑 → ( 𝑖 ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 ) )
32 25 30 31 vtocld ( 𝜑 → ( 0 ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊 ‘ 0 ) ) = 𝑁 ) )
33 25 32 mpd ( 𝜑 → ( ♯ ‘ ( 𝑊 ‘ 0 ) ) = 𝑁 )
34 33 oveq2d ( 𝜑 → ( 1 ... ( ♯ ‘ ( 𝑊 ‘ 0 ) ) ) = ( 1 ... 𝑁 ) )
35 7 34 eleqtrrd ( 𝜑𝐽 ∈ ( 1 ... ( ♯ ‘ ( 𝑊 ‘ 0 ) ) ) )
36 fz1fzo0m1 ( 𝐼 ∈ ( 1 ... 𝑁 ) → ( 𝐼 − 1 ) ∈ ( 0 ..^ 𝑁 ) )
37 6 36 syl ( 𝜑 → ( 𝐼 − 1 ) ∈ ( 0 ..^ 𝑁 ) )
38 4 oveq2d ( 𝜑 → ( 0 ..^ ( ♯ ‘ 𝑊 ) ) = ( 0 ..^ 𝑁 ) )
39 37 38 eleqtrrd ( 𝜑 → ( 𝐼 − 1 ) ∈ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) )
40 wrdsymbcl ( ( 𝑊 ∈ Word Word 𝑉 ∧ ( 𝐼 − 1 ) ∈ ( 0 ..^ ( ♯ ‘ 𝑊 ) ) ) → ( 𝑊 ‘ ( 𝐼 − 1 ) ) ∈ Word 𝑉 )
41 3 39 40 syl2anc ( 𝜑 → ( 𝑊 ‘ ( 𝐼 − 1 ) ) ∈ Word 𝑉 )
42 fz1fzo0m1 ( 𝐽 ∈ ( 1 ... 𝑁 ) → ( 𝐽 − 1 ) ∈ ( 0 ..^ 𝑁 ) )
43 7 42 syl ( 𝜑 → ( 𝐽 − 1 ) ∈ ( 0 ..^ 𝑁 ) )
44 simpr ( ( 𝜑𝑖 = ( 𝐼 − 1 ) ) → 𝑖 = ( 𝐼 − 1 ) )
45 44 eleq1d ( ( 𝜑𝑖 = ( 𝐼 − 1 ) ) → ( 𝑖 ∈ ( 0 ..^ 𝑁 ) ↔ ( 𝐼 − 1 ) ∈ ( 0 ..^ 𝑁 ) ) )
46 44 fveq2d ( ( 𝜑𝑖 = ( 𝐼 − 1 ) ) → ( 𝑊𝑖 ) = ( 𝑊 ‘ ( 𝐼 − 1 ) ) )
47 46 fveqeq2d ( ( 𝜑𝑖 = ( 𝐼 − 1 ) ) → ( ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 ↔ ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) = 𝑁 ) )
48 45 47 imbi12d ( ( 𝜑𝑖 = ( 𝐼 − 1 ) ) → ( ( 𝑖 ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊𝑖 ) ) = 𝑁 ) ↔ ( ( 𝐼 − 1 ) ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) = 𝑁 ) ) )
49 37 48 31 vtocld ( 𝜑 → ( ( 𝐼 − 1 ) ∈ ( 0 ..^ 𝑁 ) → ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) = 𝑁 ) )
50 37 49 mpd ( 𝜑 → ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) = 𝑁 )
51 50 oveq2d ( 𝜑 → ( 0 ..^ ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) ) = ( 0 ..^ 𝑁 ) )
52 43 51 eleqtrrd ( 𝜑 → ( 𝐽 − 1 ) ∈ ( 0 ..^ ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) ) )
53 wrdsymbcl ( ( ( 𝑊 ‘ ( 𝐼 − 1 ) ) ∈ Word 𝑉 ∧ ( 𝐽 − 1 ) ∈ ( 0 ..^ ( ♯ ‘ ( 𝑊 ‘ ( 𝐼 − 1 ) ) ) ) ) → ( ( 𝑊 ‘ ( 𝐼 − 1 ) ) ‘ ( 𝐽 − 1 ) ) ∈ 𝑉 )
54 41 52 53 syl2anc ( 𝜑 → ( ( 𝑊 ‘ ( 𝐼 − 1 ) ) ‘ ( 𝐽 − 1 ) ) ∈ 𝑉 )
55 10 15 17 35 54 ovmpod ( 𝜑 → ( 𝐼 𝑀 𝐽 ) = ( ( 𝑊 ‘ ( 𝐼 − 1 ) ) ‘ ( 𝐽 − 1 ) ) )