% !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}