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 )
8 7 3adant2
 |-  ( ( 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 )
15 14 3ad2ant2
 |-  ( ( 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 )
19 18 adantr
 |-  ( ( ( 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 ) ) )