(** As a corollay, in a consistent environment, the rank of a composite type is strictly greater than the ranks of its member types. *)
Remark rank_type_members:
forall ce id t m, In (id, t) m -> (rank_type ce t <= rank_members ce m)%nat.

(* Specifications: *)
Lemma rank_struct_member:
forall ce id a co id1 t1,
composite_env_consistent ce ->
ce!id = Some co ->
In (id1, t1) (co_members co) ->
(rank_type ce t1 < rank_type ce (Tstruct id a))%nat.
Lemma rank_union_member:
forall ce id a co id1 t1,
composite_env_consistent ce ->
ce!id = Some co ->
In (id1, t1) (co_members co) ->
(rank_type ce t1 < rank_type ce (Tunion id a))%nat.
Lemma rank_struct_member:
forall ce id a co id1 t1,
composite_env_consistent ce ->
ce!id = Some co ->
In (id1, t1) (co_members co) ->
(rank_type ce t1 < rank_type ce (Tstruct id a))%nat.
Lemma rank_union_member:
forall ce id a co id1 t1,
composite_env_consistent ce ->
ce!id = Some co ->
In (id1, t1) (co_members co) ->
(rank_type ce t1 < rank_type ce (Tunion id a))%nat.