Metamath Proof Explorer


Theorem dfopab2

Description: A way to define an ordered-pair class abstraction without using existential quantifiers. (Contributed by NM, 18-Aug-2006) (Revised by Mario Carneiro, 31-Aug-2015)

Ref Expression
Assertion dfopab2 ⊢ x y | φ = z ∈ V × V | [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ

Proof

Step Hyp Ref Expression
1 nfsbc1v ⊢ Ⅎ x [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
2 1 19.41 ⊢ ∃ x ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ ↔ ∃ x ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
3 sbcopeq1a ⊢ z = x y → [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ ↔ φ
4 3 pm5.32i ⊢ z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ ↔ z = x y ∧ φ
5 4 exbii ⊢ ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ ↔ ∃ y z = x y ∧ φ
6 nfcv ⊢ Ⅎ _ y 1 st ⁡ z
7 nfsbc1v ⊢ Ⅎ y [˙ 2 nd ⁡ z / y]˙ φ
8 6 7 nfsbcw ⊢ Ⅎ y [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
9 8 19.41 ⊢ ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ ↔ ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
10 5 9 bitr3i ⊢ ∃ y z = x y ∧ φ ↔ ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
11 10 exbii ⊢ ∃ x ∃ y z = x y ∧ φ ↔ ∃ x ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
12 elvv ⊢ z ∈ V × V ↔ ∃ x ∃ y z = x y
13 12 anbi1i ⊢ z ∈ V × V ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ ↔ ∃ x ∃ y z = x y ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
14 2 11 13 3bitr4i ⊢ ∃ x ∃ y z = x y ∧ φ ↔ z ∈ V × V ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
15 14 abbii ⊢ z | ∃ x ∃ y z = x y ∧ φ = z | z ∈ V × V ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
16 df-opab ⊢ x y | φ = z | ∃ x ∃ y z = x y ∧ φ
17 df-rab ⊢ z ∈ V × V | [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ = z | z ∈ V × V ∧ [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ
18 15 16 17 3eqtr4i ⊢ x y | φ = z ∈ V × V | [˙ 1 st ⁡ z / x]˙ [˙ 2 nd ⁡ z / y]˙ φ