Metamath Proof Explorer


Theorem fcompt

Description: Express composition of two functions as a maps-to applying both in sequence. (Contributed by Stefan O'Rear, 5-Oct-2014) (Proof shortened by Mario Carneiro, 27-Dec-2014)

Ref Expression
Assertion fcompt
|- ( ( A : D --> E /\ B : C --> D ) -> ( A o. B ) = ( x e. C |-> ( A ` ( B ` x ) ) ) )

Proof

Step Hyp Ref Expression
1 ffvelrn
 |-  ( ( B : C --> D /\ x e. C ) -> ( B ` x ) e. D )
2 1 adantll
 |-  ( ( ( A : D --> E /\ B : C --> D ) /\ x e. C ) -> ( B ` x ) e. D )
3 ffn
 |-  ( B : C --> D -> B Fn C )
4 3 adantl
 |-  ( ( A : D --> E /\ B : C --> D ) -> B Fn C )
5 dffn5
 |-  ( B Fn C <-> B = ( x e. C |-> ( B ` x ) ) )
6 4 5 sylib
 |-  ( ( A : D --> E /\ B : C --> D ) -> B = ( x e. C |-> ( B ` x ) ) )
7 ffn
 |-  ( A : D --> E -> A Fn D )
8 7 adantr
 |-  ( ( A : D --> E /\ B : C --> D ) -> A Fn D )
9 dffn5
 |-  ( A Fn D <-> A = ( y e. D |-> ( A ` y ) ) )
10 8 9 sylib
 |-  ( ( A : D --> E /\ B : C --> D ) -> A = ( y e. D |-> ( A ` y ) ) )
11 fveq2
 |-  ( y = ( B ` x ) -> ( A ` y ) = ( A ` ( B ` x ) ) )
12 2 6 10 11 fmptco
 |-  ( ( A : D --> E /\ B : C --> D ) -> ( A o. B ) = ( x e. C |-> ( A ` ( B ` x ) ) ) )