let define_array arr =
      let pool = F.pool () in
      let name = F.Arrayinfo.basename arr in
      let path = "array" in
      let xm = F.p_fresh pool "m" (Model M.tau_of_mem) in
      let xr = F.p_fresh pool "r" (Model (Array arr)) in
      let xa,a = M.forall_loc pool in
      define_update name pool name path
        (xm::xr::xa) (F.var xm) a (C_array arr) (F.var xr)