This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: A subclass of the identity function is the identity function restricted to its domain. (Contributed by NM, 13-Dec-2003) (Proof shortened by Andrew Salmon, 27-Aug-2011)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | iss | |- ( A C_ _I <-> A = ( _I |` dom A ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | vex | |- x e. _V |
|
| 2 | vex | |- y e. _V |
|
| 3 | 1 2 | opeldm | |- ( <. x , y >. e. A -> x e. dom A ) |
| 4 | 3 | a1i | |- ( A C_ _I -> ( <. x , y >. e. A -> x e. dom A ) ) |
| 5 | ssel | |- ( A C_ _I -> ( <. x , y >. e. A -> <. x , y >. e. _I ) ) |
|
| 6 | 4 5 | jcad | |- ( A C_ _I -> ( <. x , y >. e. A -> ( x e. dom A /\ <. x , y >. e. _I ) ) ) |
| 7 | df-br | |- ( x _I y <-> <. x , y >. e. _I ) |
|
| 8 | 2 | ideq | |- ( x _I y <-> x = y ) |
| 9 | 7 8 | bitr3i | |- ( <. x , y >. e. _I <-> x = y ) |
| 10 | 1 | eldm2 | |- ( x e. dom A <-> E. y <. x , y >. e. A ) |
| 11 | opeq2 | |- ( x = y -> <. x , x >. = <. x , y >. ) |
|
| 12 | 11 | eleq1d | |- ( x = y -> ( <. x , x >. e. A <-> <. x , y >. e. A ) ) |
| 13 | 12 | biimprcd | |- ( <. x , y >. e. A -> ( x = y -> <. x , x >. e. A ) ) |
| 14 | 9 13 | biimtrid | |- ( <. x , y >. e. A -> ( <. x , y >. e. _I -> <. x , x >. e. A ) ) |
| 15 | 5 14 | sylcom | |- ( A C_ _I -> ( <. x , y >. e. A -> <. x , x >. e. A ) ) |
| 16 | 15 | exlimdv | |- ( A C_ _I -> ( E. y <. x , y >. e. A -> <. x , x >. e. A ) ) |
| 17 | 10 16 | biimtrid | |- ( A C_ _I -> ( x e. dom A -> <. x , x >. e. A ) ) |
| 18 | 12 | imbi2d | |- ( x = y -> ( ( x e. dom A -> <. x , x >. e. A ) <-> ( x e. dom A -> <. x , y >. e. A ) ) ) |
| 19 | 17 18 | syl5ibcom | |- ( A C_ _I -> ( x = y -> ( x e. dom A -> <. x , y >. e. A ) ) ) |
| 20 | 9 19 | biimtrid | |- ( A C_ _I -> ( <. x , y >. e. _I -> ( x e. dom A -> <. x , y >. e. A ) ) ) |
| 21 | 20 | impcomd | |- ( A C_ _I -> ( ( x e. dom A /\ <. x , y >. e. _I ) -> <. x , y >. e. A ) ) |
| 22 | 6 21 | impbid | |- ( A C_ _I -> ( <. x , y >. e. A <-> ( x e. dom A /\ <. x , y >. e. _I ) ) ) |
| 23 | 2 | opelresi | |- ( <. x , y >. e. ( _I |` dom A ) <-> ( x e. dom A /\ <. x , y >. e. _I ) ) |
| 24 | 22 23 | bitr4di | |- ( A C_ _I -> ( <. x , y >. e. A <-> <. x , y >. e. ( _I |` dom A ) ) ) |
| 25 | 24 | alrimivv | |- ( A C_ _I -> A. x A. y ( <. x , y >. e. A <-> <. x , y >. e. ( _I |` dom A ) ) ) |
| 26 | reli | |- Rel _I |
|
| 27 | relss | |- ( A C_ _I -> ( Rel _I -> Rel A ) ) |
|
| 28 | 26 27 | mpi | |- ( A C_ _I -> Rel A ) |
| 29 | relres | |- Rel ( _I |` dom A ) |
|
| 30 | eqrel | |- ( ( Rel A /\ Rel ( _I |` dom A ) ) -> ( A = ( _I |` dom A ) <-> A. x A. y ( <. x , y >. e. A <-> <. x , y >. e. ( _I |` dom A ) ) ) ) |
|
| 31 | 28 29 30 | sylancl | |- ( A C_ _I -> ( A = ( _I |` dom A ) <-> A. x A. y ( <. x , y >. e. A <-> <. x , y >. e. ( _I |` dom A ) ) ) ) |
| 32 | 25 31 | mpbird | |- ( A C_ _I -> A = ( _I |` dom A ) ) |
| 33 | resss | |- ( _I |` dom A ) C_ _I |
|
| 34 | sseq1 | |- ( A = ( _I |` dom A ) -> ( A C_ _I <-> ( _I |` dom A ) C_ _I ) ) |
|
| 35 | 33 34 | mpbiri | |- ( A = ( _I |` dom A ) -> A C_ _I ) |
| 36 | 32 35 | impbii | |- ( A C_ _I <-> A = ( _I |` dom A ) ) |