Qed.
Instance Join_trace : Join (AV.address -> option (rshare * AV.kind)) :=
(Join_fun AV.address (option (rshare * AV.kind))
(Join_lower (Join_prod rshare Join_rshare AV.kind (Join_equiv AV.kind)))).

Lemma res_option_join:
forall x y z,
join x y z ->
@join _ (@Join_lower (rshare * AV.kind)
(Join_prod rshare Join_rshare AV.kind (Join_equiv AV.kind))) (res_option x) (res_option y) (res_option  z).