(** Block validity is preserved by [free]. *)

(* Specifications: *)
Axiom nextblock_free:
forall m1 bf lo hi m2, free m1 bf lo hi = Some m2 ->
nextblock m2 = nextblock m1.
Axiom valid_block_free_1:
forall m1 bf lo hi m2, free m1 bf lo hi = Some m2 ->
forall b, valid_block m1 b -> valid_block m2 b.
Axiom valid_block_free_2:
forall m1 bf lo hi m2, free m1 bf lo hi = Some m2 ->
forall b, valid_block m2 b -> valid_block m1 b.
Axiom nextblock_free:
forall m1 bf lo hi m2, free m1 bf lo hi = Some m2 ->
nextblock m2 = nextblock m1.
Axiom valid_block_free_1:
forall m1 bf lo hi m2, free m1 bf lo hi = Some m2 ->
forall b, valid_block m1 b -> valid_block m2 b.
Axiom valid_block_free_2:
forall m1 bf lo hi m2, free m1 bf lo hi = Some m2 ->
forall b, valid_block m2 b -> valid_block m1 b.