Metamath Proof Explorer


Theorem uvcff

Description: Domain and range of the unit vector generator; ring condition required to be sure 1 and 0 are actually in the ring. (Contributed by Stefan O'Rear, 1-Feb-2015) (Proof shortened by AV, 21-Jul-2019)

Ref Expression
Hypotheses uvcff.u 𝑈 = ( 𝑅 unitVec 𝐼 )
uvcff.y 𝑌 = ( 𝑅 freeLMod 𝐼 )
uvcff.b 𝐵 = ( Base ‘ 𝑌 )
Assertion uvcff ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) → 𝑈 : 𝐼𝐵 )

Proof

Step Hyp Ref Expression
1 uvcff.u 𝑈 = ( 𝑅 unitVec 𝐼 )
2 uvcff.y 𝑌 = ( 𝑅 freeLMod 𝐼 )
3 uvcff.b 𝐵 = ( Base ‘ 𝑌 )
4 eqid ( 1r𝑅 ) = ( 1r𝑅 )
5 eqid ( 0g𝑅 ) = ( 0g𝑅 )
6 1 4 5 uvcfval ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) → 𝑈 = ( 𝑖𝐼 ↦ ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ) )
7 eqid ( Base ‘ 𝑅 ) = ( Base ‘ 𝑅 )
8 7 4 ringidcl ( 𝑅 ∈ Ring → ( 1r𝑅 ) ∈ ( Base ‘ 𝑅 ) )
9 7 5 ring0cl ( 𝑅 ∈ Ring → ( 0g𝑅 ) ∈ ( Base ‘ 𝑅 ) )
10 8 9 ifcld ( 𝑅 ∈ Ring → if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ∈ ( Base ‘ 𝑅 ) )
11 10 ad3antrrr ( ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) ∧ 𝑗𝐼 ) → if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ∈ ( Base ‘ 𝑅 ) )
12 11 fmpttd ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) : 𝐼 ⟶ ( Base ‘ 𝑅 ) )
13 fvex ( Base ‘ 𝑅 ) ∈ V
14 elmapg ( ( ( Base ‘ 𝑅 ) ∈ V ∧ 𝐼𝑊 ) → ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ ( ( Base ‘ 𝑅 ) ↑m 𝐼 ) ↔ ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) : 𝐼 ⟶ ( Base ‘ 𝑅 ) ) )
15 13 14 mpan ( 𝐼𝑊 → ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ ( ( Base ‘ 𝑅 ) ↑m 𝐼 ) ↔ ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) : 𝐼 ⟶ ( Base ‘ 𝑅 ) ) )
16 15 ad2antlr ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ ( ( Base ‘ 𝑅 ) ↑m 𝐼 ) ↔ ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) : 𝐼 ⟶ ( Base ‘ 𝑅 ) ) )
17 12 16 mpbird ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ ( ( Base ‘ 𝑅 ) ↑m 𝐼 ) )
18 mptexg ( 𝐼𝑊 → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ V )
19 18 ad2antlr ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ V )
20 funmpt Fun ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) )
21 20 a1i ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → Fun ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) )
22 fvex ( 0g𝑅 ) ∈ V
23 22 a1i ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( 0g𝑅 ) ∈ V )
24 snfi { 𝑖 } ∈ Fin
25 24 a1i ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → { 𝑖 } ∈ Fin )
26 eldifsni ( 𝑗 ∈ ( 𝐼 ∖ { 𝑖 } ) → 𝑗𝑖 )
27 26 adantl ( ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) ∧ 𝑗 ∈ ( 𝐼 ∖ { 𝑖 } ) ) → 𝑗𝑖 )
28 27 neneqd ( ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) ∧ 𝑗 ∈ ( 𝐼 ∖ { 𝑖 } ) ) → ¬ 𝑗 = 𝑖 )
29 28 iffalsed ( ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) ∧ 𝑗 ∈ ( 𝐼 ∖ { 𝑖 } ) ) → if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) = ( 0g𝑅 ) )
30 simplr ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → 𝐼𝑊 )
31 29 30 suppss2 ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) supp ( 0g𝑅 ) ) ⊆ { 𝑖 } )
32 suppssfifsupp ( ( ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ V ∧ Fun ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∧ ( 0g𝑅 ) ∈ V ) ∧ ( { 𝑖 } ∈ Fin ∧ ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) supp ( 0g𝑅 ) ) ⊆ { 𝑖 } ) ) → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) finSupp ( 0g𝑅 ) )
33 19 21 23 25 31 32 syl32anc ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) finSupp ( 0g𝑅 ) )
34 2 7 5 3 frlmelbas ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) → ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ 𝐵 ↔ ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ ( ( Base ‘ 𝑅 ) ↑m 𝐼 ) ∧ ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) finSupp ( 0g𝑅 ) ) ) )
35 34 adantr ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ 𝐵 ↔ ( ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ ( ( Base ‘ 𝑅 ) ↑m 𝐼 ) ∧ ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) finSupp ( 0g𝑅 ) ) ) )
36 17 33 35 mpbir2and ( ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) ∧ 𝑖𝐼 ) → ( 𝑗𝐼 ↦ if ( 𝑗 = 𝑖 , ( 1r𝑅 ) , ( 0g𝑅 ) ) ) ∈ 𝐵 )
37 6 36 fmpt3d ( ( 𝑅 ∈ Ring ∧ 𝐼𝑊 ) → 𝑈 : 𝐼𝐵 )