Metamath Proof Explorer


Theorem mpomatmul

Description: Multiplication of two N x N matrices given in maps-to notation. (Contributed by AV, 29-Oct-2019)

Ref Expression
Hypotheses mpomatmul.a 𝐴 = ( 𝑁 Mat 𝑅 )
mpomatmul.b 𝐵 = ( Base ‘ 𝑅 )
mpomatmul.m × = ( .r𝐴 )
mpomatmul.t · = ( .r𝑅 )
mpomatmul.r ( 𝜑𝑅𝑉 )
mpomatmul.n ( 𝜑𝑁 ∈ Fin )
mpomatmul.x 𝑋 = ( 𝑖𝑁 , 𝑗𝑁𝐶 )
mpomatmul.y 𝑌 = ( 𝑖𝑁 , 𝑗𝑁𝐸 )
mpomatmul.c ( ( 𝜑𝑖𝑁𝑗𝑁 ) → 𝐶𝐵 )
mpomatmul.e ( ( 𝜑𝑖𝑁𝑗𝑁 ) → 𝐸𝐵 )
mpomatmul.d ( ( 𝜑 ∧ ( 𝑘 = 𝑖𝑚 = 𝑗 ) ) → 𝐷 = 𝐶 )
mpomatmul.f ( ( 𝜑 ∧ ( 𝑚 = 𝑖𝑙 = 𝑗 ) ) → 𝐹 = 𝐸 )
mpomatmul.1 ( ( 𝜑𝑘𝑁𝑚𝑁 ) → 𝐷𝑈 )
mpomatmul.2 ( ( 𝜑𝑚𝑁𝑙𝑁 ) → 𝐹𝑊 )
Assertion mpomatmul ( 𝜑 → ( 𝑋 × 𝑌 ) = ( 𝑘𝑁 , 𝑙𝑁 ↦ ( 𝑅 Σg ( 𝑚𝑁 ↦ ( 𝐷 · 𝐹 ) ) ) ) )

Proof

