End SUBST_SOUND.
Module Subst_Sound (VSD: VERISTAR_DEFS) : SUBST_SOUND with Module VSD := VSD.
Module VSD := VSD.

Lemma subst_list_denote_sound :
forall A Q (l : list A) (denote: A -> spred) (subst: A -> A) B,
list_denote denote Q B (map subst l) =
match map subst l with
| nil => B
| _ :: _ => list_denote denote Q B (map subst l)
end.