Metamath Proof Explorer


Theorem mptmpoopabbrd

Description: The operation value of a function value of a collection of ordered pairs of elements related in two ways. (Contributed by Alexander van Vekens, 8-Nov-2017) (Revised by AV, 15-Jan-2021)

Ref Expression
Hypotheses mptmpoopabbrd.g ( 𝜑𝐺𝑊 )
mptmpoopabbrd.x ( 𝜑𝑋 ∈ ( 𝐴𝐺 ) )
mptmpoopabbrd.y ( 𝜑𝑌 ∈ ( 𝐵𝐺 ) )
mptmpoopabbrd.v ( 𝜑 → { ⟨ 𝑓 , ⟩ ∣ 𝜓 } ∈ 𝑉 )
mptmpoopabbrd.r ( ( 𝜑𝑓 ( 𝐷𝐺 ) ) → 𝜓 )
mptmpoopabbrd.1 ( ( 𝑎 = 𝑋𝑏 = 𝑌 ) → ( 𝜏𝜃 ) )
mptmpoopabbrd.2 ( 𝑔 = 𝐺 → ( 𝜒𝜏 ) )
mptmpoopabbrd.m 𝑀 = ( 𝑔 ∈ V ↦ ( 𝑎 ∈ ( 𝐴𝑔 ) , 𝑏 ∈ ( 𝐵𝑔 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜒𝑓 ( 𝐷𝑔 ) ) } ) )
Assertion mptmpoopabbrd ( 𝜑 → ( 𝑋 ( 𝑀𝐺 ) 𝑌 ) = { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } )

Proof

Step Hyp Ref Expression
1 mptmpoopabbrd.g ( 𝜑𝐺𝑊 )
2 mptmpoopabbrd.x ( 𝜑𝑋 ∈ ( 𝐴𝐺 ) )
3 mptmpoopabbrd.y ( 𝜑𝑌 ∈ ( 𝐵𝐺 ) )
4 mptmpoopabbrd.v ( 𝜑 → { ⟨ 𝑓 , ⟩ ∣ 𝜓 } ∈ 𝑉 )
5 mptmpoopabbrd.r ( ( 𝜑𝑓 ( 𝐷𝐺 ) ) → 𝜓 )
6 mptmpoopabbrd.1 ( ( 𝑎 = 𝑋𝑏 = 𝑌 ) → ( 𝜏𝜃 ) )
7 mptmpoopabbrd.2 ( 𝑔 = 𝐺 → ( 𝜒𝜏 ) )
8 mptmpoopabbrd.m 𝑀 = ( 𝑔 ∈ V ↦ ( 𝑎 ∈ ( 𝐴𝑔 ) , 𝑏 ∈ ( 𝐵𝑔 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜒𝑓 ( 𝐷𝑔 ) ) } ) )
9 fveq2 ( 𝑔 = 𝐺 → ( 𝐴𝑔 ) = ( 𝐴𝐺 ) )
10 fveq2 ( 𝑔 = 𝐺 → ( 𝐵𝑔 ) = ( 𝐵𝐺 ) )
11 fveq2 ( 𝑔 = 𝐺 → ( 𝐷𝑔 ) = ( 𝐷𝐺 ) )
12 11 breqd ( 𝑔 = 𝐺 → ( 𝑓 ( 𝐷𝑔 ) 𝑓 ( 𝐷𝐺 ) ) )
13 7 12 anbi12d ( 𝑔 = 𝐺 → ( ( 𝜒𝑓 ( 𝐷𝑔 ) ) ↔ ( 𝜏𝑓 ( 𝐷𝐺 ) ) ) )
14 13 opabbidv ( 𝑔 = 𝐺 → { ⟨ 𝑓 , ⟩ ∣ ( 𝜒𝑓 ( 𝐷𝑔 ) ) } = { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } )
15 9 10 14 mpoeq123dv ( 𝑔 = 𝐺 → ( 𝑎 ∈ ( 𝐴𝑔 ) , 𝑏 ∈ ( 𝐵𝑔 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜒𝑓 ( 𝐷𝑔 ) ) } ) = ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) )
16 elex ( 𝐺𝑊𝐺 ∈ V )
17 16 adantr ( ( 𝐺𝑊𝐺𝑊 ) → 𝐺 ∈ V )
18 fvex ( 𝐴𝐺 ) ∈ V
19 fvex ( 𝐵𝐺 ) ∈ V
20 18 19 pm3.2i ( ( 𝐴𝐺 ) ∈ V ∧ ( 𝐵𝐺 ) ∈ V )
21 mpoexga ( ( ( 𝐴𝐺 ) ∈ V ∧ ( 𝐵𝐺 ) ∈ V ) → ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) ∈ V )
22 20 21 mp1i ( ( 𝐺𝑊𝐺𝑊 ) → ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) ∈ V )
23 8 15 17 22 fvmptd3 ( ( 𝐺𝑊𝐺𝑊 ) → ( 𝑀𝐺 ) = ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) )
24 1 1 23 syl2anc ( 𝜑 → ( 𝑀𝐺 ) = ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) )
25 24 oveqd ( 𝜑 → ( 𝑋 ( 𝑀𝐺 ) 𝑌 ) = ( 𝑋 ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) 𝑌 ) )
26 ancom ( ( 𝜃𝑓 ( 𝐷𝐺 ) ) ↔ ( 𝑓 ( 𝐷𝐺 ) 𝜃 ) )
27 26 opabbii { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } = { ⟨ 𝑓 , ⟩ ∣ ( 𝑓 ( 𝐷𝐺 ) 𝜃 ) }
28 5 4 opabresex2d ( 𝜑 → { ⟨ 𝑓 , ⟩ ∣ ( 𝑓 ( 𝐷𝐺 ) 𝜃 ) } ∈ V )
29 27 28 eqeltrid ( 𝜑 → { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } ∈ V )
30 6 anbi1d ( ( 𝑎 = 𝑋𝑏 = 𝑌 ) → ( ( 𝜏𝑓 ( 𝐷𝐺 ) ) ↔ ( 𝜃𝑓 ( 𝐷𝐺 ) ) ) )
31 30 opabbidv ( ( 𝑎 = 𝑋𝑏 = 𝑌 ) → { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } = { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } )
32 eqid ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) = ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } )
33 31 32 ovmpoga ( ( 𝑋 ∈ ( 𝐴𝐺 ) ∧ 𝑌 ∈ ( 𝐵𝐺 ) ∧ { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } ∈ V ) → ( 𝑋 ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) 𝑌 ) = { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } )
34 2 3 29 33 syl3anc ( 𝜑 → ( 𝑋 ( 𝑎 ∈ ( 𝐴𝐺 ) , 𝑏 ∈ ( 𝐵𝐺 ) ↦ { ⟨ 𝑓 , ⟩ ∣ ( 𝜏𝑓 ( 𝐷𝐺 ) ) } ) 𝑌 ) = { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } )
35 25 34 eqtrd ( 𝜑 → ( 𝑋 ( 𝑀𝐺 ) 𝑌 ) = { ⟨ 𝑓 , ⟩ ∣ ( 𝜃𝑓 ( 𝐷𝐺 ) ) } )