Metamath Proof Explorer


Theorem sravsca

Description: The scalar product operation of a subring algebra. (Contributed by Stefan O'Rear, 27-Nov-2014) (Revised by Mario Carneiro, 4-Oct-2015) (Revised by Thierry Arnoux, 16-Jun-2019) (Proof shortened by AV, 12-Nov-2024)

Ref Expression
Hypotheses srapart.a
|- ( ph -> A = ( ( subringAlg ` W ) ` S ) )
srapart.s
|- ( ph -> S C_ ( Base ` W ) )
Assertion sravsca
|- ( ph -> ( .r ` W ) = ( .s ` A ) )

Proof

Step Hyp Ref Expression
1 srapart.a
 |-  ( ph -> A = ( ( subringAlg ` W ) ` S ) )
2 srapart.s
 |-  ( ph -> S C_ ( Base ` W ) )
3 ovex
 |-  ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) e. _V
4 fvex
 |-  ( .r ` W ) e. _V
5 vscaid
 |-  .s = Slot ( .s ` ndx )
6 5 setsid
 |-  ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) e. _V /\ ( .r ` W ) e. _V ) -> ( .r ` W ) = ( .s ` ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) ) )
7 3 4 6 mp2an
 |-  ( .r ` W ) = ( .s ` ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) )
8 slotsdifipndx
 |-  ( ( .s ` ndx ) =/= ( .i ` ndx ) /\ ( Scalar ` ndx ) =/= ( .i ` ndx ) )
9 8 simpli
 |-  ( .s ` ndx ) =/= ( .i ` ndx )
10 5 9 setsnid
 |-  ( .s ` ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) ) = ( .s ` ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) )
11 7 10 eqtri
 |-  ( .r ` W ) = ( .s ` ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) )
12 1 adantl
 |-  ( ( W e. _V /\ ph ) -> A = ( ( subringAlg ` W ) ` S ) )
13 sraval
 |-  ( ( W e. _V /\ S C_ ( Base ` W ) ) -> ( ( subringAlg ` W ) ` S ) = ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) )
14 2 13 sylan2
 |-  ( ( W e. _V /\ ph ) -> ( ( subringAlg ` W ) ` S ) = ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) )
15 12 14 eqtrd
 |-  ( ( W e. _V /\ ph ) -> A = ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) )
16 15 fveq2d
 |-  ( ( W e. _V /\ ph ) -> ( .s ` A ) = ( .s ` ( ( ( W sSet <. ( Scalar ` ndx ) , ( W |`s S ) >. ) sSet <. ( .s ` ndx ) , ( .r ` W ) >. ) sSet <. ( .i ` ndx ) , ( .r ` W ) >. ) ) )
17 11 16 eqtr4id
 |-  ( ( W e. _V /\ ph ) -> ( .r ` W ) = ( .s ` A ) )
18 5 str0
 |-  (/) = ( .s ` (/) )
19 fvprc
 |-  ( -. W e. _V -> ( .r ` W ) = (/) )
20 19 adantr
 |-  ( ( -. W e. _V /\ ph ) -> ( .r ` W ) = (/) )
21 fv2prc
 |-  ( -. W e. _V -> ( ( subringAlg ` W ) ` S ) = (/) )
22 1 21 sylan9eqr
 |-  ( ( -. W e. _V /\ ph ) -> A = (/) )
23 22 fveq2d
 |-  ( ( -. W e. _V /\ ph ) -> ( .s ` A ) = ( .s ` (/) ) )
24 18 20 23 3eqtr4a
 |-  ( ( -. W e. _V /\ ph ) -> ( .r ` W ) = ( .s ` A ) )
25 17 24 pm2.61ian
 |-  ( ph -> ( .r ` W ) = ( .s ` A ) )