case eq_ x y =>
  simp only [Function.updateITE]
  simp only [eq_comm]
  congr! 1
  all_goals
    split_ifs
    case _ c1 =>
      subst c1
      tauto
    case _ c1 =>
      rfl
D : Type
I : Interpretation D
V' : VarAssignment D
v t : VarName
head✝ : Definition
tail✝ : List Definition
tail_ih✝ :
  ∀ (V : VarAssignment D) (binders : Finset VarName) (F : Formula),
    fastAdmitsAux v t binders F →
      (∀ v ∉ binders, V' v = V v) →
        (Holds D I (Function.updateITE V v (V' t)) tail✝ F ↔ Holds D I V tail✝ (fastReplaceFree v t F))
x y : VarName
V : VarAssignment D
binders : Finset VarName
h1 : v = x ∨ v = y → t ∉ binders
h2 : ∀ v ∉ binders, V' v = V v
⊢ Function.updateITE V v (V' t) x = Function.updateITE V v (V' t) y ↔
    V (if v = x then t else x) = V (if v = y then t else y)
no goals