Definition var_name (V: Type) (bdec: ident * globvar V) : ident :=
fst bdec.
Definition no_dups (F V: Type) (fdecs: list (ident * F)) (bdecs: list (ident * globvar V)) : Prop :=
list_norepet (map (@fst ident F) fdecs ++ map (@var_name V) bdecs).
Arguments no_dups [F V] _ _.

(* Specifications: *)
Lemma no_dups_inv:
forall  (A V: Type) id f fdecs bdecs,
no_dups ((id,f)::fdecs) bdecs ->
no_dups fdecs bdecs /\
~ In id (map (@fst ident A) fdecs) /\
~ In id (map (@var_name V) bdecs).