Metamath Proof Explorer


Theorem lcoop

Description: A linear combination as operation. (Contributed by AV, 5-Apr-2019) (Revised by AV, 28-Jul-2019)

Ref Expression
Hypotheses lcoop.b 𝐵 = ( Base ‘ 𝑀 )
lcoop.s 𝑆 = ( Scalar ‘ 𝑀 )
lcoop.r 𝑅 = ( Base ‘ 𝑆 )
Assertion lcoop ( ( 𝑀𝑋𝑉 ∈ 𝒫 𝐵 ) → ( 𝑀 LinCo 𝑉 ) = { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } )

Proof

Step Hyp Ref Expression
1 lcoop.b 𝐵 = ( Base ‘ 𝑀 )
2 lcoop.s 𝑆 = ( Scalar ‘ 𝑀 )
3 lcoop.r 𝑅 = ( Base ‘ 𝑆 )
4 elex ( 𝑀𝑋𝑀 ∈ V )
5 4 adantr ( ( 𝑀𝑋𝑉 ∈ 𝒫 𝐵 ) → 𝑀 ∈ V )
6 1 pweqi 𝒫 𝐵 = 𝒫 ( Base ‘ 𝑀 )
7 6 eleq2i ( 𝑉 ∈ 𝒫 𝐵𝑉 ∈ 𝒫 ( Base ‘ 𝑀 ) )
8 7 bilani ( ( 𝑀𝑋𝑉 ∈ 𝒫 𝐵 ) → 𝑉 ∈ 𝒫 ( Base ‘ 𝑀 ) )
9 1 fvexi 𝐵 ∈ V
10 rabexg ( 𝐵 ∈ V → { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } ∈ V )
11 9 10 mp1i ( ( 𝑀𝑋𝑉 ∈ 𝒫 𝐵 ) → { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } ∈ V )
12 fveq2 ( 𝑚 = 𝑀 → ( Base ‘ 𝑚 ) = ( Base ‘ 𝑀 ) )
13 12 1 eqtr4di ( 𝑚 = 𝑀 → ( Base ‘ 𝑚 ) = 𝐵 )
14 13 adantr ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( Base ‘ 𝑚 ) = 𝐵 )
15 2fveq3 ( 𝑚 = 𝑀 → ( Base ‘ ( Scalar ‘ 𝑚 ) ) = ( Base ‘ ( Scalar ‘ 𝑀 ) ) )
16 15 adantr ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( Base ‘ ( Scalar ‘ 𝑚 ) ) = ( Base ‘ ( Scalar ‘ 𝑀 ) ) )
17 2 fveq2i ( Base ‘ 𝑆 ) = ( Base ‘ ( Scalar ‘ 𝑀 ) )
18 3 17 eqtri 𝑅 = ( Base ‘ ( Scalar ‘ 𝑀 ) )
19 16 18 eqtr4di ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( Base ‘ ( Scalar ‘ 𝑚 ) ) = 𝑅 )
20 simpr ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → 𝑣 = 𝑉 )
21 19 20 oveq12d ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( ( Base ‘ ( Scalar ‘ 𝑚 ) ) ↑m 𝑣 ) = ( 𝑅m 𝑉 ) )
22 2fveq3 ( 𝑚 = 𝑀 → ( 0g ‘ ( Scalar ‘ 𝑚 ) ) = ( 0g ‘ ( Scalar ‘ 𝑀 ) ) )
23 2 a1i ( 𝑚 = 𝑀𝑆 = ( Scalar ‘ 𝑀 ) )
24 23 eqcomd ( 𝑚 = 𝑀 → ( Scalar ‘ 𝑀 ) = 𝑆 )
25 24 fveq2d ( 𝑚 = 𝑀 → ( 0g ‘ ( Scalar ‘ 𝑀 ) ) = ( 0g𝑆 ) )
26 22 25 eqtrd ( 𝑚 = 𝑀 → ( 0g ‘ ( Scalar ‘ 𝑚 ) ) = ( 0g𝑆 ) )
27 26 adantr ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( 0g ‘ ( Scalar ‘ 𝑚 ) ) = ( 0g𝑆 ) )
28 27 breq2d ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( 𝑠 finSupp ( 0g ‘ ( Scalar ‘ 𝑚 ) ) ↔ 𝑠 finSupp ( 0g𝑆 ) ) )
29 fveq2 ( 𝑚 = 𝑀 → ( linC ‘ 𝑚 ) = ( linC ‘ 𝑀 ) )
30 29 adantr ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( linC ‘ 𝑚 ) = ( linC ‘ 𝑀 ) )
31 eqidd ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → 𝑠 = 𝑠 )
32 30 31 20 oveq123d ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( 𝑠 ( linC ‘ 𝑚 ) 𝑣 ) = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) )
33 32 eqeq2d ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( 𝑐 = ( 𝑠 ( linC ‘ 𝑚 ) 𝑣 ) ↔ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) )
34 28 33 anbi12d ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( ( 𝑠 finSupp ( 0g ‘ ( Scalar ‘ 𝑚 ) ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑚 ) 𝑣 ) ) ↔ ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) ) )
35 21 34 rexeqbidv ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → ( ∃ 𝑠 ∈ ( ( Base ‘ ( Scalar ‘ 𝑚 ) ) ↑m 𝑣 ) ( 𝑠 finSupp ( 0g ‘ ( Scalar ‘ 𝑚 ) ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑚 ) 𝑣 ) ) ↔ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) ) )
36 14 35 rabeqbidv ( ( 𝑚 = 𝑀𝑣 = 𝑉 ) → { 𝑐 ∈ ( Base ‘ 𝑚 ) ∣ ∃ 𝑠 ∈ ( ( Base ‘ ( Scalar ‘ 𝑚 ) ) ↑m 𝑣 ) ( 𝑠 finSupp ( 0g ‘ ( Scalar ‘ 𝑚 ) ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑚 ) 𝑣 ) ) } = { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } )
37 12 pweqd ( 𝑚 = 𝑀 → 𝒫 ( Base ‘ 𝑚 ) = 𝒫 ( Base ‘ 𝑀 ) )
38 df-lco LinCo = ( 𝑚 ∈ V , 𝑣 ∈ 𝒫 ( Base ‘ 𝑚 ) ↦ { 𝑐 ∈ ( Base ‘ 𝑚 ) ∣ ∃ 𝑠 ∈ ( ( Base ‘ ( Scalar ‘ 𝑚 ) ) ↑m 𝑣 ) ( 𝑠 finSupp ( 0g ‘ ( Scalar ‘ 𝑚 ) ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑚 ) 𝑣 ) ) } )
39 36 37 38 ovmpox ( ( 𝑀 ∈ V ∧ 𝑉 ∈ 𝒫 ( Base ‘ 𝑀 ) ∧ { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } ∈ V ) → ( 𝑀 LinCo 𝑉 ) = { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } )
40 5 8 11 39 syl3anc ( ( 𝑀𝑋𝑉 ∈ 𝒫 𝐵 ) → ( 𝑀 LinCo 𝑉 ) = { 𝑐𝐵 ∣ ∃ 𝑠 ∈ ( 𝑅m 𝑉 ) ( 𝑠 finSupp ( 0g𝑆 ) ∧ 𝑐 = ( 𝑠 ( linC ‘ 𝑀 ) 𝑉 ) ) } )