Metamath Proof Explorer


Theorem el2mpocl

Description: If the operation value of the operation value of two nested maps-to notation is not empty, all involved arguments belong to the corresponding base classes of the maps-to notations. Using implicit substitution. (Contributed by AV, 21-May-2021)

Ref Expression
Hypotheses el2mpocl.o 𝑂 = ( 𝑥𝐴 , 𝑦𝐵 ↦ ( 𝑠𝐶 , 𝑡𝐷𝐸 ) )
el2mpocl.e ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → ( 𝐶 = 𝐹𝐷 = 𝐺 ) )
Assertion el2mpocl ( ∀ 𝑥𝐴𝑦𝐵 ( 𝐶𝑈𝐷𝑉 ) → ( 𝑊 ∈ ( 𝑆 ( 𝑋 𝑂 𝑌 ) 𝑇 ) → ( ( 𝑋𝐴𝑌𝐵 ) ∧ ( 𝑆𝐹𝑇𝐺 ) ) ) )

Proof

Step Hyp Ref Expression
1 el2mpocl.o 𝑂 = ( 𝑥𝐴 , 𝑦𝐵 ↦ ( 𝑠𝐶 , 𝑡𝐷𝐸 ) )
2 el2mpocl.e ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → ( 𝐶 = 𝐹𝐷 = 𝐺 ) )
3 1 el2mpocsbcl ( ∀ 𝑥𝐴𝑦𝐵 ( 𝐶𝑈𝐷𝑉 ) → ( 𝑊 ∈ ( 𝑆 ( 𝑋 𝑂 𝑌 ) 𝑇 ) → ( ( 𝑋𝐴𝑌𝐵 ) ∧ ( 𝑆 𝑋 / 𝑥 𝑌 / 𝑦 𝐶𝑇 𝑋 / 𝑥 𝑌 / 𝑦 𝐷 ) ) ) )
4 simpl ( ( 𝑋𝐴𝑌𝐵 ) → 𝑋𝐴 )
5 simplr ( ( ( 𝑋𝐴𝑌𝐵 ) ∧ 𝑥 = 𝑋 ) → 𝑌𝐵 )
6 2 simpld ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → 𝐶 = 𝐹 )
7 6 adantll ( ( ( ( 𝑋𝐴𝑌𝐵 ) ∧ 𝑥 = 𝑋 ) ∧ 𝑦 = 𝑌 ) → 𝐶 = 𝐹 )
8 5 7 csbied ( ( ( 𝑋𝐴𝑌𝐵 ) ∧ 𝑥 = 𝑋 ) → 𝑌 / 𝑦 𝐶 = 𝐹 )
9 4 8 csbied ( ( 𝑋𝐴𝑌𝐵 ) → 𝑋 / 𝑥 𝑌 / 𝑦 𝐶 = 𝐹 )
10 9 eleq2d ( ( 𝑋𝐴𝑌𝐵 ) → ( 𝑆 𝑋 / 𝑥 𝑌 / 𝑦 𝐶𝑆𝐹 ) )
11 2 simprd ( ( 𝑥 = 𝑋𝑦 = 𝑌 ) → 𝐷 = 𝐺 )
12 11 adantll ( ( ( ( 𝑋𝐴𝑌𝐵 ) ∧ 𝑥 = 𝑋 ) ∧ 𝑦 = 𝑌 ) → 𝐷 = 𝐺 )
13 5 12 csbied ( ( ( 𝑋𝐴𝑌𝐵 ) ∧ 𝑥 = 𝑋 ) → 𝑌 / 𝑦 𝐷 = 𝐺 )
14 4 13 csbied ( ( 𝑋𝐴𝑌𝐵 ) → 𝑋 / 𝑥 𝑌 / 𝑦 𝐷 = 𝐺 )
15 14 eleq2d ( ( 𝑋𝐴𝑌𝐵 ) → ( 𝑇 𝑋 / 𝑥 𝑌 / 𝑦 𝐷𝑇𝐺 ) )
16 10 15 anbi12d ( ( 𝑋𝐴𝑌𝐵 ) → ( ( 𝑆 𝑋 / 𝑥 𝑌 / 𝑦 𝐶𝑇 𝑋 / 𝑥 𝑌 / 𝑦 𝐷 ) ↔ ( 𝑆𝐹𝑇𝐺 ) ) )
17 16 biimpd ( ( 𝑋𝐴𝑌𝐵 ) → ( ( 𝑆 𝑋 / 𝑥 𝑌 / 𝑦 𝐶𝑇 𝑋 / 𝑥 𝑌 / 𝑦 𝐷 ) → ( 𝑆𝐹𝑇𝐺 ) ) )
18 17 imdistani ( ( ( 𝑋𝐴𝑌𝐵 ) ∧ ( 𝑆 𝑋 / 𝑥 𝑌 / 𝑦 𝐶𝑇 𝑋 / 𝑥 𝑌 / 𝑦 𝐷 ) ) → ( ( 𝑋𝐴𝑌𝐵 ) ∧ ( 𝑆𝐹𝑇𝐺 ) ) )
19 3 18 syl6 ( ∀ 𝑥𝐴𝑦𝐵 ( 𝐶𝑈𝐷𝑉 ) → ( 𝑊 ∈ ( 𝑆 ( 𝑋 𝑂 𝑌 ) 𝑇 ) → ( ( 𝑋𝐴𝑌𝐵 ) ∧ ( 𝑆𝐹𝑇𝐺 ) ) ) )