From e67566145f090de0bfc28d4f1eea82a42c2e1ed1 Mon Sep 17 00:00:00 2001 From: Enrico Tassi Date: Sun, 22 Jan 2006 20:45:01 +0000 Subject: [PATCH] added proof of SN for T+ind --- helm/papers/system_T/t.tex | 56 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/helm/papers/system_T/t.tex b/helm/papers/system_T/t.tex index 7804118ab..5aece0cd6 100644 --- a/helm/papers/system_T/t.tex +++ b/helm/papers/system_T/t.tex @@ -624,10 +624,62 @@ that $f_i \R \triUP\{C(X)_i, c_i\} \equiv \vec{\forall m:T}.\vec{\forall t:X.Q(t)} \to Q(c_i~\vec{m}~\vec{t})$, thus $f_i~\vec{m}~\vec{t~r} \R Q(c_i~\vec{m}~\vec{t})$. \end{proof} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\section{Strong normalization of extended system T} +Strong normalization for system T is a well know result\cite{GLT} +that can be easily extended to System T with this kind of inductive +types. The first thing we have to do is to extend the definition of +neutral term to the terms not of the form $$, $\lambda x.u$, +$c_i~\vec{m}$. + +In conformity with the demonstration we are extending we call $\nu(t)$ +the length of the longest reduction path from $t$ and $\ell(t)$ the +number of symbols in the normal form of $t$. + +For an inductive type $\ind\{c_1:C(X); \ldots ; c_n:C(X)\}$ +we have to prove that for each $i$, +given a proper sequence of reducible arguments $\vec{m}$ and $\vec{f}$, +$(c_i~\vec{m})$ and $\Rx~\vec{f}~(c_i~\vec{m})$ are reducible. + +First the simple case of constructors. If the constructor $c_i$ takes +no arguments then it is already in normal form. If it takes +$m_1,\ldots,m_n$ reducible arguments, then $\nu(c_i~\vec{m}) = max \{m_1, +\ldots,m_n\}$ and so $c_i~\vec{m}$ is strongly nomalizable thus +reducible for the definition of reducibility for base types. + +To show that $\Rx~\vec{f}~(c_i~\vec{m})$ is reducible we can use +(\textbf{CR 3}) that states that if $t$ is neutral and every $t'$ obtained by +executing one redex of $t$ is reducible, then $t$ is reducible. + +Now we have to show that each term that can be obtained by a +reduction step is reducible. We can procede induction on +$\Sigma\nu(f_i) + \nu(c_i~\vec{m}) + +\ell(c_i~\vec{m})$ since we know by hypothesis that $\vec{f}$ and +$(c_i~\vec{m})$ are reducible and consequently strongly normalizing. +\\ +The base case is when $c_i$ takes no arguments and $\vec{f}$ are +normal. In this case the only redex we can compute is +$$\Rx~\vec{f}~c_i~\leadsto~f_i$$ that is reducible by hypothesis. +\\ +The interesting inductive case is when $\vec{m}$ and $\vec{f}$ are +normal, so the only reduction step we can execute is +$$\Rx~\vec{f}~(c_i~\vec{m})~\leadsto~f_i~\vec{m}~\vec{(\Rx~\vec{f}~n)}$$ +where $\vec{n}$ are the recursive arguments of $c_i$ (here we wrote +the recursive calls as the last parameters of $f_i$ just to lighten +notation). Since $\ell(n_j)$ is less than $\ell(c_i~\vec{m})$ for +every $j$ we can apply the inductive hypothesis and state that +$\Rx~\vec{f}~n_j$ is reducible. Then by definition of reducibility of +the arrow types and by the hypothesis that $f_i$ and $\vec{m}$ are +reducible, we obtain that $$f_i~\vec{m}~\vec{(\Rx~\vec{f}~n)}$$ is +reducible. +\\ +All other cases, when we execute a redex in $\vec{m}$ or $\vec{f}$, +are straightforward applications of the induction hypothesis. + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\section{Improoving inductive types} -It is possible to parametrize inductive types over other inductive types +\section{Improving inductive types} +It is possible to parametrise inductive types over other inductive types without much difficulties since the type $T$ in $C(X)$ is free. Both the recursor and the induction principle are schemas, parametric over $T$. -- 2.39.2