Metamath Proof Explorer


Theorem cbvmpox2

Description: Rule to change the bound variable in a maps-to function, using implicit substitution. This version of cbvmpo allows A to be a function of y , analogous to cbvmpox . (Contributed by AV, 30-Mar-2019)

Ref Expression
Hypotheses cbvmpox2.1 𝑧 𝐴
cbvmpox2.2 𝑦 𝐷
cbvmpox2.3 𝑧 𝐶
cbvmpox2.4 𝑤 𝐶
cbvmpox2.5 𝑥 𝐸
cbvmpox2.6 𝑦 𝐸
cbvmpox2.7 ( 𝑦 = 𝑧𝐴 = 𝐷 )
cbvmpox2.8 ( ( 𝑦 = 𝑧𝑥 = 𝑤 ) → 𝐶 = 𝐸 )
Assertion cbvmpox2 ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑤𝐷 , 𝑧𝐵𝐸 )

Proof

Step Hyp Ref Expression
1 cbvmpox2.1 𝑧 𝐴
2 cbvmpox2.2 𝑦 𝐷
3 cbvmpox2.3 𝑧 𝐶
4 cbvmpox2.4 𝑤 𝐶
5 cbvmpox2.5 𝑥 𝐸
6 cbvmpox2.6 𝑦 𝐸
7 cbvmpox2.7 ( 𝑦 = 𝑧𝐴 = 𝐷 )
8 cbvmpox2.8 ( ( 𝑦 = 𝑧𝑥 = 𝑤 ) → 𝐶 = 𝐸 )
9 nfv 𝑤 𝑥𝐴
10 nfv 𝑤 𝑦𝐵
11 9 10 nfan 𝑤 ( 𝑥𝐴𝑦𝐵 )
12 4 nfeq2 𝑤 𝑢 = 𝐶
13 11 12 nfan 𝑤 ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 )
14 1 nfcri 𝑧 𝑥𝐴
15 nfv 𝑧 𝑦𝐵
16 14 15 nfan 𝑧 ( 𝑥𝐴𝑦𝐵 )
17 3 nfeq2 𝑧 𝑢 = 𝐶
18 16 17 nfan 𝑧 ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 )
19 nfv 𝑥 𝑤𝐷
20 nfv 𝑥 𝑧𝐵
21 19 20 nfan 𝑥 ( 𝑤𝐷𝑧𝐵 )
22 5 nfeq2 𝑥 𝑢 = 𝐸
23 21 22 nfan 𝑥 ( ( 𝑤𝐷𝑧𝐵 ) ∧ 𝑢 = 𝐸 )
24 2 nfcri 𝑦 𝑤𝐷
25 nfv 𝑦 𝑧𝐵
26 24 25 nfan 𝑦 ( 𝑤𝐷𝑧𝐵 )
27 6 nfeq2 𝑦 𝑢 = 𝐸
28 26 27 nfan 𝑦 ( ( 𝑤𝐷𝑧𝐵 ) ∧ 𝑢 = 𝐸 )
29 eleq1w ( 𝑥 = 𝑤 → ( 𝑥𝐴𝑤𝐴 ) )
30 7 eleq2d ( 𝑦 = 𝑧 → ( 𝑤𝐴𝑤𝐷 ) )
31 29 30 sylan9bb ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → ( 𝑥𝐴𝑤𝐷 ) )
32 simpr ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → 𝑦 = 𝑧 )
33 32 eleq1d ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → ( 𝑦𝐵𝑧𝐵 ) )
34 31 33 anbi12d ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → ( ( 𝑥𝐴𝑦𝐵 ) ↔ ( 𝑤𝐷𝑧𝐵 ) ) )
35 8 ancoms ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → 𝐶 = 𝐸 )
36 35 eqeq2d ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → ( 𝑢 = 𝐶𝑢 = 𝐸 ) )
37 34 36 anbi12d ( ( 𝑥 = 𝑤𝑦 = 𝑧 ) → ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 ) ↔ ( ( 𝑤𝐷𝑧𝐵 ) ∧ 𝑢 = 𝐸 ) ) )
38 13 18 23 28 37 cbvoprab12 { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 ) } = { ⟨ ⟨ 𝑤 , 𝑧 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑤𝐷𝑧𝐵 ) ∧ 𝑢 = 𝐸 ) }
39 df-mpo ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 ) }
40 df-mpo ( 𝑤𝐷 , 𝑧𝐵𝐸 ) = { ⟨ ⟨ 𝑤 , 𝑧 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑤𝐷𝑧𝐵 ) ∧ 𝑢 = 𝐸 ) }
41 38 39 40 3eqtr4i ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑤𝐷 , 𝑧𝐵𝐸 )