Metamath Proof Explorer


Theorem mpo2eqb

Description: Bidirectional equality theorem for a mapping abstraction. Equivalent to eqfnov2 . (Contributed by Mario Carneiro, 4-Jan-2017)

Ref Expression
Assertion mpo2eqb ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝑉 → ( ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑥𝐴 , 𝑦𝐵𝐷 ) ↔ ∀ 𝑥𝐴𝑦𝐵 𝐶 = 𝐷 ) )

Proof

Step Hyp Ref Expression
1 df-mpo ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) }
2 df-mpo ( 𝑥𝐴 , 𝑦𝐵𝐷 ) = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) }
3 1 2 eqeq12i ( ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑥𝐴 , 𝑦𝐵𝐷 ) ↔ { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) } = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) } )
4 eqoprab2bw ( { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) } = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) } ↔ ∀ 𝑥𝑦𝑧 ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) ) )
5 pm5.32 ( ( ( 𝑥𝐴𝑦𝐵 ) → ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) ↔ ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) ) )
6 5 albii ( ∀ 𝑧 ( ( 𝑥𝐴𝑦𝐵 ) → ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) ↔ ∀ 𝑧 ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) ) )
7 19.21v ( ∀ 𝑧 ( ( 𝑥𝐴𝑦𝐵 ) → ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) → ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
8 6 7 bitr3i ( ∀ 𝑧 ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) → ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
9 8 2albii ( ∀ 𝑥𝑦𝑧 ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) ) ↔ ∀ 𝑥𝑦 ( ( 𝑥𝐴𝑦𝐵 ) → ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
10 r2al ( ∀ 𝑥𝐴𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ↔ ∀ 𝑥𝑦 ( ( 𝑥𝐴𝑦𝐵 ) → ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
11 9 10 bitr4i ( ∀ 𝑥𝑦𝑧 ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐶 ) ↔ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑧 = 𝐷 ) ) ↔ ∀ 𝑥𝐴𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) )
12 3 4 11 3bitri ( ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑥𝐴 , 𝑦𝐵𝐷 ) ↔ ∀ 𝑥𝐴𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) )
13 pm13.183 ( 𝐶𝑉 → ( 𝐶 = 𝐷 ↔ ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
14 13 ralimi ( ∀ 𝑦𝐵 𝐶𝑉 → ∀ 𝑦𝐵 ( 𝐶 = 𝐷 ↔ ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
15 ralbi ( ∀ 𝑦𝐵 ( 𝐶 = 𝐷 ↔ ∀ 𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) → ( ∀ 𝑦𝐵 𝐶 = 𝐷 ↔ ∀ 𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
16 14 15 syl ( ∀ 𝑦𝐵 𝐶𝑉 → ( ∀ 𝑦𝐵 𝐶 = 𝐷 ↔ ∀ 𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
17 16 ralimi ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝑉 → ∀ 𝑥𝐴 ( ∀ 𝑦𝐵 𝐶 = 𝐷 ↔ ∀ 𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
18 ralbi ( ∀ 𝑥𝐴 ( ∀ 𝑦𝐵 𝐶 = 𝐷 ↔ ∀ 𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) → ( ∀ 𝑥𝐴𝑦𝐵 𝐶 = 𝐷 ↔ ∀ 𝑥𝐴𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
19 17 18 syl ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝑉 → ( ∀ 𝑥𝐴𝑦𝐵 𝐶 = 𝐷 ↔ ∀ 𝑥𝐴𝑦𝐵𝑧 ( 𝑧 = 𝐶𝑧 = 𝐷 ) ) )
20 12 19 bitr4id ( ∀ 𝑥𝐴𝑦𝐵 𝐶𝑉 → ( ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑥𝐴 , 𝑦𝐵𝐷 ) ↔ ∀ 𝑥𝐴𝑦𝐵 𝐶 = 𝐷 ) )