Metamath Proof Explorer


Theorem cbvmpo1

Description: Rule to change the first bound variable in a maps-to function, using implicit substitution. (Contributed by Glauco Siliprandi, 26-Jun-2021)

Ref Expression
Hypotheses cbvmpo1.1 𝑥 𝐵
cbvmpo1.2 𝑧 𝐵
cbvmpo1.3 𝑧 𝐶
cbvmpo1.4 𝑥 𝐸
cbvmpo1.5 ( 𝑥 = 𝑧𝐶 = 𝐸 )
Assertion cbvmpo1 ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑧𝐴 , 𝑦𝐵𝐸 )

Proof

Step Hyp Ref Expression
1 cbvmpo1.1 𝑥 𝐵
2 cbvmpo1.2 𝑧 𝐵
3 cbvmpo1.3 𝑧 𝐶
4 cbvmpo1.4 𝑥 𝐸
5 cbvmpo1.5 ( 𝑥 = 𝑧𝐶 = 𝐸 )
6 nfv 𝑧 𝑥𝐴
7 2 nfcri 𝑧 𝑦𝐵
8 6 7 nfan 𝑧 ( 𝑥𝐴𝑦𝐵 )
9 3 nfeq2 𝑧 𝑢 = 𝐶
10 8 9 nfan 𝑧 ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 )
11 nfv 𝑥 𝑧𝐴
12 1 nfcri 𝑥 𝑦𝐵
13 11 12 nfan 𝑥 ( 𝑧𝐴𝑦𝐵 )
14 4 nfeq2 𝑥 𝑢 = 𝐸
15 13 14 nfan 𝑥 ( ( 𝑧𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐸 )
16 eleq1w ( 𝑥 = 𝑧 → ( 𝑥𝐴𝑧𝐴 ) )
17 16 anbi1d ( 𝑥 = 𝑧 → ( ( 𝑥𝐴𝑦𝐵 ) ↔ ( 𝑧𝐴𝑦𝐵 ) ) )
18 5 eqeq2d ( 𝑥 = 𝑧 → ( 𝑢 = 𝐶𝑢 = 𝐸 ) )
19 17 18 anbi12d ( 𝑥 = 𝑧 → ( ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 ) ↔ ( ( 𝑧𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐸 ) ) )
20 10 15 19 cbvoprab1 { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 ) } = { ⟨ ⟨ 𝑧 , 𝑦 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑧𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐸 ) }
21 df-mpo ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑥𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐶 ) }
22 df-mpo ( 𝑧𝐴 , 𝑦𝐵𝐸 ) = { ⟨ ⟨ 𝑧 , 𝑦 ⟩ , 𝑢 ⟩ ∣ ( ( 𝑧𝐴𝑦𝐵 ) ∧ 𝑢 = 𝐸 ) }
23 20 21 22 3eqtr4i ( 𝑥𝐴 , 𝑦𝐵𝐶 ) = ( 𝑧𝐴 , 𝑦𝐵𝐸 )