Metamath Proof Explorer


Theorem rmo3f

Description: Restricted "at most one" using explicit substitution. (Contributed by NM, 4-Nov-2012) (Revised by NM, 16-Jun-2017) (Revised by Thierry Arnoux, 8-Oct-2017)

Ref Expression
Hypotheses rmo3f.1
|- F/_ x A
rmo3f.2
|- F/_ y A
rmo3f.3
|- F/ y ph
Assertion rmo3f
|- ( E* x e. A ph <-> A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) )

Proof

Step Hyp Ref Expression
1 rmo3f.1
 |-  F/_ x A
2 rmo3f.2
 |-  F/_ y A
3 rmo3f.3
 |-  F/ y ph
4 df-rmo
 |-  ( E* x e. A ph <-> E* x ( x e. A /\ ph ) )
5 sban
 |-  ( [ y / x ] ( x e. A /\ ph ) <-> ( [ y / x ] x e. A /\ [ y / x ] ph ) )
6 1 clelsb3fw
 |-  ( [ y / x ] x e. A <-> y e. A )
7 6 anbi1i
 |-  ( ( [ y / x ] x e. A /\ [ y / x ] ph ) <-> ( y e. A /\ [ y / x ] ph ) )
8 5 7 bitri
 |-  ( [ y / x ] ( x e. A /\ ph ) <-> ( y e. A /\ [ y / x ] ph ) )
9 8 anbi2i
 |-  ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) <-> ( ( x e. A /\ ph ) /\ ( y e. A /\ [ y / x ] ph ) ) )
10 an4
 |-  ( ( ( x e. A /\ ph ) /\ ( y e. A /\ [ y / x ] ph ) ) <-> ( ( x e. A /\ y e. A ) /\ ( ph /\ [ y / x ] ph ) ) )
11 ancom
 |-  ( ( x e. A /\ y e. A ) <-> ( y e. A /\ x e. A ) )
12 11 anbi1i
 |-  ( ( ( x e. A /\ y e. A ) /\ ( ph /\ [ y / x ] ph ) ) <-> ( ( y e. A /\ x e. A ) /\ ( ph /\ [ y / x ] ph ) ) )
13 9 10 12 3bitri
 |-  ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) <-> ( ( y e. A /\ x e. A ) /\ ( ph /\ [ y / x ] ph ) ) )
14 13 imbi1i
 |-  ( ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) -> x = y ) <-> ( ( ( y e. A /\ x e. A ) /\ ( ph /\ [ y / x ] ph ) ) -> x = y ) )
15 impexp
 |-  ( ( ( ( y e. A /\ x e. A ) /\ ( ph /\ [ y / x ] ph ) ) -> x = y ) <-> ( ( y e. A /\ x e. A ) -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) )
16 impexp
 |-  ( ( ( y e. A /\ x e. A ) -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) <-> ( y e. A -> ( x e. A -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) )
17 14 15 16 3bitri
 |-  ( ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) -> x = y ) <-> ( y e. A -> ( x e. A -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) )
18 17 albii
 |-  ( A. y ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) -> x = y ) <-> A. y ( y e. A -> ( x e. A -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) )
19 df-ral
 |-  ( A. y e. A ( x e. A -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) <-> A. y ( y e. A -> ( x e. A -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) ) )
20 2 nfcri
 |-  F/ y x e. A
21 20 r19.21
 |-  ( A. y e. A ( x e. A -> ( ( ph /\ [ y / x ] ph ) -> x = y ) ) <-> ( x e. A -> A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) )
22 18 19 21 3bitr2i
 |-  ( A. y ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) -> x = y ) <-> ( x e. A -> A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) )
23 22 albii
 |-  ( A. x A. y ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) -> x = y ) <-> A. x ( x e. A -> A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) )
24 20 3 nfan
 |-  F/ y ( x e. A /\ ph )
25 24 mo3
 |-  ( E* x ( x e. A /\ ph ) <-> A. x A. y ( ( ( x e. A /\ ph ) /\ [ y / x ] ( x e. A /\ ph ) ) -> x = y ) )
26 df-ral
 |-  ( A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) <-> A. x ( x e. A -> A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) ) )
27 23 25 26 3bitr4i
 |-  ( E* x ( x e. A /\ ph ) <-> A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) )
28 4 27 bitri
 |-  ( E* x e. A ph <-> A. x e. A A. y e. A ( ( ph /\ [ y / x ] ph ) -> x = y ) )