# Metamath Proof Explorer

## Theorem homco2

Description: Move a scalar product out of a composition of operators. The operator T must be linear, unlike homco1 that works for any operators. (Contributed by NM, 13-Aug-2006) (New usage is discouraged.)

Ref Expression
Assertion homco2
`|- ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( T o. ( A .op U ) ) = ( A .op ( T o. U ) ) )`

### Proof

Step Hyp Ref Expression
1 simpl1
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> A e. CC )`
2 simpl3
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> U : ~H --> ~H )`
3 simpr
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> x e. ~H )`
4 homval
` |-  ( ( A e. CC /\ U : ~H --> ~H /\ x e. ~H ) -> ( ( A .op U ) ` x ) = ( A .h ( U ` x ) ) )`
5 1 2 3 4 syl3anc
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( ( A .op U ) ` x ) = ( A .h ( U ` x ) ) )`
6 5 fveq2d
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( T ` ( ( A .op U ) ` x ) ) = ( T ` ( A .h ( U ` x ) ) ) )`
7 homulcl
` |-  ( ( A e. CC /\ U : ~H --> ~H ) -> ( A .op U ) : ~H --> ~H )`
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( A .op U ) : ~H --> ~H )`
9 fvco3
` |-  ( ( ( A .op U ) : ~H --> ~H /\ x e. ~H ) -> ( ( T o. ( A .op U ) ) ` x ) = ( T ` ( ( A .op U ) ` x ) ) )`
10 8 9 sylan
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( ( T o. ( A .op U ) ) ` x ) = ( T ` ( ( A .op U ) ` x ) ) )`
11 fvco3
` |-  ( ( U : ~H --> ~H /\ x e. ~H ) -> ( ( T o. U ) ` x ) = ( T ` ( U ` x ) ) )`
12 2 3 11 syl2anc
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( ( T o. U ) ` x ) = ( T ` ( U ` x ) ) )`
13 12 oveq2d
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( A .h ( ( T o. U ) ` x ) ) = ( A .h ( T ` ( U ` x ) ) ) )`
14 lnopf
` |-  ( T e. LinOp -> T : ~H --> ~H )`
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> T : ~H --> ~H )`
16 simp3
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> U : ~H --> ~H )`
17 fco
` |-  ( ( T : ~H --> ~H /\ U : ~H --> ~H ) -> ( T o. U ) : ~H --> ~H )`
18 15 16 17 syl2anc
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( T o. U ) : ~H --> ~H )`
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( T o. U ) : ~H --> ~H )`
20 homval
` |-  ( ( A e. CC /\ ( T o. U ) : ~H --> ~H /\ x e. ~H ) -> ( ( A .op ( T o. U ) ) ` x ) = ( A .h ( ( T o. U ) ` x ) ) )`
21 1 19 3 20 syl3anc
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( ( A .op ( T o. U ) ) ` x ) = ( A .h ( ( T o. U ) ` x ) ) )`
22 simpl2
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> T e. LinOp )`
23 16 ffvelrnda
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( U ` x ) e. ~H )`
24 lnopmul
` |-  ( ( T e. LinOp /\ A e. CC /\ ( U ` x ) e. ~H ) -> ( T ` ( A .h ( U ` x ) ) ) = ( A .h ( T ` ( U ` x ) ) ) )`
25 22 1 23 24 syl3anc
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( T ` ( A .h ( U ` x ) ) ) = ( A .h ( T ` ( U ` x ) ) ) )`
26 13 21 25 3eqtr4d
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( ( A .op ( T o. U ) ) ` x ) = ( T ` ( A .h ( U ` x ) ) ) )`
27 6 10 26 3eqtr4d
` |-  ( ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) /\ x e. ~H ) -> ( ( T o. ( A .op U ) ) ` x ) = ( ( A .op ( T o. U ) ) ` x ) )`
28 27 ralrimiva
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> A. x e. ~H ( ( T o. ( A .op U ) ) ` x ) = ( ( A .op ( T o. U ) ) ` x ) )`
29 fco
` |-  ( ( T : ~H --> ~H /\ ( A .op U ) : ~H --> ~H ) -> ( T o. ( A .op U ) ) : ~H --> ~H )`
30 15 8 29 syl2anc
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( T o. ( A .op U ) ) : ~H --> ~H )`
31 simp1
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> A e. CC )`
32 homulcl
` |-  ( ( A e. CC /\ ( T o. U ) : ~H --> ~H ) -> ( A .op ( T o. U ) ) : ~H --> ~H )`
33 31 18 32 syl2anc
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( A .op ( T o. U ) ) : ~H --> ~H )`
34 hoeq
` |-  ( ( ( T o. ( A .op U ) ) : ~H --> ~H /\ ( A .op ( T o. U ) ) : ~H --> ~H ) -> ( A. x e. ~H ( ( T o. ( A .op U ) ) ` x ) = ( ( A .op ( T o. U ) ) ` x ) <-> ( T o. ( A .op U ) ) = ( A .op ( T o. U ) ) ) )`
35 30 33 34 syl2anc
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( A. x e. ~H ( ( T o. ( A .op U ) ) ` x ) = ( ( A .op ( T o. U ) ) ` x ) <-> ( T o. ( A .op U ) ) = ( A .op ( T o. U ) ) ) )`
36 28 35 mpbid
` |-  ( ( A e. CC /\ T e. LinOp /\ U : ~H --> ~H ) -> ( T o. ( A .op U ) ) = ( A .op ( T o. U ) ) )`