induction E generalizing F V V'
D : Type
I : Interpretation D
V V' : VarAssignment D
E : Env
F : Formula
h1 : ∀ (v : VarName), isFreeIn v F → V v = V' v
⊢ Holds D I V E F ↔ Holds D I V' E F
case nil
D : Type
I : Interpretation D
V V' : VarAssignment D
F : Formula
h1 : ∀ (v : VarName), isFreeIn v F → V v = V' v
⊢ Holds D I V [] F ↔ Holds D I V' [] F

case cons
D : Type
I : Interpretation D
head✝ : Definition
tail✝ : List Definition
tail_ih✝ :
  ∀ (V V' : VarAssignment D) (F : Formula),
    (∀ (v : VarName), isFreeIn v F → V v = V' v) → (Holds D I V tail✝ F ↔ Holds D I V' tail✝ F)
V V' : VarAssignment D
F : Formula
h1 : ∀ (v : VarName), isFreeIn v F → V v = V' v
⊢ Holds D I V (head✝ :: tail✝) F ↔ Holds D I V' (head✝ :: tail✝) F