Definition bytes_writable (loc: address) (size: Z) (phi: rmap) : Prop :=
  forall i, (0 <= i < size) -> writable (adr_add loc i) phi.Definition bytes_readable (loc: address) (size: Z) (phi: rmap) : Prop :=
  forall i, (0 <= i < size) -> readable (adr_add loc i) phi.

(* Specifications: *)
Lemma readable_dec (loc: address) (phi: rmap) : {readable loc phi} + {~readable loc phi}.
Lemma writable_dec: forall loc phi, {writable loc phi}+{~writable loc phi}.
Lemma bytes_writable_dec: forall loc n m, {bytes_writable loc n m}+{~bytes_writable loc n m}.
Lemma bytes_readable_dec: forall loc n m, {bytes_readable loc n m}+{~bytes_readable loc n m}.
Lemma bytes_writable_readable: forall m loc n, bytes_writable m loc n -> bytes_readable m loc n.