Load loadpath.
veristar.variables veristar.datatypes
veristar.clauses veristar.basic veristar.compare.
(* listd - interpretation functions folded over sequences *)
Section ListDenote.
Context {A T : Type}.
Variables (f : A -> T) (g : T -> T -> T) (b : T).
Fixpoint list_denote l : T :=
match l with nil => b | x :: l' => g (f x) (list_denote l')
end.
Local Notation "'listd'" := (list_denote).

(* Specifications: *)
Lemma listd_fold_right l :
listd l = fold_right (fun x y  => g (f x) y) b l.