have s1 : Rec.fastReplaceFree v u phi = phi
case neg
v u x : VarName
phi : Formula
phi_ih : ∀ (binders : Finset VarName), Rec.fastAdmitsAux v u binders phi → IsSub phi v u (Rec.fastReplaceFree v u phi)
binders : Finset VarName
h1 : Rec.fastAdmitsAux v u (binders ∪ {x}) phi
c1 : ¬v = x
c2 : ¬isFreeIn v phi
⊢ IsSub (exists_ x phi) v u (exists_ x (Rec.fastReplaceFree v u phi))
case s1
v u x : VarName
phi : Formula
phi_ih : ∀ (binders : Finset VarName), Rec.fastAdmitsAux v u binders phi → IsSub phi v u (Rec.fastReplaceFree v u phi)
binders : Finset VarName
h1 : Rec.fastAdmitsAux v u (binders ∪ {x}) phi
c1 : ¬v = x
c2 : ¬isFreeIn v phi
⊢ Rec.fastReplaceFree v u phi = phi

case neg
v u x : VarName
phi : Formula
phi_ih : ∀ (binders : Finset VarName), Rec.fastAdmitsAux v u binders phi → IsSub phi v u (Rec.fastReplaceFree v u phi)
binders : Finset VarName
h1 : Rec.fastAdmitsAux v u (binders ∪ {x}) phi
c1 : ¬v = x
c2 : ¬isFreeIn v phi
s1 : Rec.fastReplaceFree v u phi = phi
⊢ IsSub (exists_ x phi) v u (exists_ x (Rec.fastReplaceFree v u phi))