Metamath Proof Explorer


Theorem cpmat

Description: Value of the constructor of the set of all constant polynomial matrices, i.e. the set of all N x N matrices of polynomials over a ring R . (Contributed by AV, 15-Nov-2019)

Ref Expression
Hypotheses cpmat.s 𝑆 = ( 𝑁 ConstPolyMat 𝑅 )
cpmat.p 𝑃 = ( Poly1𝑅 )
cpmat.c 𝐶 = ( 𝑁 Mat 𝑃 )
cpmat.b 𝐵 = ( Base ‘ 𝐶 )
Assertion cpmat ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → 𝑆 = { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } )

Proof

Step Hyp Ref Expression
1 cpmat.s 𝑆 = ( 𝑁 ConstPolyMat 𝑅 )
2 cpmat.p 𝑃 = ( Poly1𝑅 )
3 cpmat.c 𝐶 = ( 𝑁 Mat 𝑃 )
4 cpmat.b 𝐵 = ( Base ‘ 𝐶 )
5 df-cpmat ConstPolyMat = ( 𝑛 ∈ Fin , 𝑟 ∈ V ↦ { 𝑚 ∈ ( Base ‘ ( 𝑛 Mat ( Poly1𝑟 ) ) ) ∣ ∀ 𝑖𝑛𝑗𝑛𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) } )
6 5 a1i ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ConstPolyMat = ( 𝑛 ∈ Fin , 𝑟 ∈ V ↦ { 𝑚 ∈ ( Base ‘ ( 𝑛 Mat ( Poly1𝑟 ) ) ) ∣ ∀ 𝑖𝑛𝑗𝑛𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) } ) )
7 simpl ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → 𝑛 = 𝑁 )
8 fveq2 ( 𝑟 = 𝑅 → ( Poly1𝑟 ) = ( Poly1𝑅 ) )
9 8 adantl ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( Poly1𝑟 ) = ( Poly1𝑅 ) )
10 7 9 oveq12d ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( 𝑛 Mat ( Poly1𝑟 ) ) = ( 𝑁 Mat ( Poly1𝑅 ) ) )
11 10 fveq2d ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( Base ‘ ( 𝑛 Mat ( Poly1𝑟 ) ) ) = ( Base ‘ ( 𝑁 Mat ( Poly1𝑅 ) ) ) )
12 2 oveq2i ( 𝑁 Mat 𝑃 ) = ( 𝑁 Mat ( Poly1𝑅 ) )
13 3 12 eqtri 𝐶 = ( 𝑁 Mat ( Poly1𝑅 ) )
14 13 fveq2i ( Base ‘ 𝐶 ) = ( Base ‘ ( 𝑁 Mat ( Poly1𝑅 ) ) )
15 4 14 eqtri 𝐵 = ( Base ‘ ( 𝑁 Mat ( Poly1𝑅 ) ) )
16 11 15 eqtr4di ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( Base ‘ ( 𝑛 Mat ( Poly1𝑟 ) ) ) = 𝐵 )
17 fveq2 ( 𝑟 = 𝑅 → ( 0g𝑟 ) = ( 0g𝑅 ) )
18 17 adantl ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( 0g𝑟 ) = ( 0g𝑅 ) )
19 18 eqeq2d ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) ↔ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) ) )
20 19 ralbidv ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( ∀ 𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) ↔ ∀ 𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) ) )
21 7 20 raleqbidv ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( ∀ 𝑗𝑛𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) ↔ ∀ 𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) ) )
22 7 21 raleqbidv ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → ( ∀ 𝑖𝑛𝑗𝑛𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) ↔ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) ) )
23 16 22 rabeqbidv ( ( 𝑛 = 𝑁𝑟 = 𝑅 ) → { 𝑚 ∈ ( Base ‘ ( 𝑛 Mat ( Poly1𝑟 ) ) ) ∣ ∀ 𝑖𝑛𝑗𝑛𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) } = { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } )
24 23 adantl ( ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) ∧ ( 𝑛 = 𝑁𝑟 = 𝑅 ) ) → { 𝑚 ∈ ( Base ‘ ( 𝑛 Mat ( Poly1𝑟 ) ) ) ∣ ∀ 𝑖𝑛𝑗𝑛𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑟 ) } = { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } )
25 simpl ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → 𝑁 ∈ Fin )
26 elex ( 𝑅𝑉𝑅 ∈ V )
27 26 adantl ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → 𝑅 ∈ V )
28 4 fvexi 𝐵 ∈ V
29 rabexg ( 𝐵 ∈ V → { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } ∈ V )
30 28 29 mp1i ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } ∈ V )
31 6 24 25 27 30 ovmpod ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ( 𝑁 ConstPolyMat 𝑅 ) = { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } )
32 1 31 syl5eq ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → 𝑆 = { 𝑚𝐵 ∣ ∀ 𝑖𝑁𝑗𝑁𝑘 ∈ ℕ ( ( coe1 ‘ ( 𝑖 𝑚 𝑗 ) ) ‘ 𝑘 ) = ( 0g𝑅 ) } )