Module Argument.
Notation "t ⊍ u" := (mset_term_plus t u) (at level 40).
Notation "'h' t" := (mset_term_h t) (at level 38).
Notation "•0" := mset_term_zero.
Coercion mset_term_var : nat >-> mset_term.

(* nat constraints are only satisfied by multisets containing only zeroes *)
Lemma nat_spec {n A B C} :
(map S B) ++ A ≡ [n] ++ B ++ B ++ B ++ B ->
(map S (map S C)) ++ A ≡ [2*n] ++ C ++ C ++ C ++ C ->
Forall (fun a => 0 = a) A.