Metamath Proof Explorer


Theorem fcof1

Description: An application is injective if a retraction exists. Proposition 8 of BourbakiEns p. E.II.18. (Contributed by FL, 11-Nov-2011) (Revised by Mario Carneiro, 27-Dec-2014)

Ref Expression
Assertion fcof1
|- ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) -> F : A -1-1-> B )

Proof

Step Hyp Ref Expression
1 simpl
 |-  ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) -> F : A --> B )
2 simprr
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( F ` x ) = ( F ` y ) )
3 2 fveq2d
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( R ` ( F ` x ) ) = ( R ` ( F ` y ) ) )
4 simpll
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> F : A --> B )
5 simprll
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> x e. A )
6 fvco3
 |-  ( ( F : A --> B /\ x e. A ) -> ( ( R o. F ) ` x ) = ( R ` ( F ` x ) ) )
7 4 5 6 syl2anc
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( R o. F ) ` x ) = ( R ` ( F ` x ) ) )
8 simprlr
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> y e. A )
9 fvco3
 |-  ( ( F : A --> B /\ y e. A ) -> ( ( R o. F ) ` y ) = ( R ` ( F ` y ) ) )
10 4 8 9 syl2anc
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( R o. F ) ` y ) = ( R ` ( F ` y ) ) )
11 3 7 10 3eqtr4d
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( R o. F ) ` x ) = ( ( R o. F ) ` y ) )
12 simplr
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( R o. F ) = ( _I |` A ) )
13 12 fveq1d
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( R o. F ) ` x ) = ( ( _I |` A ) ` x ) )
14 12 fveq1d
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( R o. F ) ` y ) = ( ( _I |` A ) ` y ) )
15 11 13 14 3eqtr3d
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( _I |` A ) ` x ) = ( ( _I |` A ) ` y ) )
16 fvresi
 |-  ( x e. A -> ( ( _I |` A ) ` x ) = x )
17 5 16 syl
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( _I |` A ) ` x ) = x )
18 fvresi
 |-  ( y e. A -> ( ( _I |` A ) ` y ) = y )
19 8 18 syl
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> ( ( _I |` A ) ` y ) = y )
20 15 17 19 3eqtr3d
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( ( x e. A /\ y e. A ) /\ ( F ` x ) = ( F ` y ) ) ) -> x = y )
21 20 expr
 |-  ( ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) /\ ( x e. A /\ y e. A ) ) -> ( ( F ` x ) = ( F ` y ) -> x = y ) )
22 21 ralrimivva
 |-  ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) -> A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) )
23 dff13
 |-  ( F : A -1-1-> B <-> ( F : A --> B /\ A. x e. A A. y e. A ( ( F ` x ) = ( F ` y ) -> x = y ) ) )
24 1 22 23 sylanbrc
 |-  ( ( F : A --> B /\ ( R o. F ) = ( _I |` A ) ) -> F : A -1-1-> B )