split_ifs
case h.e'_2.h1
x : VarName
phi : Formula
phi_ih :
  ∀ (σ σ' : VarName → VarName),
    (∀ (v : VarName), isFreeIn v phi → σ v = σ' v) → fastReplaceFree σ phi = fastReplaceFree σ' phi
σ σ' : VarName → VarName
h1 : ∀ (v : VarName), ¬v = x ∧ isFreeIn v phi → σ v = σ' v
v : VarName
a1 : isFreeIn v phi
⊢ (if v = x then x else σ v) = if v = x then x else σ' v
case pos
x : VarName
phi : Formula
phi_ih :
  ∀ (σ σ' : VarName → VarName),
    (∀ (v : VarName), isFreeIn v phi → σ v = σ' v) → fastReplaceFree σ phi = fastReplaceFree σ' phi
σ σ' : VarName → VarName
h1 : ∀ (v : VarName), ¬v = x ∧ isFreeIn v phi → σ v = σ' v
v : VarName
a1 : isFreeIn v phi
h✝ : v = x
⊢ x = x

case neg
x : VarName
phi : Formula
phi_ih :
  ∀ (σ σ' : VarName → VarName),
    (∀ (v : VarName), isFreeIn v phi → σ v = σ' v) → fastReplaceFree σ phi = fastReplaceFree σ' phi
σ σ' : VarName → VarName
h1 : ∀ (v : VarName), ¬v = x ∧ isFreeIn v phi → σ v = σ' v
v : VarName
a1 : isFreeIn v phi
h✝ : ¬v = x
⊢ σ v = σ' v