Metamath Proof Explorer


Theorem cbvoprab12

Description: Rule used to change first two bound variables in an operation abstraction, using implicit substitution. (Contributed by NM, 21-Feb-2004) (Proof shortened by Andrew Salmon, 22-Oct-2011)

Ref Expression
Hypotheses cbvoprab12.1 𝑤 𝜑
cbvoprab12.2 𝑣 𝜑
cbvoprab12.3 𝑥 𝜓
cbvoprab12.4 𝑦 𝜓
cbvoprab12.5 ( ( 𝑥 = 𝑤𝑦 = 𝑣 ) → ( 𝜑𝜓 ) )
Assertion cbvoprab12 { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ 𝜑 } = { ⟨ ⟨ 𝑤 , 𝑣 ⟩ , 𝑧 ⟩ ∣ 𝜓 }

Proof

Step Hyp Ref Expression
1 cbvoprab12.1 𝑤 𝜑
2 cbvoprab12.2 𝑣 𝜑
3 cbvoprab12.3 𝑥 𝜓
4 cbvoprab12.4 𝑦 𝜓
5 cbvoprab12.5 ( ( 𝑥 = 𝑤𝑦 = 𝑣 ) → ( 𝜑𝜓 ) )
6 nfv 𝑤 𝑢 = ⟨ 𝑥 , 𝑦
7 6 1 nfan 𝑤 ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ∧ 𝜑 )
8 nfv 𝑣 𝑢 = ⟨ 𝑥 , 𝑦
9 8 2 nfan 𝑣 ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ∧ 𝜑 )
10 nfv 𝑥 𝑢 = ⟨ 𝑤 , 𝑣
11 10 3 nfan 𝑥 ( 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ∧ 𝜓 )
12 nfv 𝑦 𝑢 = ⟨ 𝑤 , 𝑣
13 12 4 nfan 𝑦 ( 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ∧ 𝜓 )
14 opeq12 ( ( 𝑥 = 𝑤𝑦 = 𝑣 ) → ⟨ 𝑥 , 𝑦 ⟩ = ⟨ 𝑤 , 𝑣 ⟩ )
15 14 eqeq2d ( ( 𝑥 = 𝑤𝑦 = 𝑣 ) → ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ↔ 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ) )
16 15 5 anbi12d ( ( 𝑥 = 𝑤𝑦 = 𝑣 ) → ( ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ∧ 𝜑 ) ↔ ( 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ∧ 𝜓 ) ) )
17 7 9 11 13 16 cbvex2v ( ∃ 𝑥𝑦 ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ∧ 𝜑 ) ↔ ∃ 𝑤𝑣 ( 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ∧ 𝜓 ) )
18 17 opabbii { ⟨ 𝑢 , 𝑧 ⟩ ∣ ∃ 𝑥𝑦 ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ∧ 𝜑 ) } = { ⟨ 𝑢 , 𝑧 ⟩ ∣ ∃ 𝑤𝑣 ( 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ∧ 𝜓 ) }
19 dfoprab2 { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ 𝜑 } = { ⟨ 𝑢 , 𝑧 ⟩ ∣ ∃ 𝑥𝑦 ( 𝑢 = ⟨ 𝑥 , 𝑦 ⟩ ∧ 𝜑 ) }
20 dfoprab2 { ⟨ ⟨ 𝑤 , 𝑣 ⟩ , 𝑧 ⟩ ∣ 𝜓 } = { ⟨ 𝑢 , 𝑧 ⟩ ∣ ∃ 𝑤𝑣 ( 𝑢 = ⟨ 𝑤 , 𝑣 ⟩ ∧ 𝜓 ) }
21 18 19 20 3eqtr4i { ⟨ ⟨ 𝑥 , 𝑦 ⟩ , 𝑧 ⟩ ∣ 𝜑 } = { ⟨ ⟨ 𝑤 , 𝑣 ⟩ , 𝑧 ⟩ ∣ 𝜓 }