Modified first part, constructing the category
This commit is contained in:
parent
545dbd7553
commit
b27dcbd2ca
@ -1,21 +1,12 @@
|
|||||||
@InProceedings{Fiore2008,
|
@InProceedings{Fiore2008,
|
||||||
|
|
||||||
author={Fiore, Marcelo},
|
author={Fiore, Marcelo},
|
||||||
|
|
||||||
booktitle={2008 23rd Annual IEEE Symposium on Logic in Computer Science},
|
booktitle={2008 23rd Annual IEEE Symposium on Logic in Computer Science},
|
||||||
|
|
||||||
title={Second-Order and Dependently-Sorted Abstract Syntax},
|
title={Second-Order and Dependently-Sorted Abstract Syntax},
|
||||||
|
|
||||||
year={2008},
|
year={2008},
|
||||||
|
|
||||||
volume={},
|
volume={},
|
||||||
|
|
||||||
number={},
|
number={},
|
||||||
|
|
||||||
pages={57-68},
|
pages={57-68},
|
||||||
|
|
||||||
keywords={Algebra;Computer science;Mathematical model;Logic functions;Laboratories;MONOS devices;Sorting;abstract syntax;second-order syntax;dependently-sorted syntax;alpha-equivalence;variable binding;substitution;metavariable;meta-substitution;categorical algebra},
|
keywords={Algebra;Computer science;Mathematical model;Logic functions;Laboratories;MONOS devices;Sorting;abstract syntax;second-order syntax;dependently-sorted syntax;alpha-equivalence;variable binding;substitution;metavariable;meta-substitution;categorical algebra},
|
||||||
|
|
||||||
doi={10.1109/LICS.2008.38}
|
doi={10.1109/LICS.2008.38}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -24,7 +15,7 @@
|
|||||||
editor={"Baier, Christel and Dal Lago, Ugo"},
|
editor={"Baier, Christel and Dal Lago, Ugo"},
|
||||||
title={"Quotient Inductive-Inductive Types"},
|
title={"Quotient Inductive-Inductive Types"},
|
||||||
booktitle={"Foundations of Software Science and Computation Structures"},
|
booktitle={"Foundations of Software Science and Computation Structures"},
|
||||||
year={"2018"},
|
year = 2018,
|
||||||
publisher={"Springer International Publishing"},
|
publisher={"Springer International Publishing"},
|
||||||
address={"Cham"},
|
address={"Cham"},
|
||||||
pages={"293--310"},
|
pages={"293--310"},
|
||||||
@ -40,7 +31,7 @@
|
|||||||
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
|
series = {Leibniz International Proceedings in Informatics (LIPIcs)},
|
||||||
ISBN = {978-3-95977-285-3},
|
ISBN = {978-3-95977-285-3},
|
||||||
ISSN = {1868-8969},
|
ISSN = {1868-8969},
|
||||||
year = {2023},
|
year = 2023,
|
||||||
volume = {269},
|
volume = {269},
|
||||||
editor = {Kesner, Delia and P\'{e}drot, Pierre-Marie},
|
editor = {Kesner, Delia and P\'{e}drot, Pierre-Marie},
|
||||||
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
|
publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik},
|
||||||
@ -55,10 +46,33 @@
|
|||||||
journal = {Annals of Pure and Applied Logic},
|
journal = {Annals of Pure and Applied Logic},
|
||||||
volume = {32},
|
volume = {32},
|
||||||
pages = {209-243},
|
pages = {209-243},
|
||||||
year = {1986},
|
year = 1986,
|
||||||
issn = {0168-0072},
|
issn = {0168-0072},
|
||||||
doi = {https://doi.org/10.1016/0168-0072(86)90053-9},
|
doi = {https://doi.org/10.1016/0168-0072(86)90053-9},
|
||||||
url = {https://www.sciencedirect.com/science/article/pii/0168007286900539},
|
url = {https://www.sciencedirect.com/science/article/pii/0168007286900539},
|
||||||
author = {John Cartmell}
|
author = {John Cartmell}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@phdthesis{SestiniPhD,
|
||||||
|
author = {Filippo Sestini},
|
||||||
|
title = {Bootstrapping Extensionality},
|
||||||
|
school = {University of Nottingham},
|
||||||
|
year = 2023,
|
||||||
|
month = mar
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{AmbrusSzumiXie2sort,
|
||||||
|
author = {Ambrus Kaposi},
|
||||||
|
title = {Message to the Agda mailing list},
|
||||||
|
howpublished = {\url{https://lists.chalmers.se/pipermail/agda/2019/011176.html}},
|
||||||
|
year = 2019
|
||||||
|
}
|
||||||
|
|
||||||
|
@misc{nlab:reflective_subcategory,
|
||||||
|
author = {{nLab authors}},
|
||||||
|
title = {reflective subcategory},
|
||||||
|
howpublished = {\url{https://ncatlab.org/nlab/show/reflective+subcategory}},
|
||||||
|
note = {\href{https://ncatlab.org/nlab/revision/reflective+subcategory/116}{Revision 116}},
|
||||||
|
month = jul,
|
||||||
|
year = 2024
|
||||||
|
}
|
||||||
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
\input{./header.tex}
|
\input{./header.tex}
|
||||||
|
|
||||||
|
% po4a: environment remark
|
||||||
|
% po4a: environment tikzpicture
|
||||||
|
% po4a: environment property
|
||||||
|
|
||||||
\title{Categorical semantics of the reduction of GATs to two-sorted GATs.
|
\title{Categorical semantics of the reduction of GATs to two-sorted GATs.
|
||||||
\\[1ex] \large Notes on my 4.5-month internship at the Laboratoire d'Informatique de l'École Polytechnique (Palaiseau, France)}
|
\\[1ex] \large Notes on my 4.5-month internship at the Laboratoire d'Informatique de l'École Polytechnique (Palaiseau, France)}
|
||||||
\hypersetup{pdftitle={Categorical semantics of the reduction of GATs to two-sorted GATs}}
|
\hypersetup{pdftitle={Categorical semantics of the reduction of GATs to two-sorted GATs}}
|
||||||
@ -43,8 +47,8 @@
|
|||||||
A model of this category is a triple
|
A model of this category is a triple
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item A set $X_\Con : \Set$
|
\item A set $X_\Con : \Set$
|
||||||
\item A function $X_\Ty : X_\Con \to \Set$
|
\item A family of sets $\left(X_\Ty\left(\Gamma\right)\right)_{\Gamma \in _\Con}$
|
||||||
\item A function $X_\Tm : \displaystyle\coprod_{\Gamma : X_\Con} X_\Ty(\Gamma) \to \Set$
|
\item A family of sets $\left(X_\Tm\left(\Delta,A\right)\right)_{\Delta\in X_\Con,\: A \in X_\Ty\left(\Delta\right)}$
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
\paragraph{Constructor specification}
|
\paragraph{Constructor specification}
|
||||||
@ -72,13 +76,15 @@
|
|||||||
|
|
||||||
\paragraph{Two-sortification}
|
\paragraph{Two-sortification}
|
||||||
|
|
||||||
There is a process that allows us to transform a GAT into a GAT with only two sorts. This process is applied for example by Philippo Sestini \inlinetodo{manque une citation}, who asserts that one can build back an initial model
|
There is a process that allows us to transform a GAT into a GAT with only two sorts. This process is used by Philippo Sestini in his thesis \cite{SestiniPhD} refering the work of Zongpu Szumi Xie \cite{AmbrusSzumiXie2sort}:
|
||||||
|
|
||||||
this transformation preserves the existence of the initial model.
|
\begin{quote}
|
||||||
|
Many instances of multi-sorted IITs [IITs are another type 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.
|
||||||
|
\end{quote}
|
||||||
|
|
||||||
The goal of this document is to prove semantically that this transformation creates an adjunction, and more precisely a reflective adjunction between the categories of models (and therefore preserving the existence of an initial model).
|
The goal of this document is to prove semantically that this transformation makes sense. More specifically, we prove that this transformation is a left adjunct functor of a coreflection. This is enough to prove what Sestini conjectured, i.e. that the initial object in the 2-sort category creates back the initial object of the primary category \cite[5. General]{nlab:reflective_subcategory}.
|
||||||
|
|
||||||
We will now present this transformation. The sort specification of the GAT is always the same, and contains two sort declarations (as planned):
|
We will now present this transformation. The sort specification of the transformed GAT is always the same, and contains two sort declarations (as planned):
|
||||||
|
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
\begin{tabular}{p{0.37\textwidth}|p{0.5\textwidth}}
|
\begin{tabular}{p{0.37\textwidth}|p{0.5\textwidth}}
|
||||||
@ -87,7 +93,7 @@
|
|||||||
\end{tabular}
|
\end{tabular}
|
||||||
\vspace{1em}
|
\vspace{1em}
|
||||||
|
|
||||||
Category of models of this two-sort specification are intuitively the category of families of set $\FamSet$, composed of pairs $\left(X_0:\Set,X_1: X_0 \to \Set\right)$ (or $\coprod_{X : \Set}\Set$ in type theory).
|
Category of models of this two-sort specification are intuitively the category of families of set $\FamSet$, composed of pairs $\left(X_0:\Set,X_1: X_0 \to \Set\right)$.
|
||||||
|
|
||||||
Then, we replace all occurrences of $\Set$ to $\mathcal{O}$, and we apply underline to every parameter. For example, the Type Theory GAT presented above becomes that which follows:
|
Then, we replace all occurrences of $\Set$ to $\mathcal{O}$, and we apply underline to every parameter. For example, the Type Theory GAT presented above becomes that which follows:
|
||||||
|
|
||||||
@ -98,64 +104,16 @@
|
|||||||
$\Tm : (\Gamma : \underline{\Con}) \to (A : \underline{\Ty\;\Delta}) \to \mathcal{O}$ &
|
$\Tm : (\Gamma : \underline{\Con}) \to (A : \underline{\Ty\;\Delta}) \to \mathcal{O}$ &
|
||||||
For each object $\Gamma$ corresponding to the sort object $\Con$,
|
For each object $\Gamma$ corresponding to the sort object $\Con$,
|
||||||
and for every object $A$ corresponding to the sort object $\Ty\;\Gamma$, another sort object called \enquote{$\Tm\;\Gamma\;A$}\\
|
and for every object $A$ corresponding to the sort object $\Ty\;\Gamma$, another sort object called \enquote{$\Tm\;\Gamma\;A$}\\
|
||||||
$\operatorname{unit} : (\Gamma : \Con) \to \Ty\;\Gamma$ &
|
$\operatorname{unit} : (\Gamma : \underline{\Con}) \to \underline{\Ty\;\Gamma}$ &
|
||||||
For each object $\Gamma$ corresponding to the sort object $\Con$, an object called \enquote{$\operatorname{unit} \Gamma$} corresponding to the sort object $\Ty\;\Gamma$\\
|
For each object $\Gamma$ corresponding to the sort object $\Con$, an object called \enquote{$\operatorname{unit} \Gamma$} corresponding to the sort object $\Ty\;\Gamma$\\
|
||||||
$\operatorname{eq}: (\Gamma : \Con) \to (A : \Ty\;\Gamma) \to$ \newline
|
$\operatorname{eq}: (\Gamma : \underline{\Con}) \to (A : \underline{\Ty\;\Gamma}) \to$ \newline
|
||||||
$\qquad\Tm\;\Gamma A \to \Tm\;\Gamma A \to \Ty\;\Gamma$ &
|
$\qquad\underline{\Tm\;\Gamma A} \to \underline{\Tm\;\Gamma A} \to \underline{\Ty\;\Gamma}$ &
|
||||||
$\dots$
|
$\dots$
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
\paragraph{Fiore's categories}
|
\paragraph{$\FamSet$ as functors}
|
||||||
Fiore \cite{Fiore2008} describes \emph{sort specifications} as countable simple direct categories (i.e. countable categories where all the arrows follow an unique direction and hom-sets are finite). The models of a GAT then are the presheaves over that category $S$: $\left[S,\Set\right]$.
|
|
||||||
|
|
||||||
One can understand the correspondance between those categories and sort specifications as follows:
|
|
||||||
\begin{itemize}
|
|
||||||
\item An object of the category is a sort of the specification.
|
|
||||||
\item An arrow $x$ from an object $s$ to an object $s'$ is a parameter of the sort declaration of $s$ of the for $(x : s' \dots)$.
|
|
||||||
\item The parameter $y$ of a parameter $x$ of a sort specification (i.e. the sort declaration parameter has the form $(x: s' \dots \left[y=z\right] \dots)$) is given by $z = x \circ y$.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\begin{remark}
|
|
||||||
We ignore in this definition identity arrows, and we will do so in the rest of this document. Identities are the only arrows that are not «directed» in the direct category.
|
|
||||||
|
|
||||||
Interpreting the identity arrow would mean having a parameter of type $s$ to construct the sort $s$. which loops in a self-dependency.
|
|
||||||
|
|
||||||
You can assume in the rest of the document that the formalizations \enquote{all arrows} or \enquote{the arrows} pointing to/from exclude identity arrows.
|
|
||||||
\end{remark}
|
|
||||||
|
|
||||||
\todo{Éventuellement changer tous les paramètres par la forme complète, exemple
|
|
||||||
\[
|
|
||||||
\operatorname{eq}: (\Gamma : \Con) \to (A : \Ty \left[\Gamma=\Gamma\right]) \to \Tm \left[\Gamma=\Gamma\right] \left[A=A\right] \to \Tm \left[\Gamma=\Gamma\right] \left[A=A\right] \to \Ty \left[\Gamma=\Gamma\right]
|
|
||||||
\]
|
|
||||||
C'est bien plus verbeux et en pratique pas utilisé, mais permet de mieux voir la «composition» dans la catégorie de Fiore.}
|
|
||||||
\todo{Est-ce qu'on fait une notation \enquote{arrow*} pour dire «flèche qui n'est pas l'identité» pour plus de rigueur ?}
|
|
||||||
|
|
||||||
For example the category version of the specification of sorts of Type Theory given above is defined as:
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item There is three objects called $\Con$,$\Ty$, and $\Tm$.
|
|
||||||
\item The arrows are defined as
|
|
||||||
\begin{itemize}
|
|
||||||
\item There is no arrow going out of $\Con$
|
|
||||||
\item There is one arrow going out of $\Ty$: $\Gamma$ pointing to $\Con$.
|
|
||||||
\item There is two arrows going out of $\Tm$: $\Delta$ pointing to $\Con$ and $\Gamma$ pointing to $\Ty$.
|
|
||||||
\end{itemize}
|
|
||||||
\item The $\Gamma$ parameter of $\Ty$ in the parameter $A$ of $\Tm$ is $\Delta$. Therefore, we have $\Delta = A \circ \Gamma$.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
The category is pictured below:
|
|
||||||
|
|
||||||
\begin{center}
|
|
||||||
% YADE DIAGRAM B1.json
|
|
||||||
% GENERATED LATEX
|
|
||||||
\input{graphs/B1.tex}
|
|
||||||
% END OF GENERATED LATEX
|
|
||||||
\end{center}
|
|
||||||
|
|
||||||
\paragraph{Fiore's category of the 2-sorts specification}
|
|
||||||
|
|
||||||
If compute the small category associated to the two-sort specification described above, we obtain the simple category with two objects and one arrow between them. We call this category $\TT$ and write the objects as follows:
|
|
||||||
|
|
||||||
|
In the rest of the document, we will denote the simple category containing two elements and one non-identity arrow between them as $\TT$. The objects and arrow of this category are pictured below.
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
% YADE DIAGRAM G0.json
|
% YADE DIAGRAM G0.json
|
||||||
@ -164,11 +122,21 @@
|
|||||||
% END OF GENERATED LATEX
|
% END OF GENERATED LATEX
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
The category of presheaves over this category is equivalent to the category $\FamSet$.
|
The functors over this categories are equivalent to families of sets, using the following mapping :
|
||||||
|
|
||||||
|
\[
|
||||||
|
\begin{array}{l|l}
|
||||||
|
X_\UU = X_0 & X_0 = X_\UU \\
|
||||||
|
X_\El = \displaystyle\coprod_{A\in X_0}X_1(A) & X_1 = A \mapsto X_p^{-1}(\{A\})\\
|
||||||
|
X_p = (A,B) \mapsto A &
|
||||||
|
\end{array}
|
||||||
|
\]
|
||||||
|
|
||||||
|
Therefore the categories of sorts of the transformed GATs will be built atop of the category $\TSet$ rather than atop of the category $\FamSet$ as it makes the formal proofs more elegant.
|
||||||
|
|
||||||
\paragraph{Goal}
|
\paragraph{Goal}
|
||||||
|
|
||||||
The goal of this document is to make a relation between the category of models of the GAT $\left[S,\Set\right]$ and the category of models of the two-sortified GAT $\BB$. This relation will be an adjunction $F \vdash G$ that we will prove to be a coreflection.
|
The goal of this document is to make a relation between the category of models of the GAT $\CC$ and the category of models of the two-sortified GAT $\BB$. This relation will be an adjunction $F \vdash G$ that we will prove to be a coreflection.
|
||||||
|
|
||||||
The category $\BB$ is built with an adjunction $R \vdash L$ to the category of models of the simple two-sort specification of sorts $\TSet$.
|
The category $\BB$ is built with an adjunction $R \vdash L$ to the category of models of the simple two-sort specification of sorts $\TSet$.
|
||||||
|
|
||||||
@ -181,100 +149,93 @@
|
|||||||
|
|
||||||
\subsection{Constructing the categories}
|
\subsection{Constructing the categories}
|
||||||
|
|
||||||
We will construct both categories $S$ and $\BB$ recursively, adding new sorts one by one.
|
We will construct both categories $\CC$ and $\BB$ recursively, adding new sorts one by one.
|
||||||
The categories $S_i$ are described as in Fiore's paper \cite{Fiore2008}, and the categories $\BB_i$ are constructed atop of the category $\TSet$ with a method inspired by the category of models described by Altenkirch et al. \cite{Altenkirch2018}.
|
The categories $\CC_i$ are described as in Fiore's paper \cite{Fiore2008}, and the categories $\BB_i$ are constructed atop of the category $\TSet$ with a method inspired by the category of models described by Altenkirch et al. \cite{Altenkirch2018}.
|
||||||
|
|
||||||
The first step of our recursion is the trivial adjunction $\lambda . \star \vdash \lambda . 1$ between the categories $\TSet = \BB_0$ and $\left[S_0,\Set\right] = \left[\emptyset,\Set\right] = 1$.
|
The overall construction of the categories and of the adjunctions $F_i \vdash G_i$ is given below.
|
||||||
|
|
||||||
Then we construct the category $S_i$ as a full supercategory of $S_{i-1}$ (and so we have a ff injection functor $I_i : S_{i-1} \to S_i$).
|
\begin{center}
|
||||||
|
% YADE DIAGRAM G1.json
|
||||||
|
% GENERATED LATEX
|
||||||
|
\input{graphs/G1.tex}
|
||||||
|
% END OF GENERATED LATEX
|
||||||
|
\end{center}
|
||||||
|
|
||||||
We construct at the same time the category $\BB_i$ along with an adjunction $R_{i-1}^i \vdash L_{i-1}^i$ with $\BB_{i-1}$.
|
The first step of our recursion is the trivial adjunction $\lambda . \star \vdash \lambda . 1$ between the categories $\BB_0 = \TSet$ and $\CC_0 = 1$.
|
||||||
|
|
||||||
The construction is summarized in the following diagram:
|
\subsubsection{Constructing $\CC_i$}
|
||||||
|
|
||||||
\begin{center}
|
We construct the category $\CC_i$ as the following pair:
|
||||||
% YADE DIAGRAM G1.json
|
\[
|
||||||
% GENERATED LATEX
|
\CC_i = (X : \CC_{i-1}) \times \Set^{\Hom(O_i,X)} \qquad\text{(this is a dependent coproduct)}
|
||||||
\input{graphs/G1.tex}
|
\]
|
||||||
% END OF GENERATED LATEX
|
where $O_i$ is a specific object of the category $\CC_{i-1}$, such that $\Hom(O_i,X)$ is the set of parameters for the construction of the new sort.
|
||||||
\end{center}
|
|
||||||
|
For example, for our type theory example, we first have
|
||||||
|
\[
|
||||||
|
O_1 = \star \in \operatorname{Obj}(\CC_0) = \operatorname{Obj}(1)
|
||||||
|
\]
|
||||||
|
so $\Hom(O_1,X) = 1$, which corresponds to the fact that $\Con$ takes no parameter.
|
||||||
|
|
||||||
|
Therefore $\CC_1 = 1 \times \Set^1 = \Set$
|
||||||
|
|
||||||
|
Then, we take the singleton object $O_2 = 1$ (this means, that types need \emph{one} context to be built), and so, for a set $X_\Con$, $\Hom(O_2,X_\Con) \cong X_\Con$, which corresponds to the fact that $\Ty$ take one $\Con$ as a parameter.
|
||||||
|
|
||||||
|
Therefore $\CC_2 = (X:\Set) \times \Set^X \cong \FamSet$.
|
||||||
|
|
||||||
|
Finally, we take the object $O_3 = (1, \lambda \star . 1)$ (this means that terms need \emph{one} context, and \emph{one} type of that context). With this object, for a pair $(X_\Con,X_\Ty)$ in $\CC_2$, we have $\Hom(O_3,(X_\Con,X_\Ty)) \cong \left(\Gamma: X_\Con, A: X_\Ty(\Gamma)\right)$.
|
||||||
|
|
||||||
|
The final category $\CC_3$ is composed of triples $(X_\Con: \Set, X_\Ty : X_\Con \to \Set, X_\Tm : (\Delta: X_\Con) \to X_\Ty(\Delta) \to \Set)$
|
||||||
|
|
||||||
|
\begin{remark}
|
||||||
|
There is a way of getting the object $O_i$ from the syntax, which is given in \autoref{sec:CtoSSetFiore}.
|
||||||
|
\end{remark}
|
||||||
|
|
||||||
|
\subsubsection{Constructing $\BB_i$}
|
||||||
|
|
||||||
|
\paragraph{The category} We construct the category $\BB_i$ as follows.
|
||||||
|
|
||||||
|
An object of $\BB_i$ is
|
||||||
|
\begin{itemize}
|
||||||
|
\item an object $X$ of $\BB_{i-1}$
|
||||||
|
\item a \enquote{sort constructor} $\Cstr_i$ as a function $\Hom_{\BB_{i-1}} (G_{i-1}O_i,X) \to (R_0^{i-1}X)_\UU$
|
||||||
|
\newline
|
||||||
|
where $O_i$ is the object of $\CC_{i-1}$ that describe the sort constructor being processed, and $G_{i-1}$ is the left part of the adjunction $\CC_{i-1} \to \BB_{i-1}$ that we are defining recursively at the same time.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
\subsubsection{Fiore's category}
|
A morphism $(X,\Cstr_i) \to (X',\Cstr'_i)$ of $\BB_i$ is a morphism $f : X \to X'$ in $\BB_{i-1}$ such that the following diagram commutes.
|
||||||
|
|
||||||
In order to construct the $i$-th sort, we use a finite functor $\Gamma_i : S_{i-1} \to \Set$ describing entirely the sort declaration.
|
\begin{center}
|
||||||
This functor is to be understood as $\Gamma_i(a)$ is the set of parameters of type $a$ for our new sort. In the above example, we would have $\Gamma_\Ty(\Con) = \{"\Gamma"\} = 1$ and $\Gamma_\Tm(\Con) = \{\Delta\}$,$\Gamma_\Tm(\Ty) = \{"A"\}$,$\Gamma_\Tm(\Gamma) = \left["A" \mapsto "\Delta"\right]$.
|
% YADE DIAGRAM D1.json
|
||||||
|
% GENERATED LATEX
|
||||||
|
\input{graphs/D1.tex}
|
||||||
|
% END OF GENERATED LATEX
|
||||||
|
\end{center}
|
||||||
|
|
||||||
Then, to construct $S_i$, we add one object $i$ to $S_{i-1}$, along with morphisms $x : i \to a$ for every $x \in \Gamma_i(a)$ for every $a$ in $S_{i-1}$. We also add equalities
|
Identities and compositions are that of the category $\BB_{i-1}$, and categorical equalities are trivially derived from the diagram above.
|
||||||
$s \circ x = x'$ for every $s : b \to a$ and $x \in \Gamma_i(a)$ and $x' \in \Gamma_i(b)$ where $\Gamma_i(s)(x') = x$.
|
|
||||||
|
|
||||||
\begin{remark}
|
\paragraph{The adjunction}
|
||||||
We have that $\Hom_{S_i}(a,b) = \Gamma_b(a)$ or $(a/S_i)* \equiv \Gamma_a$.\inlinetodo{C'est sûr la deuxième partie ?}
|
We also define a functor $R_{i-1}^i : \BB_i \to \BB_{i-1}$ that sends objects and morphisms to their first component. This functor is a \emph{right adjunct} of another functor we call $L_{i-1}^i$.
|
||||||
|
|
||||||
This equality allows us to construct the $\Gamma_i$ functors from the final $S$ category.
|
As we can compose the adjunctions $R_0^1$,$R_1^2$,...,$R_{i-1}^i$, we will create the two following syntactic sugars for the composed adjunctions.
|
||||||
\end{remark}
|
\[\begin{array}{c}
|
||||||
|
R_i^j = R_{i}^{i+1} \circ R_{i+1}^j = R_{i}^{j-1} \circ R_{j-1}^{j} = R_{i}^{i+1} \circ ... \circ R_{j-1}^{j}\\
|
||||||
\subsubsection{2sort category}
|
L_i^j = L_{j-1}^{j} \circ L_{i}^{j-1} = L_{i+1}^{j} \circ L_{i}^{i+1} = L_{j-1}^{j} \circ ... \circ L_{i}^{i+1}
|
||||||
|
\end{array}\]
|
||||||
To start our series of categories, we use the category of models of the two-sort specification of sorts $\BB_0 := \TSet$.
|
|
||||||
|
|
||||||
Then, we recursively add constructors, constructing categories $\BB_1$,$\BB_2$, etc.
|
|
||||||
|
|
||||||
For the $i$-th constructor, we define the objects of $\BB_i$ as pairs of
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item an object $X$ of $\BB_{i-1}$
|
|
||||||
\item a \enquote{sort constructor} $\Cstr_i$ as a function $\Hom_{\BB_{i-1}} (G_{i-1}\Gamma_i,X) \to (R_0^{i-1}X)_\UU$
|
|
||||||
\newline
|
|
||||||
where $\Gamma_i$ is the functor $S_{i-1} \to \Set$ that describe the sort constructor being processed, and $G_{i-1}$ is the left part of the adjunction $\left[S_{i-1}, \Set\right] \to \BB_{i-1}$ that we are defining recursively at the same time.
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
|
|
||||||
Morphisms $(X,\Cstr_i) \to (X',\Cstr'_i)$ in $\BB_i$ are morphisms $f : X \to X'$ in $\BB_{i-1}$ such that the following diagram commutes.
|
|
||||||
|
|
||||||
\begin{center}
|
|
||||||
% YADE DIAGRAM D1.json
|
|
||||||
% GENERATED LATEX
|
|
||||||
\input{graphs/D1.tex}
|
|
||||||
% END OF GENERATED LATEX
|
|
||||||
\end{center}
|
|
||||||
|
|
||||||
Identities and compositions are that of the category $\BB_{i-1}$, and categorical equalities are trivially derived from the diagram above.
|
|
||||||
seeing
|
|
||||||
We also define a functor $R_{i-1}^i : \BB_i \to \BB_{i-1}$ that sends objects and morphisms to their first component. This functor is a \emph{right adjunct} of another functor we call $L_{i-1}^i$.
|
|
||||||
|
|
||||||
As we can compose the adjunctions $R_0^1$,$R_1^2$,...,$R_{i-1}^i$, we will create the two following syntactic sugars for the composed adjunctions.
|
|
||||||
\[
|
|
||||||
R_i^j = R_{i}^{i+1} \circ R_{i+1}^j = R_{i}^{j-1} \circ R_{j-1}^{j} = R_{i}^{i+1} \circ ... \circ R_{j-1}^{j}
|
|
||||||
\]
|
|
||||||
\[
|
|
||||||
L_i^j = L_{j-1}^{j} \circ L_{i}^{j-1} = L_{i+1}^{j} \circ L_{i}^{i+1} = L_{j-1}^{j} \circ ... \circ L_{i}^{i+1}
|
|
||||||
\]
|
|
||||||
|
|
||||||
We will also denote $\eta_i^j : \mathbf{1} \to R_i^j L_i^j$ and $\varepsilon_i^j : L_i^j R_i^j \to \mathbf{1}$ to be the unit and counit of the adjunction $R_i^j \vdash L_i^j$.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
We know that this category has a coproduct, that we will denote $\oplus_i$ or just $\oplus$ when there is no ambiguity. We will also denote as $\inj_1^i : X \to X \oplus Y$ (resp. $\inj_2^i : Y \to X \oplus Y$) the first (resp. second) injector of the coproduct of $\BB_i$. For every morphisms $f : X \to Z$ and $g : Y \to Z$, we will denote with $\{f;g\}$ the unique morphism from $X \oplus Y$ to $Z$ such that $\{f;g\} \circ \inj^i_1 = f$ and $\{f;g\} \circ \inj^i_2 = g$.
|
|
||||||
|
|
||||||
\begin{remark}
|
|
||||||
This adjunction and the existence of a coproduct comes from seeing $\BB_i$ being a category of algebras in $\BB_{i-1}$ over the morphism $inj_1 : G_{i-1}\Gamma_i \to G_{i-1}\Gamma_i \oplus L_0^{i-1} y\UU$.
|
|
||||||
\end{remark}
|
|
||||||
|
|
||||||
\subsubsection{Summary}
|
|
||||||
|
|
||||||
Here is a graph summarizing the categories and functors.
|
|
||||||
We have constructed two chains of categories $\BB_0$,$\BB_1$,... and $S_0$,$S_1$,...
|
|
||||||
|
|
||||||
The categories $\BB_{i-1}$ and $\BB_{i}$ are in an adjunction written $R_{i-1}^i \vdash L_{i-1}^i$.
|
|
||||||
|
|
||||||
We will give in the next part the construction of the adjunction $F_i \vdash G_i$ at the step $i$. The functor $G_{i-1}$ is used in the definition of $\BB_i$, so the two recurrences have to be done at the same time.
|
|
||||||
|
|
||||||
|
We will also denote $\eta_i^j : \mathbf{1} \to R_i^j L_i^j$ and $\varepsilon_i^j : L_i^j R_i^j \to \mathbf{1}$ to be the unit and counit of the adjunction $R_i^j \vdash L_i^j$.
|
||||||
|
|
||||||
|
\paragraph{The coproduct}
|
||||||
|
For an object $X$ in $\BB_i$ and $Y$ in $\BB_0$, there is a coproduct $X \oplus_i L_0^i Y$ in the category $\BB_{i-1}$. We will denote as $\inj_1^i : X \to X \oplus L_0^iY$ (resp. $\inj_2^i : L_0^iY \to X \oplus L_0^iY$) the first (resp. second) injector of the coproduct of $\BB_i$. For every morphism $f : X \to Z$ and $g : L_0^iY \to Z$, we will denote with $\{f;g\}$ the unique morphism from $X \oplus L_0^iY$ to $Z$ such that $\{f;g\} \circ \inj^i_1 = f$ and $\{f;g\} \circ \inj^i_2 = g$.
|
||||||
|
|
||||||
|
\begin{remark}
|
||||||
|
This adjunction and the existence of a coproduct comes from seeing $\BB_i$ being a category of algebras in $\BB_{i-1}$ over the morphism $inj_1 : G_{i-1}O_i \to G_{i-1}O_i \oplus L_0^{i-1} y\UU$.
|
||||||
|
\end{remark}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Constructing the adjunction}
|
\subsection{Constructing the adjunction}
|
||||||
|
We will now construct the adjunction $F_i \vdash G_i$ at the step $i$.
|
||||||
|
|
||||||
\subsubsection{Hypotheses}
|
\subsubsection{Hypotheses}
|
||||||
|
|
||||||
@ -508,7 +469,58 @@ seeing
|
|||||||
|
|
||||||
\subsection{Proof of H3}
|
\subsection{Proof of H3}
|
||||||
|
|
||||||
\subsection{Infinite construction of $\BB_i$}
|
|
||||||
|
\section{Misc}
|
||||||
|
|
||||||
|
\subsection{Fiore's Category - Fibration of the category of sorts}
|
||||||
|
|
||||||
|
Fiore \cite{Fiore2008} describes \emph{sort specifications} as countable simple direct categories (i.e. countable categories where all the arrows follow an unique direction and hom-sets are finite). The models of a GAT then are the presheaves over that category $S$: $\left[S,\Set\right]$.
|
||||||
|
|
||||||
|
One can understand the correspondance between those categories and sort specifications as follows:
|
||||||
|
\begin{itemize}
|
||||||
|
\item An object of the category is a sort of the specification.
|
||||||
|
\item An arrow $x$ from an object $s$ to an object $s'$ is a parameter of the sort declaration of $s$ of the for $(x : s' \dots)$.
|
||||||
|
\item The parameter $y$ of a parameter $x$ of a sort specification (i.e. the sort declaration parameter has the form $(x: s' \dots \left[y=z\right] \dots)$) is given by $z = x \circ y$.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\begin{remark}
|
||||||
|
We ignore in this definition identity arrows, and we will do so in the rest of this document. Identities are the only arrows that are not «directed» in the direct category.
|
||||||
|
|
||||||
|
Interpreting the identity arrow would mean having a parameter of type $s$ to construct the sort $s$. which loops in a self-dependency.
|
||||||
|
|
||||||
|
You can assume in the rest of the document that the formalizations \enquote{all arrows} or \enquote{the arrows} pointing to/from exclude identity arrows.
|
||||||
|
\end{remark}
|
||||||
|
|
||||||
|
\todo{Éventuellement changer tous les paramètres par la forme complète, exemple
|
||||||
|
\[
|
||||||
|
\operatorname{eq}: (\Gamma : \Con) \to (A : \Ty \left[\Gamma=\Gamma\right]) \to \Tm \left[\Gamma=\Gamma\right] \left[A=A\right] \to \Tm \left[\Gamma=\Gamma\right] \left[A=A\right] \to \Ty \left[\Gamma=\Gamma\right]
|
||||||
|
\]
|
||||||
|
C'est bien plus verbeux et en pratique pas utilisé, mais permet de mieux voir la «composition» dans la catégorie de Fiore.}
|
||||||
|
\todo{Est-ce qu'on fait une notation \enquote{arrow*} pour dire «flèche qui n'est pas l'identité» pour plus de rigueur ?}
|
||||||
|
|
||||||
|
For example the category version of the specification of sorts of Type Theory given above is defined as:
|
||||||
|
|
||||||
|
\begin{itemize}
|
||||||
|
\item There is three objects called $\Con$,$\Ty$, and $\Tm$.
|
||||||
|
\item The arrows are defined as
|
||||||
|
\begin{itemize}
|
||||||
|
\item There is no arrow going out of $\Con$
|
||||||
|
\item There is one arrow going out of $\Ty$: $\Gamma$ pointing to $\Con$.
|
||||||
|
\item There is two arrows going out of $\Tm$: $\Delta$ pointing to $\Con$ and $\Gamma$ pointing to $\Ty$.
|
||||||
|
\end{itemize}
|
||||||
|
\item The $\Gamma$ parameter of $\Ty$ in the parameter $A$ of $\Tm$ is $\Delta$. Therefore, we have $\Delta = A \circ \Gamma$.
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
The category is pictured below:
|
||||||
|
|
||||||
|
\begin{center}
|
||||||
|
% YADE DIAGRAM B1.json
|
||||||
|
% GENERATED LATEX
|
||||||
|
\input{graphs/B1.tex}
|
||||||
|
% END OF GENERATED LATEX
|
||||||
|
\end{center}
|
||||||
|
|
||||||
|
\subsection{Infinite construction of $\BB_i$}
|
||||||
\[
|
\[
|
||||||
\BB_i := \left(X : \TSet, \Cstr : (a : S_{i-1}) \to \Hom_{\BB_{a-1}}(G_{a-1}\Gamma_a,R_{a-1}^i(\this)) \to X(\UU)\right)
|
\BB_i := \left(X : \TSet, \Cstr : (a : S_{i-1}) \to \Hom_{\BB_{a-1}}(G_{a-1}\Gamma_a,R_{a-1}^i(\this)) \to X(\UU)\right)
|
||||||
\]
|
\]
|
||||||
@ -569,6 +581,8 @@ seeing
|
|||||||
|
|
||||||
\subsection{Overview}
|
\subsection{Overview}
|
||||||
|
|
||||||
|
\subsubsection{$\CC$ as presheaf category}
|
||||||
|
\label{sec:CtoSSetFiore}
|
||||||
We use the specification of sorts definition of Fiore \cite{Fiore2008}.
|
We use the specification of sorts definition of Fiore \cite{Fiore2008}.
|
||||||
|
|
||||||
A specification of sorts is given by a sequence of functors $\Gamma_i : S_{i-1} \to \Set$. We construct the category $S_{i+1}$ by adding a single object $\alpha_{i+1}$ to the category $S_{i}$, along with morphisms $f : \alpha_j \to \alpha_{i+1}$ for $f \in \Gamma_{i+1}(\alpha_j)$ and $j \leq i$. The morphisms follow the composition condition, describing that every pair of morphisms $f : \alpha_j \to \alpha_{i+1}$ and $g : \alpha_k \to \alpha_{i+1}$ (i.e. $f\in\Gamma_{i+1}(\alpha_k)$ and $g\in\Gamma_{i+1}(\alpha_j)$) and for every morphism of $S_{i}$ $h : \alpha_j \to \alpha_k$, we have $\Gamma_{i+1}(h)(f) \circ f = g$.
|
A specification of sorts is given by a sequence of functors $\Gamma_i : S_{i-1} \to \Set$. We construct the category $S_{i+1}$ by adding a single object $\alpha_{i+1}$ to the category $S_{i}$, along with morphisms $f : \alpha_j \to \alpha_{i+1}$ for $f \in \Gamma_{i+1}(\alpha_j)$ and $j \leq i$. The morphisms follow the composition condition, describing that every pair of morphisms $f : \alpha_j \to \alpha_{i+1}$ and $g : \alpha_k \to \alpha_{i+1}$ (i.e. $f\in\Gamma_{i+1}(\alpha_k)$ and $g\in\Gamma_{i+1}(\alpha_j)$) and for every morphism of $S_{i}$ $h : \alpha_j \to \alpha_k$, we have $\Gamma_{i+1}(h)(f) \circ f = g$.
|
||||||
@ -583,6 +597,20 @@ seeing
|
|||||||
|
|
||||||
So we can construct the base category, which is that of families of sets.
|
So we can construct the base category, which is that of families of sets.
|
||||||
|
|
||||||
|
|
||||||
|
In order to construct the $i$-th sort, we use a finite functor $\Gamma_i : S_{i-1} \to \Set$ describing entirely the sort declaration.
|
||||||
|
|
||||||
|
This functor is to be understood as $\Gamma_i(a)$ is the set of parameters of type $a$ for our new sort. In the above example, we would have $\Gamma_\Ty(\Con) = \{"\Gamma"\} = 1$ and $\Gamma_\Tm(\Con) = \{\Delta\}$,$\Gamma_\Tm(\Ty) = \{"A"\}$,$\Gamma_\Tm(\Gamma) = \left["A" \mapsto "\Delta"\right]$.
|
||||||
|
|
||||||
|
Then, to construct $S_i$, we add one object $i$ to $S_{i-1}$, along with morphisms $x : i \to a$ for every $x \in \Gamma_i(a)$ for every $a$ in $S_{i-1}$. We also add equalities
|
||||||
|
$s \circ x = x'$ for every $s : b \to a$ and $x \in \Gamma_i(a)$ and $x' \in \Gamma_i(b)$ where $\Gamma_i(s)(x') = x$.
|
||||||
|
|
||||||
|
\begin{remark}
|
||||||
|
We have that $\Hom_{S_i}(a,b) = \Gamma_b(a)$ or $(a/S_i)* \equiv \Gamma_a$.\inlinetodo{C'est sûr la deuxième partie ?}
|
||||||
|
|
||||||
|
This equality allows us to construct the $\Gamma_i$ functors from the final $S$ category.
|
||||||
|
\end{remark}
|
||||||
|
|
||||||
\section{Summary}
|
\section{Summary}
|
||||||
|
|
||||||
\lipsum[2-3]
|
\lipsum[2-3]
|
||||||
@ -704,3 +732,7 @@ seeing
|
|||||||
|
|
||||||
|
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
{"graph":{"latexPreamble":"\\newcommand{\\coqproof}[1]{\\checkmark}\n\\newcommand\\ensuremath[1]{#1}\n\\newcommand\\BB{{\\ensuremath{\\mathcal{B}}}}\n\\newcommand\\TT{{\\ensuremath{\\mathcal{T}}}}\n\\newcommand\\UU{{\\ensuremath{\\mathcal{U}}}}\n\\newcommand\\El{{\\ensuremath{\\operatorname{\\mathcal{E}l}}}}\n\\newcommand\\ii{{\\ensuremath{\\mathbf{i}}}}\n\\newcommand\\Cstr{{\\ensuremath{\\operatorname{\\mathcal{C}str}}}}\n\\newcommand\\Set{{\\ensuremath{\\operatorname{\\mathcal{S}et}}}}\n\\newcommand\\Hom{{\\ensuremath{\\operatorname{\\mathcal{H}om}}}}\n\\newcommand\\this{{\\ensuremath{\\operatorname{\\texttt{this}}}}}\n\\newcommand\\Hbar{{\\ensuremath{\\overline{H}}}}\n\\newcommand\\dash{{\\;\\textrm{---}\\;}}","tabs":[{"active":true,"edges":[{"from":0,"id":4,"label":{"isPullshout":false,"label":"\\Cstr^X","style":{"alignment":"left","bend":0,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":1},{"from":1,"id":5,"label":{"isPullshout":false,"label":"R_0^i X_\\UU","style":{"alignment":"left","bend":0,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":2},{"from":0,"id":6,"label":{"isPullshout":false,"label":"f \\circ \\dash","style":{"alignment":"right","bend":0,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":3},{"from":3,"id":7,"label":{"isPullshout":false,"label":"\\Cstr^{X'}","style":{"alignment":"right","bend":0,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":2}],"nodes":[{"id":0,"label":{"isMath":true,"label":"\\Hom(G_{a-1},R_{a-1}^i(X))","pos":[180,60],"zindex":0}},{"id":1,"label":{"isMath":true,"label":"(R_0^iX)_\\UU","pos":[450,60],"zindex":0}},{"id":2,"label":{"isMath":true,"label":"(R_0^i X')_\\UU","pos":[450,143],"zindex":0}},{"id":3,"label":{"isMath":true,"label":"\\Hom(G_{a-1},R_{a-1}^i( X'))","pos":[180,143],"zindex":-10000}}],"sizeGrid":120,"title":"1"}]},"version":11}
|
{"graph":{"latexPreamble":"\\newcommand{\\coqproof}[1]{\\checkmark}\n\\newcommand\\ensuremath[1]{#1}\n\\newcommand\\BB{{\\ensuremath{\\mathcal{B}}}}\n\\newcommand\\TT{{\\ensuremath{\\mathcal{T}}}}\n\\newcommand\\UU{{\\ensuremath{\\mathcal{U}}}}\n\\newcommand\\El{{\\ensuremath{\\operatorname{\\mathcal{E}l}}}}\n\\newcommand\\ii{{\\ensuremath{\\mathbf{i}}}}\n\\newcommand\\Cstr{{\\ensuremath{\\operatorname{\\mathcal{C}str}}}}\n\\newcommand\\Set{{\\ensuremath{\\operatorname{\\mathcal{S}et}}}}\n\\newcommand\\Hom{{\\ensuremath{\\operatorname{\\mathcal{H}om}}}}\n\\newcommand\\this{{\\ensuremath{\\operatorname{\\texttt{this}}}}}\n\\newcommand\\Hbar{{\\ensuremath{\\overline{H}}}}\n\\newcommand\\dash{{\\;\\textrm{---}\\;}}","tabs":[{"active":true,"edges":[{"from":0,"id":4,"label":{"kind":"normal","label":"\\Cstr^X","style":{"alignment":"left","bend":0,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":1},{"from":1,"id":5,"label":{"kind":"normal","label":"R_0^{i-1} X_\\UU","style":{"alignment":"left","bend":0,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":2},{"from":0,"id":6,"label":{"kind":"normal","label":"f \\circ \\dash","style":{"alignment":"right","bend":0,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":3},{"from":3,"id":7,"label":{"kind":"normal","label":"\\Cstr^{X'}","style":{"alignment":"right","bend":0,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":2}],"nodes":[{"id":0,"label":{"isMath":true,"label":"\\Hom_{\\BB_{i-1}}(G_{i-1}O_i,X)","pos":[180,60],"zindex":0}},{"id":1,"label":{"isMath":true,"label":"(R_0^{i-1} X)_\\UU","pos":[450,60],"zindex":0}},{"id":2,"label":{"isMath":true,"label":"(R_0^{i-1} X')_\\UU","pos":[450,143],"zindex":0}},{"id":3,"label":{"isMath":true,"label":"\\Hom_{\\BB_{i-1}}(G_{i-1}O_i,X')","pos":[180,143],"zindex":-10000}}],"sizeGrid":120,"title":"1"}]},"version":12}
|
||||||
@ -1 +1 @@
|
|||||||
{"graph":{"latexPreamble":"\\newcommand\\ensuremath[1]{#1}\n\\newcommand\\BB{{\\ensuremath{\\mathcal{B}}}}\n\\newcommand\\TT{{\\ensuremath{\\mathcal{T}}}}\n\\newcommand\\UU{{\\ensuremath{\\mathcal{U}}}}\n\\newcommand\\El{{\\ensuremath{\\operatorname{\\mathcal{E}l}}}}\n\\newcommand\\ii{{\\ensuremath{\\mathbf{i}}}}\n\\newcommand\\Cstr{{\\ensuremath{\\operatorname{\\mathcal{C}str}}}}\n\\newcommand\\Set{{\\ensuremath{\\operatorname{\\mathcal{S}et}}}}\n\\newcommand\\Hom{{\\ensuremath{\\operatorname{\\mathcal{H}om}}}}\n\\newcommand\\this{{\\ensuremath{\\operatorname{\\texttt{this}}}}}\n\\newcommand\\Hbar{{\\ensuremath{\\overline{H}}}}\n\\newcommand\\dash{{\\;\\textrm{---}\\;}}\n\n\\newcommand\\inj{\\operatorname{inj}}\n\\newcommand\\id{\\operatorname{id}}","tabs":[{"active":true,"edges":[{"from":0,"id":5,"label":{"isPullshout":false,"label":"F","style":{"alignment":"right","bend":0.20000000000000004,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":1},{"from":1,"id":6,"label":{"isPullshout":false,"label":"G","style":{"alignment":"right","bend":0.20000000000000004,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":0},{"from":2,"id":7,"label":{"isPullshout":false,"label":"L","style":{"alignment":"right","bend":0.2,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":0},{"from":0,"id":8,"label":{"isPullshout":false,"label":"R","style":{"alignment":"right","bend":0.2,"color":"black","dashed":false,"double":false,"head":"default","position":0.5,"tail":"none"},"zindex":0},"to":2}],"nodes":[{"id":0,"label":{"isMath":true,"label":"\\BB","pos":[300,100],"zindex":0}},{"id":1,"label":{"isMath":true,"label":"\\left[S,\\Set\\right]","pos":[500,100],"zindex":0}},{"id":2,"label":{"isMath":true,"label":"\\TSet","pos":[300,300],"zindex":0}},{"id":3,"label":{"isMath":true,"label":"\\vdash","pos":[301,203.8125],"zindex":0}},{"id":4,"label":{"isMath":true,"label":"\\bot","pos":[395,100.8125],"zindex":0}}],"sizeGrid":200,"title":"1"}]},"version":11}
|
{"graph":{"latexPreamble":"\\newcommand\\ensuremath[1]{#1}\n\\newcommand\\BB{{\\ensuremath{\\mathcal{B}}}}\n\\newcommand\\TT{{\\ensuremath{\\mathcal{T}}}}\n\\newcommand\\UU{{\\ensuremath{\\mathcal{U}}}}\n\\newcommand\\El{{\\ensuremath{\\operatorname{\\mathcal{E}l}}}}\n\\newcommand\\ii{{\\ensuremath{\\mathbf{i}}}}\n\\newcommand\\Cstr{{\\ensuremath{\\operatorname{\\mathcal{C}str}}}}\n\\newcommand\\Set{{\\ensuremath{\\operatorname{\\mathcal{S}et}}}}\n\\newcommand\\Hom{{\\ensuremath{\\operatorname{\\mathcal{H}om}}}}\n\\newcommand\\this{{\\ensuremath{\\operatorname{\\texttt{this}}}}}\n\\newcommand\\Hbar{{\\ensuremath{\\overline{H}}}}\n\\newcommand\\dash{{\\;\\textrm{---}\\;}}\n\n\\newcommand\\inj{\\operatorname{inj}}\n\\newcommand\\id{\\operatorname{id}}","tabs":[{"active":true,"edges":[{"from":0,"id":3,"label":{"kind":"normal","label":"F","style":{"alignment":"right","bend":0.20000000000000004,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":1},{"from":1,"id":4,"label":{"kind":"normal","label":"G","style":{"alignment":"right","bend":0.20000000000000004,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":0},{"from":2,"id":5,"label":{"kind":"normal","label":"L","style":{"alignment":"right","bend":0.2,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":0},{"from":0,"id":6,"label":{"kind":"normal","label":"R","style":{"alignment":"right","bend":0.2,"color":"black","dashed":false,"head":"default","kind":"normal","position":0.5,"tail":"none"},"zindex":0},"to":2},{"from":3,"id":7,"label":{"kind":"adjunction","label":"\\vdash","style":{"alignment":"over","bend":0,"color":"black","dashed":false,"head":"none","kind":"none","position":0.5,"tail":"none"},"zindex":0},"to":4},{"from":6,"id":8,"label":{"kind":"adjunction","label":"\\vdash","style":{"alignment":"over","bend":0,"color":"black","dashed":false,"head":"none","kind":"none","position":0.5,"tail":"none"},"zindex":0},"to":5}],"nodes":[{"id":0,"label":{"isMath":true,"label":"\\BB","pos":[300,100],"zindex":0}},{"id":1,"label":{"isMath":true,"label":"\\CC","pos":[500,100],"zindex":0}},{"id":2,"label":{"isMath":true,"label":"\\TSet","pos":[300,300],"zindex":0}}],"sizeGrid":200,"title":"1"}]},"version":12}
|
||||||
@ -102,6 +102,7 @@
|
|||||||
\newcommand\BB{{\ensuremath{\mathcal{B}}}}
|
\newcommand\BB{{\ensuremath{\mathcal{B}}}}
|
||||||
\newcommand\TT{{\ensuremath{\mathcal{T}}}}
|
\newcommand\TT{{\ensuremath{\mathcal{T}}}}
|
||||||
\newcommand\UU{{\ensuremath{\mathcal{U}}}}
|
\newcommand\UU{{\ensuremath{\mathcal{U}}}}
|
||||||
|
\newcommand\CC{{\ensuremath{\mathcal{C}}}}
|
||||||
\newcommand\El{{\ensuremath{\operatorname{\mathcal{E}l}}}}
|
\newcommand\El{{\ensuremath{\operatorname{\mathcal{E}l}}}}
|
||||||
\newcommand\ii{{\ensuremath{\mathbf{i}}}}
|
\newcommand\ii{{\ensuremath{\mathbf{i}}}}
|
||||||
\newcommand\Con{{\ensuremath{\operatorname{Con}}}}
|
\newcommand\Con{{\ensuremath{\operatorname{Con}}}}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
\newcommand\BB{{\ensuremath{\mathcal{B}}}}
|
\newcommand\BB{{\ensuremath{\mathcal{B}}}}
|
||||||
\newcommand\TT{{\ensuremath{\mathcal{T}}}}
|
\newcommand\TT{{\ensuremath{\mathcal{T}}}}
|
||||||
\newcommand\UU{{\ensuremath{\mathcal{U}}}}
|
\newcommand\UU{{\ensuremath{\mathcal{U}}}}
|
||||||
|
\newcommand\CC{{\ensuremath{\mathcal{C}}}}
|
||||||
\newcommand\El{{\ensuremath{\operatorname{\mathcal{E}l}}}}
|
\newcommand\El{{\ensuremath{\operatorname{\mathcal{E}l}}}}
|
||||||
\newcommand\ii{{\ensuremath{\mathbf{i}}}}
|
\newcommand\ii{{\ensuremath{\mathbf{i}}}}
|
||||||
\newcommand\Cstr{{\ensuremath{\operatorname{\mathcal{C}str}}}}
|
\newcommand\Cstr{{\ensuremath{\operatorname{\mathcal{C}str}}}}
|
||||||
|
|||||||
859
Report/yade.sty
859
Report/yade.sty
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user