Metamath Proof Explorer


Theorem ovig

Description: The value of an operation class abstraction (weak version). (Contributed by NM, 14-Sep-1999) Remove unnecessary distinct variable conditions. (Revised by David Abernethy, 19-Jun-2012) (Revised by Mario Carneiro, 19-Dec-2013)

Ref Expression
Hypotheses ovig.1 ( ( 𝑥 = 𝐴𝑦 = 𝐵𝑧 = 𝐶 ) → ( 𝜑𝜓 ) )
ovig.2 ( ( 𝑥𝑅𝑦𝑆 ) → ∃* 𝑧 𝜑 )
ovig.3 𝐹 = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝑅𝑦𝑆 ) ∧ 𝜑 ) }
Assertion ovig ( ( 𝐴𝑅𝐵𝑆𝐶𝐷 ) → ( 𝜓 → ( 𝐴 𝐹 𝐵 ) = 𝐶 ) )

Proof

Step Hyp Ref Expression
1 ovig.1 ( ( 𝑥 = 𝐴𝑦 = 𝐵𝑧 = 𝐶 ) → ( 𝜑𝜓 ) )
2 ovig.2 ( ( 𝑥𝑅𝑦𝑆 ) → ∃* 𝑧 𝜑 )
3 ovig.3 𝐹 = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ ( ( 𝑥𝑅𝑦𝑆 ) ∧ 𝜑 ) }
4 3simpa ( ( 𝐴𝑅𝐵𝑆𝐶𝐷 ) → ( 𝐴𝑅𝐵𝑆 ) )
5 eleq1 ( 𝑥 = 𝐴 → ( 𝑥𝑅𝐴𝑅 ) )
6 eleq1 ( 𝑦 = 𝐵 → ( 𝑦𝑆𝐵𝑆 ) )
7 5 6 bi2anan9 ( ( 𝑥 = 𝐴𝑦 = 𝐵 ) → ( ( 𝑥𝑅𝑦𝑆 ) ↔ ( 𝐴𝑅𝐵𝑆 ) ) )
8 7 3adant3 ( ( 𝑥 = 𝐴𝑦 = 𝐵𝑧 = 𝐶 ) → ( ( 𝑥𝑅𝑦𝑆 ) ↔ ( 𝐴𝑅𝐵𝑆 ) ) )
9 8 1 anbi12d ( ( 𝑥 = 𝐴𝑦 = 𝐵𝑧 = 𝐶 ) → ( ( ( 𝑥𝑅𝑦𝑆 ) ∧ 𝜑 ) ↔ ( ( 𝐴𝑅𝐵𝑆 ) ∧ 𝜓 ) ) )
10 moanimv ( ∃* 𝑧 ( ( 𝑥𝑅𝑦𝑆 ) ∧ 𝜑 ) ↔ ( ( 𝑥𝑅𝑦𝑆 ) → ∃* 𝑧 𝜑 ) )
11 2 10 mpbir ∃* 𝑧 ( ( 𝑥𝑅𝑦𝑆 ) ∧ 𝜑 )
12 9 11 3 ovigg ( ( 𝐴𝑅𝐵𝑆𝐶𝐷 ) → ( ( ( 𝐴𝑅𝐵𝑆 ) ∧ 𝜓 ) → ( 𝐴 𝐹 𝐵 ) = 𝐶 ) )
13 4 12 mpand ( ( 𝐴𝑅𝐵𝑆𝐶𝐷 ) → ( 𝜓 → ( 𝐴 𝐹 𝐵 ) = 𝐶 ) )