Section Mmap_Dry.
Definition bytes_to_memvals li := concat (map (fun i => encode_val Mint8unsigned (Vubyte i)) li).
Definition mmap_pre (m : mem) (len : Z) := 0 <= len <= Ptrofs.max_unsigned.
Definition mmap_post (m0 m : mem) r (len : Z) :=
let res := Mem.alloc m0 0 len in m = fst res /\ r = Vptr (snd res) Ptrofs.zero.
Context {CS : compspecs} (ext_link : String.string -> ident).
Instance Espec : OracleKind := mmap_Espec ext_link.
Definition mmap_ext_spec := OK_spec.
Program Definition mmap_dry_spec : external_specification mem external_function unit.
Instance mem_evolve_refl : Reflexive mem_evolve.

Lemma dry_spec_mem : ext_spec_mem_evolve _ mmap_dry_spec.