Module VSM := VSM.

Lemma list_denote_normalize_pure_atoms: forall Q (B:spred) (l:list pure_atom) (Qassoc: forall x y z , Q x (Q y z) = Q (Q x y) z) (Qsymm: forall x y, Q x y = Q y x) (Hcmp: forall x y, Eq = pure_atom_cmp x y -> (forall P, Q (pure_atom_denote x) (Q (pure_atom_denote y) P) = Q (pure_atom_denote y) P)), list_denote pure_atom_denote Q B l = list_denote pure_atom_denote Q B (normalize_atoms l).