Drafts and Publications

A Predicative Strong Normalisation Proof for a λ-calculus with Interleaving Inductive Types DVI PS
With Thorsten Altenkirch.
Types for Proofs and Programs, International Workshop, TYPES '99
Lökeberg, Sweden, June 1999. LNCS 1956. ©Springer-Verlag, 2000. We present a strong normalisation proof for a λ calculus with interleaving strictly positive inductive types λ-μ which is predicative: it uses only predicative, i.e. strictly positive inductive definitions on the metalevel. To achieve this we show that every strictly positive operator on types gives rise to an operator on saturated sets which is not only monotone but also (deterministically) set based -- a concept introduced by Peter Aczel in the context of intuitionistic set theory. We also extended this to coinductive types using greatest fixpoints of strictly monotone operators on the metalevel.

Specification and Verification of a Formal System for Structurally Recursive Functions DVI PS
Types for Proofs and Programs, International Workshop, TYPES '99
Lökeberg, Sweden, June 1999. LNCS 1956. ©Springer-Verlag, 2000. We introduce a type theoretic programming language based on lambda calculus with coproducts, products and inductive types that allows definition of recursive functions in the way that is common in most functional programming languages. We present a formal system that checks whether such a definition is structural recursive and give a elaborate soundness proof for this system. Thus we ensure that all functions passing this check terminate on all inputs. For the moment we restrict ourselves to non-mutual recursive functions.

A Predicative Analysis of Structural Recursion DVI PS
Joint work with Thorsten Altenkirch. Submitted to JFP (1999)
We introduce a language based upon lambda calculus with products, coproducts and strictly positive inductive types that allows the definition of recursive terms. We present the implementation ("foetus") of a syntactical check that ensures that all such terms are structurally recursive, i.e. recursive calls appear only with arguments structurally smaller than the input parameters of considered terms. To ensure the correctness of the termination checker, we show that all structurally recursive terms are normalizing with respect to a given operational semantics. To this end, we define a semantics on all types and a structural ordering on the values in this semantics and prove that all values are accessible with regard to this ordering. Finally we point out how to do this proof predicatively using set based operators.

A Semantic Analysis of Structural Recursion DVI PS
Diploma Thesis (1999)
We consider a type theoretic language with lambda abstraction, disjoint unions, pairs and recursive terms and show that all structurally recursive functions terminate, i.e. functions, that contain recursive calls only with a structurally smaller argument. Therefore we define a semantics [| T |] over all types T and show that it is wellfounded w.r.t. the structural ordering on the values (normal forms of our terms). Then by wellfounded induction we can easily infer termination of a recursive function at all inputs in [| T |] from termination at all smaller inputs. Later we extend our solution from strictly positive types to positive types and mutual recursive functions.
Extended abstract HTML DVI PS
Errata HTML DVI PS

foetus - Termination Checker for Simple Functional Programs HTML DVI PS
Implementation and Documentation (1998)
We briefly introduce a simple functional language foetus (lambda calculus with tupels, constructors and pattern matching) on which we have implemented a termination checker. This checker tries to find a well-founded structural order on the parameters on the given function. The components of the check algorithm are: function call extraction out of the program text, call graph completion and finding a lexical order for the function parameters. The HTML version of this paper contains many ready-to-run Web-based examples.

Division nach Beame, Cook & Hoover HTML DVI PS
Seminar Talk (1996)
Diese Seminararbeit behandelt ausführlich den Beweis, dass Ganzzahl-Division in der Komplexitätsklasse NC enthalten ist, d.h. dass eine Klasse von Schaltkreisen existiert, die x div y in zu der Länge der Eingaben x und y linearer Zeit berechnet. Ermöglicht wird es durch Inversenbildung von y mittels einer geometrischen Reihe, welche mit Hilfe von diskreten Logarithmen in NC berechnet werden kann.
Keywords: complexity theory, division circuit, discrete logarithm, iterated product

Notes

A Coinductive Formulation of the "Coinduction Theorem" by Michael and Appel DVI PS
Mini-tutorial of Coinduction with Application (2000)
We show how the definition of safety in Michael's and Appel's CADE-17 article can be restated coinductively

Pattern Matching vs. Elimination Rules DVI PS
A Case Study in LEGO (1999)
We define an ordering and show the admissibility of one additional rule first by pattern matching and then in the elimination style. We apply the translation of pattern matching definitions into recursive schemes given by Eduardo Gimenez.
Keywords: pattern matching, elimination, admissible rule, LEGO


[ Home | CV | Publications | Projects ]
[ Personal page | Home@LMU,Munich ]

abel@cs.cmu.edu
http://www.cs.cmu.edu/~abel