Metamath Proof Explorer


Theorem reuxfr1d

Description: Transfer existential uniqueness from a variable x to another variable y contained in expression A . Cf. reuxfr1ds . (Contributed by Thierry Arnoux, 7-Apr-2017)

Ref Expression
Hypotheses reuxfr1d.1 ( ( 𝜑𝑦𝐶 ) → 𝐴𝐵 )
reuxfr1d.2 ( ( 𝜑𝑥𝐵 ) → ∃! 𝑦𝐶 𝑥 = 𝐴 )
reuxfr1d.3 ( ( 𝜑𝑥 = 𝐴 ) → ( 𝜓𝜒 ) )
Assertion reuxfr1d ( 𝜑 → ( ∃! 𝑥𝐵 𝜓 ↔ ∃! 𝑦𝐶 𝜒 ) )

Proof

Step Hyp Ref Expression
1 reuxfr1d.1 ( ( 𝜑𝑦𝐶 ) → 𝐴𝐵 )
2 reuxfr1d.2 ( ( 𝜑𝑥𝐵 ) → ∃! 𝑦𝐶 𝑥 = 𝐴 )
3 reuxfr1d.3 ( ( 𝜑𝑥 = 𝐴 ) → ( 𝜓𝜒 ) )
4 reurex ( ∃! 𝑦𝐶 𝑥 = 𝐴 → ∃ 𝑦𝐶 𝑥 = 𝐴 )
5 2 4 syl ( ( 𝜑𝑥𝐵 ) → ∃ 𝑦𝐶 𝑥 = 𝐴 )
6 5 biantrurd ( ( 𝜑𝑥𝐵 ) → ( 𝜓 ↔ ( ∃ 𝑦𝐶 𝑥 = 𝐴𝜓 ) ) )
7 r19.41v ( ∃ 𝑦𝐶 ( 𝑥 = 𝐴𝜓 ) ↔ ( ∃ 𝑦𝐶 𝑥 = 𝐴𝜓 ) )
8 3 pm5.32da ( 𝜑 → ( ( 𝑥 = 𝐴𝜓 ) ↔ ( 𝑥 = 𝐴𝜒 ) ) )
9 8 rexbidv ( 𝜑 → ( ∃ 𝑦𝐶 ( 𝑥 = 𝐴𝜓 ) ↔ ∃ 𝑦𝐶 ( 𝑥 = 𝐴𝜒 ) ) )
10 7 9 bitr3id ( 𝜑 → ( ( ∃ 𝑦𝐶 𝑥 = 𝐴𝜓 ) ↔ ∃ 𝑦𝐶 ( 𝑥 = 𝐴𝜒 ) ) )
11 10 adantr ( ( 𝜑𝑥𝐵 ) → ( ( ∃ 𝑦𝐶 𝑥 = 𝐴𝜓 ) ↔ ∃ 𝑦𝐶 ( 𝑥 = 𝐴𝜒 ) ) )
12 6 11 bitrd ( ( 𝜑𝑥𝐵 ) → ( 𝜓 ↔ ∃ 𝑦𝐶 ( 𝑥 = 𝐴𝜒 ) ) )
13 12 reubidva ( 𝜑 → ( ∃! 𝑥𝐵 𝜓 ↔ ∃! 𝑥𝐵𝑦𝐶 ( 𝑥 = 𝐴𝜒 ) ) )
14 reurmo ( ∃! 𝑦𝐶 𝑥 = 𝐴 → ∃* 𝑦𝐶 𝑥 = 𝐴 )
15 2 14 syl ( ( 𝜑𝑥𝐵 ) → ∃* 𝑦𝐶 𝑥 = 𝐴 )
16 1 15 reuxfrd ( 𝜑 → ( ∃! 𝑥𝐵𝑦𝐶 ( 𝑥 = 𝐴𝜒 ) ↔ ∃! 𝑦𝐶 𝜒 ) )
17 13 16 bitrd ( 𝜑 → ( ∃! 𝑥𝐵 𝜓 ↔ ∃! 𝑦𝐶 𝜒 ) )