 
Summary: A semantical analysis of structural recursion
Andreas Abel, Thorsten Altenkirch
February 1st, 1999
We are developing a system (MuTTI  Munich Type Theory Implementa
tion) with dependent types which can be used for the development of provably
correct programs in Type Theory. Inspired by Coquand's pattern matching
for dependent types [Coq92] as implemented in the ALF system [Alf94] and
its successors, we define a total language as a subset of a partial one. Hence,
we are faced with the problem of verifying termination.
We restrict ourselves to structural recursion, where by structural recur
sion we mean that the only termination orderings we consider are lexical
products of the natural structural ordering on a strictly positive datatype.
We also allow mutual recursion. A further restriction is that smaller terms
are only generated by primitive operators like caseanalysis, projection and
application.
In the typetheoretic context this is sufficient, since general terminating
recursion can be represented by adding additional (computationally irrele
vant) parameters. We are not sure whether structural recursive without the
afore mentioned restriction is actually decidable.
Abel implemented a termination checker for a simply typed sublanguage
