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

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