Commit cc0711fc authored by Ralf Jung's avatar Ralf Jung

some tex nits

parent 90734cf0
Pipeline #189 passed with stage
...@@ -189,7 +189,8 @@ The first is trivial, the second follows from cancellativitiy of $M$. ...@@ -189,7 +189,8 @@ The first is trivial, the second follows from cancellativitiy of $M$.
\label{sec:fpfunm} \label{sec:fpfunm}
Given a countable set $X$ and a monoid $M$, we construct a monoid representing finite partial functions from $X$ to (non-unit, non-zero elements of) $M$. Given a countable set $X$ and a monoid $M$, we construct a monoid representing finite partial functions from $X$ to (non-unit, non-zero elements of) $M$.
Let $\fpfunm{X}{M}$ be the product monoid $\prod_{x \in X} M$, as defined in \secref{sec:prodm} but restricting the carrier to functions $f$ where the set $\dom(f) \eqdef \{ x \mid f(x) \neq \munit_M \}$ is finite. \ralf{all outdated}
Let ${X} \fpfn {M}$ be the product monoid $\prod_{x \in X} M$, as defined in \secref{sec:prodm} but restricting the carrier to functions $f$ where the set $\dom(f) \eqdef \{ x \mid f(x) \neq \munit_M \}$ is finite.
This is well-defined as the set of these $f$ contains the unit and is closed under multiplication. This is well-defined as the set of these $f$ contains the unit and is closed under multiplication.
(We identify finite partial functions from $X$ to $\mcarp{M}\setminus\{\munit_M\}$ and total functions from $X$ to $\mcarp{M}$ with finite $\munit_M$-support.) (We identify finite partial functions from $X$ to $\mcarp{M}\setminus\{\munit_M\}$ and total functions from $X$ to $\mcarp{M}$ with finite $\munit_M$-support.)
...@@ -303,7 +304,7 @@ Frame-preserving updates are also possible if we assume $M$ cancellative: ...@@ -303,7 +304,7 @@ Frame-preserving updates are also possible if we assume $M$ cancellative:
By combining the fractional, finite partial function, and authoritative monoids, we construct two flavors of heaps with fractional permissions and mention their important frame-preserving updates. By combining the fractional, finite partial function, and authoritative monoids, we construct two flavors of heaps with fractional permissions and mention their important frame-preserving updates.
Hereinafter, we assume the set $\textdom{Val}$ of values is countable. Hereinafter, we assume the set $\textdom{Val}$ of values is countable.
Given a set $Y$, define $\FHeap(Y) \eqdef \fpfunm{\textdom{Val}}{\fracm{Y}}$ representing a fractional heap with codomain $Y$. Given a set $Y$, define $\FHeap(Y) \eqdef \textdom{Val} \fpfn \fracm(Y)$ representing a fractional heap with codomain $Y$.
From \S\S\ref{sec:fracm} and~\ref{sec:fpfunm} we obtain the following frame-preserving updates as well as the fact that $\FHeap(Y)$ is cancellative. From \S\S\ref{sec:fracm} and~\ref{sec:fpfunm} we obtain the following frame-preserving updates as well as the fact that $\FHeap(Y)$ is cancellative.
\begin{mathpar} \begin{mathpar}
\axiomH{FHeapUpd}{h[x \mapsto (1, y)] \mupd h[x \mapsto (1, y')]} \and \axiomH{FHeapUpd}{h[x \mapsto (1, y)] \mupd h[x \mapsto (1, y')]} \and
......
...@@ -5,7 +5,7 @@ In this section we describe some constructions that we will use throughout the r ...@@ -5,7 +5,7 @@ In this section we describe some constructions that we will use throughout the r
\subsection{Global monoid} \subsection{Global monoid}
Hereinafter we assume the global monoid (served up as a parameter to Iris) is obtained from a family of monoids $(M_i)_{i \in I}$ by first applying the construction for finite partial functions to each~(\Sref{sec:fpfunm}), and then applying the product construction~(\Sref{sec:prodm}): Hereinafter we assume the global monoid (served up as a parameter to Iris) is obtained from a family of monoids $(M_i)_{i \in I}$ by first applying the construction for finite partial functions to each~(\Sref{sec:fpfunm}), and then applying the product construction~(\Sref{sec:prodm}):
\[ M \eqdef \prod_{i \in I} \fpfunm{\textdom{GhName}}{M_i} \] \[ M \eqdef \prod_{i \in I} \textdom{GhName} \fpfn M_i \]
We don't care so much about what concretely $\textdom{GhName}$ is, as long as it is countable and infinite. We don't care so much about what concretely $\textdom{GhName}$ is, as long as it is countable and infinite.
We write $\ownGhost{\gname}{\melt : M_i}$ (or just $\ownGhost{\gname}{\melt}$ if $M_i$ is clear from the context) for $\ownGGhost{[i \mapsto [\gname \mapsto \melt]]}$ when $\melt \in \mcarp {M_i}$, and for $\FALSE$ when $\melt = \mzero_{M_i}$. We write $\ownGhost{\gname}{\melt : M_i}$ (or just $\ownGhost{\gname}{\melt}$ if $M_i$ is clear from the context) for $\ownGGhost{[i \mapsto [\gname \mapsto \melt]]}$ when $\melt \in \mcarp {M_i}$, and for $\FALSE$ when $\melt = \mzero_{M_i}$.
In other words, $\ownGhost{\gname}{\melt : M_i}$ asserts that in the current state of monoid $M_i$, the name $\gname$ is allocated and has at least value $\melt$. In other words, $\ownGhost{\gname}{\melt : M_i}$ asserts that in the current state of monoid $M_i$, the name $\gname$ is allocated and has at least value $\melt$.
......
...@@ -434,20 +434,18 @@ ...@@ -434,20 +434,18 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% Commonly used identifiers %% Commonly used identifiers
\newcommand{\FHeap}{\textsc{FHeap}} \newcommand{\FHeap}{\textmon{FHeap}}
\newcommand{\AFHeap}{\textsc{AFHeap}} \newcommand{\AFHeap}{\textmon{AFHeap}}
\newcommand{\auth}[1]{\ensuremath{\textsc{Auth}(#1)}} \newcommand{\auth}[1]{\textmon{Auth}}
\newcommand{\authfull}{\mathord{\bullet}\,} \newcommand{\authfull}{\mathord{\bullet}\,}
\newcommand{\authfrag}{\mathord{\circ}\,} \newcommand{\authfrag}{\mathord{\circ}\,}
\newcommand{\fpfunm}[2]{\ensuremath{\textsc{FpFun}(#1, #2)}} \newcommand{\fracm}{\ensuremath{\textmon{Frac}}}
\newcommand{\fracm}[1]{\ensuremath{\textsc{Frac}(#1)}} \newcommand{\exm}{\ensuremath{\textmon{Ex}}}
\newcommand{\exm}[1]{\ensuremath{\textsc{Ex}(#1)}} \newcommand{\agm}{\ensuremath{\textmon{Ag}}}
\newcommand{\agm}[1]{\ensuremath{\textsc{Ag}(#1)}}
\newcommand{\STSMon}[1]{\textmon{Sts}_{#1}}
\newcommand{\STSMon}[1]{\textsc{Sts}_{#1}}
\newcommand{\STSInv}{\textsf{STSInv}} \newcommand{\STSInv}{\textsf{STSInv}}
\newcommand{\STS}{\textsf{STS}} \newcommand{\STS}{\textsf{STS}}
\newcommand{\STSS}{\mathcal{S}} % states \newcommand{\STSS}{\mathcal{S}} % states
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment