have s1 : ¬ free_ x = free_ z
D : Type
I : Interpretation D
z X : String
vs : List Var
V : VarAssignment D
j : ℕ
h1 : free_ z ∉ vs
x : String
a1 : free_ x ∈ vs
h2 : Var.lc_at j (free_ x)
⊢ V (free_ x) = V (if free_ x = free_ z then bound_ j else free_ x)
case s1
D : Type
I : Interpretation D
z X : String
vs : List Var
V : VarAssignment D
j : ℕ
h1 : free_ z ∉ vs
x : String
a1 : free_ x ∈ vs
h2 : Var.lc_at j (free_ x)
⊢ ¬free_ x = free_ z

D : Type
I : Interpretation D
z X : String
vs : List Var
V : VarAssignment D
j : ℕ
h1 : free_ z ∉ vs
x : String
a1 : free_ x ∈ vs
h2 : Var.lc_at j (free_ x)
s1 : ¬free_ x = free_ z
⊢ V (free_ x) = V (if free_ x = free_ z then bound_ j else free_ x)