Definition address := address.Definition some_address := some_address.Definition kind := kind.Definition valid (_: address -> option (pshare * kind)) := True.

(* Specifications: *)
Lemma valid_empty: valid (fun _ => None).
Lemma valid_join: forall f g h : address -> option (pshare * kind), @join _ (Join_fun address (option (pshare * kind)) (Join_lower (Join_prod pshare Join_pshare kind (Join_equiv kind)))) f g h -> valid f -> valid g -> valid h.