Definition LR_of_type (t: type) :=
match t with
| Tarray _ _ _ => RRRR
| _ => LLLL
end.

(* Specifications: *)
Lemma legal_nested_efield_weaken: forall t_root e gfs tts,
legal_nested_efield t_root e gfs tts (LR_of_type t_root) = true ->
legal_nested_efield_rec t_root gfs tts = true /\
type_almost_match e t_root (LR_of_type t_root) = true.
Lemma weakened_legal_nested_efield_spec: forall t_root e gfs efs tts rho,
legal_nested_efield_rec t_root gfs tts = true ->
type_almost_match e t_root (LR_of_type t_root) = true ->
efield_denote efs gfs rho ->
typeconv' (nested_field_type t_root gfs) = typeconv' (typeof (nested_efield e efs tts)).
Lemma classify_add_typeconv: forall t n a ty,
typeconv (Tarray t n a) = typeconv ty ->
Cop.classify_add ty = Cop.classify_add (Tpointer t a).