(** Soundness properties for functions that add identifiers to the workset *)

(* Specifications: *)
Lemma seen_add_workset:
forall id (w: workset), IS.In id (add_workset id w).
Lemma seen_addlist_workset:
forall id l (w: workset),
In id l -> IS.In id (addlist_workset l w).
Lemma seen_add_ref_function:
forall id f w,
ref_function f id -> IS.In id (add_ref_function f w).
Lemma seen_add_ref_definition:
forall pm id gd id' w,
pm!id = Some gd -> ref_def gd id' -> IS.In id' (add_ref_definition pm id w).
Lemma seen_main_initial_workset:
forall p, IS.In p.(prog_main) (initial_workset p).
Lemma seen_public_initial_workset:
forall p id, In id p.(prog_public) -> IS.In id (initial_workset p).