Require Export VST.msl.ghost.
(* Lemmas about ghost state and common instances *)
(* Where should this sit? *)
Hint Resolve Share.nontrivial.
Definition gname := own.gname.
Instance Inhabitant_preds : Inhabitant preds := NoneP.
Section ghost.
Context {RA: Ghost}.

Lemma own_op_gen : forall g a1 a2 a3 pp, (valid_2 a1 a2 -> join a1 a2 a3) ->
own g a1 pp * own g a2 pp = !!(valid_2 a1 a2) && own g a3 pp.