Metamath Proof Explorer


Theorem csbmpo123

Description: Move class substitution in and out of maps-to notation for operations. (Contributed by ML, 25-Oct-2020)

Ref Expression
Assertion csbmpo123 ( 𝐴𝑉 𝐴 / 𝑥 ( 𝑦𝑌 , 𝑧𝑍𝐷 ) = ( 𝑦 𝐴 / 𝑥 𝑌 , 𝑧 𝐴 / 𝑥 𝑍 𝐴 / 𝑥 𝐷 ) )

Proof

Step Hyp Ref Expression
1 csboprabg ( 𝐴𝑉 𝐴 / 𝑥 { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) } = { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ [ 𝐴 / 𝑥 ] ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) } )
2 sbcan ( [ 𝐴 / 𝑥 ] ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) ↔ ( [ 𝐴 / 𝑥 ] ( 𝑦𝑌𝑧𝑍 ) ∧ [ 𝐴 / 𝑥 ] 𝑑 = 𝐷 ) )
3 sbcan ( [ 𝐴 / 𝑥 ] ( 𝑦𝑌𝑧𝑍 ) ↔ ( [ 𝐴 / 𝑥 ] 𝑦𝑌[ 𝐴 / 𝑥 ] 𝑧𝑍 ) )
4 sbcel12 ( [ 𝐴 / 𝑥 ] 𝑦𝑌 𝐴 / 𝑥 𝑦 𝐴 / 𝑥 𝑌 )
5 csbconstg ( 𝐴𝑉 𝐴 / 𝑥 𝑦 = 𝑦 )
6 5 eleq1d ( 𝐴𝑉 → ( 𝐴 / 𝑥 𝑦 𝐴 / 𝑥 𝑌𝑦 𝐴 / 𝑥 𝑌 ) )
7 4 6 syl5bb ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] 𝑦𝑌𝑦 𝐴 / 𝑥 𝑌 ) )
8 sbcel12 ( [ 𝐴 / 𝑥 ] 𝑧𝑍 𝐴 / 𝑥 𝑧 𝐴 / 𝑥 𝑍 )
9 csbconstg ( 𝐴𝑉 𝐴 / 𝑥 𝑧 = 𝑧 )
10 9 eleq1d ( 𝐴𝑉 → ( 𝐴 / 𝑥 𝑧 𝐴 / 𝑥 𝑍𝑧 𝐴 / 𝑥 𝑍 ) )
11 8 10 syl5bb ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] 𝑧𝑍𝑧 𝐴 / 𝑥 𝑍 ) )
12 7 11 anbi12d ( 𝐴𝑉 → ( ( [ 𝐴 / 𝑥 ] 𝑦𝑌[ 𝐴 / 𝑥 ] 𝑧𝑍 ) ↔ ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ) )
13 3 12 syl5bb ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] ( 𝑦𝑌𝑧𝑍 ) ↔ ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ) )
14 sbceq2g ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] 𝑑 = 𝐷𝑑 = 𝐴 / 𝑥 𝐷 ) )
15 13 14 anbi12d ( 𝐴𝑉 → ( ( [ 𝐴 / 𝑥 ] ( 𝑦𝑌𝑧𝑍 ) ∧ [ 𝐴 / 𝑥 ] 𝑑 = 𝐷 ) ↔ ( ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ∧ 𝑑 = 𝐴 / 𝑥 𝐷 ) ) )
16 2 15 syl5bb ( 𝐴𝑉 → ( [ 𝐴 / 𝑥 ] ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) ↔ ( ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ∧ 𝑑 = 𝐴 / 𝑥 𝐷 ) ) )
17 16 oprabbidv ( 𝐴𝑉 → { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ [ 𝐴 / 𝑥 ] ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) } = { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ∧ 𝑑 = 𝐴 / 𝑥 𝐷 ) } )
18 1 17 eqtrd ( 𝐴𝑉 𝐴 / 𝑥 { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) } = { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ∧ 𝑑 = 𝐴 / 𝑥 𝐷 ) } )
19 df-mpo ( 𝑦𝑌 , 𝑧𝑍𝐷 ) = { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) }
20 19 csbeq2i 𝐴 / 𝑥 ( 𝑦𝑌 , 𝑧𝑍𝐷 ) = 𝐴 / 𝑥 { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦𝑌𝑧𝑍 ) ∧ 𝑑 = 𝐷 ) }
21 df-mpo ( 𝑦 𝐴 / 𝑥 𝑌 , 𝑧 𝐴 / 𝑥 𝑍 𝐴 / 𝑥 𝐷 ) = { ⟨ ⟨ 𝑦 , 𝑧 ⟩ , 𝑑 ⟩ ∣ ( ( 𝑦 𝐴 / 𝑥 𝑌𝑧 𝐴 / 𝑥 𝑍 ) ∧ 𝑑 = 𝐴 / 𝑥 𝐷 ) }
22 18 20 21 3eqtr4g ( 𝐴𝑉 𝐴 / 𝑥 ( 𝑦𝑌 , 𝑧𝑍𝐷 ) = ( 𝑦 𝐴 / 𝑥 𝑌 , 𝑧 𝐴 / 𝑥 𝑍 𝐴 / 𝑥 𝐷 ) )