Metamath Proof Explorer


Theorem dipass

Description: Associative law for inner product. Equation I2 of Ponnusamy p. 363. (Contributed by NM, 25-Aug-2007) (New usage is discouraged.)

Ref Expression
Hypotheses ipass.1
|- X = ( BaseSet ` U )
ipass.4
|- S = ( .sOLD ` U )
ipass.7
|- P = ( .iOLD ` U )
Assertion dipass
|- ( ( U e. CPreHilOLD /\ ( A e. CC /\ B e. X /\ C e. X ) ) -> ( ( A S B ) P C ) = ( A x. ( B P C ) ) )

Proof

Step Hyp Ref Expression
1 ipass.1
 |-  X = ( BaseSet ` U )
2 ipass.4
 |-  S = ( .sOLD ` U )
3 ipass.7
 |-  P = ( .iOLD ` U )
4 fveq2
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( BaseSet ` U ) = ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) )
5 1 4 eqtrid
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> X = ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) )
6 5 eleq2d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( B e. X <-> B e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) ) )
7 5 eleq2d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( C e. X <-> C e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) ) )
8 6 7 3anbi23d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( ( A e. CC /\ B e. X /\ C e. X ) <-> ( A e. CC /\ B e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) /\ C e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) ) ) )
9 fveq2
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( .sOLD ` U ) = ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) )
10 2 9 eqtrid
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> S = ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) )
11 10 oveqd
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( A S B ) = ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) )
12 11 oveq1d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( ( A S B ) P C ) = ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) P C ) )
13 fveq2
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( .iOLD ` U ) = ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) )
14 3 13 eqtrid
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> P = ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) )
15 14 oveqd
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) P C ) = ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) )
16 12 15 eqtrd
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( ( A S B ) P C ) = ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) )
17 14 oveqd
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( B P C ) = ( B ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) )
18 17 oveq2d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( A x. ( B P C ) ) = ( A x. ( B ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) ) )
19 16 18 eqeq12d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( ( ( A S B ) P C ) = ( A x. ( B P C ) ) <-> ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) = ( A x. ( B ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) ) ) )
20 8 19 imbi12d
 |-  ( U = if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) -> ( ( ( A e. CC /\ B e. X /\ C e. X ) -> ( ( A S B ) P C ) = ( A x. ( B P C ) ) ) <-> ( ( A e. CC /\ B e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) /\ C e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) ) -> ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) = ( A x. ( B ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) ) ) ) )
21 eqid
 |-  ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) = ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) )
22 eqid
 |-  ( +v ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) = ( +v ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) )
23 eqid
 |-  ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) = ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) )
24 eqid
 |-  ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) = ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) )
25 elimphu
 |-  if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) e. CPreHilOLD
26 21 22 23 24 25 ipassi
 |-  ( ( A e. CC /\ B e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) /\ C e. ( BaseSet ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) ) -> ( ( A ( .sOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) B ) ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) = ( A x. ( B ( .iOLD ` if ( U e. CPreHilOLD , U , <. <. + , x. >. , abs >. ) ) C ) ) )
27 20 26 dedth
 |-  ( U e. CPreHilOLD -> ( ( A e. CC /\ B e. X /\ C e. X ) -> ( ( A S B ) P C ) = ( A x. ( B P C ) ) ) )
28 27 imp
 |-  ( ( U e. CPreHilOLD /\ ( A e. CC /\ B e. X /\ C e. X ) ) -> ( ( A S B ) P C ) = ( A x. ( B P C ) ) )