Metamath Proof Explorer


Theorem reusv3

Description: Two ways to express single-valuedness of a class expression C ( y ) . See reusv1 for the connection to uniqueness. (Contributed by NM, 27-Dec-2012)

Ref Expression
Hypotheses reusv3.1 ( 𝑦 = 𝑧 → ( 𝜑𝜓 ) )
reusv3.2 ( 𝑦 = 𝑧𝐶 = 𝐷 )
Assertion reusv3 ( ∃ 𝑦𝐵 ( 𝜑𝐶𝐴 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) )

Proof

Step Hyp Ref Expression
1 reusv3.1 ( 𝑦 = 𝑧 → ( 𝜑𝜓 ) )
2 reusv3.2 ( 𝑦 = 𝑧𝐶 = 𝐷 )
3 2 eleq1d ( 𝑦 = 𝑧 → ( 𝐶𝐴𝐷𝐴 ) )
4 1 3 anbi12d ( 𝑦 = 𝑧 → ( ( 𝜑𝐶𝐴 ) ↔ ( 𝜓𝐷𝐴 ) ) )
5 4 cbvrexvw ( ∃ 𝑦𝐵 ( 𝜑𝐶𝐴 ) ↔ ∃ 𝑧𝐵 ( 𝜓𝐷𝐴 ) )
6 nfra2w 𝑧𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 )
7 nfv 𝑧𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 )
8 6 7 nfim 𝑧 ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) )
9 risset ( 𝐷𝐴 ↔ ∃ 𝑥𝐴 𝑥 = 𝐷 )
10 ralcom ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ∀ 𝑧𝐵𝑦𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) )
11 impexp ( ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ( 𝜑 → ( 𝜓𝐶 = 𝐷 ) ) )
12 bi2.04 ( ( 𝜑 → ( 𝜓𝐶 = 𝐷 ) ) ↔ ( 𝜓 → ( 𝜑𝐶 = 𝐷 ) ) )
13 11 12 bitri ( ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ( 𝜓 → ( 𝜑𝐶 = 𝐷 ) ) )
14 13 ralbii ( ∀ 𝑦𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ∀ 𝑦𝐵 ( 𝜓 → ( 𝜑𝐶 = 𝐷 ) ) )
15 r19.21v ( ∀ 𝑦𝐵 ( 𝜓 → ( 𝜑𝐶 = 𝐷 ) ) ↔ ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) )
16 14 15 bitri ( ∀ 𝑦𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) )
17 16 ralbii ( ∀ 𝑧𝐵𝑦𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ∀ 𝑧𝐵 ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) )
18 10 17 bitri ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ∀ 𝑧𝐵 ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) )
19 rsp ( ∀ 𝑧𝐵 ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) → ( 𝑧𝐵 → ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) ) )
20 18 19 sylbi ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ( 𝑧𝐵 → ( 𝜓 → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) ) )
21 20 com3l ( 𝑧𝐵 → ( 𝜓 → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) ) )
22 21 imp31 ( ( ( 𝑧𝐵𝜓 ) ∧ ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ) → ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) )
23 eqeq1 ( 𝑥 = 𝐷 → ( 𝑥 = 𝐶𝐷 = 𝐶 ) )
24 eqcom ( 𝐷 = 𝐶𝐶 = 𝐷 )
25 23 24 bitrdi ( 𝑥 = 𝐷 → ( 𝑥 = 𝐶𝐶 = 𝐷 ) )
26 25 imbi2d ( 𝑥 = 𝐷 → ( ( 𝜑𝑥 = 𝐶 ) ↔ ( 𝜑𝐶 = 𝐷 ) ) )
27 26 ralbidv ( 𝑥 = 𝐷 → ( ∀ 𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ↔ ∀ 𝑦𝐵 ( 𝜑𝐶 = 𝐷 ) ) )
28 22 27 syl5ibrcom ( ( ( 𝑧𝐵𝜓 ) ∧ ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ) → ( 𝑥 = 𝐷 → ∀ 𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) )
29 28 reximdv ( ( ( 𝑧𝐵𝜓 ) ∧ ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ) → ( ∃ 𝑥𝐴 𝑥 = 𝐷 → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) )
30 29 ex ( ( 𝑧𝐵𝜓 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ( ∃ 𝑥𝐴 𝑥 = 𝐷 → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) ) )
31 30 com23 ( ( 𝑧𝐵𝜓 ) → ( ∃ 𝑥𝐴 𝑥 = 𝐷 → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) ) )
32 9 31 syl5bi ( ( 𝑧𝐵𝜓 ) → ( 𝐷𝐴 → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) ) )
33 32 expimpd ( 𝑧𝐵 → ( ( 𝜓𝐷𝐴 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) ) )
34 8 33 rexlimi ( ∃ 𝑧𝐵 ( 𝜓𝐷𝐴 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) )
35 5 34 sylbi ( ∃ 𝑦𝐵 ( 𝜑𝐶𝐴 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) → ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) )
36 1 2 reusv3i ( ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) → ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) )
37 35 36 impbid1 ( ∃ 𝑦𝐵 ( 𝜑𝐶𝐴 ) → ( ∀ 𝑦𝐵𝑧𝐵 ( ( 𝜑𝜓 ) → 𝐶 = 𝐷 ) ↔ ∃ 𝑥𝐴𝑦𝐵 ( 𝜑𝑥 = 𝐶 ) ) )