This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Two set exponentiations are equinumerous when their bases and exponents are equinumerous. Theorem 6H(c) of Enderton p. 139. (Contributed by NM, 16-Dec-2003) (Proof shortened by Mario Carneiro, 26-Apr-2015)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | mapen | |- ( ( A ~~ B /\ C ~~ D ) -> ( A ^m C ) ~~ ( B ^m D ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | bren | |- ( A ~~ B <-> E. f f : A -1-1-onto-> B ) |
|
| 2 | bren | |- ( C ~~ D <-> E. g g : C -1-1-onto-> D ) |
|
| 3 | exdistrv | |- ( E. f E. g ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) <-> ( E. f f : A -1-1-onto-> B /\ E. g g : C -1-1-onto-> D ) ) |
|
| 4 | ovexd | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( A ^m C ) e. _V ) |
|
| 5 | ovexd | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( B ^m D ) e. _V ) |
|
| 6 | elmapi | |- ( x e. ( A ^m C ) -> x : C --> A ) |
|
| 7 | f1of | |- ( f : A -1-1-onto-> B -> f : A --> B ) |
|
| 8 | 7 | adantr | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> f : A --> B ) |
| 9 | fco | |- ( ( f : A --> B /\ x : C --> A ) -> ( f o. x ) : C --> B ) |
|
| 10 | 8 9 | sylan | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ x : C --> A ) -> ( f o. x ) : C --> B ) |
| 11 | f1ocnv | |- ( g : C -1-1-onto-> D -> `' g : D -1-1-onto-> C ) |
|
| 12 | 11 | adantl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> `' g : D -1-1-onto-> C ) |
| 13 | f1of | |- ( `' g : D -1-1-onto-> C -> `' g : D --> C ) |
|
| 14 | 12 13 | syl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> `' g : D --> C ) |
| 15 | 14 | adantr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ x : C --> A ) -> `' g : D --> C ) |
| 16 | 10 15 | fcod | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ x : C --> A ) -> ( ( f o. x ) o. `' g ) : D --> B ) |
| 17 | 16 | ex | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( x : C --> A -> ( ( f o. x ) o. `' g ) : D --> B ) ) |
| 18 | 6 17 | syl5 | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( x e. ( A ^m C ) -> ( ( f o. x ) o. `' g ) : D --> B ) ) |
| 19 | f1ofo | |- ( f : A -1-1-onto-> B -> f : A -onto-> B ) |
|
| 20 | 19 | adantr | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> f : A -onto-> B ) |
| 21 | forn | |- ( f : A -onto-> B -> ran f = B ) |
|
| 22 | 20 21 | syl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ran f = B ) |
| 23 | vex | |- f e. _V |
|
| 24 | 23 | rnex | |- ran f e. _V |
| 25 | 22 24 | eqeltrrdi | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> B e. _V ) |
| 26 | f1ofo | |- ( g : C -1-1-onto-> D -> g : C -onto-> D ) |
|
| 27 | 26 | adantl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> g : C -onto-> D ) |
| 28 | forn | |- ( g : C -onto-> D -> ran g = D ) |
|
| 29 | 27 28 | syl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ran g = D ) |
| 30 | vex | |- g e. _V |
|
| 31 | 30 | rnex | |- ran g e. _V |
| 32 | 29 31 | eqeltrrdi | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> D e. _V ) |
| 33 | 25 32 | elmapd | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( ( ( f o. x ) o. `' g ) e. ( B ^m D ) <-> ( ( f o. x ) o. `' g ) : D --> B ) ) |
| 34 | 18 33 | sylibrd | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( x e. ( A ^m C ) -> ( ( f o. x ) o. `' g ) e. ( B ^m D ) ) ) |
| 35 | elmapi | |- ( y e. ( B ^m D ) -> y : D --> B ) |
|
| 36 | f1ocnv | |- ( f : A -1-1-onto-> B -> `' f : B -1-1-onto-> A ) |
|
| 37 | 36 | adantr | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> `' f : B -1-1-onto-> A ) |
| 38 | f1of | |- ( `' f : B -1-1-onto-> A -> `' f : B --> A ) |
|
| 39 | 37 38 | syl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> `' f : B --> A ) |
| 40 | 39 | adantr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ y : D --> B ) -> `' f : B --> A ) |
| 41 | id | |- ( y : D --> B -> y : D --> B ) |
|
| 42 | f1of | |- ( g : C -1-1-onto-> D -> g : C --> D ) |
|
| 43 | 42 | adantl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> g : C --> D ) |
| 44 | fco | |- ( ( y : D --> B /\ g : C --> D ) -> ( y o. g ) : C --> B ) |
|
| 45 | 41 43 44 | syl2anr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ y : D --> B ) -> ( y o. g ) : C --> B ) |
| 46 | 40 45 | fcod | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ y : D --> B ) -> ( `' f o. ( y o. g ) ) : C --> A ) |
| 47 | 46 | ex | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( y : D --> B -> ( `' f o. ( y o. g ) ) : C --> A ) ) |
| 48 | 35 47 | syl5 | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( y e. ( B ^m D ) -> ( `' f o. ( y o. g ) ) : C --> A ) ) |
| 49 | f1odm | |- ( f : A -1-1-onto-> B -> dom f = A ) |
|
| 50 | 49 | adantr | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> dom f = A ) |
| 51 | 23 | dmex | |- dom f e. _V |
| 52 | 50 51 | eqeltrrdi | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> A e. _V ) |
| 53 | f1odm | |- ( g : C -1-1-onto-> D -> dom g = C ) |
|
| 54 | 53 | adantl | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> dom g = C ) |
| 55 | 30 | dmex | |- dom g e. _V |
| 56 | 54 55 | eqeltrrdi | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> C e. _V ) |
| 57 | 52 56 | elmapd | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( ( `' f o. ( y o. g ) ) e. ( A ^m C ) <-> ( `' f o. ( y o. g ) ) : C --> A ) ) |
| 58 | 48 57 | sylibrd | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( y e. ( B ^m D ) -> ( `' f o. ( y o. g ) ) e. ( A ^m C ) ) ) |
| 59 | coass | |- ( ( f o. `' f ) o. ( y o. g ) ) = ( f o. ( `' f o. ( y o. g ) ) ) |
|
| 60 | f1ococnv2 | |- ( f : A -1-1-onto-> B -> ( f o. `' f ) = ( _I |` B ) ) |
|
| 61 | 60 | ad2antrr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( f o. `' f ) = ( _I |` B ) ) |
| 62 | 61 | coeq1d | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. `' f ) o. ( y o. g ) ) = ( ( _I |` B ) o. ( y o. g ) ) ) |
| 63 | 45 | adantrl | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( y o. g ) : C --> B ) |
| 64 | fcoi2 | |- ( ( y o. g ) : C --> B -> ( ( _I |` B ) o. ( y o. g ) ) = ( y o. g ) ) |
|
| 65 | 63 64 | syl | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( _I |` B ) o. ( y o. g ) ) = ( y o. g ) ) |
| 66 | 62 65 | eqtrd | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. `' f ) o. ( y o. g ) ) = ( y o. g ) ) |
| 67 | 59 66 | eqtr3id | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( f o. ( `' f o. ( y o. g ) ) ) = ( y o. g ) ) |
| 68 | 67 | eqeq2d | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) = ( f o. ( `' f o. ( y o. g ) ) ) <-> ( f o. x ) = ( y o. g ) ) ) |
| 69 | coass | |- ( ( ( f o. x ) o. `' g ) o. g ) = ( ( f o. x ) o. ( `' g o. g ) ) |
|
| 70 | f1ococnv1 | |- ( g : C -1-1-onto-> D -> ( `' g o. g ) = ( _I |` C ) ) |
|
| 71 | 70 | ad2antlr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( `' g o. g ) = ( _I |` C ) ) |
| 72 | 71 | coeq2d | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) o. ( `' g o. g ) ) = ( ( f o. x ) o. ( _I |` C ) ) ) |
| 73 | 10 | adantrr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( f o. x ) : C --> B ) |
| 74 | fcoi1 | |- ( ( f o. x ) : C --> B -> ( ( f o. x ) o. ( _I |` C ) ) = ( f o. x ) ) |
|
| 75 | 73 74 | syl | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) o. ( _I |` C ) ) = ( f o. x ) ) |
| 76 | 72 75 | eqtrd | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) o. ( `' g o. g ) ) = ( f o. x ) ) |
| 77 | 69 76 | eqtrid | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( ( f o. x ) o. `' g ) o. g ) = ( f o. x ) ) |
| 78 | 77 | eqeq2d | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( y o. g ) = ( ( ( f o. x ) o. `' g ) o. g ) <-> ( y o. g ) = ( f o. x ) ) ) |
| 79 | eqcom | |- ( ( y o. g ) = ( f o. x ) <-> ( f o. x ) = ( y o. g ) ) |
|
| 80 | 78 79 | bitrdi | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( y o. g ) = ( ( ( f o. x ) o. `' g ) o. g ) <-> ( f o. x ) = ( y o. g ) ) ) |
| 81 | 68 80 | bitr4d | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) = ( f o. ( `' f o. ( y o. g ) ) ) <-> ( y o. g ) = ( ( ( f o. x ) o. `' g ) o. g ) ) ) |
| 82 | f1of1 | |- ( f : A -1-1-onto-> B -> f : A -1-1-> B ) |
|
| 83 | 82 | ad2antrr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> f : A -1-1-> B ) |
| 84 | simprl | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> x : C --> A ) |
|
| 85 | 46 | adantrl | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( `' f o. ( y o. g ) ) : C --> A ) |
| 86 | cocan1 | |- ( ( f : A -1-1-> B /\ x : C --> A /\ ( `' f o. ( y o. g ) ) : C --> A ) -> ( ( f o. x ) = ( f o. ( `' f o. ( y o. g ) ) ) <-> x = ( `' f o. ( y o. g ) ) ) ) |
|
| 87 | 83 84 85 86 | syl3anc | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) = ( f o. ( `' f o. ( y o. g ) ) ) <-> x = ( `' f o. ( y o. g ) ) ) ) |
| 88 | 27 | adantr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> g : C -onto-> D ) |
| 89 | ffn | |- ( y : D --> B -> y Fn D ) |
|
| 90 | 89 | ad2antll | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> y Fn D ) |
| 91 | 16 | adantrr | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) o. `' g ) : D --> B ) |
| 92 | 91 | ffnd | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( f o. x ) o. `' g ) Fn D ) |
| 93 | cocan2 | |- ( ( g : C -onto-> D /\ y Fn D /\ ( ( f o. x ) o. `' g ) Fn D ) -> ( ( y o. g ) = ( ( ( f o. x ) o. `' g ) o. g ) <-> y = ( ( f o. x ) o. `' g ) ) ) |
|
| 94 | 88 90 92 93 | syl3anc | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( ( y o. g ) = ( ( ( f o. x ) o. `' g ) o. g ) <-> y = ( ( f o. x ) o. `' g ) ) ) |
| 95 | 81 87 94 | 3bitr3d | |- ( ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) /\ ( x : C --> A /\ y : D --> B ) ) -> ( x = ( `' f o. ( y o. g ) ) <-> y = ( ( f o. x ) o. `' g ) ) ) |
| 96 | 95 | ex | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( ( x : C --> A /\ y : D --> B ) -> ( x = ( `' f o. ( y o. g ) ) <-> y = ( ( f o. x ) o. `' g ) ) ) ) |
| 97 | 6 35 96 | syl2ani | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( ( x e. ( A ^m C ) /\ y e. ( B ^m D ) ) -> ( x = ( `' f o. ( y o. g ) ) <-> y = ( ( f o. x ) o. `' g ) ) ) ) |
| 98 | 4 5 34 58 97 | en3d | |- ( ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( A ^m C ) ~~ ( B ^m D ) ) |
| 99 | 98 | exlimivv | |- ( E. f E. g ( f : A -1-1-onto-> B /\ g : C -1-1-onto-> D ) -> ( A ^m C ) ~~ ( B ^m D ) ) |
| 100 | 3 99 | sylbir | |- ( ( E. f f : A -1-1-onto-> B /\ E. g g : C -1-1-onto-> D ) -> ( A ^m C ) ~~ ( B ^m D ) ) |
| 101 | 1 2 100 | syl2anb | |- ( ( A ~~ B /\ C ~~ D ) -> ( A ^m C ) ~~ ( B ^m D ) ) |