simp only [Holds] at h2
D : Type
I : Interpretation D
M : MetaValuation D
Γ : List (VarName × MetaVarName)
v : VarName
X : DefName
xs : List VarName
E_hd : Definition
E_tl : List Definition
E_ih : (∀ (X : MetaVarName), (v, X) ∈ Γ → IsNotFree D I M E_tl (meta_var_ X) v) → IsNotFree D I M E_tl (def_ X xs) v
h2 :
  ∀ (X : MetaVarName),
    (v, X) ∈ Γ →
      ∀ (V : Valuation D) (d : D),
        Holds D I V M (E_hd :: E_tl) (meta_var_ X) ↔ Holds D I (Function.updateITE V v d) M (E_hd :: E_tl) (meta_var_ X)
h1 : v ∉ xs
⊢ IsNotFree D I M (E_hd :: E_tl) (def_ X xs) v
D : Type
I : Interpretation D
M : MetaValuation D
Γ : List (VarName × MetaVarName)
v : VarName
X : DefName
xs : List VarName
E_hd : Definition
E_tl : List Definition
E_ih : (∀ (X : MetaVarName), (v, X) ∈ Γ → IsNotFree D I M E_tl (meta_var_ X) v) → IsNotFree D I M E_tl (def_ X xs) v
h1 : v ∉ xs
h2 : ∀ (X : MetaVarName), (v, X) ∈ Γ → ∀ (V : Valuation D) (d : D), M X V ↔ M X (Function.updateITE V v d)
⊢ IsNotFree D I M (E_hd :: E_tl) (def_ X xs) v