Metamath Proof Explorer


Theorem ovmpordxf

Description: Value of an operation given by a maps-to rule, deduction form, with substitution of second argument, analogous to ovmpodxf . (Contributed by AV, 30-Mar-2019)

Ref Expression
Hypotheses ovmpordx.1 ( 𝜑𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) )
ovmpordx.2 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑅 = 𝑆 )
ovmpordx.3 ( ( 𝜑𝑦 = 𝐵 ) → 𝐶 = 𝐿 )
ovmpordx.4 ( 𝜑𝐴𝐿 )
ovmpordx.5 ( 𝜑𝐵𝐷 )
ovmpordx.6 ( 𝜑𝑆𝑋 )
ovmpordxf.px 𝑥 𝜑
ovmpordxf.py 𝑦 𝜑
ovmpordxf.ay 𝑦 𝐴
ovmpordxf.bx 𝑥 𝐵
ovmpordxf.sx 𝑥 𝑆
ovmpordxf.sy 𝑦 𝑆
Assertion ovmpordxf ( 𝜑 → ( 𝐴 𝐹 𝐵 ) = 𝑆 )

Proof

Step Hyp Ref Expression
1 ovmpordx.1 ( 𝜑𝐹 = ( 𝑥𝐶 , 𝑦𝐷𝑅 ) )
2 ovmpordx.2 ( ( 𝜑 ∧ ( 𝑥 = 𝐴𝑦 = 𝐵 ) ) → 𝑅 = 𝑆 )
3 ovmpordx.3 ( ( 𝜑𝑦 = 𝐵 ) → 𝐶 = 𝐿 )
4 ovmpordx.4 ( 𝜑𝐴𝐿 )
5 ovmpordx.5 ( 𝜑𝐵𝐷 )
6 ovmpordx.6 ( 𝜑𝑆𝑋 )
7 ovmpordxf.px 𝑥 𝜑
8 ovmpordxf.py 𝑦 𝜑
9 ovmpordxf.ay 𝑦 𝐴
10 ovmpordxf.bx 𝑥 𝐵
11 ovmpordxf.sx 𝑥 𝑆
12 ovmpordxf.sy 𝑦 𝑆
13 1 oveqd ( 𝜑 → ( 𝐴 𝐹 𝐵 ) = ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) )
14 eqid ( 𝑥𝐶 , 𝑦𝐷𝑅 ) = ( 𝑥𝐶 , 𝑦𝐷𝑅 )
15 14 ovmpt4g ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 )
16 15 a1i ( 𝜑 → ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) )
17 8 16 alrimi ( 𝜑 → ∀ 𝑦 ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) )
18 5 17 spsbcd ( 𝜑[ 𝐵 / 𝑦 ] ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) )
19 7 18 alrimi ( 𝜑 → ∀ 𝑥 [ 𝐵 / 𝑦 ] ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) )
20 4 19 spsbcd ( 𝜑[ 𝐴 / 𝑥 ] [ 𝐵 / 𝑦 ] ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) )
21 5 adantr ( ( 𝜑𝑥 = 𝐴 ) → 𝐵𝐷 )
22 4 ad2antrr ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝐴𝐿 )
23 simpr ( ( 𝜑𝑥 = 𝐴 ) → 𝑥 = 𝐴 )
24 23 adantr ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑥 = 𝐴 )
25 3 adantlr ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝐶 = 𝐿 )
26 22 24 25 3eltr4d ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑥𝐶 )
27 5 ad2antrr ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝐵𝐷 )
28 eleq1 ( 𝑦 = 𝐵 → ( 𝑦𝐷𝐵𝐷 ) )
29 28 adantl ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → ( 𝑦𝐷𝐵𝐷 ) )
30 27 29 mpbird ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑦𝐷 )
31 2 anassrs ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑅 = 𝑆 )
32 6 ad2antrr ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑆𝑋 )
33 31 32 eqeltrd ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑅𝑋 )
34 biimt ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ↔ ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) ) )
35 26 30 33 34 syl3anc ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → ( ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ↔ ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) ) )
36 simpr ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → 𝑦 = 𝐵 )
37 24 36 oveq12d ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) )
38 37 31 eqeq12d ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → ( ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ↔ ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 ) )
39 35 38 bitr3d ( ( ( 𝜑𝑥 = 𝐴 ) ∧ 𝑦 = 𝐵 ) → ( ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) ↔ ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 ) )
40 9 nfeq2 𝑦 𝑥 = 𝐴
41 8 40 nfan 𝑦 ( 𝜑𝑥 = 𝐴 )
42 nfmpo2 𝑦 ( 𝑥𝐶 , 𝑦𝐷𝑅 )
43 nfcv 𝑦 𝐵
44 9 42 43 nfov 𝑦 ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 )
45 44 12 nfeq 𝑦 ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆
46 45 a1i ( ( 𝜑𝑥 = 𝐴 ) → Ⅎ 𝑦 ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 )
47 21 39 41 46 sbciedf ( ( 𝜑𝑥 = 𝐴 ) → ( [ 𝐵 / 𝑦 ] ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) ↔ ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 ) )
48 nfcv 𝑥 𝐴
49 nfmpo1 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 )
50 48 49 10 nfov 𝑥 ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 )
51 50 11 nfeq 𝑥 ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆
52 51 a1i ( 𝜑 → Ⅎ 𝑥 ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 )
53 4 47 7 52 sbciedf ( 𝜑 → ( [ 𝐴 / 𝑥 ] [ 𝐵 / 𝑦 ] ( ( 𝑥𝐶𝑦𝐷𝑅𝑋 ) → ( 𝑥 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝑦 ) = 𝑅 ) ↔ ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 ) )
54 20 53 mpbid ( 𝜑 → ( 𝐴 ( 𝑥𝐶 , 𝑦𝐷𝑅 ) 𝐵 ) = 𝑆 )
55 13 54 eqtrd ( 𝜑 → ( 𝐴 𝐹 𝐵 ) = 𝑆 )