Inductive set_op := Add (e : Z) | Remove (e : Z).Inductive set_op := Add (e : Z) | Remove (e : Z).Inductive set_op := Add (e : Z) | Remove (e : Z).

(* Specifications: *)
Lemma apply_hist_app : forall h1 S h2, apply_hist S (h1 ++ h2) = apply_hist (apply_hist S h1) h2.
Lemma In_remove : forall A (a : A) dec l, incl (remove dec a l) l.
Lemma remove_sorted : forall a l, sorted l -> sorted (remove Z_eq_dec a l).
Lemma apply_hist_sorted : forall h S, sorted S -> sorted (apply_hist S h).