Metamath Proof Explorer


Theorem reuxfrd

Description: Transfer existential uniqueness from a variable x to another variable y contained in expression A . (Contributed by NM, 16-Jan-2012) Separate variables B and C . (Revised by Thierry Arnoux, 8-Oct-2017)

Ref Expression
Hypotheses reuxfrd.1 ⊢ φ ∧ y ∈ C → A ∈ B
reuxfrd.2 ⊢ φ ∧ x ∈ B → ∃* y ∈ C x = A
Assertion reuxfrd ⊢ φ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ ↔ ∃! y ∈ C ψ

Proof

Step Hyp Ref Expression
1 reuxfrd.1 ⊢ φ ∧ y ∈ C → A ∈ B
2 reuxfrd.2 ⊢ φ ∧ x ∈ B → ∃* y ∈ C x = A
3 rmoan ⊢ ∃* y ∈ C x = A → ∃* y ∈ C ψ ∧ x = A
4 2 3 syl ⊢ φ ∧ x ∈ B → ∃* y ∈ C ψ ∧ x = A
5 ancom ⊢ ψ ∧ x = A ↔ x = A ∧ ψ
6 5 rmobii ⊢ ∃* y ∈ C ψ ∧ x = A ↔ ∃* y ∈ C x = A ∧ ψ
7 4 6 sylib ⊢ φ ∧ x ∈ B → ∃* y ∈ C x = A ∧ ψ
8 7 ralrimiva ⊢ φ → ∀ x ∈ B ∃* y ∈ C x = A ∧ ψ
9 2reuswap ⊢ ∀ x ∈ B ∃* y ∈ C x = A ∧ ψ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ → ∃! y ∈ C ∃ x ∈ B x = A ∧ ψ
10 8 9 syl ⊢ φ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ → ∃! y ∈ C ∃ x ∈ B x = A ∧ ψ
11 2reuswap2 ⊢ ∀ y ∈ C ∃* x x ∈ B ∧ x = A ∧ ψ → ∃! y ∈ C ∃ x ∈ B x = A ∧ ψ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ
12 moeq ⊢ ∃* x x = A
13 12 moani ⊢ ∃* x x ∈ B ∧ ψ ∧ x = A
14 ancom ⊢ x ∈ B ∧ ψ ∧ x = A ↔ x = A ∧ x ∈ B ∧ ψ
15 an12 ⊢ x = A ∧ x ∈ B ∧ ψ ↔ x ∈ B ∧ x = A ∧ ψ
16 14 15 bitri ⊢ x ∈ B ∧ ψ ∧ x = A ↔ x ∈ B ∧ x = A ∧ ψ
17 16 mobii ⊢ ∃* x x ∈ B ∧ ψ ∧ x = A ↔ ∃* x x ∈ B ∧ x = A ∧ ψ
18 13 17 mpbi ⊢ ∃* x x ∈ B ∧ x = A ∧ ψ
19 18 a1i ⊢ y ∈ C → ∃* x x ∈ B ∧ x = A ∧ ψ
20 11 19 mprg ⊢ ∃! y ∈ C ∃ x ∈ B x = A ∧ ψ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ
21 10 20 impbid1 ⊢ φ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ ↔ ∃! y ∈ C ∃ x ∈ B x = A ∧ ψ
22 biidd ⊢ x = A → ψ ↔ ψ
23 22 ceqsrexv ⊢ A ∈ B → ∃ x ∈ B x = A ∧ ψ ↔ ψ
24 1 23 syl ⊢ φ ∧ y ∈ C → ∃ x ∈ B x = A ∧ ψ ↔ ψ
25 24 reubidva ⊢ φ → ∃! y ∈ C ∃ x ∈ B x = A ∧ ψ ↔ ∃! y ∈ C ψ
26 21 25 bitrd ⊢ φ → ∃! x ∈ B ∃ y ∈ C x = A ∧ ψ ↔ ∃! y ∈ C ψ