This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: The double class union of a nonempty Cartesian product is the union of it members. (Contributed by NM, 17-Sep-2006)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | unixp | |- ( ( A X. B ) =/= (/) -> U. U. ( A X. B ) = ( A u. B ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | relxp | |- Rel ( A X. B ) |
|
| 2 | relfld | |- ( Rel ( A X. B ) -> U. U. ( A X. B ) = ( dom ( A X. B ) u. ran ( A X. B ) ) ) |
|
| 3 | 1 2 | ax-mp | |- U. U. ( A X. B ) = ( dom ( A X. B ) u. ran ( A X. B ) ) |
| 4 | xpeq2 | |- ( B = (/) -> ( A X. B ) = ( A X. (/) ) ) |
|
| 5 | xp0 | |- ( A X. (/) ) = (/) |
|
| 6 | 4 5 | eqtrdi | |- ( B = (/) -> ( A X. B ) = (/) ) |
| 7 | 6 | necon3i | |- ( ( A X. B ) =/= (/) -> B =/= (/) ) |
| 8 | xpeq1 | |- ( A = (/) -> ( A X. B ) = ( (/) X. B ) ) |
|
| 9 | 0xp | |- ( (/) X. B ) = (/) |
|
| 10 | 8 9 | eqtrdi | |- ( A = (/) -> ( A X. B ) = (/) ) |
| 11 | 10 | necon3i | |- ( ( A X. B ) =/= (/) -> A =/= (/) ) |
| 12 | dmxp | |- ( B =/= (/) -> dom ( A X. B ) = A ) |
|
| 13 | rnxp | |- ( A =/= (/) -> ran ( A X. B ) = B ) |
|
| 14 | uneq12 | |- ( ( dom ( A X. B ) = A /\ ran ( A X. B ) = B ) -> ( dom ( A X. B ) u. ran ( A X. B ) ) = ( A u. B ) ) |
|
| 15 | 12 13 14 | syl2an | |- ( ( B =/= (/) /\ A =/= (/) ) -> ( dom ( A X. B ) u. ran ( A X. B ) ) = ( A u. B ) ) |
| 16 | 7 11 15 | syl2anc | |- ( ( A X. B ) =/= (/) -> ( dom ( A X. B ) u. ran ( A X. B ) ) = ( A u. B ) ) |
| 17 | 3 16 | eqtrid | |- ( ( A X. B ) =/= (/) -> U. U. ( A X. B ) = ( A u. B ) ) |