constructor
Δ : List Formula
F : Formula
X : PredName
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
a✝ : ∀ H ∈ [], Holds D I V E H
xs_hd : VarName
xs_tl : List VarName
xs_ih :
  ∀ (ys : List VarName),
    xs_tl.length = ys.length →
      Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs_tl ys)) → List.map V xs_tl = List.map V ys
ys_hd : VarName
ys_tl : List VarName
ih_1 : xs_tl.length = ys_tl.length
a1_left : V xs_hd = V ys_hd
a1_right : Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs_tl ys_tl))
⊢ V xs_hd = V ys_hd ∧ List.map V xs_tl = List.map V ys_tl
case left
Δ : List Formula
F : Formula
X : PredName
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
a✝ : ∀ H ∈ [], Holds D I V E H
xs_hd : VarName
xs_tl : List VarName
xs_ih :
  ∀ (ys : List VarName),
    xs_tl.length = ys.length →
      Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs_tl ys)) → List.map V xs_tl = List.map V ys
ys_hd : VarName
ys_tl : List VarName
ih_1 : xs_tl.length = ys_tl.length
a1_left : V xs_hd = V ys_hd
a1_right : Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs_tl ys_tl))
⊢ V xs_hd = V ys_hd

case right
Δ : List Formula
F : Formula
X : PredName
D : Type
I : Interpretation D
V : VarAssignment D
E : Env
a✝ : ∀ H ∈ [], Holds D I V E H
xs_hd : VarName
xs_tl : List VarName
xs_ih :
  ∀ (ys : List VarName),
    xs_tl.length = ys.length →
      Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs_tl ys)) → List.map V xs_tl = List.map V ys
ys_hd : VarName
ys_tl : List VarName
ih_1 : xs_tl.length = ys_tl.length
a1_left : V xs_hd = V ys_hd
a1_right : Holds D I V E (List.foldr and_ true_ (List.zipWith eq_ xs_tl ys_tl))
⊢ List.map V xs_tl = List.map V ys_tl