This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Convert a restricted existential uniqueness over a pair to a disjunction of conjunctions. (Contributed by AV, 2-Apr-2023)
| Ref | Expression | ||
|---|---|---|---|
| Hypotheses | reuprg.1 | |- ( x = A -> ( ph <-> ps ) ) |
|
| reuprg.2 | |- ( x = B -> ( ph <-> ch ) ) |
||
| Assertion | reuprg0 | |- ( ( A e. V /\ B e. W ) -> ( E! x e. { A , B } ph <-> ( ( ps /\ ( ch -> A = B ) ) \/ ( ch /\ ( ps -> A = B ) ) ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 1 | reuprg.1 | |- ( x = A -> ( ph <-> ps ) ) |
|
| 2 | reuprg.2 | |- ( x = B -> ( ph <-> ch ) ) |
|
| 3 | nfsbc1v | |- F/ x [. c / x ]. ph |
|
| 4 | nfsbc1v | |- F/ x [. w / x ]. ph |
|
| 5 | sbceq1a | |- ( x = w -> ( ph <-> [. w / x ]. ph ) ) |
|
| 6 | dfsbcq | |- ( w = c -> ( [. w / x ]. ph <-> [. c / x ]. ph ) ) |
|
| 7 | 3 4 5 6 | reu8nf | |- ( E! x e. { A , B } ph <-> E. x e. { A , B } ( ph /\ A. c e. { A , B } ( [. c / x ]. ph -> x = c ) ) ) |
| 8 | nfv | |- F/ x ps |
|
| 9 | nfcv | |- F/_ x { A , B } |
|
| 10 | nfv | |- F/ x A = c |
|
| 11 | 3 10 | nfim | |- F/ x ( [. c / x ]. ph -> A = c ) |
| 12 | 9 11 | nfralw | |- F/ x A. c e. { A , B } ( [. c / x ]. ph -> A = c ) |
| 13 | 8 12 | nfan | |- F/ x ( ps /\ A. c e. { A , B } ( [. c / x ]. ph -> A = c ) ) |
| 14 | nfv | |- F/ x ch |
|
| 15 | nfv | |- F/ x B = c |
|
| 16 | 3 15 | nfim | |- F/ x ( [. c / x ]. ph -> B = c ) |
| 17 | 9 16 | nfralw | |- F/ x A. c e. { A , B } ( [. c / x ]. ph -> B = c ) |
| 18 | 14 17 | nfan | |- F/ x ( ch /\ A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) |
| 19 | eqeq1 | |- ( x = A -> ( x = c <-> A = c ) ) |
|
| 20 | 19 | imbi2d | |- ( x = A -> ( ( [. c / x ]. ph -> x = c ) <-> ( [. c / x ]. ph -> A = c ) ) ) |
| 21 | 20 | ralbidv | |- ( x = A -> ( A. c e. { A , B } ( [. c / x ]. ph -> x = c ) <-> A. c e. { A , B } ( [. c / x ]. ph -> A = c ) ) ) |
| 22 | 1 21 | anbi12d | |- ( x = A -> ( ( ph /\ A. c e. { A , B } ( [. c / x ]. ph -> x = c ) ) <-> ( ps /\ A. c e. { A , B } ( [. c / x ]. ph -> A = c ) ) ) ) |
| 23 | eqeq1 | |- ( x = B -> ( x = c <-> B = c ) ) |
|
| 24 | 23 | imbi2d | |- ( x = B -> ( ( [. c / x ]. ph -> x = c ) <-> ( [. c / x ]. ph -> B = c ) ) ) |
| 25 | 24 | ralbidv | |- ( x = B -> ( A. c e. { A , B } ( [. c / x ]. ph -> x = c ) <-> A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) ) |
| 26 | 2 25 | anbi12d | |- ( x = B -> ( ( ph /\ A. c e. { A , B } ( [. c / x ]. ph -> x = c ) ) <-> ( ch /\ A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) ) ) |
| 27 | 13 18 22 26 | rexprgf | |- ( ( A e. V /\ B e. W ) -> ( E. x e. { A , B } ( ph /\ A. c e. { A , B } ( [. c / x ]. ph -> x = c ) ) <-> ( ( ps /\ A. c e. { A , B } ( [. c / x ]. ph -> A = c ) ) \/ ( ch /\ A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) ) ) ) |
| 28 | dfsbcq | |- ( c = A -> ( [. c / x ]. ph <-> [. A / x ]. ph ) ) |
|
| 29 | eqeq2 | |- ( c = A -> ( A = c <-> A = A ) ) |
|
| 30 | 28 29 | imbi12d | |- ( c = A -> ( ( [. c / x ]. ph -> A = c ) <-> ( [. A / x ]. ph -> A = A ) ) ) |
| 31 | dfsbcq | |- ( c = B -> ( [. c / x ]. ph <-> [. B / x ]. ph ) ) |
|
| 32 | eqeq2 | |- ( c = B -> ( A = c <-> A = B ) ) |
|
| 33 | 31 32 | imbi12d | |- ( c = B -> ( ( [. c / x ]. ph -> A = c ) <-> ( [. B / x ]. ph -> A = B ) ) ) |
| 34 | 30 33 | ralprg | |- ( ( A e. V /\ B e. W ) -> ( A. c e. { A , B } ( [. c / x ]. ph -> A = c ) <-> ( ( [. A / x ]. ph -> A = A ) /\ ( [. B / x ]. ph -> A = B ) ) ) ) |
| 35 | eqidd | |- ( [. A / x ]. ph -> A = A ) |
|
| 36 | 35 | biantrur | |- ( ( [. B / x ]. ph -> A = B ) <-> ( ( [. A / x ]. ph -> A = A ) /\ ( [. B / x ]. ph -> A = B ) ) ) |
| 37 | 2 | sbcieg | |- ( B e. W -> ( [. B / x ]. ph <-> ch ) ) |
| 38 | 37 | adantl | |- ( ( A e. V /\ B e. W ) -> ( [. B / x ]. ph <-> ch ) ) |
| 39 | 38 | imbi1d | |- ( ( A e. V /\ B e. W ) -> ( ( [. B / x ]. ph -> A = B ) <-> ( ch -> A = B ) ) ) |
| 40 | 36 39 | bitr3id | |- ( ( A e. V /\ B e. W ) -> ( ( ( [. A / x ]. ph -> A = A ) /\ ( [. B / x ]. ph -> A = B ) ) <-> ( ch -> A = B ) ) ) |
| 41 | 34 40 | bitrd | |- ( ( A e. V /\ B e. W ) -> ( A. c e. { A , B } ( [. c / x ]. ph -> A = c ) <-> ( ch -> A = B ) ) ) |
| 42 | 41 | anbi2d | |- ( ( A e. V /\ B e. W ) -> ( ( ps /\ A. c e. { A , B } ( [. c / x ]. ph -> A = c ) ) <-> ( ps /\ ( ch -> A = B ) ) ) ) |
| 43 | eqeq2 | |- ( c = A -> ( B = c <-> B = A ) ) |
|
| 44 | 28 43 | imbi12d | |- ( c = A -> ( ( [. c / x ]. ph -> B = c ) <-> ( [. A / x ]. ph -> B = A ) ) ) |
| 45 | eqeq2 | |- ( c = B -> ( B = c <-> B = B ) ) |
|
| 46 | 31 45 | imbi12d | |- ( c = B -> ( ( [. c / x ]. ph -> B = c ) <-> ( [. B / x ]. ph -> B = B ) ) ) |
| 47 | 44 46 | ralprg | |- ( ( A e. V /\ B e. W ) -> ( A. c e. { A , B } ( [. c / x ]. ph -> B = c ) <-> ( ( [. A / x ]. ph -> B = A ) /\ ( [. B / x ]. ph -> B = B ) ) ) ) |
| 48 | eqidd | |- ( [. B / x ]. ph -> B = B ) |
|
| 49 | 48 | biantru | |- ( ( [. A / x ]. ph -> B = A ) <-> ( ( [. A / x ]. ph -> B = A ) /\ ( [. B / x ]. ph -> B = B ) ) ) |
| 50 | 1 | sbcieg | |- ( A e. V -> ( [. A / x ]. ph <-> ps ) ) |
| 51 | 50 | adantr | |- ( ( A e. V /\ B e. W ) -> ( [. A / x ]. ph <-> ps ) ) |
| 52 | 51 | imbi1d | |- ( ( A e. V /\ B e. W ) -> ( ( [. A / x ]. ph -> B = A ) <-> ( ps -> B = A ) ) ) |
| 53 | 49 52 | bitr3id | |- ( ( A e. V /\ B e. W ) -> ( ( ( [. A / x ]. ph -> B = A ) /\ ( [. B / x ]. ph -> B = B ) ) <-> ( ps -> B = A ) ) ) |
| 54 | 47 53 | bitrd | |- ( ( A e. V /\ B e. W ) -> ( A. c e. { A , B } ( [. c / x ]. ph -> B = c ) <-> ( ps -> B = A ) ) ) |
| 55 | 54 | anbi2d | |- ( ( A e. V /\ B e. W ) -> ( ( ch /\ A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) <-> ( ch /\ ( ps -> B = A ) ) ) ) |
| 56 | eqcom | |- ( B = A <-> A = B ) |
|
| 57 | 56 | imbi2i | |- ( ( ps -> B = A ) <-> ( ps -> A = B ) ) |
| 58 | 57 | anbi2i | |- ( ( ch /\ ( ps -> B = A ) ) <-> ( ch /\ ( ps -> A = B ) ) ) |
| 59 | 55 58 | bitrdi | |- ( ( A e. V /\ B e. W ) -> ( ( ch /\ A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) <-> ( ch /\ ( ps -> A = B ) ) ) ) |
| 60 | 42 59 | orbi12d | |- ( ( A e. V /\ B e. W ) -> ( ( ( ps /\ A. c e. { A , B } ( [. c / x ]. ph -> A = c ) ) \/ ( ch /\ A. c e. { A , B } ( [. c / x ]. ph -> B = c ) ) ) <-> ( ( ps /\ ( ch -> A = B ) ) \/ ( ch /\ ( ps -> A = B ) ) ) ) ) |
| 61 | 27 60 | bitrd | |- ( ( A e. V /\ B e. W ) -> ( E. x e. { A , B } ( ph /\ A. c e. { A , B } ( [. c / x ]. ph -> x = c ) ) <-> ( ( ps /\ ( ch -> A = B ) ) \/ ( ch /\ ( ps -> A = B ) ) ) ) ) |
| 62 | 7 61 | bitrid | |- ( ( A e. V /\ B e. W ) -> ( E! x e. { A , B } ph <-> ( ( ps /\ ( ch -> A = B ) ) \/ ( ch /\ ( ps -> A = B ) ) ) ) ) |