Metamath Proof Explorer


Theorem cbvmpox

Description: Rule to change the bound variable in a maps-to function, using implicit substitution. This version of cbvmpo allows B to be a function of x . (Contributed by NM, 29-Dec-2014)

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

Proof

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