Metamath Proof Explorer


Theorem euotd

Description: Prove existential uniqueness for an ordered triple. (Contributed by Mario Carneiro, 20-May-2015)

Ref Expression
Hypotheses euotd.1 ⊢ φ → A ∈ U
euotd.2 ⊢ φ → B ∈ V
euotd.3 ⊢ φ → C ∈ W
euotd.4 ⊢ φ → ψ ↔ a = A ∧ b = B ∧ c = C
Assertion euotd ⊢ φ → ∃! x ∃ a ∃ b ∃ c x = a b c ∧ ψ

Proof

Step Hyp Ref Expression
1 euotd.1 ⊢ φ → A ∈ U
2 euotd.2 ⊢ φ → B ∈ V
3 euotd.3 ⊢ φ → C ∈ W
4 euotd.4 ⊢ φ → ψ ↔ a = A ∧ b = B ∧ c = C
5 4 biimpa ⊢ φ ∧ ψ → a = A ∧ b = B ∧ c = C
6 vex ⊢ a ∈ V
7 vex ⊢ b ∈ V
8 vex ⊢ c ∈ V
9 6 7 8 otth ⊢ a b c = A B C ↔ a = A ∧ b = B ∧ c = C
10 5 9 sylibr ⊢ φ ∧ ψ → a b c = A B C
11 10 eqeq2d ⊢ φ ∧ ψ → x = a b c ↔ x = A B C
12 11 biimpd ⊢ φ ∧ ψ → x = a b c → x = A B C
13 12 impancom ⊢ φ ∧ x = a b c → ψ → x = A B C
14 13 expimpd ⊢ φ → x = a b c ∧ ψ → x = A B C
15 14 exlimdv ⊢ φ → ∃ c x = a b c ∧ ψ → x = A B C
16 15 exlimdvv ⊢ φ → ∃ a ∃ b ∃ c x = a b c ∧ ψ → x = A B C
17 tru ⊢ ⊤
18 2 adantr ⊢ φ ∧ a = A → B ∈ V
19 3 ad2antrr ⊢ φ ∧ a = A ∧ b = B → C ∈ W
20 9 bilanri ⊢ φ ∧ a = A ∧ b = B ∧ c = C → a b c = A B C
21 20 eqcomd ⊢ φ ∧ a = A ∧ b = B ∧ c = C → A B C = a b c
22 4 biimpar ⊢ φ ∧ a = A ∧ b = B ∧ c = C → ψ
23 21 22 jca ⊢ φ ∧ a = A ∧ b = B ∧ c = C → A B C = a b c ∧ ψ
24 trud ⊢ φ ∧ a = A ∧ b = B ∧ c = C → ⊤
25 23 24 2thd ⊢ φ ∧ a = A ∧ b = B ∧ c = C → A B C = a b c ∧ ψ ↔ ⊤
26 25 3anassrs ⊢ φ ∧ a = A ∧ b = B ∧ c = C → A B C = a b c ∧ ψ ↔ ⊤
27 19 26 sbcied ⊢ φ ∧ a = A ∧ b = B → [˙C / c]˙ A B C = a b c ∧ ψ ↔ ⊤
28 18 27 sbcied ⊢ φ ∧ a = A → [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ ↔ ⊤
29 1 28 sbcied ⊢ φ → [˙A / a]˙ [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ ↔ ⊤
30 17 29 mpbiri ⊢ φ → [˙A / a]˙ [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ
31 30 spesbcd ⊢ φ → ∃ a [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ
32 nfcv ⊢ Ⅎ _ b B
33 nfsbc1v ⊢ Ⅎ b [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ
34 33 nfex ⊢ Ⅎ b ∃ a [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ
35 sbceq1a ⊢ b = B → [˙C / c]˙ A B C = a b c ∧ ψ ↔ [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ
36 35 exbidv ⊢ b = B → ∃ a [˙C / c]˙ A B C = a b c ∧ ψ ↔ ∃ a [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ
37 32 34 36 spcegf ⊢ B ∈ V → ∃ a [˙B / b]˙ [˙C / c]˙ A B C = a b c ∧ ψ → ∃ b ∃ a [˙C / c]˙ A B C = a b c ∧ ψ
38 2 31 37 sylc ⊢ φ → ∃ b ∃ a [˙C / c]˙ A B C = a b c ∧ ψ
39 nfcv ⊢ Ⅎ _ c C
40 nfsbc1v ⊢ Ⅎ c [˙C / c]˙ A B C = a b c ∧ ψ
41 40 nfex ⊢ Ⅎ c ∃ a [˙C / c]˙ A B C = a b c ∧ ψ
42 41 nfex ⊢ Ⅎ c ∃ b ∃ a [˙C / c]˙ A B C = a b c ∧ ψ
43 sbceq1a ⊢ c = C → A B C = a b c ∧ ψ ↔ [˙C / c]˙ A B C = a b c ∧ ψ
44 43 2exbidv ⊢ c = C → ∃ b ∃ a A B C = a b c ∧ ψ ↔ ∃ b ∃ a [˙C / c]˙ A B C = a b c ∧ ψ
45 39 42 44 spcegf ⊢ C ∈ W → ∃ b ∃ a [˙C / c]˙ A B C = a b c ∧ ψ → ∃ c ∃ b ∃ a A B C = a b c ∧ ψ
46 3 38 45 sylc ⊢ φ → ∃ c ∃ b ∃ a A B C = a b c ∧ ψ
47 excom13 ⊢ ∃ c ∃ b ∃ a A B C = a b c ∧ ψ ↔ ∃ a ∃ b ∃ c A B C = a b c ∧ ψ
48 46 47 sylib ⊢ φ → ∃ a ∃ b ∃ c A B C = a b c ∧ ψ
49 eqeq1 ⊢ x = A B C → x = a b c ↔ A B C = a b c
50 49 anbi1d ⊢ x = A B C → x = a b c ∧ ψ ↔ A B C = a b c ∧ ψ
51 50 3exbidv ⊢ x = A B C → ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ ∃ a ∃ b ∃ c A B C = a b c ∧ ψ
52 48 51 syl5ibrcom ⊢ φ → x = A B C → ∃ a ∃ b ∃ c x = a b c ∧ ψ
53 16 52 impbid ⊢ φ → ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = A B C
54 53 alrimiv ⊢ φ → ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = A B C
55 otex ⊢ A B C ∈ V
56 eqeq2 ⊢ y = A B C → x = y ↔ x = A B C
57 56 bibi2d ⊢ y = A B C → ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = y ↔ ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = A B C
58 57 albidv ⊢ y = A B C → ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = y ↔ ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = A B C
59 55 58 spcev ⊢ ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = A B C → ∃ y ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = y
60 54 59 syl ⊢ φ → ∃ y ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = y
61 eu6 ⊢ ∃! x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ ∃ y ∀ x ∃ a ∃ b ∃ c x = a b c ∧ ψ ↔ x = y
62 60 61 sylibr ⊢ φ → ∃! x ∃ a ∃ b ∃ c x = a b c ∧ ψ