Metamath Proof Explorer


Theorem ovmpt3rabdm

Description: If the value of a function which is the result of an operation defined by the maps-to notation is not empty, the operands and the argument of the function must be sets. (Contributed by AV, 16-May-2019)

Ref Expression
Hypotheses ovmpt3rab1.o 𝑂 = ( 𝑥 ∈ V , 𝑦 ∈ V ↦ ( 𝑧𝑀 ↦ { 𝑎𝑁𝜑 } ) )
ovmpt3rab1.m ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → 𝑀 = 𝐾 )
ovmpt3rab1.n ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → 𝑁 = 𝐿 )
Assertion ovmpt3rabdm ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → dom ( 𝑋 𝑂 𝑌 ) = 𝐾 )

Proof

Step Hyp Ref Expression
1 ovmpt3rab1.o 𝑂 = ( 𝑥 ∈ V , 𝑦 ∈ V ↦ ( 𝑧𝑀 ↦ { 𝑎𝑁𝜑 } ) )
2 ovmpt3rab1.m ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → 𝑀 = 𝐾 )
3 ovmpt3rab1.n ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → 𝑁 = 𝐿 )
4 sbceq1a ( 𝑦 = 𝑌 → ( 𝜑[ 𝑌 / 𝑦 ] 𝜑 ) )
5 sbceq1a ( 𝑥 = 𝑋 → ( [ 𝑌 / 𝑦 ] 𝜑[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 ) )
6 4 5 sylan9bbr ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → ( 𝜑[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 ) )
7 nfsbc1v 𝑥 [ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑
8 nfcv 𝑦 𝑋
9 nfsbc1v 𝑦 [ 𝑌 / 𝑦 ] 𝜑
10 8 9 nfsbcw 𝑦 [ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑
11 1 2 3 6 7 10 ovmpt3rab1 ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) → ( 𝑋 𝑂 𝑌 ) = ( 𝑧𝐾 ↦ { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ) )
12 11 adantr ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → ( 𝑋 𝑂 𝑌 ) = ( 𝑧𝐾 ↦ { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ) )
13 12 dmeqd ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → dom ( 𝑋 𝑂 𝑌 ) = dom ( 𝑧𝐾 ↦ { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ) )
14 rabexg ( 𝐿𝑇 → { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ∈ V )
15 14 adantl ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ∈ V )
16 15 ralrimivw ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → ∀ 𝑧𝐾 { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ∈ V )
17 dmmptg ( ∀ 𝑧𝐾 { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ∈ V → dom ( 𝑧𝐾 ↦ { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ) = 𝐾 )
18 16 17 syl ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → dom ( 𝑧𝐾 ↦ { 𝑎𝐿[ 𝑋 / 𝑥 ] [ 𝑌 / 𝑦 ] 𝜑 } ) = 𝐾 )
19 13 18 eqtrd ( ( ( 𝑋𝑉𝑌𝑊𝐾𝑈 ) ∧ 𝐿𝑇 ) → dom ( 𝑋 𝑂 𝑌 ) = 𝐾 )