(*! Invariant (= above properties + safety + uniqueness of Krun) *)

Definition jsafe_phi ge n ora c phi :=
  forall jm,
    m_phi jm = phi ->
    @semax.jsafeN ZT Jspec ge n ora c jm.Definition jsafe_phi_bupd ge n ora c phi :=
  forall jm,
    m_phi jm = phi ->
    jm_bupd ora (@semax.jsafeN ZT Jspec ge n ora c) jm.

(* Specifications: *)
Lemma jsafe_phi_jsafeN n ora c i (tp : jstate ge) m (cnti : containsThread tp i) Phi compat : @jsafe_phi ge n ora c (getThreadR cnti) -> @semax.jsafeN ZT Jspec ge n ora c (@jm_ tp m Phi i cnti compat).