simp only [predVarOccursIn] at a1
case h2
D : Type
I I' : Interpretation D
h1 : I.pred_const_ = I'.pred_const_
hd : Definition
tl : List Definition
ih :
  ∀ (V : VarAssignment D) (F : Formula),
    (∀ (P : PredName) (ds : List D), predVarOccursIn P ds.length F → (I.pred_var_ P ds ↔ I'.pred_var_ P ds)) →
      (Holds D I V tl F ↔ Holds D I' V tl F)
X : DefName
xs : List VarName
V : VarAssignment D
h2 : ∀ (P : PredName) (ds : List D), False → (I.pred_var_ P ds ↔ I'.pred_var_ P ds)
c1 : ¬(X = hd.name ∧ xs.length = hd.args.length)
P : PredName
ds : List D
a1 : predVarOccursIn P ds.length (def_ X xs)
⊢ I.pred_var_ P ds ↔ I'.pred_var_ P ds
no goals