From 6f4e6e61b3a7423ca955d77bfca6a54d47af1fdc Mon Sep 17 00:00:00 2001 From: Eric Giovannini <ecg19@seas.upenn.edu> Date: Fri, 19 Jan 2024 13:54:05 -0500 Subject: [PATCH] update definition of abstract model --- paper-new/categorical-model.tex | 88 ++++++++++----------------------- 1 file changed, 25 insertions(+), 63 deletions(-) diff --git a/paper-new/categorical-model.tex b/paper-new/categorical-model.tex index 818bd54..a22dcee 100644 --- a/paper-new/categorical-model.tex +++ b/paper-new/categorical-model.tex @@ -444,12 +444,16 @@ The judgment $\gamma : f \bisim_{A_i, A_o} f'$ is defined to mean: \item $\tvsim(\gamma) = f'$ \end{enumerate} +Lastly, we require that for any value object $A$, the hom-set $\ef(FA, FA)$ contains a +distinguished morphism $\delta_A$, such that $\delta_A \bisim_{FA, FA} \id_{FA}$. + % Spelling this all out concretely, for any pair... \begin{definition}\label{def:step-1-model} A \emph{step-1 intensional model} consists of all the data of a step-0 intensional model along -with the additional categories and functors for bisimiarity described above. +with the additional categories and functors for bisimiarity described above, as well as +the existence of a distinguised computation morphism $\delta_A \bisim \id_{FA}$ for each $A$. \end{definition} \subsubsection{Perturbations}\label{sec:abstract-model-perturbations} @@ -469,6 +473,10 @@ $\delta$ to refer to the morphism $\ptbv_A(\delta) \in \vf(A,A)$, and likewise for computation perturbations. The context will make clear whether we are referring to an element of the perturbation monoid or the corresponding morphism. +We require that $\delta_A \in \pe_{FA}$ for all $A$, where $\delta_A$ is the distinguished +morphism that is required to be present in every hom-set $\ef(FA, FA)$ per the definition +of a step-1 model. + The perturbations must be preserved by $\times$, $\arr$, $U$, and $F$. For reasons that will be made clear in the next section, perturbations must also satisfy a property that we call the ``push-pull'' property, @@ -624,23 +632,27 @@ when doing so!). \subsubsection{The Dynamic Type} Now we can discuss what it means for an intensional model to model the dynamic type. +This applies to any of the above abstract model definitions, i.e., steps 0-3. \begin{definition}\label{def:step-4-model} - A \emph{step-4 intensional model}, or simply an \emph{intensional model}, consists - of all the data of a step-3 intensional model, along with + A \emph{step-$i$ intensional model with dyn} is a step-$i$ model $\mathcal M$ such that: %a distinguished value object $D \in \ob(\vf)$ such that: % \begin{enumerate} - \item A distinguished value object $D \in \ob(\vf)$. - (By definition of a step-3 model, this means there is also a monoid $\pv_D$ of - perturbations and a homomorphism $\ptbv_D$.) + \item There is a distinguished value object $D \in \ob(\vf)$. + \item For each value type $A$, there is a value relation $\text{inj}_A : A \rel D$. - (By definition of a step-3 model, this relation satisfies the push-pull property and is - quasi-left-representable.) + \item If $c : A \rel A'$, then $\text{inj}_{A} = c \comp \text{inj}_{A'}$. \end{enumerate} \end{definition} +% (By definition of a step-3 model, this relation satisfies the push-pull property and is +% quasi-left-representable.) + +% (By definition of a step-3 model, this means there is also a monoid $\pv_D$ of +% perturbations and a homomorphism $\ptbv_D$.) + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -651,26 +663,17 @@ Now we can discuss what it means for an intensional model to model the dynamic t In the previous section, we have given the definition of an intensional model of gradual typing as a series of steps with each definition building on the previous one. % -Here, we discuss how to construct an extensional model from an intensional model. -We do so in several phases, beginning with a step-1 intensional model +Here, we discuss how to construct an extensional model from an intensional model with dyn. +We do so in several phases, beginning with a step-1 intensional model with dyn and ending with an extensional model. Moreover, this construction is \emph{modular}, in that each phase of the construction does not depend on the details of the previous ones. -However, this process cannot proceed in isolation: some phases require -additional inputs. We will make clear what data must be supplied to each phase. - -% Going from a step-1 intensional model $\mathcal{M}_1$ to a step-2 intensional model -% requires defining a bisimilarity relation on the value morphisms and on -% the computation morphisms of $\mathcal{M}_1$. -% In particular, we need for every $A$ and $A'$ a reflexive, symmetric relation -% $\bisim_{A,A'}$ on $\vf(A, A')$ and for every $B$ and $B'$ a reflexive, symmetric relation -% $\bisim_{B,B'}$ on $\ef(B, B')$. Moreover, the relation must respect composition of morphisms. -% This phase of the construction is quite simple, because it consists entirely of extra structure -% supplied as input to the construction. +% However, this process cannot proceed in isolation: some phases require +% additional inputs. We will make clear what data must be supplied to each phase. \subsubsection{Adding Perturbations} -Suppose we have a \hyperref[def:step-1-model]{step-1 intensional model} $\mathcal{M}$. +Suppose we have a \hyperref[def:step-1-model]{step-1 intensional model} $\mathcal{M}$ with dyn. Recall that a step-1 intensional model consists of a step-0 model (i.e., a category internal to the category of CBPV models), along with the necessary categories and functors for bisimilarity as discussed in Section @@ -678,8 +681,6 @@ categories and functors for bisimilarity as discussed in Section Further, recall that a \hyperref[def:step-2-model]{step-2 model} has everything a step-1 model has, with the addition of perturbation monoids $\pv_A$ for all $A$ and $\pe_B$ for all $B$. -% These perturbations must be interpretable as endomorphisms via homomorphisms -% $\ptb_A$ and $\ptb_B$, These perturbations must be interpretable via homomorphisms $\ptb_A$ and $\ptb_B$ as endomorphisms bisimilar to the identity, and moreover, the push-pull property must hold for all @@ -704,47 +705,8 @@ For the proof, see Lemma \ref{lem:step-1-model-to-step-2-model} in the Appendix. Now suppose we have a step-2 intensional model $\mathcal{M}$. We will describe how to construct a \hyperref[def:step-3-model]{step-3 intensional model} $\mathcal{M'}$. -We begin with a definition. - -\begin{definition}[representation structure] -Let $c : A \rel A'$ be a value relation. A \emph{left-representation structure} $\rho^L_c$ for $c$ consists of -a value morphism $u \in \vf(A, A')$ such that $c$ is quasi-left-representable by $u$ (see Definition \ref{def:quasi-left-representable}). - -Likewise, let $d : B \rel B'$. A \emph{right-representation structure} $\rho^R_d$ for $d$ consists of -a computation morphism $d \in \ef(B', B)$ such that $d$ is quasi-right-representable by $d$ (see Definition \ref{def:quasi-right-representable}). -\end{definition} - -(Notice that the direction of the morphism is opposite in the definition of -right-representation structure.) We now describe the construction of a step-3 model $\mathcal M'$. -The objects of $\mathcal M'$ are defined to be the same as the objects of the -step-2 model $\mathcal M$. -The value and computation morphisms in $\mathcal M'$ are the same as those of -$\mathcal M$. -A value relation is defined to be a pair $(c, \rho^L_c)$ with $c$ a value -relation in $\mathcal M$ and $\rho^L_c$ a left-representation structure for $c$. -Likewise, a computation relation is defined to be a pair $(d, \rho^R_d)$ with -$d$ a computation relation in $\mathcal M$ and $\rho^R_d$ a right-representation -structure for $d$. -Lastly, morphisms of value relations (i.e., value squares) are defined by simply -ignoring the representation structure. That is, a morphism of value relations -$\alpha \in \vsq'((c, \rho^L_c), (c' \rho^L_{c'}))$ is simply a morphism of value -relations in $\vsq(c, c')$. Likewise for computations. - -Now we define the functors $F$, $U$, and $\arr$. -On objects, the behavior is the same as the respective functors in $\mathcal M$. -For relations, we define -$\Fsq' (c, \rho^L_c) = (\Fsq c, \rho^R_{F c})$ and -$\Usq' (d, \rho^R_d) = (\Usq d, \rho^L_{U d})$. -We define $(c, \rho^L_c) \arr (d, \rho^R_d) = (c \arr d, \rho^R_{c \arr d})$. - - - -We now verify that the construction meets the requirements of a step-3 model. -First, we check that composition of value relations (resp. computation relations) -is well-defined. This might seem obvious, but there is actually a subtlety here: -what should the representation structure be for the composition? -- GitLab