Typos grammaticales
This commit is contained in:
parent
5363b3d76e
commit
c22581c3a0
@ -34,26 +34,26 @@
|
|||||||
|
|
||||||
\subsection*{Problem Studied}
|
\subsection*{Problem Studied}
|
||||||
|
|
||||||
There is a process that transforms any GAT into another GAT with only two sorts. This transformation has been used by Filippo Sestini in their PhD, in order to restrict their study to GATs with only two sorts. However, this systematic transformation has not yet been formally justified.
|
There is a process that transforms any GAT into another GAT with only two sorts. This transformation has been used by Filippo Sestini in their PhD, to restrict their study to GATs with only two sorts. However, this systematic transformation has not yet been formally justified.
|
||||||
|
|
||||||
\subsection*{Proposed Contribution}
|
\subsection*{Proposed Contribution}
|
||||||
|
|
||||||
During this internship, my goal was to semantically formalize this transformation. I focused directly on the categories of models without looking at the syntactic aspects of GATs. I only focused on \enquote{sort specification}, i.e. GATs that are just a list of sort declarations with no constructors. I started with applying the transformation on simple examples in order to identify properties that would prove the transformation to be correct, working in a categorical framework. Then, I formally stated those properties and proved them as generically as possible.
|
During this internship, my goal was to formalize this transformation semantically. I focused directly on the categories of models without looking at the syntactic aspects of GATs. I only focused on \enquote{sort specification}, i.e. GATs that are just a list of sort declarations with no constructors. I started with applying the transformation on simple examples to identify properties that would prove the transformation to be correct, working in a categorical framework. Then, I formally stated those properties and proved them as generically as possible.
|
||||||
|
|
||||||
\subsection*{Arguments Supporting Their Validity}
|
\subsection*{Arguments Supporting Their Validity}
|
||||||
|
|
||||||
The overall proof was made semantically and at each step, we tried to generalize objects as much as possible. The ways of constructing the objects is based on published papers \cite{Altenkirch2018} \cite{Fiore2008}.
|
The overall proof was made semantically and at each step, we tried to generalize objects as much as possible. The ways of constructing the objects are based on published papers \cite{Altenkirch2018} \cite{Fiore2008}.
|
||||||
|
|
||||||
My contribution is also a first step towards solving the conjecture stated in Sestini's PhD.
|
My contribution is also a first step towards solving the conjecture stated in Sestini's PhD.
|
||||||
|
|
||||||
\subsection*{Summary and Future Work}
|
\subsection*{Summary and Future Work}
|
||||||
|
|
||||||
We formalized semantically this transformation, enabling us to be more general and to avoid the syntactical aspects of GATs.
|
We formalized semantically this transformation, enabling us to be more general and avoid the syntactical aspects of GATs.
|
||||||
This transformation has been proven, so that studying only GATs with two sorts can be done without loosing generality.
|
This transformation has been proven so that studying only GATs with two sorts can be done without losing generality.
|
||||||
|
|
||||||
A next step could be to add term constructors to our formalization. We could describe their transformation and adapt the properties we stated for sort specification to them.
|
The next step could be to add term constructors to our formalization. We could describe their transformation and adapt the properties we stated for sort specification to them.
|
||||||
|
|
||||||
We could also try to further generalize GATs using this transformation. We could for example try to describe sorts that are mutually included one into the other. More work needs to be done studying them and looking at how the transformation affects them in order to discover new properties.
|
We could also try to further generalize GATs using this transformation. We could for example try to describe sorts that are mutually included one into the other. More work needs to be done studying them and looking at how the transformation affects them to discover new properties.
|
||||||
|
|
||||||
We could also aim to encode this transformation and the associated proofs in a proof assistant like Agda or Coq.
|
We could also aim to encode this transformation and the associated proofs in a proof assistant like Agda or Coq.
|
||||||
|
|
||||||
@ -74,7 +74,7 @@
|
|||||||
|
|
||||||
A sort specification is a list of \emph{sort declarations}, composed of \emph{parameters} and $\Set$ as their codomain.
|
A sort specification is a list of \emph{sort declarations}, composed of \emph{parameters} and $\Set$ as their codomain.
|
||||||
|
|
||||||
We give an example of a sort specification for Type Theory. On the right column we give the interpretation of the sort declarations as components of the models of the GAT.
|
We give an example of a sort specification for Type Theory. In the right column, we give the interpretation of the sort declarations as components of the models of the GAT.
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
\renewcommand\arraystretch{1.5}
|
\renewcommand\arraystretch{1.5}
|
||||||
@ -88,7 +88,7 @@
|
|||||||
A sort specification therefore specifies the different families of sets contained in a model, and how they relate to each other in terms of indexing.
|
A sort specification therefore specifies the different families of sets contained in a model, and how they relate to each other in terms of indexing.
|
||||||
|
|
||||||
\paragraph{Term specification}
|
\paragraph{Term specification}
|
||||||
Once we have a sort specification, we can add constructors to it in order to make a complete GAT. Constructors are composed of parameters (the same kind as for sort declarations) and of a codomain which is a sort defined by a previous sort declaration. Those constructors specify elements of the sets contained in the model.
|
Once we have a sort specification, we can add constructors to it to make a complete GAT. Constructors are composed of parameters (the same kind as for sort declarations) and of a codomain which is a sort defined by a previous sort declaration. Those constructors specify elements of the sets contained in the model.
|
||||||
For example, to the previous sort specification, one can add the following constructors:
|
For example, to the previous sort specification, one can add the following constructors:
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
@ -115,7 +115,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Then, we replace all occurrences of $\Set$ to $\mathcal{O}$, and we apply $\El$ to every parameter. We write $\underline{o}$ rather than $\El(o)$ in order to ease reading. For example, the GAT of Type Theory presented above becomes that which follows:
|
Then, we replace all occurrences of $\Set$ to $\mathcal{O}$, and we apply $\El$ to every parameter. We write $\underline{o}$ rather than $\El(o)$ to ease reading. For example, the GAT of Type Theory presented above becomes that which follows:
|
||||||
|
|
||||||
\begin{tabular}{p{0.4\textwidth}|p{0.5\textwidth}}
|
\begin{tabular}{p{0.4\textwidth}|p{0.5\textwidth}}
|
||||||
$\Con : \mathcal{O}$ & One sort object is called \enquote{$\Con$} \\
|
$\Con : \mathcal{O}$ & One sort object is called \enquote{$\Con$} \\
|
||||||
@ -130,7 +130,7 @@
|
|||||||
$\dots$
|
$\dots$
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
This process is useful when studying GATs, as it allows to restrict a study to GATs with only two sorts without loss of generality. Filippo Sestini noticed that in his thesis \cite{SestiniPhD}:
|
This process is useful when studying GATs, as it enables one to restrict the scope of their study to GATs with only two sorts without loss of generality. Filippo Sestini noticed that in his thesis \cite{SestiniPhD}:
|
||||||
|
|
||||||
\begin{quote}
|
\begin{quote}
|
||||||
Many instances of multi-sorted IITs [IITs are a variant of GATs] can be reduced to equivalent two-sorted IITs, via a systematic reduction method originally observed by Zongpu (Szumi) Xie. We are not aware of a formal proof of this construction for arbitrary IITs, but we conjecture that it does apply to all instances of induction-induction and consequently that it shows two-sorted IITs are enough to represent any specifiable IIT.
|
Many instances of multi-sorted IITs [IITs are a variant of GATs] can be reduced to equivalent two-sorted IITs, via a systematic reduction method originally observed by Zongpu (Szumi) Xie. We are not aware of a formal proof of this construction for arbitrary IITs, but we conjecture that it does apply to all instances of induction-induction and consequently that it shows two-sorted IITs are enough to represent any specifiable IIT.
|
||||||
@ -138,7 +138,7 @@
|
|||||||
|
|
||||||
\paragraph{Goal}
|
\paragraph{Goal}
|
||||||
|
|
||||||
The goal of my internship was to study and understand the relationship between the categories of models of an original GAT and the category of models of the transformed \enquote{two-sortified} GAT, in order to legitimate this transformation. In this document, we will only study sort specifications (i.e. lists of sort declarations, with no constructors).
|
The goal of my internship was to study and understand the relationship between the categories of models of an original GAT and the category of models of the transformed \enquote{two-sortified} GAT, to legitimate this transformation. In this document, we will only study sort specifications (i.e. lists of sort declarations, with no constructors).
|
||||||
|
|
||||||
We constructed a coreflection between those two categories, whose formal definition is given in \autoref{sec:proofSection}. It consists of an adjunction $F \vdash G$ between the category $\CC$ of the models of the GAT and the category $\BB$ of the models of the two-sortified GAT, where G is full and faithful.
|
We constructed a coreflection between those two categories, whose formal definition is given in \autoref{sec:proofSection}. It consists of an adjunction $F \vdash G$ between the category $\CC$ of the models of the GAT and the category $\BB$ of the models of the two-sortified GAT, where G is full and faithful.
|
||||||
This coreflection justifies the transformation as the initial object of $\CC$ can be computed as the image by $F$ of the initial object of $\BB$.
|
This coreflection justifies the transformation as the initial object of $\CC$ can be computed as the image by $F$ of the initial object of $\BB$.
|
||||||
@ -160,7 +160,7 @@
|
|||||||
\paragraph{Structure of the proof}
|
\paragraph{Structure of the proof}
|
||||||
The formal proof will be an induction on the number of sorts taken into account. At each step, we will add a new sort declaration, represented by a functor $H_i$ described later (\autoref{sec:constructingCategory}).
|
The formal proof will be an induction on the number of sorts taken into account. At each step, we will add a new sort declaration, represented by a functor $H_i$ described later (\autoref{sec:constructingCategory}).
|
||||||
|
|
||||||
At the $i$-th recursion step, we will build the following objects :
|
At the $i$th recursion step, we will build the following objects :
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\setlength\itemsep{-1ex}
|
\setlength\itemsep{-1ex}
|
||||||
\item The category of models of the GAT $\CC_i$
|
\item The category of models of the GAT $\CC_i$
|
||||||
@ -171,13 +171,13 @@
|
|||||||
\item A proof that $F_iG_i \cong \Id_{\CC_i}$ (i.e. $F_i \vdash G_i$ make up a coreflection)
|
\item A proof that $F_iG_i \cong \Id_{\CC_i}$ (i.e. $F_i \vdash G_i$ make up a coreflection)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
We will now present those objects on two specific examples in order to help getting an understanding of the logic behind the formal proof.
|
We will now present those objects on two specific examples to help get an understanding of the logic behind the formal proof.
|
||||||
|
|
||||||
\subsection{The empty sort specification}
|
\subsection{The empty sort specification}
|
||||||
|
|
||||||
\label{sec:EmptySortSpec}
|
\label{sec:EmptySortSpec}
|
||||||
|
|
||||||
Our first example is the empty sort specification. As our proof will we an induction on the number of sorts, its first step will always be creating the objects for this empty sort specification.
|
Our first example is the empty sort specification. As our proof will be an induction on the number of sorts, its first step will always be creating the objects for this empty sort specification.
|
||||||
|
|
||||||
\paragraph{Category of models of the empty sort specification}
|
\paragraph{Category of models of the empty sort specification}
|
||||||
|
|
||||||
@ -185,7 +185,7 @@
|
|||||||
|
|
||||||
\paragraph{Category of models of the transformed GAT}
|
\paragraph{Category of models of the transformed GAT}
|
||||||
|
|
||||||
The transformed GAT for the empty sort specification is the sort specification $(\mathcal{O},\El)$ (no constructors as there are no sort in the initial sort specification):
|
The transformed GAT for the empty sort specification is the sort specification $(\mathcal{O},\El)$ (no constructors as there is no sort in the initial sort specification):
|
||||||
\vspace{.5ex}
|
\vspace{.5ex}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\renewcommand\arraystretch{1}
|
\renewcommand\arraystretch{1}
|
||||||
@ -211,7 +211,7 @@
|
|||||||
|
|
||||||
This category is equivalent to the category $\FamSet$ with an equivalence we will see later (\autoref{SetXSetXEquivalence})
|
This category is equivalent to the category $\FamSet$ with an equivalence we will see later (\autoref{SetXSetXEquivalence})
|
||||||
|
|
||||||
With this formalisation, a model of this sort specification is a functor $X : \TT \to \Set$, such that
|
With this formalization, a model of this sort specification is a functor $X : \TT \to \Set$, such that
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item $X_\UU$ is the set of the \enquote{sort objects}
|
\item $X_\UU$ is the set of the \enquote{sort objects}
|
||||||
\item For each sort object $A \in X_\UU$, the set of objects corresponding to the sort object is $X_p^{-1}(\{A\}) \subset X_\El$
|
\item For each sort object $A \in X_\UU$, the set of objects corresponding to the sort object is $X_p^{-1}(\{A\}) \subset X_\El$
|
||||||
@ -271,15 +271,15 @@
|
|||||||
|
|
||||||
Where the categories $\CC_i$ are the categories of models of the sort specification limited to the $i$ first sort declarations, and $\BB_i$ are the categories of models of the transformed GAT limited to the $i$ first sort declarations. For example, $\CC_2$ is the category of models of the two first sorts of the sort specification ($\Con$,$\Ty$). $\BB_0$,$\CC_0$,$F_0$, and $G_0$ have been defined in the last subsection.
|
Where the categories $\CC_i$ are the categories of models of the sort specification limited to the $i$ first sort declarations, and $\BB_i$ are the categories of models of the transformed GAT limited to the $i$ first sort declarations. For example, $\CC_2$ is the category of models of the two first sorts of the sort specification ($\Con$,$\Ty$). $\BB_0$,$\CC_0$,$F_0$, and $G_0$ have been defined in the last subsection.
|
||||||
|
|
||||||
The $R^i_{i-1}$ functors between the categories are forgetful functors that forgets about the added sorts.
|
The $R^i_{i-1}$ functors between the categories are forgetful functors that forget about the added sorts.
|
||||||
|
|
||||||
I will only give here the explanation of functors $F_3$ and $G_3$, omitting the intermediate functors $F_1$,$G_1$,$F_2$,$G_2$. Their construction is given in the complete proof.
|
I will only give here the explanation of functors $F_3$ and $G_3$, omitting the intermediate functors $F_1$, $G_1$, $F_2$, $G_2$. Their construction is given in the complete proof.
|
||||||
|
|
||||||
\paragraph{Category of models}
|
\paragraph{Category of models}
|
||||||
|
|
||||||
We have seen in the introduction a description of a model of the type theory sort specification. We will rebuild the category of those models inductively, adding one sort at a time.
|
We have seen in the introduction a description of a model of the type theory sort specification. We will rebuild the category of those models inductively, adding one sort at a time.
|
||||||
|
|
||||||
In order to construct those categories in a generic way, we will define functors $H_X : \CC_{X-1} \to \Set$ that will describe the \enquote{parameters} of the sort declaration.
|
To construct those categories generically, we will define functors $H_X : \CC_{X-1} \to \Set$ that will describe the \enquote{parameters} of the sort declaration.
|
||||||
|
|
||||||
\[
|
\[
|
||||||
\boxed{\Con : \Set}
|
\boxed{\Con : \Set}
|
||||||
@ -297,7 +297,7 @@
|
|||||||
\item A family of sets $X_\Con$ indexed by $H_\Con(x) = 1$
|
\item A family of sets $X_\Con$ indexed by $H_\Con(x) = 1$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
As there is only one object in $\CC_0$ and that a family of sets indexed by $1$ is simply a set, we have that this category $\CC_1$ is isomorphic to $\Set$ (i.e. the category of sets).
|
As there is only one object in $\CC_0$ and as a family of sets indexed by $1$ is simply a set, we have that this category $\CC_1$ is isomorphic to $\Set$ (i.e. the category of sets).
|
||||||
This is as expected: a model $X$ consists of a set $X_\Con$.
|
This is as expected: a model $X$ consists of a set $X_\Con$.
|
||||||
|
|
||||||
\[
|
\[
|
||||||
@ -312,7 +312,7 @@
|
|||||||
\item A family of sets $X_\Ty$ indexed by $H_\Ty(X_\Con) = X_\Con$
|
\item A family of sets $X_\Ty$ indexed by $H_\Ty(X_\Con) = X_\Con$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
This category is, as expected, the category $\FamSet$ of families of sets i.e. objects are pairs of a set $X_\Con$ and of a family indexed by $X_\Con$: $(X_\Ty(\Gamma))_{\Gamma\in X_\Con}$.
|
This category is, as expected, the category $\FamSet$ of families of sets i.e. objects are pairs of a set $X_\Con$ and a family indexed by $X_\Con$: $(X_\Ty(\Gamma))_{\Gamma\in X_\Con}$.
|
||||||
|
|
||||||
\[
|
\[
|
||||||
\boxed{\Tm : (\Delta : \Con) \to (A : \Ty\;\Delta) \to \Set}
|
\boxed{\Tm : (\Delta : \Con) \to (A : \Ty\;\Delta) \to \Set}
|
||||||
@ -350,7 +350,7 @@
|
|||||||
\end{array}}
|
\end{array}}
|
||||||
\]
|
\]
|
||||||
|
|
||||||
We have seen in previous subsection that the category of models of this GAT is $\BB_0 = \TSet$. We will only add new \emph{constructors} to these models, and no new sorts.
|
We have seen in the previous subsection that the category of models of this GAT is $\BB_0 = \TSet$. We will only add new \emph{constructors} to these models, and no new sorts.
|
||||||
|
|
||||||
\[
|
\[
|
||||||
\boxed{\Con : \mathcal{O}}
|
\boxed{\Con : \mathcal{O}}
|
||||||
@ -380,7 +380,7 @@
|
|||||||
\Cstr^X_\Ty : X_p^{-1}\left(\{\Cstr^X_\Con\}\right) \to X_\UU
|
\Cstr^X_\Ty : X_p^{-1}\left(\{\Cstr^X_\Con\}\right) \to X_\UU
|
||||||
\]
|
\]
|
||||||
|
|
||||||
The codomain of this constructor means \enquote{Every object of $X_\El$ that are associated to the $\Con$ object of $X_\UU$ i.e. the object $\Cstr^X_\Con$}
|
The codomain of this constructor means \enquote{Every object of $X_\El$ that is associated to the $\Con$ object of $X_\UU$ i.e. the object $\Cstr^X_\Con$}
|
||||||
This codomain is quite verbose, but we have another way of expressing it. In the final proof, we will have already constructed the functor $F_1 : \BB_1 \to \CC_1$, and we had a functor $H_\Ty : \CC_1 \to \Set$ that described the parameters of the sort declaration of $\Ty$ for the category $\CC_1$. It turns out that $H_\Ty \circ F_1 : \BB_1 \to \Set$ describes exactly the codomain expressed above.
|
This codomain is quite verbose, but we have another way of expressing it. In the final proof, we will have already constructed the functor $F_1 : \BB_1 \to \CC_1$, and we had a functor $H_\Ty : \CC_1 \to \Set$ that described the parameters of the sort declaration of $\Ty$ for the category $\CC_1$. It turns out that $H_\Ty \circ F_1 : \BB_1 \to \Set$ describes exactly the codomain expressed above.
|
||||||
\[
|
\[
|
||||||
(H_\Ty \circ F_1) (X,\Cstr^X_\Con) = X_p^{-1}\left(\Cstr^X_\Con\right)
|
(H_\Ty \circ F_1) (X,\Cstr^X_\Con) = X_p^{-1}\left(\Cstr^X_\Con\right)
|
||||||
@ -394,7 +394,7 @@
|
|||||||
\item A constructor $\Cstr^X_\Ty : H_iF_{i-1}(X,\Cstr^X_\Con) \to X_\UU$
|
\item A constructor $\Cstr^X_\Ty : H_iF_{i-1}(X,\Cstr^X_\Con) \to X_\UU$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
One again, a morphism $f$ from $(X,\Cstr^X_\Con,\Cstr^X_\Ty)$ to $(X',\Cstr^{X'}_\Con,\Cstr^{X'}_\Ty)$ is simply a morphism of $\BB_1$ from $(X,\Cstr^X_\Con)$ to $(X',\Cstr^{X'}_\Con)$ that does respect the $\Cstr_\Ty$ constructor, i.e. that verifies, for every $\Gamma$ in $H_iF_{i-1}(X,\Cstr^X_\Con)$ that
|
Once again, a morphism $f$ from $(X,\Cstr^X_\Con,\Cstr^X_\Ty)$ to $(X',\Cstr^{X'}_\Con,\Cstr^{X'}_\Ty)$ is simply a morphism of $\BB_1$ from $(X,\Cstr^X_\Con)$ to $(X',\Cstr^{X'}_\Con)$ that does respect the $\Cstr_\Ty$ constructor, i.e. that verifies, for every $\Gamma$ in $H_iF_{i-1}(X,\Cstr^X_\Con)$ that
|
||||||
\[
|
\[
|
||||||
f_\UU(\Cstr^X_\Ty(\Gamma)) = \Cstr^{X'}_\Ty(f_\El(\Gamma))
|
f_\UU(\Cstr^X_\Ty(\Gamma)) = \Cstr^{X'}_\Ty(f_\El(\Gamma))
|
||||||
\]
|
\]
|
||||||
@ -409,7 +409,7 @@
|
|||||||
\item A constructor $\Cstr^X_\Tm$ that goes from $H_\Tm F_2 X$ to $X_\UU$
|
\item A constructor $\Cstr^X_\Tm$ that goes from $H_\Tm F_2 X$ to $X_\UU$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
And morphism are restricted with the $\Tm$ constructor rule that states that for every $(\Delta,A)$ in $H_iF_{i-1}(X,\Cstr^X_\Con,\Cstr^X_\Ty)$
|
And morphisms are restricted with the $\Tm$ constructor rule that states that for every $(\Delta,A)$ in $H_iF_{i-1}(X,\Cstr^X_\Con,\Cstr^X_\Ty)$
|
||||||
\[
|
\[
|
||||||
f_\UU(\Cstr^X_\Tm(\Delta,A)) = \Cstr^{X'}_\Tm(f_\El(\Delta),f_\El(A))
|
f_\UU(\Cstr^X_\Tm(\Delta,A)) = \Cstr^{X'}_\Tm(f_\El(\Delta),f_\El(A))
|
||||||
\]
|
\]
|
||||||
@ -460,10 +460,10 @@
|
|||||||
\Cstr^X_\Tm(\Delta,A) &=& \inj_3(\Delta,A)
|
\Cstr^X_\Tm(\Delta,A) &=& \inj_3(\Delta,A)
|
||||||
\end{array}\]
|
\end{array}\]
|
||||||
|
|
||||||
where $\inj_i$ is the $i$-th injector of the disjoint union $\oplus$.
|
where $\inj_i$ is the $i$th injector of the disjoint union $\oplus$.
|
||||||
|
|
||||||
\begin{remark}
|
\begin{remark}
|
||||||
With this functor, every element of $X_\UU$ is reached by some constructor. And therefore, every object of $X_\El$ points to a sort that is reached by some constructor.
|
With this functor, every element of $X_\UU$ is reached by some constructor. Therefore, every object of $X_\El$ points to a sort that is reached by some constructor.
|
||||||
\end{remark}
|
\end{remark}
|
||||||
|
|
||||||
\paragraph{Constructing $F_i$}
|
\paragraph{Constructing $F_i$}
|
||||||
@ -498,7 +498,7 @@
|
|||||||
|
|
||||||
\paragraph{An adjunction}
|
\paragraph{An adjunction}
|
||||||
|
|
||||||
I will not do the proof that $F_3 \vdash G_3$ in this specific case, as it will be proven in the general case in the global proof, but i will give intuitions of why the adjunction holds.
|
I will not do the proof that $F_3 \vdash G_3$ in this specific case, as it will be proven in the general case in the global proof, but I will give intuitions of why the adjunction holds.
|
||||||
|
|
||||||
An adjunction would be described by the following isomorphism:
|
An adjunction would be described by the following isomorphism:
|
||||||
\[
|
\[
|
||||||
@ -506,9 +506,9 @@
|
|||||||
\]
|
\]
|
||||||
|
|
||||||
Recall that sorts of $G_3Y$ are all in the domain of some constructor, so therefore, a morphism of $\Hom_{\BB_3}(G_3Y,X)$ only acts on constructible sorts.
|
Recall that sorts of $G_3Y$ are all in the domain of some constructor, so therefore, a morphism of $\Hom_{\BB_3}(G_3Y,X)$ only acts on constructible sorts.
|
||||||
Also, the only sorts that remain in $F_3X$ are the one that were reached by some constructor of $X$, therefore a morphism of $\Hom_{\CC_3}(Y,F_3X)$ only acts on constructible sorts.
|
Also, the only sorts that remain in $F_3X$ are the ones that were reached by some constructor of $X$, therefore a morphism of $\Hom_{\CC_3}(Y,F_3X)$ only acts on constructible sorts.
|
||||||
|
|
||||||
Therefore, both morphism are only descriptions of actions on constructible sorts into constructible sorts. That's how we create the isomorphism.
|
Therefore, both morphisms are only descriptions of actions on constructible sorts into constructible sorts. That's how we create the isomorphism.
|
||||||
|
|
||||||
\paragraph{A coreflection}
|
\paragraph{A coreflection}
|
||||||
|
|
||||||
@ -538,7 +538,7 @@
|
|||||||
|
|
||||||
\section{Constructing the coreflection}
|
\section{Constructing the coreflection}
|
||||||
\label{sec:proofSection}
|
\label{sec:proofSection}
|
||||||
The proof will take form of an induction on the number of sorts taken into account. At each induction step, we will build the following objects:
|
The proof will take the form of an induction on the number of sorts taken into account. At each induction step, we will build the following objects:
|
||||||
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\setlength\itemsep{-1ex}
|
\setlength\itemsep{-1ex}
|
||||||
@ -550,7 +550,7 @@
|
|||||||
\[
|
\[
|
||||||
R_0^i := R^1_0 \circ \dots \circ R_{i-1}^i
|
R_0^i := R^1_0 \circ \dots \circ R_{i-1}^i
|
||||||
\]
|
\]
|
||||||
\item An operator $\tl^i : \BB_i \times \BB_0 \to \BB_i$ along with two morphism $\inj_1^i : X \to X \tl^i Y$ and $\inj_2^i : Y \to R_0^i(X \tl^i Y)$ for every $X,Y$ in $\BB_i \times \BB_0$. This operation follows a specific universal property: For every morphisms $g : X \to Z$ and $h : Y \to R_0^iZ$, there is an unique morphism $\{g;h\}$ such that the following two diagrams of $\BB_i$ and of $\BB_0$ commute:
|
\item An operator $\tl^i : \BB_i \times \BB_0 \to \BB_i$ along with two morphism $\inj_1^i : X \to X \tl^i Y$ and $\inj_2^i : Y \to R_0^i(X \tl^i Y)$ for every $X,Y$ in $\BB_i \times \BB_0$. This operation follows a specific universal property: For every morphism $g : X \to Z$ and $h : Y \to R_0^iZ$, there is a unique morphism $\{g;h\}$ such that the following two diagrams respectively in $\BB_i$ and $\BB_0$ commute:
|
||||||
\label{sec:tlUniversalProperty}
|
\label{sec:tlUniversalProperty}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@ -569,7 +569,7 @@
|
|||||||
\item A proof that $F_i\inj_1^i$ is an isomorphism. The inverse isomorphism will be denoted as $(F_i\inj_1^i)^{-1}$
|
\item A proof that $F_i\inj_1^i$ is an isomorphism. The inverse isomorphism will be denoted as $(F_i\inj_1^i)^{-1}$
|
||||||
\item A proof that the canonical morphism $\en_{i-1}^i : (R_{i-1}^i X) \tl^{i-1} Y \to R_{i-1}^i (X \tl^i Y)$ is an isomorphism.
|
\item A proof that the canonical morphism $\en_{i-1}^i : (R_{i-1}^i X) \tl^{i-1} Y \to R_{i-1}^i (X \tl^i Y)$ is an isomorphism.
|
||||||
|
|
||||||
We will denote the composition of those $\en$ morphism as such:
|
We will denote the composition of those $\en$ morphisms as such:
|
||||||
\[\en_0^i := R_0^{i-1} \en_{i-1}^i \circ \dots \circ R_0^1\en_1^2 \circ \en_0^1 : (R_0^i X) \tl^0 Y \to R_0^i (X \tl^i Y)\]
|
\[\en_0^i := R_0^{i-1} \en_{i-1}^i \circ \dots \circ R_0^1\en_1^2 \circ \en_0^1 : (R_0^i X) \tl^0 Y \to R_0^i (X \tl^i Y)\]
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
@ -605,7 +605,7 @@
|
|||||||
|
|
||||||
We can define a functor $\left(\mathcal{C}/\dash\right) : \mathcal{C} \to \Cat$ from this construction.
|
We can define a functor $\left(\mathcal{C}/\dash\right) : \mathcal{C} \to \Cat$ from this construction.
|
||||||
|
|
||||||
We will often concatenate the two method above to create from a category $\mathcal{C}$ and a functor $H : \mathcal{C} \to \Set$ a new category $(X : \mathcal{C}) \times \left(\Set\middle/H(X)\right)$.
|
We will often concatenate the two methods above to create from a category $\mathcal{C}$ and a functor $H : \mathcal{C} \to \Set$ a new category $(X : \mathcal{C}) \times \left(\Set\middle/H(X)\right)$.
|
||||||
|
|
||||||
\paragraph{Slice category over a set}
|
\paragraph{Slice category over a set}
|
||||||
\label{SetXSetXEquivalence}
|
\label{SetXSetXEquivalence}
|
||||||
@ -643,7 +643,7 @@
|
|||||||
|
|
||||||
This category is equivalent to the category $\FamSet$, as $(X : \Set) \times \Set^X$ is equivalent to $(X : \Set) \times (\Set/X)$ (as seen above), which is isomorphic to $\TSet$ (both categories consists of two sets and one arrow between them).
|
This category is equivalent to the category $\FamSet$, as $(X : \Set) \times \Set^X$ is equivalent to $(X : \Set) \times (\Set/X)$ (as seen above), which is isomorphic to $\TSet$ (both categories consists of two sets and one arrow between them).
|
||||||
|
|
||||||
The categories of models of the transformed GATs will be built atop of this category $\BB_0 = \TSet$.
|
The categories of models of the transformed GATs will be built atop this category $\BB_0 = \TSet$.
|
||||||
|
|
||||||
\paragraph{$K$ functor}
|
\paragraph{$K$ functor}
|
||||||
|
|
||||||
@ -679,9 +679,9 @@
|
|||||||
\subsection{Inductive Step: Constructing the categories}
|
\subsection{Inductive Step: Constructing the categories}
|
||||||
|
|
||||||
\label{sec:constructingCategory}
|
\label{sec:constructingCategory}
|
||||||
In this part, i will show how we construct recursively both categories $\CC_i$ and $\BB_i$, along with the functor $R_{i-1}^i : \BB_i \to \BB_{i-1}$. We will use the loop invariants that we expressed in the introduction of this section.
|
In this part, we will show how we construct recursively both categories $\CC_i$ and $\BB_i$, along with the functor $R_{i-1}^i : \BB_i \to \BB_{i-1}$. We will use the loop invariants that we expressed in the introduction of this section.
|
||||||
|
|
||||||
In order to construct the categories, we need some object describing the sorts we are adding to the categories. This object is a given functor $H_i : \CC_{i-1} \to \Set$. Those functors are the same that Altenkirch and al. \cite{Altenkirch2018} used in their paper to describe a specification of sorts. They are such that, for $X : \CC_{i-1}$ a model, they describe the set $H_iX$ of parameter range for the added sort. We gave an example of those functors in section \nameref{sec:Examples} if you want to understand how they work. There is also a way of obtaining them directly from the syntax, described in section \nameref{sec:HiFromSyntax}.
|
To construct the categories, we need some object describing the sorts we are adding to the categories. This object is a given functor $H_i : \CC_{i-1} \to \Set$. Those functors are the same that Altenkirch and al. \cite{Altenkirch2018} used in their paper to describe a specification of sorts. They are such that, for $X : \CC_{i-1}$ a model, they describe the set $H_iX$ of parameter range for the added sort. We gave an example of those functors in section \nameref{sec:Examples} if you want to understand how they work. There is also a way of obtaining them directly from the syntax, described in section \nameref{sec:HiFromSyntax}.
|
||||||
We suppose that those $H_i$ functors are given.
|
We suppose that those $H_i$ functors are given.
|
||||||
|
|
||||||
\subsubsection{Constructing $\CC_i$}
|
\subsubsection{Constructing $\CC_i$}
|
||||||
@ -721,7 +721,7 @@
|
|||||||
|
|
||||||
Identities and compositions are that of the category $\BB_{i-1}$, and categorical equalities are trivially derived from the diagram above.
|
Identities and compositions are that of the category $\BB_{i-1}$, and categorical equalities are trivially derived from the diagram above.
|
||||||
|
|
||||||
$R_{i-1}^i$ acts on objects and morphisms, and induces a functor $\BB_i \to \BB_{i-1}$. The induced functor is monadic, and therefore preserves limits.
|
$R_{i-1}^i$ acts on objects and morphisms and induces a functor $\BB_i \to \BB_{i-1}$. The induced functor is monadic and therefore preserves limits.
|
||||||
|
|
||||||
\subsection{Inductive step: Constructing the functors $F_i$ and $G_i$}
|
\subsection{Inductive step: Constructing the functors $F_i$ and $G_i$}
|
||||||
|
|
||||||
@ -772,12 +772,12 @@
|
|||||||
% END OF GENERATED LATEX
|
% END OF GENERATED LATEX
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
The action on a morphism $(g,h)$ from $(X,Y)$ to $(X',Y')$ is defined such as:
|
The action on a morphism $(g,h)$ from $(X,Y)$ to $(X',Y')$ is defined such that:
|
||||||
\[
|
\[
|
||||||
R_{i-1}^i W(g,h) := \left(g \tl^{i-1} K_{H_iF_{i-1}}(g,h)\right)
|
R_{i-1}^i W(g,h) := \left(g \tl^{i-1} K_{H_iF_{i-1}}(g,h)\right)
|
||||||
\]
|
\]
|
||||||
|
|
||||||
We verify in appendix \ref{apx:wdefsound} that this morphism verifies the property of morphisms of $\BB_i$, so that it is indeed a morphism of $\BB_{i}$.
|
We verify in Appendix \ref{apx:wdefsound} that this morphism verifies the property of morphisms of $\BB_i$ so that it is indeed a morphism of $\BB_{i}$.
|
||||||
|
|
||||||
\subsubsection{E definition}
|
\subsubsection{E definition}
|
||||||
|
|
||||||
@ -829,7 +829,7 @@
|
|||||||
All these steps give us that $F_i$ and $G_i$ are in an adjunction $F_i \vdash G_i$.
|
All these steps give us that $F_i$ and $G_i$ are in an adjunction $F_i \vdash G_i$.
|
||||||
|
|
||||||
\paragraph{Coreflection}
|
\paragraph{Coreflection}
|
||||||
Next, we have proven that this newly created adjunction $F_i \vdash G_i$ create a coreflection. It means that $F_iG_i \cong \Id_{\CC_i}$, or equivalently that $G_i$ is full and faithful.
|
Next, we have proven that this newly created adjunction $F_i \vdash G_i$ creates a coreflection. It means that $F_iG_i \cong \Id_{\CC_i}$, or equivalently that $G_i$ is full and faithful.
|
||||||
|
|
||||||
The proof of that second statement is given in \autoref{apx:FG-refl}.
|
The proof of that second statement is given in \autoref{apx:FG-refl}.
|
||||||
|
|
||||||
@ -857,7 +857,7 @@
|
|||||||
R_{i-1}^i \inj_1^i := \inj_1^{i-1} : R_{i-1}^i X \to R_{i-1}^i (X \tl^i Y) = R_{i-1}^i X \tl^{i-1} Y
|
R_{i-1}^i \inj_1^i := \inj_1^{i-1} : R_{i-1}^i X \to R_{i-1}^i (X \tl^i Y) = R_{i-1}^i X \tl^{i-1} Y
|
||||||
\]
|
\]
|
||||||
|
|
||||||
We check that $\inj_1^i$ is a morphism of $\BB_i$ in appendix \ref{apx:inj1morphism}.
|
We check that $\inj_1^i$ is a morphism of $\BB_i$ in Appendix \ref{apx:inj1morphism}.
|
||||||
|
|
||||||
The second injector is defined as
|
The second injector is defined as
|
||||||
\[
|
\[
|
||||||
@ -865,7 +865,7 @@
|
|||||||
\]
|
\]
|
||||||
|
|
||||||
\paragraph{Universal Property}
|
\paragraph{Universal Property}
|
||||||
We will now show that that the universal property stated in \autoref{sec:tlUniversalProperty} holds.
|
We will now show that the universal property stated in \autoref{sec:tlUniversalProperty} holds.
|
||||||
To that end, we take two objects $X$ and $Z$ in $\BB_i$, $Y$ in $\BB_0$, a morphism $g : X \to Z$ in $\BB_i$ and a morphism $h : Y \to R_0^iZ$ in $\BB_0$. We want to build a morphism $\{g,h\}$ of $\BB_i$ such that the following diagrams of $\BB_i$ and $\BB_0$ commute.
|
To that end, we take two objects $X$ and $Z$ in $\BB_i$, $Y$ in $\BB_0$, a morphism $g : X \to Z$ in $\BB_i$ and a morphism $h : Y \to R_0^iZ$ in $\BB_0$. We want to build a morphism $\{g,h\}$ of $\BB_i$ such that the following diagrams of $\BB_i$ and $\BB_0$ commute.
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@ -875,9 +875,9 @@
|
|||||||
% END OF GENERATED LATEX
|
% END OF GENERATED LATEX
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
We check that $\{R_{i-1}^i g ; h\}_{i-1}$ verifies the property of morphisms of $\BB_i$ in appendix \ref{apx:universalpropertymorphismIsMorphism}. Therefore, we can define $\{g ; h\}_i$ such that $R_{i-1}^i\{g ; h\}_i = \{R_{i-1}^i g ; h\}_{i-1}$.
|
We check that $\{R_{i-1}^i g ; h\}_{i-1}$ verifies the property of morphisms of $\BB_i$ in Appendix \ref{apx:universalpropertymorphismIsMorphism}. Therefore, we can define $\{g ; h\}_i$ such that $R_{i-1}^i\{g ; h\}_i = \{R_{i-1}^i g ; h\}_{i-1}$.
|
||||||
|
|
||||||
This morphism $\{g;h\}_i$ is such that the universal property for it is exactly the same as the one of $\{R_{i-1}^i g, h\}$.
|
This morphism $\{g;h\}_i$ is such that the universal property for it is the same as the one of $\{R_{i-1}^i g, h\}$.
|
||||||
|
|
||||||
With this definition, the isomorphism $\en_{i-1}^i : (R_{i-1}^i X) \tl^{i-1} Y \to R_{i-1}^i(X \tl^i Y)$ is simply the identity morphism.
|
With this definition, the isomorphism $\en_{i-1}^i : (R_{i-1}^i X) \tl^{i-1} Y \to R_{i-1}^i(X \tl^i Y)$ is simply the identity morphism.
|
||||||
|
|
||||||
@ -903,7 +903,7 @@
|
|||||||
We finally need to prove, for any objects $X$ in $\BB_i$ and $Y$ in $\TSet$, that the morphism
|
We finally need to prove, for any objects $X$ in $\BB_i$ and $Y$ in $\TSet$, that the morphism
|
||||||
$F_i(\inj_1^i) : F_iX \to F_i(X \tl^i Y)$ is an isomorphism.
|
$F_i(\inj_1^i) : F_iX \to F_i(X \tl^i Y)$ is an isomorphism.
|
||||||
|
|
||||||
Morphisms $\BB_{i}$ are morphisms of $\BB_{i-1}$ that follows some equations, and composition is the same. Moreover, we know from the definition above that $R_{i-1^i} \inj_1^i := \inj_1^{i-1}$.
|
Morphisms $\BB_{i}$ are morphisms of $\BB_{i-1}$ that follow some equations, and composition is the same. Moreover, we know from the definition above that $R_{i-1^i} \inj_1^i := \inj_1^{i-1}$.
|
||||||
|
|
||||||
So, we just need to know that $R_{i-1}^i(F_{i-1}\inj_1^i)$ is an isomorphism.
|
So, we just need to know that $R_{i-1}^i(F_{i-1}\inj_1^i)$ is an isomorphism.
|
||||||
|
|
||||||
@ -917,14 +917,14 @@
|
|||||||
|
|
||||||
\subsection{Sort specifications as simple direct categories}
|
\subsection{Sort specifications as simple direct categories}
|
||||||
|
|
||||||
In the formal proof, we defined $\CC_i$ as an inductive Grothendieck construction as in Altenkirch and al. papers \cite{Altenkirch2018}.
|
In the formal proof, we defined $\CC_i$ as an inductive Grothendieck construction as in Altenkirch and al. paper \cite{Altenkirch2018}.
|
||||||
|
|
||||||
But there is an other way \cite{Fiore2008} of building the category $\CC_i$ which is equivalent to the one presented above.
|
But there is another way \cite{Fiore2008} of building the category $\CC_i$ which is equivalent to the one presented above.
|
||||||
|
|
||||||
With this other method, a sort specification is described by a finite simple direct category $S$ (i.e. a finite category where all the arrows follow an unique direction, and $\Hom$-sets are finite). The models of the sort specification are therefore the presheaves over the category $S$ called $\left[S,\Set\right]$.
|
With this other method, a sort specification is described by a finite simple direct category $S$ (i.e. a finite category where all the arrows follow a unique direction, and $\Hom$-sets are finite). The models of the sort specification are therefore the presheaves over the category $S$ called $\left[S,\Set\right]$.
|
||||||
|
|
||||||
\paragraph{Constructing $S$ as a sequence}
|
\paragraph{Constructing $S$ as a sequence}
|
||||||
In order to fall back on the definition we gave in the formal proof, we will build the final countable simple direct category $S$ as a sequence $\emptyset = S_0,S_1,\dots,S_i$ where $S_i$ is the category describing the sort specification limited to the $i$ first sort declarations.
|
To fall back on the definition we gave in the formal proof, we will build the final countable simple direct category $S$ as a sequence $\emptyset = S_0,S_1,\dots,S_i$ where $S_i$ is the category describing the sort specification limited to the $i$ first sort declarations.
|
||||||
|
|
||||||
The input data describing the GAT will be a sequence of finite functors $\Gamma_i : S_{i-1} \to \Set$.
|
The input data describing the GAT will be a sequence of finite functors $\Gamma_i : S_{i-1} \to \Set$.
|
||||||
|
|
||||||
@ -967,7 +967,7 @@
|
|||||||
In this part, we will see how the functors $\Gamma_i$ given above can be constructed from the syntax of a sort specification. The previous subsection gives us a way of constructing the $H_i$ functors from the $\Gamma_i$ functors, and thus one can make the complete proof with the definition below.
|
In this part, we will see how the functors $\Gamma_i$ given above can be constructed from the syntax of a sort specification. The previous subsection gives us a way of constructing the $H_i$ functors from the $\Gamma_i$ functors, and thus one can make the complete proof with the definition below.
|
||||||
|
|
||||||
\paragraph{Verbose sort specification}
|
\paragraph{Verbose sort specification}
|
||||||
We will take a verbose version of a sort specification, where when \enquote{implementing} a sort, we gave the name of the parameter and the name of the term. For example, our type theory example becomes the following verbose version:
|
We will take a verbose version of a sort specification, where when \enquote{implementing} a sort, we give the name of the parameter and the name of the term. For example, our type theory example becomes the following verbose version:
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\renewcommand\arraystretch{1.5}
|
\renewcommand\arraystretch{1.5}
|
||||||
@ -978,9 +978,9 @@
|
|||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{center}
|
\end{center}
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
The only sort declaration that changes is that of $\Tm$ as it is the only one for which one of its parameter is a sort with parameters.
|
The only sort declaration that changes is that of $\Tm$ as it is the only one for which one of its parameters is a sort with parameters.
|
||||||
|
|
||||||
With that verbose definition, a generic sort specification is a list of sort declarations indexed by $\mathbb{T}$, the fully ordered set of all sorts. The sort declarations are as follow, for a sort $T \in \mathbb{T}$
|
With that verbose definition, a generic sort specification is a list of sort declarations indexed by $\mathbb{T}$, the fully ordered set of all sorts. The sort declarations are as follows, for a sort $T \in \mathbb{T}$
|
||||||
|
|
||||||
\[
|
\[
|
||||||
T : \left[x_a^T : U_T(a) \left[x^{U_T(a)}_{b} \mapsto x^T_{v_T(a,b)}\right]_{b\leq I_{U_T(a)}}\right]_{a \leq I_T} \to \Set
|
T : \left[x_a^T : U_T(a) \left[x^{U_T(a)}_{b} \mapsto x^T_{v_T(a,b)}\right]_{b\leq I_{U_T(a)}}\right]_{a \leq I_T} \to \Set
|
||||||
@ -990,11 +990,11 @@
|
|||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\setlength\itemsep{-.2em}
|
\setlength\itemsep{-.2em}
|
||||||
\item $I_T$ is the number of parameters of the sort $T$
|
\item $I_T$ is the number of parameters of the sort $T$
|
||||||
\item $x^T_a$ is the $a$-th parameter of the sort $T$
|
\item $x^T_a$ is the $a$th parameter of the sort $T$
|
||||||
\item $U_T(a)$ is the sort of the $a$-th parameter of the sort $T$ (we have $U_T(a) < T$)
|
\item $U_T(a)$ is the sort of the $a$th parameter of the sort $T$ (we have $U_T(a) < T$)
|
||||||
\item $I_{U_T(a)}$ is the number of parameters of the sort $U_T(a)$ i.e. the number of arguments we have to give to make an object of sort $U_T(a)$
|
\item $I_{U_T(a)}$ is the number of parameters of the sort $U_T(a)$ i.e. the number of arguments we have to give to make an object of sort $U_T(a)$
|
||||||
\item $x^{U_T(a)}_b$ is the $b$-th parameter of the sort $U_T(a)$
|
\item $x^{U_T(a)}_b$ is the $b$th parameter of the sort $U_T(a)$
|
||||||
\item $v_T(a,b)$ is the index of the parameter of the sort $T$ given as the $b$-th parameter of the $a$-th parameter of the sort $T$ (we have $v_T(a,b) < a$)
|
\item $v_T(a,b)$ is the index of the parameter of the sort $T$ given as the $b$th parameter of the $a$th parameter of the sort $T$ (we have $v_T(a,b) < a$)
|
||||||
\item The types of parameters have to be respected, therefore we must have the equality
|
\item The types of parameters have to be respected, therefore we must have the equality
|
||||||
\[
|
\[
|
||||||
U_T(v_T(a,b)) = U_{U_T(a)}(b)
|
U_T(v_T(a,b)) = U_{U_T(a)}(b)
|
||||||
@ -1048,7 +1048,7 @@
|
|||||||
|
|
||||||
\paragraph{Creating the functor $\Gamma_i$}
|
\paragraph{Creating the functor $\Gamma_i$}
|
||||||
|
|
||||||
We know we can create the functors $\Gamma_i$ directly from a complete category $S$, but we will look more in detail what those functors mean related to the syntax.
|
We know we can create the functors $\Gamma_i$ directly from a complete category $S$, but we will look more in detail at what those functors mean related to the syntax.
|
||||||
|
|
||||||
If we are given the category $S_{i-1}$ with objects corresponding to the $i-1$ sorts already defined.
|
If we are given the category $S_{i-1}$ with objects corresponding to the $i-1$ sorts already defined.
|
||||||
|
|
||||||
@ -1064,7 +1064,7 @@
|
|||||||
\Gamma_i(x_b^{T_x} : T_x \to T_y)(x^{T_i}_a \in \Gamma_i(T_x)) = x^{T_i}_{v_{T_i}(a,b)}
|
\Gamma_i(x_b^{T_x} : T_x \to T_y)(x^{T_i}_a \in \Gamma_i(T_x)) = x^{T_i}_{v_{T_i}(a,b)}
|
||||||
\]
|
\]
|
||||||
|
|
||||||
This definition is redundant with that of the last paragraph, but it has the advantage of directly creating the functor $\Gamma_i$ that are used to create the functors $H_i$ and all the rest of the proof.
|
This definition is redundant with that of the last paragraph, but it has the advantage of directly creating the functors $\Gamma_i$ that are used to create the functors $H_i$ and all the rest of the proof.
|
||||||
|
|
||||||
% \subsection{Non-recursive definitions}
|
% \subsection{Non-recursive definitions}
|
||||||
%
|
%
|
||||||
@ -1074,11 +1074,11 @@
|
|||||||
|
|
||||||
\section{Summary}
|
\section{Summary}
|
||||||
|
|
||||||
The initial goal of this internship was to study the transformation of GATs to GATs with only two sorts. We have only studied the transformation of sort specifications. We managed to give a formal construction of the semantics of any sort specification and of its transformation.
|
The initial goal of this internship was to study the transformation of GATs to GATs with only two sorts. We have only studied the transformation of sort specifications. We managed to give a formal construction of the semantics of any sort specification and its transformation.
|
||||||
|
|
||||||
We have described a relation between both categories, which is an coreflection, i.e. an adjunction where the left adjoint is full and faithful. This adjunction allows us to build the initial model of the initial GAT from the initial model of the transformed GAT, so one can study properties of GATs with only two sorts and transpose them to any GATs.
|
We have described a relation between both categories, which is a coreflection, i.e. an adjunction where the left adjoint is full and faithful. This adjunction allows us to build the initial model of the initial GAT from the initial model of the transformed GAT, so one can study the properties of GATs with only two sorts and transpose them to any GATs.
|
||||||
|
|
||||||
There is still work to be done in order to make the contents of this document apply to any GAT instead of only sort specifications. There are also ways of generalizing our formal construction to description more general than GATs, like GATs with sorts mutually included one into the other.
|
There is still work to be done to make the contents of this document apply to any GAT instead of only sort specifications. There are also ways of generalizing our formal construction to description more general than GATs like GATs with sorts mutually included one into the other.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1258,7 +1258,7 @@
|
|||||||
&=& \left[E(f) \circ \phi_{XYZ}(\ii) \circ (g,h)\right]_1
|
&=& \left[E(f) \circ \phi_{XYZ}(\ii) \circ (g,h)\right]_1
|
||||||
\end{array}\]
|
\end{array}\]
|
||||||
|
|
||||||
The second components are defined by the pullback properties of $E(Z)$ and $E(Z')$. The two sides that define each morphism are give separately in the two following diagrams.
|
The second components are defined by the pullback properties of $E(Z)$ and $E(Z')$. The two sides that define each morphism are given separately in the two following diagrams.
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
% YADE DIAGRAM NaturalityDoublePullbackDefinition1.json
|
% YADE DIAGRAM NaturalityDoublePullbackDefinition1.json
|
||||||
@ -1275,7 +1275,7 @@
|
|||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
The second projection of $\phi_{XYZ}(f \circ \ii \circ W(g,h))$ is defined by the pullback of $E(Z')$ commuting with the blue bottom path. And that of $\phi_{X'Y'Z'}(\ii)$ is defined by the red top path.
|
The second projection of $\phi_{XYZ}(f \circ \ii \circ W(g,h))$ is defined by the pullback of $E(Z')$ commuting with the blue bottom path. And that of $\phi_{X'Y'Z'}(\ii)$ is defined by the red top path.
|
||||||
both diagrams commute, and therefore, by the pullback property, we get that
|
Both diagrams commute, and therefore, by the pullback property, we get that
|
||||||
\[
|
\[
|
||||||
\phi_{X'Y'Z'}(f\circ\ii\circ W(g,h))_2 = \left[E(f) \circ \phi_{XYZ}(\ii) \circ (g,h)\right]_2
|
\phi_{X'Y'Z'}(f\circ\ii\circ W(g,h))_2 = \left[E(f) \circ \phi_{XYZ}(\ii) \circ (g,h)\right]_2
|
||||||
\]
|
\]
|
||||||
@ -1315,7 +1315,7 @@
|
|||||||
|
|
||||||
\todo{Il manque l'info $\inj_2^{i-1} \circ \en_0^{i-1} = \inj_2^0$ OU ALORS que $\inj_2^{i-1}$ se transpose dans les pullbacks aussi.}
|
\todo{Il manque l'info $\inj_2^{i-1} \circ \en_0^{i-1} = \inj_2^0$ OU ALORS que $\inj_2^{i-1}$ se transpose dans les pullbacks aussi.}
|
||||||
|
|
||||||
The first component of the isomorphism is the following isomorphism, where $\eta_{i-1}^{FG}$ if the counit of the adjunction $F_{i-1} \vdash G_{i-1}$, that we know to be an isomorphism from the induction hypothesis.
|
The first component of the isomorphism is the following isomorphism, where $\eta_{i-1}^{FG}$ if the counit of the adjunction $F_{i-1} \vdash G_{i-1}$, which we know to be an isomorphism from the induction hypothesis.
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
% YADE DIAGRAM ReflectionFGIsomorphismFirst.json
|
% YADE DIAGRAM ReflectionFGIsomorphismFirst.json
|
||||||
@ -1324,7 +1324,7 @@
|
|||||||
% END OF GENERATED LATEX
|
% END OF GENERATED LATEX
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
And the second component is made using the isomorphism constructed by the pullback, that makes the diagram commute.
|
The second component is made using the isomorphism constructed by the pullback, which makes the diagram commute.
|
||||||
\begin{center}
|
\begin{center}
|
||||||
% YADE DIAGRAM ReflectionFGIsomorphismSecond.json
|
% YADE DIAGRAM ReflectionFGIsomorphismSecond.json
|
||||||
% GENERATED LATEX
|
% GENERATED LATEX
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user