Commit cc0711fc by 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