(*  NOT TRUE, because readable doesn't constraint NoneP ... Lemma readable_VAL: forall w l, readable l (w_m w) <-> exists sh, (VALspec sh l * TT) w.  *)

(* TODO: resume this lemma. *)
(* Lemma fun_assert_contractive: forall fml cc (A: TypeTree) (P Q: pred rmap -> forall ts, dependent_type_functor_rec ts (AssertTT A) (pred rmap)) v, (forall ts x rho, nonexpansive (fun R => P R ts x rho)) -> (forall ts x rho, nonexpansive (fun R => Q R ts x rho)) -> contractive (fun R : pred rmap => fun_assert fml cc A (P R) (Q R) v). *)
Lemma VALspec_range_bytes_readable:
forall n sh loc m, VALspec_range n sh loc m -> bytes_readable loc n m.