]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/papers/system_T/t.tex
Definition of system T.
[helm.git] / helm / papers / system_T / t.tex
index 642c8c35df89c137791a0025628a4f3f540b477c..62d27031e4edab63e19f0e81b59f69086a830b5a 100644 (file)
@@ -7,13 +7,16 @@
 
 \newcommand{\semT}[1]{\ensuremath{\llbracket #1 \rrbracket}}
 \newcommand{\sem}[1]{\llbracket \ensuremath{#1} \rrbracket}
+\newcommand{\pair}[2]{<\!#1,#2\!>}
+\newcommand{\canonical}{\bot}
 \newcommand{\R}{\;\mathscr{R}\;}
 \newcommand{\N}{\,\mathbb{N}\,}
+\newcommand{\B}{\,\mathbb{B}\,}
 \newcommand{\NT}{\,\mathbb{N}\,}
 \newcommand{\NH}{\,\mathbb{N}\,}
 \renewcommand{\star}{\ast}
 \renewcommand{\vec}{\overrightarrow}
-\newcommand{\one}{\mathscr{1}}
+\newcommand{\one}{{\bf 1}}
 \newcommand{\mult}{\cdot}
 \newcommand{\ind}{Ind(X)}
 \newcommand{\Xind}{\ensuremath{X_{ind}}}
@@ -44,7 +47,8 @@ that the functional interpretation of the Dialectica paper
 is not among the major achievements of the author (see e.g. \cite{Girard87}), 
 the result has been extensively investigated and there is a wide 
 literature on the 
-topic (see e.g. \cite{Howard68,Troelstra,Girard87}. 
+topic (see e.g. \cite{Troelstra,HS86,Girard87}, just to mention textbooks,
+and the bibliography therein). 
 
 A different, more neglected, but for many respects much more 
 direct relation between Peano (or Heyting) Arithmetics and 
@@ -64,11 +68,12 @@ of system T, that also gives the actual computational content extracted
 from the proof. 
 In spite of the simplicity and the elegance of the proof, it is extremely
 difficult to find a modern discussion of this result; the most recent
-exposition we are aware of is in the encyclopedic (typewritten!) work by
-Troelstra \cite{Troelstra} (pp.213-229). Even modern introductory books
+exposition we are aware of is in the encyclopedic work by
+Troelstra \cite{Troelstra} (pp.213-229) going back to thirty years ago. 
+Even modern introductory books
 to Type Theory and Proof Theory devoting much space to system T
 such as \cite{GLT} and \cite{TS} surprisingly leave out this simple and 
-illuminating result. Both \cite{GLT} and \cite{TS}
+illuminating result. Both the previous textbooks
 prefer to focus on higher order arithmetics and its relation with 
 Girard's System $F$ \cite{Girard86}, but the technical complexity and
 the didactical value of the two proofs is not comparable: when you 
@@ -101,6 +106,44 @@ logic and adding little by little small bits of logical power.
 This paper is the first step in this direction.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\section{G\"odel system T}
+We shall use a variant of system T with three atomic types $\N$ (natural 
+numbers), $\B$ (booleans) and $\one$ (a terminal object), and two binary
+type constructors $\times$ (product) and $\to$ (arrow type).
+
+The terms of the language comprise the usual simply typed lambda terms 
+with explicit pairs, plus the following additional constants:
+\begin{itemize}
+\item $*:\one$, 
+\item $true: \B$, $false:\B$, $D:A\to A \to \B \to A$ 
+\item $O:\N$, $S:\N \to \N$, $R:A \to (A \to \N \to A) \to \N \to A$,
+\end{itemize}
+Redexes comprise $\beta$-reduction
+\[(\beta)\;\; \lambda x:U.M \; N \leadsto M[N/x]\]
+projections
+
+\[(\pi_1)\;\;fst \pair{M}{N} \leadsto M\\ \hspace{.6cm} (\pi_2)\;\; snd \pair{M}{N} 
+\leadsto N \] 
+and the following type specific reductions:
+\[(D_{true})\;\;\\D\;M\;N\; true \leadsto M  \hspace{.6cm} 
+  (D_{false})\;\;  D\;M\;N\;false \leadsto N \] 
+\[(R_0)\;\;\\R\;M\;F\; 0 \leadsto M  \hspace{.6cm} 
+  (R_S)\;\;  R\;M\;F\;(S\;n) \leadsto F\;n\;(R\;M\;F\;n) \] 
+\[(*)\;\; M \leadsto * \]
+where (*) holds for any $M$ of type $\one$.
+
+Note that using the well known isomorpshims 
+$\one \to A \cong A$, $A \to \one \cong \one$
+and $A \times \one \cong A \cong \one\times A$ (see \cite{AL91}, pp.231-239)
+we may always get rid of $\one$ (apart the trivial case).
+The terminal object does not play a major role in our treatment, but 
+it allows to extract better algorithms. In particular we use it 
+to realize atomic proposition, and stripping out the terminal object using 
+the above isomorphisms gives a simple way of just keeping the truly 
+informative part of the algorithms.
+
+
+
 \section{Heyting's arithmetics}
 
 {\bf Axioms}
@@ -140,7 +183,7 @@ say that ax:AX refers to the previous Axioms list...
 
 %\[ 
 %   (\land_i)\frac{\Gamma \vdash M:A \hspace{1cm}\Gamma \vdash N:B}
-%   {\Gamma \vdash <M,N> : A \land B} 
+%   {\Gamma \vdash \pair{M}{N} : A \land B} 
 %\hspace{2cm}
 %   (\land_{el})\frac{\Gamma \vdash A \land B}{\Gamma \vdash A}
 %\hspace{2cm}
@@ -174,23 +217,23 @@ $\sem{\cdot}$ takes in input formulae in HA and returns types in T.
 \end{enumerate}
 
 definition.
-For any type T of system T $\bot_T: \one \to T$  is inductively defined as follows:
+For any type T of system T $\canonical_T: \one \to T$  is inductively defined as follows:
 \begin{enumerate}
-\item $\bot_\one = \lambda x:\one.x$
-\item $\bot_N = \lambda x:\one.0$
-\item $\bot_{U\times V} = \lambda x:\one.<\bot_{U} x,\bot_{V} x>$
-\item $\bot_{U\to V} = \lambda x:\one.\lambda \_:U. \bot_{V} x$
+\item $\canonical_\one = \lambda x:\one.x$
+\item $\canonical_N = \lambda x:\one.0$
+\item $\canonical_{U\times V} = \lambda x:\one.\pair{\canonical_{U} x}{\canonical_{V} x}$
+\item $\canonical_{U\to V} = \lambda x:\one.\lambda \_:U. \canonical_{V} x$
 \end{enumerate}
 
 \begin{itemize}
 \item $\sem{nat\_ind} = R$
 \item $\sem{ex\_ind} = (\lambda f:(\N \to \sem{P} \to \sem{Q}).
 \lambda p:\N\times \sem{P}.f (fst \,p) (snd \,p)$. 
-\item $\sem{ex\_intro} = \lambda x:\N.\lambda f:\sem{P}.<x,f>$
+\item $\sem{ex\_intro} = \lambda x:\N.\lambda f:\sem{P}.\pair{x}{f}$
 \item $\sem{fst} = \pi_1$
 \item $\sem{snd} = \pi_2$
-\item $\sem{conj} = \lambda x:\sem{P}.\lambda y:\sem{Q}.<x,y>$
-\item $\sem{false\_ind} = \bot_{\sem{Q}}$
+\item $\sem{conj} = \lambda x:\sem{P}.\lambda y:\sem{Q}.\pair{x}{y}$
+\item $\sem{false\_ind} = \canonical_{\sem{Q}}$
 \item $\sem{discriminate} = \lambda \_:\N.\lambda \_:\one.\star$
 \item $\sem{injS}= \lambda \_:\N. \lambda \_:\N.\lambda \_:\one.\star$
 \item $\sem{plus\_O} = \sem{times\_O} = \lambda \_:\N.\star$
@@ -212,10 +255,10 @@ In particular:
 \begin{itemize}
 \item $\neg (\star \R \bot)$
 \item $* \R (t_1=t_2)$ iff $t_1=t_2$ is true ...
-\item $<f,g> \R (P\land Q)$ iff $f \R P$ and $g \R Q$
+\item $\pair{f}{g} \R (P\land Q)$ iff $f \R P$ and $g \R Q$
 \item $f \R (P\to Q)$ iff for any $m$ such that $m \R P$, $(f \,m) \R Q$
 \item $f \R (\forall x.P)$ iff for any natural number $n$ $(f n) \R P[\underline{n}/x]$
-\item $<n,g> \R (\exists x.P)$ iff $g \R P[\underline{n}/x]$
+\item $\pair{n}{g}\R (\exists x.P)$ iff $g \R P[\underline{n}/x]$
 \end{itemize}
 %We need to generalize the notion of realizability to sequents.
 %Given a sequent $B_1, \ldots, B_n \vdash A$ with free variables in 
@@ -259,7 +302,7 @@ We proceed to prove that all axioms $ax:Ax$ are realized by $\sem{ax}$.
   \to Q) \to (\exists x:(P x)) \to Q$$ Following the definition of $\R$ we have
   to prove that given\\ $f~\R~\forall~x:((P~x)~\to~Q)$ and
   $p~\R~\exists~x:(P~x)$, then $\underline{ex\_ind}~f~p \R Q$.\\ 
-  $p$ is a couple $<n_p,g_p>$ such that $g_p \R P[\underline{n_p}/x]$, while
+  $p$ is a couple $\pair{n_p}{g_p}$ such that $g_p \R P[\underline{n_p}/x]$, while
   $f$ is a function such that forall $n$ and for all $m \R P[\underline{n}/x]$
   then $f~n~m \R Q$ (note that $x$ is not free in $Q$ so $[\underline{n}/x]$
   affects only $P$).\\
@@ -269,7 +312,7 @@ We proceed to prove that all axioms $ax:Ax$ are realized by $\sem{ax}$.
 
 \item $ex\_intro$.
   We must prove that 
-  $$\lambda x:\N.\lambda f:\sem{P}.<x,f> \R \forall x.(P\to\exists x.P(x)$$
+  $$\lambda x:\N.\lambda f:\sem{P}.\pair{x}{f} \R \forall x.(P\to\exists x.P(x)$$
   that leads to prove that for each n
   $\underline{ex\_into}~n \R (P\to\exists x.P(x))[\underline{n}/x]$.\\
   Evaluating the substitution we have 
@@ -277,12 +320,12 @@ We proceed to prove that all axioms $ax:Ax$ are realized by $\sem{ax}$.
   Again by definition of $\R$ we have to prove that given a 
   $m \R P[\underline{n}/x]$ then $\underline{ex\_into}~n~m \R \exists x.P(x)$.
   Expanding the definition of $\underline{ex\_intro}$ we have
-  $<n,m> \R \exists x.P(x)$ that is true since $m \R P[\underline{n}/x]$.
+  $\pair{n}{m} \R \exists x.P(x)$ that is true since $m \R P[\underline{n}/x]$.
 
 \item $fst$.
   We have to prove that $\pi_1 \R P \land Q \to P$, that is equal to proving
   that for each $m \R P \land Q$ then $\pi_1~m \R P$ .
-  $m$ must be a couple $<f_m,g_m>$ such that $f_m \R P$ and $g_m \R Q$.
+  $m$ must be a couple $\pair{f_m}{g_m}$ such that $f_m \R P$ and $g_m \R Q$.
   So we conclude that $\pi_1~m$ reduces to $f_m$ that is in relation $\R$
   with $P$.
 
@@ -290,11 +333,11 @@ We proceed to prove that all axioms $ax:Ax$ are realized by $\sem{ax}$.
 
 \item $conj$. 
   We have to prove that 
-  $$\lambda x:\sem{P}. \lambda y:\sem{Q}.<x,y> \R P \to Q \to P \land Q$$
+  $$\lambda x:\sem{P}. \lambda y:\sem{Q}.\pair{x}{y}\R P \to Q \to P \land Q$$
   Following the definition of $\R$ we have to show that 
   for each $m \R P$ and for each $n \R Q$ then 
-  $(\lambda x:\sem{P}. \lambda y:\sem{Q}.<x,y>)~m~n \R P \land Q$.\\
-  This is the same of $<m,n> \R P \land Q$ that is verified since 
+  $(\lambda x:\sem{P}. \lambda y:\sem{Q}.\pair{x}{y})~m~n \R P \land Q$.\\
+  This is the same of $\pair{m}{n} \R P \land Q$ that is verified since 
   $m \R P$ and $n \R Q$.
 
 
@@ -525,6 +568,8 @@ Q(c_i~\vec{m}~\vec{t})$.
 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \begin{thebibliography}{}
+\bibitem{AL91}A.Asperti, G.Longo. Categories, Types and Structures. 
+Foundations of Computing, Cambrdidge University press, 1991.
 \bibitem{Girard86}G.Y.Girard. The system F of variable types, fifteen
 years later. Theoretical Computer Science 45, 1986.
 \bibitem{Girard87}G.Y.Girard. Proof Theory and Logical Complexity. 
@@ -536,11 +581,15 @@ Press, 1989.
 des finiten Standpunktes. Dialectica, 12, pp.34-38, 1958.
 \bibitem{Godel90}K.G\"odel. Collected Works. Vol.II, Oxford University Press,
 1990.
+\bibitem{HS86}J.R.Hindley, J. P. Seldin. Introduction to Combinators and 
+Lambda-calculus, Cambridge University Press, 1986.
 \bibitem{Howard68}W.A.Howard. Functional interpretation of bar induction
 by bar recursion. Compositio Mathematica 20, pp.107-124. 1958
 \bibitem{Howard80}W.A.Howard. The formulae-as-types notion of constructions.
 in J.P.Seldin and j.R.Hindley editors, to H.B.Curry: Essays on Combinatory 
 Logic, Lambda calculus and Formalism. Acedemic Press, 1980.
+\bibitem{Kleene45}S.C.Kleene. On the interpretation of intuitionistic 
+number theory. Journal of Symbolic Logic, n.10, pp.109-124, 1945.
 \bibitem{Kreisel59} G.Kreisel. Interpretation of analysis by means of
 constructive functionals of finite type. In. A.Heyting ed. 
 {\em Constructivity in mathematics}. North Holland, Amsterdam,1959.