Program Instance Linker_composite_defs : Linker (list composite_definition) := {
link := link_composite_defs;
linkorder := @List.incl composite_definition
}.
Next Obligation.
apply incl_refl.
Defined.
Next Obligation.
red; intros; eauto.
Defined.
Next Obligation.
apply link_composite_def_inv in H; destruct H as (A & B & C).
split; red; intros; apply C; auto.
Defined.
(** Connections with [build_composite_env]. *)

Lemma composite_of_def_stable:
forall (env env': composite_env)
(EXTENDS: forall id co, env!id = Some co -> env'!id = Some co)
id su m a co,
env'!id = None ->
composite_of_def env id su m a = OK co ->
composite_of_def env' id su m a = OK co.