Module Type SUBST_SOUND.
Declare Module VSD: VERISTAR_DEFS.

Axiom subst_list_denote_sound_intersection0 : forall (l : list pure_atom) i e B,
list_denote pure_atom_denote (@andp state) B (map (subst_pure i e) l) =
match l with
| nil => B
| x :: t => (@andp state) (pure_atom_denote (subst_pure i e x))
(list_denote pure_atom_denote (@andp state) B (subst_pures i e t))
end.