(** Moreover, every composite definition is reflected in the composite environment. *)

(* Specifications: *)
Theorem build_composite_env_charact:
forall id su m a defs env,
build_composite_env defs = OK env ->
In (Composite id su m a) defs ->
exists co, env!id = Some co /\ co_members co = m /\ co_attr co = a /\ co_su co = su.
Theorem build_composite_env_domain:
forall env defs id co,
build_composite_env defs = OK env ->
env!id = Some co ->
In (Composite id (co_su co) (co_members co) (co_attr co)) defs.
Theorem build_composite_env_charact:
forall id su m a defs env,
build_composite_env defs = OK env ->
In (Composite id su m a) defs ->
exists co, env!id = Some co /\ co_members co = m /\ co_attr co = a /\ co_su co = su.
Theorem build_composite_env_domain:
forall env defs id co,
build_composite_env defs = OK env ->
env!id = Some co ->
In (Composite id (co_su co) (co_members co) (co_attr co)) defs.