This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Alternate value of the indicator function generator. (Contributed by Thierry Arnoux, 2-Feb-2017)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | indval2 | |- ( ( O e. V /\ A C_ O ) -> ( ( _Ind ` O ) ` A ) = ( ( A X. { 1 } ) u. ( ( O \ A ) X. { 0 } ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | dfmpt3 | |- ( x e. O |-> if ( x e. A , 1 , 0 ) ) = U_ x e. O ( { x } X. { if ( x e. A , 1 , 0 ) } ) |
|
| 2 | indval | |- ( ( O e. V /\ A C_ O ) -> ( ( _Ind ` O ) ` A ) = ( x e. O |-> if ( x e. A , 1 , 0 ) ) ) |
|
| 3 | undif | |- ( A C_ O <-> ( A u. ( O \ A ) ) = O ) |
|
| 4 | 3 | bilani | |- ( ( O e. V /\ A C_ O ) -> ( A u. ( O \ A ) ) = O ) |
| 5 | 4 | iuneq1d | |- ( ( O e. V /\ A C_ O ) -> U_ x e. ( A u. ( O \ A ) ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) = U_ x e. O ( { x } X. { if ( x e. A , 1 , 0 ) } ) ) |
| 6 | 1 2 5 | 3eqtr4a | |- ( ( O e. V /\ A C_ O ) -> ( ( _Ind ` O ) ` A ) = U_ x e. ( A u. ( O \ A ) ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) ) |
| 7 | iunxun | |- U_ x e. ( A u. ( O \ A ) ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) = ( U_ x e. A ( { x } X. { if ( x e. A , 1 , 0 ) } ) u. U_ x e. ( O \ A ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) ) |
|
| 8 | 6 7 | eqtrdi | |- ( ( O e. V /\ A C_ O ) -> ( ( _Ind ` O ) ` A ) = ( U_ x e. A ( { x } X. { if ( x e. A , 1 , 0 ) } ) u. U_ x e. ( O \ A ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) ) ) |
| 9 | iftrue | |- ( x e. A -> if ( x e. A , 1 , 0 ) = 1 ) |
|
| 10 | 9 | sneqd | |- ( x e. A -> { if ( x e. A , 1 , 0 ) } = { 1 } ) |
| 11 | 10 | xpeq2d | |- ( x e. A -> ( { x } X. { if ( x e. A , 1 , 0 ) } ) = ( { x } X. { 1 } ) ) |
| 12 | 11 | iuneq2i | |- U_ x e. A ( { x } X. { if ( x e. A , 1 , 0 ) } ) = U_ x e. A ( { x } X. { 1 } ) |
| 13 | iunxpconst | |- U_ x e. A ( { x } X. { 1 } ) = ( A X. { 1 } ) |
|
| 14 | 12 13 | eqtri | |- U_ x e. A ( { x } X. { if ( x e. A , 1 , 0 ) } ) = ( A X. { 1 } ) |
| 15 | eldifn | |- ( x e. ( O \ A ) -> -. x e. A ) |
|
| 16 | iffalse | |- ( -. x e. A -> if ( x e. A , 1 , 0 ) = 0 ) |
|
| 17 | 16 | sneqd | |- ( -. x e. A -> { if ( x e. A , 1 , 0 ) } = { 0 } ) |
| 18 | 15 17 | syl | |- ( x e. ( O \ A ) -> { if ( x e. A , 1 , 0 ) } = { 0 } ) |
| 19 | 18 | xpeq2d | |- ( x e. ( O \ A ) -> ( { x } X. { if ( x e. A , 1 , 0 ) } ) = ( { x } X. { 0 } ) ) |
| 20 | 19 | iuneq2i | |- U_ x e. ( O \ A ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) = U_ x e. ( O \ A ) ( { x } X. { 0 } ) |
| 21 | iunxpconst | |- U_ x e. ( O \ A ) ( { x } X. { 0 } ) = ( ( O \ A ) X. { 0 } ) |
|
| 22 | 20 21 | eqtri | |- U_ x e. ( O \ A ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) = ( ( O \ A ) X. { 0 } ) |
| 23 | 14 22 | uneq12i | |- ( U_ x e. A ( { x } X. { if ( x e. A , 1 , 0 ) } ) u. U_ x e. ( O \ A ) ( { x } X. { if ( x e. A , 1 , 0 ) } ) ) = ( ( A X. { 1 } ) u. ( ( O \ A ) X. { 0 } ) ) |
| 24 | 8 23 | eqtrdi | |- ( ( O e. V /\ A C_ O ) -> ( ( _Ind ` O ) ` A ) = ( ( A X. { 1 } ) u. ( ( O \ A ) X. { 0 } ) ) ) |