Definition pre_rmap (A:Type) := { m:address -> res A | valid' A m }.
Definition f_pre_rmap : functor pre_rmap :=
f_subset (f_fun _ f_res) _ valid'_res_map.
Existing Instance f_pre_rmap.
Instance Join_pre_rmap (A: Type) : Join (pre_rmap A) :=
Join_prop _ (Join_fun address (res A) (res_join A)) (valid' A).
Instance paf_pre_rmap : pafunctor f_pre_rmap :=
saf_subset  (paf_fun address paf_res) valid' valid'_res_map valid'_res_map2.

(* Specifications: *)
Lemma identity_jres : forall PRED (r : res PRED),
identity r <-> (r = NO' PRED) \/ (exists k, exists pds, r = PURE' _ k pds).
Lemma pre_rmap_sa_valid_core (A: Type):
forall x : address -> res A,
valid' A x ->
valid' A  (@core (address -> res A) (Join_fun address (res A) (res_join A))
(Sep_fun address (res A) (res_join A) (sa_rj A)) x).
Lemma pre_rmap_sa_valid_join : forall A (x y z : address -> res A),
@join _ (Join_fun address (res A) (res_join A)) x y z ->
valid' A x -> valid' A y -> valid' A z.