contradiction
case s1
D : Type
I : Interpretation D
M : MetaValuation D
E : Env
Γ : List (VarName × MetaVarName)
X : PredName
xs : List VarName
V : Valuation D
d : D
x : VarName
a1 : x ∈ xs
h2 : ∀ (X : MetaVarName), (x, X) ∈ Γ → IsNotFree D I M E (meta_var_ X) x
h1 : x ∉ xs
⊢ False

case a.h.e'_2.a
D : Type
I : Interpretation D
M : MetaValuation D
E : Env
Γ : List (VarName × MetaVarName)
v : VarName
h2 : ∀ (X : MetaVarName), (v, X) ∈ Γ → IsNotFree D I M E (meta_var_ X) v
X : PredName
xs : List VarName
h1 : v ∉ xs
V : Valuation D
d : D
x : VarName
a1 : x ∈ xs
s1 : ¬x = v
⊢ V x = Function.updateITE V v d x
case a.h.e'_2.a
D : Type
I : Interpretation D
M : MetaValuation D
E : Env
Γ : List (VarName × MetaVarName)
v : VarName
h2 : ∀ (X : MetaVarName), (v, X) ∈ Γ → IsNotFree D I M E (meta_var_ X) v
X : PredName
xs : List VarName
h1 : v ∉ xs
V : Valuation D
d : D
x : VarName
a1 : x ∈ xs
s1 : ¬x = v
⊢ V x = Function.updateITE V v d x