Metamath Proof Explorer


Theorem xadddi2r

Description: Commuted version of xadddi2 . (Contributed by Mario Carneiro, 20-Aug-2015)

Ref Expression
Assertion xadddi2r
|- ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( ( A +e B ) *e C ) = ( ( A *e C ) +e ( B *e C ) ) )

Proof

Step Hyp Ref Expression
1 xadddi2
 |-  ( ( C e. RR* /\ ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) ) -> ( C *e ( A +e B ) ) = ( ( C *e A ) +e ( C *e B ) ) )
2 1 3coml
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( C *e ( A +e B ) ) = ( ( C *e A ) +e ( C *e B ) ) )
3 simp1l
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> A e. RR* )
4 simp2l
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> B e. RR* )
5 xaddcl
 |-  ( ( A e. RR* /\ B e. RR* ) -> ( A +e B ) e. RR* )
6 3 4 5 syl2anc
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( A +e B ) e. RR* )
7 simp3
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> C e. RR* )
8 xmulcom
 |-  ( ( ( A +e B ) e. RR* /\ C e. RR* ) -> ( ( A +e B ) *e C ) = ( C *e ( A +e B ) ) )
9 6 7 8 syl2anc
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( ( A +e B ) *e C ) = ( C *e ( A +e B ) ) )
10 xmulcom
 |-  ( ( A e. RR* /\ C e. RR* ) -> ( A *e C ) = ( C *e A ) )
11 3 7 10 syl2anc
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( A *e C ) = ( C *e A ) )
12 xmulcom
 |-  ( ( B e. RR* /\ C e. RR* ) -> ( B *e C ) = ( C *e B ) )
13 4 7 12 syl2anc
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( B *e C ) = ( C *e B ) )
14 11 13 oveq12d
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( ( A *e C ) +e ( B *e C ) ) = ( ( C *e A ) +e ( C *e B ) ) )
15 2 9 14 3eqtr4d
 |-  ( ( ( A e. RR* /\ 0 <_ A ) /\ ( B e. RR* /\ 0 <_ B ) /\ C e. RR* ) -> ( ( A +e B ) *e C ) = ( ( A *e C ) +e ( B *e C ) ) )