induction xs generalizing ys
case a.h.e'_4
Δ : List Formula
F : Formula
X : PredName
xs ys : List VarName
ih_1 : xs.length = ys.length
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
a✝ : ∀ H ∈ [], Holds D I V E H
a1 : Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs ys))
⊢ List.map V xs = List.map V ys
case a.h.e'_4.nil
Δ : List Formula
F : Formula
X : PredName
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
a✝ : ∀ H ∈ [], Holds D I V E H
ys : List VarName
ih_1 : [].length = ys.length
a1 : Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ [] ys))
⊢ List.map V [] = List.map V ys

case a.h.e'_4.cons
Δ : List Formula
F : Formula
X : PredName
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
a✝ : ∀ H ∈ [], Holds D I V E H
head✝ : VarName
tail✝ : List VarName
tail_ih✝ :
  ∀ (ys : List VarName),
    tail✝.length = ys.length →
      Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ tail✝ ys)) → List.map V tail✝ = List.map V ys
ys : List VarName
ih_1 : (head✝ :: tail✝).length = ys.length
a1 : Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ (head✝ :: tail✝) ys))
⊢ List.map V (head✝ :: tail✝) = List.map V ys