Definition freeable_blocks: list (block * BinInt.Z * BinInt.Z) -> mpred :=
  fold_right (fun (bb: block*BinInt.Z * BinInt.Z) a => 
                        match bb with (b,lo,hi) => 
                                          sepcon (VALspec_range (hi-lo) Share.top (b,lo)) a
                        end)
                    emp.

Lemma alloc_juicy_variables_age: forall {ge rho jm jm1 vl rho' jm' jm1'}, age jm jm1 -> age jm' jm1' -> alloc_juicy_variables ge rho jm vl = (rho', jm') -> alloc_juicy_variables ge rho jm1 vl = (rho', jm1').