Step Hyp Ref Expression
1 mpomatmul.a 𝐴 = ( 𝑁 Mat 𝑅 )
2 mpomatmul.b 𝐵 = ( Base ‘ 𝑅 )
3 mpomatmul.m × = ( .r𝐴 )
4 mpomatmul.t · = ( .r𝑅 )
5 mpomatmul.r ( 𝜑𝑅𝑉 )
6 mpomatmul.n ( 𝜑𝑁 ∈ Fin )
7 mpomatmul.x 𝑋 = ( 𝑖𝑁 , 𝑗𝑁𝐶 )
8 mpomatmul.y 𝑌 = ( 𝑖𝑁 , 𝑗𝑁𝐸 )
9 mpomatmul.c ( ( 𝜑𝑖𝑁𝑗𝑁 ) → 𝐶𝐵 )
10 mpomatmul.e ( ( 𝜑𝑖𝑁𝑗𝑁 ) → 𝐸𝐵 )
11 mpomatmul.d ( ( 𝜑 ∧ ( 𝑘 = 𝑖𝑚 = 𝑗 ) ) → 𝐷 = 𝐶 )
12 mpomatmul.f ( ( 𝜑 ∧ ( 𝑚 = 𝑖𝑙 = 𝑗 ) ) → 𝐹 = 𝐸 )
13 mpomatmul.1 ( ( 𝜑𝑘𝑁𝑚𝑁 ) → 𝐷𝑈 )
14 mpomatmul.2 ( ( 𝜑𝑚𝑁𝑙𝑁 ) → 𝐹𝑊 )
15 eqid ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) = ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ )
16 1 15 matmulr ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) = ( .r𝐴 ) )
17 16 3 eqtr4di ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) = × )
18 17 oveqd ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ( 𝑋 ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) 𝑌 ) = ( 𝑋 × 𝑌 ) )
19 18 eqcomd ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ( 𝑋 × 𝑌 ) = ( 𝑋 ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) 𝑌 ) )
20 6 5 19 syl2anc ( 𝜑 → ( 𝑋 × 𝑌 ) = ( 𝑋 ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) 𝑌 ) )
21 eqid ( Base ‘ 𝑅 ) = ( Base ‘ 𝑅 )
22 eqid ( Base ‘ 𝐴 ) = ( Base ‘ 𝐴 )
23 9 2 eleqtrdi ( ( 𝜑𝑖𝑁𝑗𝑁 ) → 𝐶 ∈ ( Base ‘ 𝑅 ) )
24 1 21 22 6 5 23 matbas2d ( 𝜑 → ( 𝑖𝑁 , 𝑗𝑁𝐶 ) ∈ ( Base ‘ 𝐴 ) )
25 7 24 eqeltrid ( 𝜑𝑋 ∈ ( Base ‘ 𝐴 ) )
26 1 21 matbas2 ( ( 𝑁 ∈ Fin ∧ 𝑅𝑉 ) → ( ( Base ‘ 𝑅 ) ↑m ( 𝑁 × 𝑁 ) ) = ( Base ‘ 𝐴 ) )
27 6 5 26 syl2anc ( 𝜑 → ( ( Base ‘ 𝑅 ) ↑m ( 𝑁 × 𝑁 ) ) = ( Base ‘ 𝐴 ) )
28 25 27 eleqtrrd ( 𝜑𝑋 ∈ ( ( Base ‘ 𝑅 ) ↑m ( 𝑁 × 𝑁 ) ) )
29 10 2 eleqtrdi ( ( 𝜑𝑖𝑁𝑗𝑁 ) → 𝐸 ∈ ( Base ‘ 𝑅 ) )
30 1 21 22 6 5 29 matbas2d ( 𝜑 → ( 𝑖𝑁 , 𝑗𝑁𝐸 ) ∈ ( Base ‘ 𝐴 ) )
31 8 30 eqeltrid ( 𝜑𝑌 ∈ ( Base ‘ 𝐴 ) )
32 31 27 eleqtrrd ( 𝜑𝑌 ∈ ( ( Base ‘ 𝑅 ) ↑m ( 𝑁 × 𝑁 ) ) )
33 15 21 4 5 6 6 6 28 32 mamuval ( 𝜑 → ( 𝑋 ( 𝑅 maMul ⟨ 𝑁 , 𝑁 , 𝑁 ⟩ ) 𝑌 ) = ( 𝑘𝑁 , 𝑙𝑁 ↦ ( 𝑅 Σg ( 𝑚𝑁 ↦ ( ( 𝑘 𝑋 𝑚 ) · ( 𝑚 𝑌 𝑙 ) ) ) ) ) )
34 7 a1i ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝑋 = ( 𝑖𝑁 , 𝑗𝑁𝐶 ) )
35 equcom ( 𝑖 = 𝑘𝑘 = 𝑖 )
36 equcom ( 𝑗 = 𝑚𝑚 = 𝑗 )
37 35 36 anbi12i ( ( 𝑖 = 𝑘𝑗 = 𝑚 ) ↔ ( 𝑘 = 𝑖𝑚 = 𝑗 ) )
38 37 11 sylan2b ( ( 𝜑 ∧ ( 𝑖 = 𝑘𝑗 = 𝑚 ) ) → 𝐷 = 𝐶 )
39 38 eqcomd ( ( 𝜑 ∧ ( 𝑖 = 𝑘𝑗 = 𝑚 ) ) → 𝐶 = 𝐷 )
40 39 ex ( 𝜑 → ( ( 𝑖 = 𝑘𝑗 = 𝑚 ) → 𝐶 = 𝐷 ) )
41 40 3ad2ant1 ( ( 𝜑𝑘𝑁𝑙𝑁 ) → ( ( 𝑖 = 𝑘𝑗 = 𝑚 ) → 𝐶 = 𝐷 ) )
42 41 adantr ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → ( ( 𝑖 = 𝑘𝑗 = 𝑚 ) → 𝐶 = 𝐷 ) )
43 42 imp ( ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) ∧ ( 𝑖 = 𝑘𝑗 = 𝑚 ) ) → 𝐶 = 𝐷 )
44 simpl2 ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝑘𝑁 )
45 simpr ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝑚𝑁 )
46 simpl1 ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝜑 )
47 46 44 45 13 syl3anc ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝐷𝑈 )
48 34 43 44 45 47 ovmpod ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → ( 𝑘 𝑋 𝑚 ) = 𝐷 )
49 8 a1i ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝑌 = ( 𝑖𝑁 , 𝑗𝑁𝐸 ) )
50 equcomi ( 𝑖 = 𝑚𝑚 = 𝑖 )
51 equcomi ( 𝑗 = 𝑙𝑙 = 𝑗 )
52 50 51 anim12i ( ( 𝑖 = 𝑚𝑗 = 𝑙 ) → ( 𝑚 = 𝑖𝑙 = 𝑗 ) )
53 52 12 sylan2 ( ( 𝜑 ∧ ( 𝑖 = 𝑚𝑗 = 𝑙 ) ) → 𝐹 = 𝐸 )
54 53 ex ( 𝜑 → ( ( 𝑖 = 𝑚𝑗 = 𝑙 ) → 𝐹 = 𝐸 ) )
55 54 3ad2ant1 ( ( 𝜑𝑘𝑁𝑙𝑁 ) → ( ( 𝑖 = 𝑚𝑗 = 𝑙 ) → 𝐹 = 𝐸 ) )
56 55 adantr ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → ( ( 𝑖 = 𝑚𝑗 = 𝑙 ) → 𝐹 = 𝐸 ) )
57 56 imp ( ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) ∧ ( 𝑖 = 𝑚𝑗 = 𝑙 ) ) → 𝐹 = 𝐸 )
58 57 eqcomd ( ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) ∧ ( 𝑖 = 𝑚𝑗 = 𝑙 ) ) → 𝐸 = 𝐹 )
59 simpl3 ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝑙𝑁 )
60 46 45 59 14 syl3anc ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → 𝐹𝑊 )
61 49 58 45 59 60 ovmpod ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → ( 𝑚 𝑌 𝑙 ) = 𝐹 )
62 48 61 oveq12d ( ( ( 𝜑𝑘𝑁𝑙𝑁 ) ∧ 𝑚𝑁 ) → ( ( 𝑘 𝑋 𝑚 ) · ( 𝑚 𝑌 𝑙 ) ) = ( 𝐷 · 𝐹 ) )
63 62 mpteq2dva ( ( 𝜑𝑘𝑁𝑙𝑁 ) → ( 𝑚𝑁 ↦ ( ( 𝑘 𝑋 𝑚 ) · ( 𝑚 𝑌 𝑙 ) ) ) = ( 𝑚𝑁 ↦ ( 𝐷 · 𝐹 ) ) )
64 63 oveq2d ( ( 𝜑𝑘𝑁𝑙𝑁 ) → ( 𝑅 Σg ( 𝑚𝑁 ↦ ( ( 𝑘 𝑋 𝑚 ) · ( 𝑚 𝑌 𝑙 ) ) ) ) = ( 𝑅 Σg ( 𝑚𝑁 ↦ ( 𝐷 · 𝐹 ) ) ) )
65 64 mpoeq3dva ( 𝜑 → ( 𝑘𝑁 , 𝑙𝑁 ↦ ( 𝑅 Σg ( 𝑚𝑁 ↦ ( ( 𝑘 𝑋 𝑚 ) · ( 𝑚 𝑌 𝑙 ) ) ) ) ) = ( 𝑘𝑁 , 𝑙𝑁 ↦ ( 𝑅 Σg ( 𝑚𝑁 ↦ ( 𝐷 · 𝐹 ) ) ) ) )
66 20 33 65 3eqtrd ( 𝜑 → ( 𝑋 × 𝑌 ) = ( 𝑘𝑁 , 𝑙𝑁 ↦ ( 𝑅 Σg ( 𝑚𝑁 ↦ ( 𝐷 · 𝐹 ) ) ) ) )