Definition freshloc m m' b := andb (valid_block_dec m' b) (negb (valid_block_dec m b)).

(* Specifications: *)
Lemma freshloc_charT: forall m m' b, (freshloc m m' b = true) <-> (Mem.valid_block m' b /\ ~Mem.valid_block m b).
Lemma freshloc_charF: forall m m' b, (freshloc m m' b = false) <-> (Mem.valid_block m b \/ ~Mem.valid_block m' b).
Lemma freshloc_irrefl: forall m b, freshloc m m b = false.
Lemma freshloc_trans: forall m m'' m' b (FWD: mem_forward m m'') (FWD': mem_forward m'' m'), (orb (freshloc m m'' b) (freshloc m'' m' b)) = freshloc m m' b.
Lemma freshloc_charT: forall m m' b, (freshloc m m' b = true) <-> (Mem.valid_block m' b /\ ~Mem.valid_block m b).
Lemma freshloc_charF: forall m m' b, (freshloc m m' b = false) <-> (Mem.valid_block m b \/ ~Mem.valid_block m' b).
Lemma freshloc_irrefl: forall m b, freshloc m m b = false.
Lemma freshloc_trans: forall m m'' m' b (FWD: mem_forward m m'') (FWD': mem_forward m'' m'), (orb (freshloc m m'' b) (freshloc m'' m' b)) = freshloc m m' b.