For the remaining base types $\type$ defined by the signature $\Sig$, we pick an object $X_\type$ in $\COFEs$ and define
\[
\Sem{\type}\eqdef X_\type
\]
For each function symbol $\sigfn : \type_1, \dots, \type_n \to\type_{n+1}\in\SigFn$, we pick a function $\Sem{\sigfn} : \Sem{\type_1}\times\dots\times\Sem{\type_n}\nfn\Sem{\type_{n+1}}$.
\judgment[Interpretation of assertions.]{\Sem{\vctx\proves\term : \Prop} : \Sem{\vctx}\nfn\UPred(\monoid)}
\typedsection{Interpretation of base assertions}{\Sem{\vctx\proves\term : \Prop} : \Sem{\vctx}\nfn\UPred(\monoid)}
Remember that $\UPred(\monoid)$ is isomorphic to $\monoid\monra\SProp$.
Remember that $\UPred(\monoid)$ is isomorphic to $\monoid\monra\SProp$.
We are thus going to define the assertions as mapping CMRA elements to sets of step-indices.
We are thus going to define the assertions as mapping CMRA elements to sets of step-indices.
We introduce an additional logical connective $\ownM\melt$, which will later be used to encode all of $\knowInv\iname\prop$, $\ownGGhost\melt$ and $\ownPhys\state$.
\begin{align*}
\begin{align*}
\Sem{\vctx\proves t =_\type u : \Prop}_\gamma&\eqdef
\Sem{\vctx\proves t =_\type u : \Prop}_\gamma&\eqdef
\Lam\any. \setComp{n}{\Sem{\vctx\proves t : \type}_\gamma\nequiv{n}\Sem{\vctx\proves u : \type}_\gamma}\\
\Lam\any. \setComp{n}{\Sem{\vctx\proves t : \type}_\gamma\nequiv{n}\Sem{\vctx\proves u : \type}_\gamma}\\
...
@@ -32,134 +47,27 @@ We introduce an additional logical connective $\ownM\melt$, which will later be
...
@@ -32,134 +47,27 @@ We introduce an additional logical connective $\ownM\melt$, which will later be
\Sem{\vctx\proves\Exists x : \type. \prop : \Prop}_\gamma&\eqdef
\Sem{\vctx\proves\Exists x : \type. \prop : \Prop}_\gamma&\eqdef
\Lam\melt. \setComp{n}{\Exists v \in\Sem{\type}. n \in\Sem{\vctx, x : \type\proves\prop : \Prop}_{\gamma[x \mapsto v]}(\melt) }\\
\Lam\melt. \setComp{n}{\Exists v \in\Sem{\type}. n \in\Sem{\vctx, x : \type\proves\prop : \Prop}_{\gamma[x \mapsto v]}(\melt) }\\
\All m, \melt'. & m \leq n \land (\melt\mtimes\melt') \in\mval_m \Ra{}\\&\Exists\meltB. (\meltB\mtimes\melt') \in\mval_k \land m \in\Sem{\vctx\proves\prop :\Prop}_\gamma(\melt')
\end{aligned}
}
\end{align*}
\end{align*}
For every definition, we have to show all the side-conditions: The maps have to be non-expansive and monotone.
For every definition, we have to show all the side-conditions: The maps have to be non-expansive and monotone.
\subsection{Iris model}
\paragraph{Semantic domain of assertions.}
The first complicated task in building a model of full Iris is defining the semantic model of $\Prop$.
We start by defining the functor that assembles the CMRAs we need to the global resource CMRA:
For the remaining base types $\type$ defined by the signature $\Sig$, we pick an object $X_\type$ in $\COFEs$ and define
\[
\Sem{\type}\eqdef X_\type
\]
For each function symbol $\sigfn : \type_1, \dots, \type_n \to\type_{n+1}\in\SigFn$, we pick a function $\Sem{\sigfn} : \Sem{\type_1}\times\dots\times\Sem{\type_n}\nfn\Sem{\type_{n+1}}$.
\typedsection{Interpretation of non-propositional terms}{\Sem{\vctx\proves\term : \type} : \Sem{\vctx}\nfn\Sem{\type}}
\judgment[Interpretation of non-propositional terms]{\Sem{\vctx\proves\term : \type} : \Sem{\vctx}\nfn\Sem{\type}}
\begin{align*}
\begin{align*}
\Sem{\vctx\proves x : \type}_\gamma&\eqdef\gamma(x) \\
\Sem{\vctx\proves x : \type}_\gamma&\eqdef\gamma(x) \\