Metamath Proof Explorer


Theorem mamulid

Description: The identity matrix (as operation in maps-to notation) is a left identity (for any matrix with the same number of rows). (Contributed by Stefan O'Rear, 3-Sep-2015) (Proof shortened by AV, 22-Jul-2019)

Ref Expression
Hypotheses mamumat1cl.b 𝐵 = ( Base ‘ 𝑅 )
mamumat1cl.r ( 𝜑𝑅 ∈ Ring )
mamumat1cl.o 1 = ( 1r𝑅 )
mamumat1cl.z 0 = ( 0g𝑅 )
mamumat1cl.i 𝐼 = ( 𝑖𝑀 , 𝑗𝑀 ↦ if ( 𝑖 = 𝑗 , 1 , 0 ) )
mamumat1cl.m ( 𝜑𝑀 ∈ Fin )
mamulid.n ( 𝜑𝑁 ∈ Fin )
mamulid.f 𝐹 = ( 𝑅 maMul ⟨ 𝑀 , 𝑀 , 𝑁 ⟩ )
mamulid.x ( 𝜑𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) )
Assertion mamulid ( 𝜑 → ( 𝐼 𝐹 𝑋 ) = 𝑋 )

Proof

Step Hyp Ref Expression
1 mamumat1cl.b 𝐵 = ( Base ‘ 𝑅 )
2 mamumat1cl.r ( 𝜑𝑅 ∈ Ring )
3 mamumat1cl.o 1 = ( 1r𝑅 )
4 mamumat1cl.z 0 = ( 0g𝑅 )
5 mamumat1cl.i 𝐼 = ( 𝑖𝑀 , 𝑗𝑀 ↦ if ( 𝑖 = 𝑗 , 1 , 0 ) )
6 mamumat1cl.m ( 𝜑𝑀 ∈ Fin )
7 mamulid.n ( 𝜑𝑁 ∈ Fin )
8 mamulid.f 𝐹 = ( 𝑅 maMul ⟨ 𝑀 , 𝑀 , 𝑁 ⟩ )
9 mamulid.x ( 𝜑𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) )
10 eqid ( .r𝑅 ) = ( .r𝑅 )
11 2 adantr ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑅 ∈ Ring )
12 6 adantr ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑀 ∈ Fin )
13 7 adantr ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑁 ∈ Fin )
14 1 2 3 4 5 6 mamumat1cl ( 𝜑𝐼 ∈ ( 𝐵m ( 𝑀 × 𝑀 ) ) )
15 14 adantr ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝐼 ∈ ( 𝐵m ( 𝑀 × 𝑀 ) ) )
16 9 adantr ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) )
17 simprl ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑙𝑀 )
18 simprr ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑘𝑁 )
19 8 1 10 11 12 12 13 15 16 17 18 mamufv ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 𝑙 ( 𝐼 𝐹 𝑋 ) 𝑘 ) = ( 𝑅 Σg ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) ) )
20 ringmnd ( 𝑅 ∈ Ring → 𝑅 ∈ Mnd )
21 11 20 syl ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → 𝑅 ∈ Mnd )
22 2 ad2antrr ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → 𝑅 ∈ Ring )
23 elmapi ( 𝐼 ∈ ( 𝐵m ( 𝑀 × 𝑀 ) ) → 𝐼 : ( 𝑀 × 𝑀 ) ⟶ 𝐵 )
24 14 23 syl ( 𝜑𝐼 : ( 𝑀 × 𝑀 ) ⟶ 𝐵 )
25 24 ad2antrr ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → 𝐼 : ( 𝑀 × 𝑀 ) ⟶ 𝐵 )
26 simplrl ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → 𝑙𝑀 )
27 simpr ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → 𝑚𝑀 )
28 25 26 27 fovrnd ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → ( 𝑙 𝐼 𝑚 ) ∈ 𝐵 )
29 elmapi ( 𝑋 ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) → 𝑋 : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
30 9 29 syl ( 𝜑𝑋 : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
31 30 ad2antrr ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → 𝑋 : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
32 simplrr ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → 𝑘𝑁 )
33 31 27 32 fovrnd ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → ( 𝑚 𝑋 𝑘 ) ∈ 𝐵 )
34 1 10 ringcl ( ( 𝑅 ∈ Ring ∧ ( 𝑙 𝐼 𝑚 ) ∈ 𝐵 ∧ ( 𝑚 𝑋 𝑘 ) ∈ 𝐵 ) → ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ∈ 𝐵 )
35 22 28 33 34 syl3anc ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ∈ 𝐵 )
36 35 fmpttd ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) : 𝑀𝐵 )
37 26 3adant3 ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → 𝑙𝑀 )
38 simp2 ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → 𝑚𝑀 )
39 1 2 3 4 5 6 mat1comp ( ( 𝑙𝑀𝑚𝑀 ) → ( 𝑙 𝐼 𝑚 ) = if ( 𝑙 = 𝑚 , 1 , 0 ) )
40 equcom ( 𝑙 = 𝑚𝑚 = 𝑙 )
41 40 a1i ( ( 𝑙𝑀𝑚𝑀 ) → ( 𝑙 = 𝑚𝑚 = 𝑙 ) )
42 41 ifbid ( ( 𝑙𝑀𝑚𝑀 ) → if ( 𝑙 = 𝑚 , 1 , 0 ) = if ( 𝑚 = 𝑙 , 1 , 0 ) )
43 39 42 eqtrd ( ( 𝑙𝑀𝑚𝑀 ) → ( 𝑙 𝐼 𝑚 ) = if ( 𝑚 = 𝑙 , 1 , 0 ) )
44 37 38 43 syl2anc ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → ( 𝑙 𝐼 𝑚 ) = if ( 𝑚 = 𝑙 , 1 , 0 ) )
45 ifnefalse ( 𝑚𝑙 → if ( 𝑚 = 𝑙 , 1 , 0 ) = 0 )
46 45 3ad2ant3 ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → if ( 𝑚 = 𝑙 , 1 , 0 ) = 0 )
47 44 46 eqtrd ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → ( 𝑙 𝐼 𝑚 ) = 0 )
48 47 oveq1d ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) = ( 0 ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) )
49 1 10 4 ringlz ( ( 𝑅 ∈ Ring ∧ ( 𝑚 𝑋 𝑘 ) ∈ 𝐵 ) → ( 0 ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) = 0 )
50 22 33 49 syl2anc ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀 ) → ( 0 ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) = 0 )
51 50 3adant3 ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → ( 0 ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) = 0 )
52 48 51 eqtrd ( ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) ∧ 𝑚𝑀𝑚𝑙 ) → ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) = 0 )
53 52 12 suppsssn ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) supp 0 ) ⊆ { 𝑙 } )
54 1 4 21 12 17 36 53 gsumpt ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 𝑅 Σg ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) ) = ( ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) ‘ 𝑙 ) )
55 oveq2 ( 𝑚 = 𝑙 → ( 𝑙 𝐼 𝑚 ) = ( 𝑙 𝐼 𝑙 ) )
56 oveq1 ( 𝑚 = 𝑙 → ( 𝑚 𝑋 𝑘 ) = ( 𝑙 𝑋 𝑘 ) )
57 55 56 oveq12d ( 𝑚 = 𝑙 → ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) = ( ( 𝑙 𝐼 𝑙 ) ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) )
58 eqid ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) = ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) )
59 ovex ( ( 𝑙 𝐼 𝑙 ) ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) ∈ V
60 57 58 59 fvmpt ( 𝑙𝑀 → ( ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) ‘ 𝑙 ) = ( ( 𝑙 𝐼 𝑙 ) ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) )
61 60 ad2antrl ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) ‘ 𝑙 ) = ( ( 𝑙 𝐼 𝑙 ) ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) )
62 equequ1 ( 𝑖 = 𝑙 → ( 𝑖 = 𝑗𝑙 = 𝑗 ) )
63 62 ifbid ( 𝑖 = 𝑙 → if ( 𝑖 = 𝑗 , 1 , 0 ) = if ( 𝑙 = 𝑗 , 1 , 0 ) )
64 equequ2 ( 𝑗 = 𝑙 → ( 𝑙 = 𝑗𝑙 = 𝑙 ) )
65 64 ifbid ( 𝑗 = 𝑙 → if ( 𝑙 = 𝑗 , 1 , 0 ) = if ( 𝑙 = 𝑙 , 1 , 0 ) )
66 equid 𝑙 = 𝑙
67 66 iftruei if ( 𝑙 = 𝑙 , 1 , 0 ) = 1
68 65 67 eqtrdi ( 𝑗 = 𝑙 → if ( 𝑙 = 𝑗 , 1 , 0 ) = 1 )
69 3 fvexi 1 ∈ V
70 63 68 5 69 ovmpo ( ( 𝑙𝑀𝑙𝑀 ) → ( 𝑙 𝐼 𝑙 ) = 1 )
71 70 anidms ( 𝑙𝑀 → ( 𝑙 𝐼 𝑙 ) = 1 )
72 71 ad2antrl ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 𝑙 𝐼 𝑙 ) = 1 )
73 72 oveq1d ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( ( 𝑙 𝐼 𝑙 ) ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) = ( 1 ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) )
74 30 fovrnda ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 𝑙 𝑋 𝑘 ) ∈ 𝐵 )
75 1 10 3 ringlidm ( ( 𝑅 ∈ Ring ∧ ( 𝑙 𝑋 𝑘 ) ∈ 𝐵 ) → ( 1 ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) = ( 𝑙 𝑋 𝑘 ) )
76 11 74 75 syl2anc ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 1 ( .r𝑅 ) ( 𝑙 𝑋 𝑘 ) ) = ( 𝑙 𝑋 𝑘 ) )
77 61 73 76 3eqtrd ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( ( 𝑚𝑀 ↦ ( ( 𝑙 𝐼 𝑚 ) ( .r𝑅 ) ( 𝑚 𝑋 𝑘 ) ) ) ‘ 𝑙 ) = ( 𝑙 𝑋 𝑘 ) )
78 19 54 77 3eqtrd ( ( 𝜑 ∧ ( 𝑙𝑀𝑘𝑁 ) ) → ( 𝑙 ( 𝐼 𝐹 𝑋 ) 𝑘 ) = ( 𝑙 𝑋 𝑘 ) )
79 78 ralrimivva ( 𝜑 → ∀ 𝑙𝑀𝑘𝑁 ( 𝑙 ( 𝐼 𝐹 𝑋 ) 𝑘 ) = ( 𝑙 𝑋 𝑘 ) )
80 1 2 8 6 6 7 14 9 mamucl ( 𝜑 → ( 𝐼 𝐹 𝑋 ) ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) )
81 elmapi ( ( 𝐼 𝐹 𝑋 ) ∈ ( 𝐵m ( 𝑀 × 𝑁 ) ) → ( 𝐼 𝐹 𝑋 ) : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
82 80 81 syl ( 𝜑 → ( 𝐼 𝐹 𝑋 ) : ( 𝑀 × 𝑁 ) ⟶ 𝐵 )
83 82 ffnd ( 𝜑 → ( 𝐼 𝐹 𝑋 ) Fn ( 𝑀 × 𝑁 ) )
84 30 ffnd ( 𝜑𝑋 Fn ( 𝑀 × 𝑁 ) )
85 eqfnov2 ( ( ( 𝐼 𝐹 𝑋 ) Fn ( 𝑀 × 𝑁 ) ∧ 𝑋 Fn ( 𝑀 × 𝑁 ) ) → ( ( 𝐼 𝐹 𝑋 ) = 𝑋 ↔ ∀ 𝑙𝑀𝑘𝑁 ( 𝑙 ( 𝐼 𝐹 𝑋 ) 𝑘 ) = ( 𝑙 𝑋 𝑘 ) ) )
86 83 84 85 syl2anc ( 𝜑 → ( ( 𝐼 𝐹 𝑋 ) = 𝑋 ↔ ∀ 𝑙𝑀𝑘𝑁 ( 𝑙 ( 𝐼 𝐹 𝑋 ) 𝑘 ) = ( 𝑙 𝑋 𝑘 ) ) )
87 79 86 mpbird ( 𝜑 → ( 𝐼 𝐹 𝑋 ) = 𝑋 )