Corollary used_globals_valid:
  forall u,
  used_globals p pm = Some u ->
  IS.for_all (global_defined p pm) u = true ->
  valid_used_set p u.Remark filter_globdefs_accu:
  forall defs accu1 accu2 u,
  filter_globdefs u (accu1 ++ accu2) defs = filter_globdefs u accu1 defs ++ accu2.Remark filter_globdefs_nil:
  forall u accu defs,
  filter_globdefs u accu defs = filter_globdefs u nil defs ++ accu.

(* Specifications: *)
Lemma filter_globdefs_domain: forall id l u, In id (map fst (filter_globdefs u nil l)) -> IS.In id u /\ In id (map fst l).
Lemma filter_globdefs_unique_names: forall l u, list_norepet (map fst (filter_globdefs u nil l)).
Theorem transf_program_match: forall p tp, transform_program p = OK tp -> match_prog p tp.