Notation ghost_approx m := (ghost_fmap (approx (level m)) (approx (level m))).(* Ownership construction based on "Iris from the ground up", Jung et al. *)
Program Definition ghost_is g: pred rmap :=
  fun m => ghost_of m = ghost_approx m g.Definition Own g: pred rmap := allp noat && ghost_is g.

(* Specifications: *)
Lemma Own_op: forall a b c, join a b c -> Own c = Own a * Own b.