Metamath Proof Explorer


Theorem ovmpodf

Description: Alternate deduction version of ovmpo , suitable for iteration. (Contributed by Mario Carneiro, 7-Jan-2017)

Ref Expression
Hypotheses ovmpodf.1 ( 𝜑𝐴𝐶 )
ovmpodf.2 ( ( 𝜑𝑥 = 𝐴 ) → 𝐵𝐷 )
ovmpodf.3 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑅𝑉 )
ovmpodf.4 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( ( 𝐴 𝐹 𝐵 ) = 𝑅𝜓 ) )
ovmpodf.5 𝑥 𝐹
ovmpodf.6 𝑥 𝜓
ovmpodf.7 𝑦 𝐹
ovmpodf.8 𝑦 𝜓
Assertion ovmpodf ( 𝜑 → ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 ) )

Proof

Step Hyp Ref Expression
1 ovmpodf.1 ( 𝜑𝐴𝐶 )
2 ovmpodf.2 ( ( 𝜑𝑥 = 𝐴 ) → 𝐵𝐷 )
3 ovmpodf.3 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑅𝑉 )
4 ovmpodf.4 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( ( 𝐴 𝐹 𝐵 ) = 𝑅𝜓 ) )
5 ovmpodf.5 𝑥 𝐹
6 ovmpodf.6 𝑥 𝜓
7 ovmpodf.7 𝑦 𝐹
8 ovmpodf.8 𝑦 𝜓
9 nfv 𝑥 𝜑
10 nfmpo1 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 )
11 5 10 nfeq 𝑥 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 )
12 11 6 nfim 𝑥 ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 )
13 1 elexd ( 𝜑𝐴 ∈ V )
14 isset ( 𝐴 ∈ V ↔ ∃ 𝑥 𝑥 = 𝐴 )
15 13 14 sylib ( 𝜑 → ∃ 𝑥 𝑥 = 𝐴 )
16 nfv 𝑦 ( 𝜑𝑥 = 𝐴 )
17 nfmpo2 𝑦 ( 𝑥𝐶 , 𝑦𝐷𝑅 )
18 7 17 nfeq 𝑦 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 )
19 18 8 nfim 𝑦 ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 )
20 2 elexd ( ( 𝜑𝑥 = 𝐴 ) → 𝐵 ∈ V )
21 isset ( 𝐵 ∈ V ↔ ∃ 𝑦 𝑦 = 𝐵 )
22 20 21 sylib ( ( 𝜑𝑥 = 𝐴 ) → ∃ 𝑦 𝑦 = 𝐵 )
23 oveq ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → ( 𝐴 𝐹 𝐵 ) = ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) )
24 simprl ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑥 = 𝐴 )
25 simprr ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑦 = 𝐵 )
26 24 25 oveq12d ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) )
27 1 adantr ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝐴𝐶 )
28 24 27 eqeltrd ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑥𝐶 )
29 2 adantrr ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝐵𝐷 )
30 25 29 eqeltrd ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑦𝐷 )
31 eqid ( 𝑥𝐶 , 𝑦𝐷𝑅 ) = ( 𝑥𝐶 , 𝑦𝐷𝑅 )
32 31 ovmpt4g ( ( 𝑥𝐶𝑦𝐷𝑅𝑉 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 )
33 28 30 3 32 syl3anc ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 )
34 26 33 eqtr3d ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑅 )
35 34 eqeq2d ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( ( 𝐴 𝐹 𝐵 ) = ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) ↔ ( 𝐴 𝐹 𝐵 ) = 𝑅 ) )
36 35 4 sylbid ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( ( 𝐴 𝐹 𝐵 ) = ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) → 𝜓 ) )
37 23 36 syl5 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 ) )
38 37 expr ( ( 𝜑𝑥 = 𝐴 ) → ( 𝑦 = 𝐵 → ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 ) ) )
39 16 19 22 38 exlimimdd ( ( 𝜑𝑥 = 𝐴 ) → ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 ) )
40 9 12 15 39 exlimdd ( 𝜑 → ( 𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) → 𝜓 ) )