(** [match_cont] and freeing of environment blocks *)
Remark free_list_nextblock:
forall l m m',
Mem.free_list m l = Some m' -> Mem.nextblock m' = Mem.nextblock m.
Remark free_list_load:
forall chunk b' l m m',
Mem.free_list m l = Some m' ->
(forall b lo hi, In (b, lo, hi) l -> Plt b' b) ->
Mem.load chunk m' b' 0 = Mem.load chunk m b' 0.

(* Specifications: *)
Lemma match_cont_free_env:
forall f cenv e le m lo hi te tle tm tlo thi k tk m' tm',
match_envs f cenv e le m lo hi te tle tlo thi ->
match_cont f cenv k tk m lo tlo ->
Ple hi (Mem.nextblock m) ->
Ple thi (Mem.nextblock tm) ->
Mem.free_list m (blocks_of_env ge e) = Some m' ->
Mem.free_list tm (blocks_of_env tge te) = Some tm' ->
match_cont f cenv k tk m' (Mem.nextblock m') (Mem.nextblock tm').