Section selectors.
Variable (j: juicy_mem).
Definition m_dry := match j with mkJuicyMem m _ _ _ _ _ => m end.
Definition m_phi := match j with mkJuicyMem _ phi _ _ _ _ => phi end.

Lemma nreadable_inv: forall phi loc, ~readable loc phi
-> (exists sh, exists nsh, phi @ loc = NO sh nsh)
\/ (exists sh, exists rsh, exists k, exists pp, phi @ loc = YES sh rsh k pp /\ ~isVAL k)
\/ (exists k, exists pp, phi @ loc = PURE k pp).