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 case-analysis, projection and
In the type-theoretic 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