m1-internship/report/M1Report.tex

214 lines
5.9 KiB
TeX

% !TeX spellcheck = en_US
\documentclass[10pt,a4paper]{article}
\include{./header.tex}
\title{Completeness Proof for different logical frameworks
\\[1ex] \large Notes on my 3 month internship at Faculty of Informatics (ELTE, Budapest)}
\hypersetup{pdftitle={Completeness Proof for different kinds of logical frameworks}}
\author{Samy Avrillon, supervised by
\\[1ex] Ambrus Kaposi (ELTE, Budapest)
\\[1ex] and Thorsten Altenkirsch (University of Notthingham, United Kingdom)}
\begin{document}
\doparttoc
\maketitle
\hsep
\tableofcontents
\newpage
\section{Introduction}
In the first place, i was supposed to do this internship in Nottingham (UK) with Thorsten Altenkirsh. But, because of administrative issues, i was not able to go there, and Thorsten Altenkirsh contacted Ambrus Kaposi in Budapest, whose university agreed to accept me. Therefore, i went to Budapest and i did the internship under the physical supervision of Ambrus Kaposi, and the remote supervision of Thorsten Altenkirsch.
The original subject of the internship was \enquote{Developping a simplified account of normalization by evaluation using the theory of categories with families}. But there was a lot to do, starting with learning how to use Agda.
\subsection{Introduction to the problem}
What i do call a \enquote{logic} is a set of definitions containing formulæ and a notion of provability of those formulæ, plus a set of operators/equalities to construct or reduce these rules. I have studied the most common logical frameworks, that is, Propositional Logic, First-order logic with infinitary predicates, and Predicate Logic. For each of those logics, one can define a notion of \emph{model}. A model of a certain kind of logic is something that implements all of the logic's definitions, operators and equalities. From all of those models, one can extract the \emph{initial model}, also called \emph{syntax}. It is the smallest of all models, which means that from any model of that logic, we have a morphism from the syntax to that model.
Then, our goal is for each logic to prove the completeness of a specific class of models. Completeness can be stated as such: \enquote{For any formula that is \emph{true} in all models of the specified class, then the formula has a proof in the syntax}. By being true in the model, one can understand that the formula has a proof from the model.
\subsection{Motivation}
\subsection{Structure of this report}
\section{A first account of Completeness and Normalization}
\subsection{Normalization for ZOL}
\subsection{Normalization for IFOL}
\subsection{Merging the two proofs}
\section{Predicate Logic}
\subsection{SOGAT Presentation of FFOL}
\begin{tcolorbox}
\[
\begin{array}{lcl}
\Tm & : & \Set^+ \\
\\
\For & : & \Set \\
- \implies - & : & \For \rightarrow \For \rightarrow \For\\
\forall & : & (\Tm \rightarrow \For) \rightarrow \For \\
\R & : & \Tm \rightarrow \Tm \rightarrow \For\\
\\
\Pf & : & \For \rightarrow \Prop^+ \\
\lam & : & (\Pf A \rightarrow \Pf B) \rightarrow \Pf (A \implies B)\\
\app & : & \Pf (A \implies B) \rightarrow (\Pf A \rightarrow \Pf B)\\
\foralli & : & (t : \Tm \rightarrow^+ A\;t) \rightarrow \Pf (\forall A)\\
\foralle & : & \Pf (\forall A) \rightarrow (t : \Tm) \rightarrow \Pf (A\;t)\\
\end{array}
\]
\end{tcolorbox}
\subsection{Turning a SOGAT Presentation into a GAT}
\begin{tcolorbox}
\agda{agda/Con.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/Tm.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/Tm+.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/For.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/Pf.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/Pf+.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/R.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/Imp.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/Forall.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/LamApp.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ForallR.tex}
\end{tcolorbox}
\section{Implementing the Syntax}
\subsection{Separated Contexts}
\begin{tcolorbox}
\agda{agda/ICont.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IFor.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubt.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ITm.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubtT.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubTF.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IIdCompT.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IConp.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubtC.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IConpTp.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IPf.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IRen.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubp.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubtP.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubtS.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISubpP.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IIdCompP.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ICon.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ISub.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/IIdComp.tex}
\end{tcolorbox}
\begin{tcolorbox}
\agda{agda/ICExt.tex}
\end{tcolorbox}
\subsection{Transport Hell}
\section{Summary}
\section{Bibliography}
\begingroup
\renewcommand{\section}[2]{}%
\printbibliography
\endgroup
\newpage
\addappheadtotoc
\appendix
\addtocontents{toc}{\protect\setcounter{tocdepth}{-1}}
\appendixpage
\section{Agda Code}
\end{document}