This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
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 ) ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | ffvelcdm | |- ( ( 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 ) ) ) ) |