Definition bounded_mem (m: mem) := bounded_maps.bounded_map (snd (getMaxPerm m)) .

(* Specifications: *)
Lemma mem_alloc_bounded:
forall m lo hi m1 b,
bounded_mem m ->
Mem.alloc m lo hi = (m1, b) ->
bounded_mem m1.
Lemma drop_perm_bounded:
forall m b lo hi P m',
bounded_mem m ->
Mem.drop_perm m b lo hi P = Some m' ->
bounded_mem m'.
Lemma store_bounded:
forall Mint32 m b ofs v m',
bounded_mem m ->
Mem.store Mint32 m b ofs v = Some m' ->
bounded_mem m'.
Lemma bounded_getMaxPerm:
forall m p Hlt,
@bounded_mem m ->
@bounded_mem (@restrPermMap p m Hlt).
Lemma store_init_data_bounded:
forall F V ge m b ofs data m',
bounded_mem m ->
@Globalenvs.Genv.store_init_data F V ge m b ofs data = Some m' ->
bounded_mem m'.
Lemma store_init_data_list_bounded:
forall F V ge m b ofs B m',
bounded_mem m ->
@Globalenvs.Genv.store_init_data_list F V ge m b ofs B = Some m' ->
bounded_mem m'.
Lemma store_zeros_init_data_bounded:
forall m b ofs a m',
bounded_mem m ->
Globalenvs.store_zeros m b ofs a = Some m' ->
bounded_mem m'.
Lemma alloc_global_bounded:
forall F V ge m m' a,
@bounded_mem m ->
@Globalenvs.Genv.alloc_global F V ge m a = Some m' ->
@bounded_mem m'.
Lemma mem_alloc_bounded:
forall m lo hi m1 b,
bounded_mem m ->
Mem.alloc m lo hi = (m1, b) ->
bounded_mem m1.
Lemma drop_perm_bounded:
forall m b lo hi P m',
bounded_mem m ->
Mem.drop_perm m b lo hi P = Some m' ->
bounded_mem m'.
Lemma store_bounded:
forall Mint32 m b ofs v m',
bounded_mem m ->
Mem.store Mint32 m b ofs v = Some m' ->
bounded_mem m'.
Lemma bounded_getMaxPerm:
forall m p Hlt,
@bounded_mem m ->
@bounded_mem (@restrPermMap p m Hlt).
Lemma store_init_data_bounded:
forall F V ge m b ofs data m',
bounded_mem m ->
@Globalenvs.Genv.store_init_data F V ge m b ofs data = Some m' ->
bounded_mem m'.
Lemma store_init_data_list_bounded:
forall F V ge m b ofs B m',
bounded_mem m ->
@Globalenvs.Genv.store_init_data_list F V ge m b ofs B = Some m' ->
bounded_mem m'.
Lemma store_zeros_init_data_bounded:
forall m b ofs a m',
bounded_mem m ->
Globalenvs.store_zeros m b ofs a = Some m' ->
bounded_mem m'.
Lemma alloc_global_bounded:
forall F V ge m m' a,
@bounded_mem m ->
@Globalenvs.Genv.alloc_global F V ge m a = Some m' ->
@bounded_mem m'.