Metamath Proof Explorer


Theorem frlmbas

Description: Base set of the free module. (Contributed by Stefan O'Rear, 1-Feb-2015) (Revised by AV, 23-Jun-2019)

Ref Expression
Hypotheses frlmval.f 𝐹 = ( 𝑅 freeLMod 𝐼 )
frlmbas.n 𝑁 = ( Base ‘ 𝑅 )
frlmbas.z 0 = ( 0g𝑅 )
frlmbas.b 𝐵 = { 𝑘 ∈ ( 𝑁m 𝐼 ) ∣ 𝑘 finSupp 0 }
Assertion frlmbas ( ( 𝑅𝑉𝐼𝑊 ) → 𝐵 = ( Base ‘ 𝐹 ) )

Proof

Step Hyp Ref Expression
1 frlmval.f 𝐹 = ( 𝑅 freeLMod 𝐼 )
2 frlmbas.n 𝑁 = ( Base ‘ 𝑅 )
3 frlmbas.z 0 = ( 0g𝑅 )
4 frlmbas.b 𝐵 = { 𝑘 ∈ ( 𝑁m 𝐼 ) ∣ 𝑘 finSupp 0 }
5 fvex ( ringLMod ‘ 𝑅 ) ∈ V
6 fnconstg ( ( ringLMod ‘ 𝑅 ) ∈ V → ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) Fn 𝐼 )
7 5 6 ax-mp ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) Fn 𝐼
8 eqid ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) = ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) )
9 eqid { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } = { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin }
10 8 9 dsmmbas2 ( ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) Fn 𝐼𝐼𝑊 ) → { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } = ( Base ‘ ( 𝑅m ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) )
11 7 10 mpan ( 𝐼𝑊 → { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } = ( Base ‘ ( 𝑅m ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) )
12 11 adantl ( ( 𝑅𝑉𝐼𝑊 ) → { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } = ( Base ‘ ( 𝑅m ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) )
13 fvco2 ( ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) Fn 𝐼𝑥𝐼 ) → ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) = ( 0g ‘ ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) ) )
14 7 13 mpan ( 𝑥𝐼 → ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) = ( 0g ‘ ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) ) )
15 14 adantl ( ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) ∧ 𝑥𝐼 ) → ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) = ( 0g ‘ ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) ) )
16 5 fvconst2 ( 𝑥𝐼 → ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) = ( ringLMod ‘ 𝑅 ) )
17 16 adantl ( ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) ∧ 𝑥𝐼 ) → ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) = ( ringLMod ‘ 𝑅 ) )
18 17 fveq2d ( ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) ∧ 𝑥𝐼 ) → ( 0g ‘ ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) ) = ( 0g ‘ ( ringLMod ‘ 𝑅 ) ) )
19 rlm0 ( 0g𝑅 ) = ( 0g ‘ ( ringLMod ‘ 𝑅 ) )
20 3 19 eqtri 0 = ( 0g ‘ ( ringLMod ‘ 𝑅 ) )
21 18 20 eqtr4di ( ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) ∧ 𝑥𝐼 ) → ( 0g ‘ ( ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ‘ 𝑥 ) ) = 0 )
22 15 21 eqtrd ( ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) ∧ 𝑥𝐼 ) → ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) = 0 )
23 22 neeq2d ( ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) ∧ 𝑥𝐼 ) → ( ( 𝑘𝑥 ) ≠ ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) ↔ ( 𝑘𝑥 ) ≠ 0 ) )
24 23 rabbidva ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → { 𝑥𝐼 ∣ ( 𝑘𝑥 ) ≠ ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) } = { 𝑥𝐼 ∣ ( 𝑘𝑥 ) ≠ 0 } )
25 elmapfn ( 𝑘 ∈ ( 𝑁m 𝐼 ) → 𝑘 Fn 𝐼 )
26 25 adantl ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → 𝑘 Fn 𝐼 )
27 fn0g 0g Fn V
28 ssv ran ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ⊆ V
29 fnco ( ( 0g Fn V ∧ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) Fn 𝐼 ∧ ran ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ⊆ V ) → ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) Fn 𝐼 )
30 27 7 28 29 mp3an ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) Fn 𝐼
31 fndmdif ( ( 𝑘 Fn 𝐼 ∧ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) Fn 𝐼 ) → dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) = { 𝑥𝐼 ∣ ( 𝑘𝑥 ) ≠ ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) } )
32 26 30 31 sylancl ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) = { 𝑥𝐼 ∣ ( 𝑘𝑥 ) ≠ ( ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ‘ 𝑥 ) } )
33 simplr ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → 𝐼𝑊 )
34 3 fvexi 0 ∈ V
35 34 a1i ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → 0 ∈ V )
36 suppvalfn ( ( 𝑘 Fn 𝐼𝐼𝑊0 ∈ V ) → ( 𝑘 supp 0 ) = { 𝑥𝐼 ∣ ( 𝑘𝑥 ) ≠ 0 } )
37 26 33 35 36 syl3anc ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → ( 𝑘 supp 0 ) = { 𝑥𝐼 ∣ ( 𝑘𝑥 ) ≠ 0 } )
38 24 32 37 3eqtr4d ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) = ( 𝑘 supp 0 ) )
39 38 eleq1d ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → ( dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin ↔ ( 𝑘 supp 0 ) ∈ Fin ) )
40 elmapfun ( 𝑘 ∈ ( 𝑁m 𝐼 ) → Fun 𝑘 )
41 id ( 𝑘 ∈ ( 𝑁m 𝐼 ) → 𝑘 ∈ ( 𝑁m 𝐼 ) )
42 34 a1i ( 𝑘 ∈ ( 𝑁m 𝐼 ) → 0 ∈ V )
43 40 41 42 3jca ( 𝑘 ∈ ( 𝑁m 𝐼 ) → ( Fun 𝑘𝑘 ∈ ( 𝑁m 𝐼 ) ∧ 0 ∈ V ) )
44 43 adantl ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → ( Fun 𝑘𝑘 ∈ ( 𝑁m 𝐼 ) ∧ 0 ∈ V ) )
45 funisfsupp ( ( Fun 𝑘𝑘 ∈ ( 𝑁m 𝐼 ) ∧ 0 ∈ V ) → ( 𝑘 finSupp 0 ↔ ( 𝑘 supp 0 ) ∈ Fin ) )
46 44 45 syl ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → ( 𝑘 finSupp 0 ↔ ( 𝑘 supp 0 ) ∈ Fin ) )
47 39 46 bitr4d ( ( ( 𝑅𝑉𝐼𝑊 ) ∧ 𝑘 ∈ ( 𝑁m 𝐼 ) ) → ( dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin ↔ 𝑘 finSupp 0 ) )
48 47 rabbidva ( ( 𝑅𝑉𝐼𝑊 ) → { 𝑘 ∈ ( 𝑁m 𝐼 ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } = { 𝑘 ∈ ( 𝑁m 𝐼 ) ∣ 𝑘 finSupp 0 } )
49 eqid ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) = ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 )
50 rlmbas ( Base ‘ 𝑅 ) = ( Base ‘ ( ringLMod ‘ 𝑅 ) )
51 2 50 eqtri 𝑁 = ( Base ‘ ( ringLMod ‘ 𝑅 ) )
52 49 51 pwsbas ( ( ( ringLMod ‘ 𝑅 ) ∈ V ∧ 𝐼𝑊 ) → ( 𝑁m 𝐼 ) = ( Base ‘ ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) ) )
53 5 52 mpan ( 𝐼𝑊 → ( 𝑁m 𝐼 ) = ( Base ‘ ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) ) )
54 53 adantl ( ( 𝑅𝑉𝐼𝑊 ) → ( 𝑁m 𝐼 ) = ( Base ‘ ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) ) )
55 eqid ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) = ( Scalar ‘ ( ringLMod ‘ 𝑅 ) )
56 49 55 pwsval ( ( ( ringLMod ‘ 𝑅 ) ∈ V ∧ 𝐼𝑊 ) → ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) = ( ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) )
57 5 56 mpan ( 𝐼𝑊 → ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) = ( ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) )
58 57 adantl ( ( 𝑅𝑉𝐼𝑊 ) → ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) = ( ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) )
59 rlmsca ( 𝑅𝑉𝑅 = ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) )
60 59 adantr ( ( 𝑅𝑉𝐼𝑊 ) → 𝑅 = ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) )
61 60 oveq1d ( ( 𝑅𝑉𝐼𝑊 ) → ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) = ( ( Scalar ‘ ( ringLMod ‘ 𝑅 ) ) Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) )
62 58 61 eqtr4d ( ( 𝑅𝑉𝐼𝑊 ) → ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) = ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) )
63 62 fveq2d ( ( 𝑅𝑉𝐼𝑊 ) → ( Base ‘ ( ( ringLMod ‘ 𝑅 ) ↑s 𝐼 ) ) = ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) )
64 54 63 eqtrd ( ( 𝑅𝑉𝐼𝑊 ) → ( 𝑁m 𝐼 ) = ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) )
65 64 rabeqdv ( ( 𝑅𝑉𝐼𝑊 ) → { 𝑘 ∈ ( 𝑁m 𝐼 ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } = { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } )
66 48 65 eqtr3d ( ( 𝑅𝑉𝐼𝑊 ) → { 𝑘 ∈ ( 𝑁m 𝐼 ) ∣ 𝑘 finSupp 0 } = { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } )
67 4 66 eqtrid ( ( 𝑅𝑉𝐼𝑊 ) → 𝐵 = { 𝑘 ∈ ( Base ‘ ( 𝑅 Xs ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∣ dom ( 𝑘 ∖ ( 0g ∘ ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) ∈ Fin } )
68 1 frlmval ( ( 𝑅𝑉𝐼𝑊 ) → 𝐹 = ( 𝑅m ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) )
69 68 fveq2d ( ( 𝑅𝑉𝐼𝑊 ) → ( Base ‘ 𝐹 ) = ( Base ‘ ( 𝑅m ( 𝐼 × { ( ringLMod ‘ 𝑅 ) } ) ) ) )
70 12 67 69 3eqtr4d ( ( 𝑅𝑉𝐼𝑊 ) → 𝐵 = ( Base ‘ 𝐹 ) )