From 98f583538b2c884bce3c40712deb97fbac9e5377 Mon Sep 17 00:00:00 2001
From: Ralf Jung <jung@mpi-sws.org>
Date: Tue, 19 Apr 2016 18:38:57 +0200
Subject: [PATCH] docs: new frame-step rules

---
 docs/derived.tex | 4 ++--
 docs/logic.tex   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/docs/derived.tex b/docs/derived.tex
index 696be132b..8fa3c08cd 100644
--- a/docs/derived.tex
+++ b/docs/derived.tex
@@ -176,8 +176,8 @@ The following rules can be derived for Hoare triples.
   {\hoare{\prop * \propC}{\expr}{\Ret\val. \propB * \propC}[\mask]}
 \and
 \inferH{Ht-frame-step}
-  {\hoare{\prop}{\expr}{\Ret\val. \propB}[\mask] \and \toval(\expr) = \bot}
-  {\hoare{\prop * \later\propC}{\expr}{\Ret\val. \propB * \propC}[\mask]}
+  {\hoare{\prop}{\expr}{\Ret\val. \propB}[\mask] \and \toval(\expr) = \bot \and \mask_2 \subseteq \mask_2 \\\\ \propC_1 \vs[\mask_1][\mask_2] \later\propC_2 \and \propC_2 \vs[\mask_2][\mask_1] \propC_3}
+  {\hoare{\prop * \propC_1}{\expr}{\Ret\val. \propB * \propC_3}[\mask \uplus \mask_1]}
 \and
 \inferH{Ht-atomic}
   {\prop \vs[\mask \uplus \mask'][\mask] \prop' \\
diff --git a/docs/logic.tex b/docs/logic.tex
index 7e17741b5..24a8ca03a 100644
--- a/docs/logic.tex
+++ b/docs/logic.tex
@@ -584,8 +584,8 @@ This is entirely standard.
 {}{\propB * \wpre\expr[\mask]{\Ret\var.\prop} \proves \wpre\expr[\mask]{\Ret\var.\propB*\prop}}
 
 \infer[wp-frame-step]
-{\toval(\expr) = \bot}
-{\later\propB * \wpre\expr[\mask]{\Ret\var.\prop} \proves \wpre\expr[\mask]{\Ret\var.\propB*\prop}}
+{\toval(\expr) = \bot \and \mask_2 \subseteq \mask_1}
+{\wpre\expr[\mask]{\Ret\var.\prop} * \pvs[\mask_1][\mask_2]\later\pvs[\mask_2][\mask_1]\propB \proves \wpre\expr[\mask \uplus \mask_1]{\Ret\var.\propB*\prop}}
 
 \infer[wp-bind]
 {\text{$\lctx$ is a context}}
-- 
GitLab