Metamath Proof Explorer


Theorem mamures

Description: Rows in a matrix product are functions only of the corresponding rows in the left argument. (Contributed by SO, 9-Jul-2018)

Ref Expression
Hypotheses mamures.f 𝐹 = ( 𝑅 maMul ⟨ 𝑀 , 𝑁 , 𝑃 ⟩ )
mamures.g 𝐺 = ( 𝑅 maMul ⟨ 𝐼 , 𝑁 , 𝑃 ⟩ )
mamures.b 𝐵 = ( Base ‘ 𝑅 )
mamures.r ( 𝜑𝑅𝑉 )
mamures.m ( 𝜑𝑀 ∈ Fin )
mamures.n ( 𝜑𝑁 ∈ Fin )
mamures.p ( 𝜑𝑃 ∈ Fin )
mamures.i ( 𝜑𝐼𝑀 )
mamures.x ( 𝜑𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) )
mamures.y ( 𝜑𝑌 ∈ ( 𝐵m ( 𝑁 × 𝑃 ) ) )
Assertion mamures ( 𝜑 → ( ( 𝑋 𝐹 𝑌 ) ↾ ( 𝐼 × 𝑃 ) ) = ( ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝐺 𝑌 ) )

Proof

Step Hyp Ref Expression
1 mamures.f 𝐹 = ( 𝑅 maMul ⟨ 𝑀 , 𝑁 , 𝑃 ⟩ )
2 mamures.g 𝐺 = ( 𝑅 maMul ⟨ 𝐼 , 𝑁 , 𝑃 ⟩ )
3 mamures.b 𝐵 = ( Base ‘ 𝑅 )
4 mamures.r ( 𝜑𝑅𝑉 )
5 mamures.m ( 𝜑𝑀 ∈ Fin )
6 mamures.n ( 𝜑𝑁 ∈ Fin )
7 mamures.p ( 𝜑𝑃 ∈ Fin )
8 mamures.i ( 𝜑𝐼𝑀 )
9 mamures.x ( 𝜑𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) )
10 mamures.y ( 𝜑𝑌 ∈ ( 𝐵m ( 𝑁 × 𝑃 ) ) )
11 ssidd ( 𝜑𝑃𝑃 )
12 resmpo ( ( 𝐼𝑀𝑃𝑃 ) → ( ( 𝑖𝑀 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) ↾ ( 𝐼 × 𝑃 ) ) = ( 𝑖𝐼 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) )
13 8 11 12 syl2anc ( 𝜑 → ( ( 𝑖𝑀 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) ↾ ( 𝐼 × 𝑃 ) ) = ( 𝑖𝐼 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) )
14 ovres ( ( 𝑖𝐼𝑘𝑁 ) → ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) = ( 𝑖 𝑋 𝑘 ) )
15 14 3ad2antl2 ( ( ( 𝜑𝑖𝐼𝑗𝑃 ) ∧ 𝑘𝑁 ) → ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) = ( 𝑖 𝑋 𝑘 ) )
16 15 eqcomd ( ( ( 𝜑𝑖𝐼𝑗𝑃 ) ∧ 𝑘𝑁 ) → ( 𝑖 𝑋 𝑘 ) = ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) )
17 16 oveq1d ( ( ( 𝜑𝑖𝐼𝑗𝑃 ) ∧ 𝑘𝑁 ) → ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) = ( ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) )
18 17 mpteq2dva ( ( 𝜑𝑖𝐼𝑗𝑃 ) → ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) = ( 𝑘𝑁 ↦ ( ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) )
19 18 oveq2d ( ( 𝜑𝑖𝐼𝑗𝑃 ) → ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) = ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) )
20 19 mpoeq3dva ( 𝜑 → ( 𝑖𝐼 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) = ( 𝑖𝐼 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) )
21 13 20 eqtrd ( 𝜑 → ( ( 𝑖𝑀 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) ↾ ( 𝐼 × 𝑃 ) ) = ( 𝑖𝐼 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) )
22 eqid ( .r𝑅 ) = ( .r𝑅 )
23 1 3 22 4 5 6 7 9 10 mamuval ( 𝜑 → ( 𝑋 𝐹 𝑌 ) = ( 𝑖𝑀 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) )
24 23 reseq1d ( 𝜑 → ( ( 𝑋 𝐹 𝑌 ) ↾ ( 𝐼 × 𝑃 ) ) = ( ( 𝑖𝑀 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 𝑋 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) ↾ ( 𝐼 × 𝑃 ) ) )
25 5 8 ssfid ( 𝜑𝐼 ∈ Fin )
26 elmapi ( 𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) → 𝑋 : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
27 9 26 syl ( 𝜑𝑋 : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
28 xpss1 ( 𝐼𝑀 → ( 𝐼 × 𝑁 ) ⊆ ( 𝑀 × 𝑁 ) )
29 8 28 syl ( 𝜑 → ( 𝐼 × 𝑁 ) ⊆ ( 𝑀 × 𝑁 ) )
30 27 29 fssresd ( 𝜑 → ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) : ( 𝐼 × 𝑁 ) ⟶ 𝐵 )
31 3 fvexi 𝐵 ∈ V
32 31 a1i ( 𝜑𝐵 ∈ V )
33 xpfi ( ( 𝐼 ∈ Fin ∧ 𝑁 ∈ Fin ) → ( 𝐼 × 𝑁 ) ∈ Fin )
34 25 6 33 syl2anc ( 𝜑 → ( 𝐼 × 𝑁 ) ∈ Fin )
35 32 34 elmapd ( 𝜑 → ( ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) ∈ ( 𝐵m ( 𝐼 × 𝑁 ) ) ↔ ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) : ( 𝐼 × 𝑁 ) ⟶ 𝐵 ) )
36 30 35 mpbird ( 𝜑 → ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) ∈ ( 𝐵m ( 𝐼 × 𝑁 ) ) )
37 2 3 22 4 25 6 7 36 10 mamuval ( 𝜑 → ( ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝐺 𝑌 ) = ( 𝑖𝐼 , 𝑗𝑃 ↦ ( 𝑅 Σg ( 𝑘𝑁 ↦ ( ( 𝑖 ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝑘 ) ( .r𝑅 ) ( 𝑘 𝑌 𝑗 ) ) ) ) ) )
38 21 24 37 3eqtr4d ( 𝜑 → ( ( 𝑋 𝐹 𝑌 ) ↾ ( 𝐼 × 𝑃 ) ) = ( ( 𝑋 ↾ ( 𝐼 × 𝑁 ) ) 𝐺 𝑌 ) )