(* EXPERIMENT Lemma match_fdecs_nil: forall vl, match_fdecs vl nil. *)

(* Specifications: *)
Lemma match_fdecs_rev':
forall vl G vl' G',
list_norepet (map (@fst _ _) (rev vl ++ vl')) ->
match_fdecs vl G ->
match_fdecs vl' G' ->
match_fdecs (rev vl ++ vl') (rev G ++ G').
Lemma match_fdecs_rev:
forall vl G,
list_norepet (map (@fst _ _) vl) ->
match_fdecs (rev vl) (rev G) = match_fdecs vl G.
Lemma initial_core_rev:
forall (gev: Genv.t fundef type) G n (vl: list (ident * globdef fundef type))
(H: list_norepet (map fst (rev vl)))
(SAME_IDS : match_fdecs (prog_funct' vl) (rev G)),
initial_core gev G n = initial_core gev (rev G) n.