Program Definition closedM : @modality world _ := exist _ closedR _.Definition closed := box closedM.Program Definition setM v x : @modality world _ := setR v x.Program Definition world_op (Pp : pred prog) (Pr : store -> Prop) : pred world :=
  fun pr => let (p,r) := pr in Pp p /\ Pr r.Definition store_op (Pr : store -> Prop) := world_op TT Pr.Definition prog_op (X:pred prog) :=  world_op X (fun _ => True).

Lemma worldNec_unfold : forall p r p' r', @necR world _ (p,r) (p',r') <-> necR p p' /\ r = r'.