diff --git a/docs/derived.tex b/docs/derived.tex index 6e101413cce734cd9008f1707cb2c28e3a6dd7ab..c1621414187c25b8b931c629f61fbe011de27e04 100644 --- a/docs/derived.tex +++ b/docs/derived.tex @@ -8,13 +8,13 @@ We collect here some important and frequently used derived proof rules. {\prop \Ra \propB \proves \prop \wand \propB} \infer{} - {\prop * \Exists\var.\propB \Lra \Exists\var. \prop * \propB} + {\prop * \Exists\var.\propB \provesIff \Exists\var. \prop * \propB} \infer{} {\prop * \Exists\var.\propB \proves \Exists\var. \prop * \propB} \infer{} - {\always(\prop*\propB) \Lra \always\prop * \always\propB} + {\always(\prop*\propB) \provesIff \always\prop * \always\propB} \infer{} {\always(\prop \Ra \propB) \proves \always\prop \Ra \always\propB} @@ -23,7 +23,7 @@ We collect here some important and frequently used derived proof rules. {\always(\prop \wand \propB) \proves \always\prop \wand \always\propB} \infer{} - {\always(\prop \wand \propB) \Lra \always(\prop \Ra \propB)} + {\always(\prop \wand \propB) \provesIff \always(\prop \Ra \propB)} \infer{} {\later(\prop \Ra \propB) \proves \later\prop \Ra \later\propB} diff --git a/docs/iris.sty b/docs/iris.sty index 25f12226b09221dcff1c62498c0e91cac66ed9f5..20f55ae69abda6c41fdeedd2c4f617308057994c 100644 --- a/docs/iris.sty +++ b/docs/iris.sty @@ -184,6 +184,7 @@ \def\Lam #1.{\lambda #1.\spac}% \newcommand{\proves}{\vdash} +\newcommand{\provesIff}{\mathrel{\dashv\vdash}} \newcommand{\wand}{\;{{\mbox{---}}\!\!{*}}\;} diff --git a/docs/logic.tex b/docs/logic.tex index bad325d06acc2d1684e498c1558b82b09e724ed2..c4c33f2bca44662cbc94fc5a73d7862a9f4f01d8 100644 --- a/docs/logic.tex +++ b/docs/logic.tex @@ -303,8 +303,7 @@ In writing $\vctx, x:\type$, we presuppose that $x$ is not already declared in $ The judgment $\vctx \mid \pfctx \proves \prop$ says that with free variables $\vctx$, proposition $\prop$ holds whenever all assumptions $\pfctx$ hold. We implicitly assume that an arbitrary variable context, $\vctx$, is added to every constituent of the rules. Furthermore, an arbitrary \emph{boxed} assertion context $\always\pfctx$ may be added to every constituent. -Axioms $\prop \Ra \propB$ stand for judgments $\vctx \mid \cdot \proves \prop \Ra \propB$ with no assumptions. -(Bi-implications are analogous.) +Axioms $\vctx \mid \prop \provesIff \propB$ indicate that both $\vctx \mid \prop \proves \propB$ and $\vctx \mid \propB \proves \prop$ can be derived. \judgment{}{\vctx \mid \pfctx \proves \prop} \paragraph{Laws of intuitionistic higher-order logic with equality.} @@ -395,9 +394,9 @@ This is entirely standard. \paragraph{Laws of (affine) bunched implications.} \begin{mathpar} \begin{array}{rMcMl} - \TRUE * \prop &\Lra& \prop \\ - \prop * \propB &\Lra& \propB * \prop \\ - (\prop * \propB) * \propC &\Lra& \prop * (\propB * \propC) + \TRUE * \prop &\provesIff& \prop \\ + \prop * \propB &\provesIff& \propB * \prop \\ + (\prop * \propB) * \propC &\provesIff& \prop * (\propB * \propC) \end{array} \and \infer[$*$-mono] @@ -413,14 +412,14 @@ This is entirely standard. \paragraph{Laws for ghosts and physical resources.} \begin{mathpar} \begin{array}{rMcMl} -\ownGGhost{\melt} * \ownGGhost{\meltB} &\Lra& \ownGGhost{\melt \mtimes \meltB} \\ -\ownGGhost{\melt} &\Ra& \melt \in \mval \\ -\TRUE &\Ra& \ownGGhost{\munit} +\ownGGhost{\melt} * \ownGGhost{\meltB} &\provesIff& \ownGGhost{\melt \mtimes \meltB} \\ +\ownGGhost{\melt} &\provesIff& \melt \in \mval \\ +\TRUE &\proves& \ownGGhost{\munit} \end{array} \and \and \begin{array}{c} -\ownPhys{\state} * \ownPhys{\state'} \Ra \FALSE +\ownPhys{\state} * \ownPhys{\state'} \proves \FALSE \end{array} \end{mathpar} @@ -439,14 +438,14 @@ This is entirely standard. {\later{\Exists x:\type.\prop} \proves \Exists x:\type. \later\prop} \\\\ \begin{array}[c]{rMcMl} - \later{(\prop \wedge \propB)} &\Lra& \later{\prop} \wedge \later{\propB} \\ - \later{(\prop \vee \propB)} &\Lra& \later{\prop} \vee \later{\propB} \\ + \later{(\prop \wedge \propB)} &\provesIff& \later{\prop} \wedge \later{\propB} \\ + \later{(\prop \vee \propB)} &\provesIff& \later{\prop} \vee \later{\propB} \\ \end{array} \and \begin{array}[c]{rMcMl} - \later{\All x.\prop} &\Lra& \All x. \later\prop \\ - \Exists x. \later\prop &\Ra& \later{\Exists x.\prop} \\ - \later{(\prop * \propB)} &\Lra& \later\prop * \later\propB + \later{\All x.\prop} &\provesIff& \All x. \later\prop \\ + \Exists x. \later\prop &\proves& \later{\Exists x.\prop} \\ + \later{(\prop * \propB)} &\provesIff& \later\prop * \later\propB \end{array} \end{mathpar} @@ -487,26 +486,26 @@ This is entirely standard. {\always{\pfctx} \proves \always{\prop}} \and \infer[$\always$E]{} - {\always{\prop} \Ra \prop} + {\always{\prop} \proves \prop} \and \begin{array}[c]{rMcMl} - \always{(\prop * \propB)} &\Ra& \always{(\prop \land \propB)} \\ - \always{\prop} * \propB &\Ra& \always{\prop} \land \propB \\ - \always{\later\prop} &\Lra& \later\always{\prop} \\ + \always{(\prop * \propB)} &\proves& \always{(\prop \land \propB)} \\ + \always{\prop} * \propB &\proves& \always{\prop} \land \propB \\ + \always{\later\prop} &\provesIff& \later\always{\prop} \\ \end{array} \and \begin{array}[c]{rMcMl} - \always{(\prop \land \propB)} &\Lra& \always{\prop} \land \always{\propB} \\ - \always{(\prop \lor \propB)} &\Lra& \always{\prop} \lor \always{\propB} \\ - \always{\All x. \prop} &\Lra& \All x. \always{\prop} \\ - \always{\Exists x. \prop} &\Lra& \Exists x. \always{\prop} \\ + \always{(\prop \land \propB)} &\provesIff& \always{\prop} \land \always{\propB} \\ + \always{(\prop \lor \propB)} &\provesIff& \always{\prop} \lor \always{\propB} \\ + \always{\All x. \prop} &\provesIff& \All x. \always{\prop} \\ + \always{\Exists x. \prop} &\provesIff& \Exists x. \always{\prop} \\ \end{array} \and -{ \term =_\type \term' \Ra \always \term =_\type \term'} +{ \term =_\type \term' \proves \always \term =_\type \term'} \and -{ \knowInv\iname\prop \Ra \always \knowInv\iname\prop} +{ \knowInv\iname\prop \proves \always \knowInv\iname\prop} \and -{ \ownGGhost{\mcore\melt} \Ra \always \ownGGhost{\mcore\melt}} +{ \ownGGhost{\mcore\melt} \proves \always \ownGGhost{\mcore\melt}} \end{mathpar} \paragraph{Laws of primitive view shifts.}