Results 1 -
3 of
3
A Predicative Analysis of Structural Recursion
, 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 ..."
Abstract
-
Cited by 36 (18 self)
- Add to MetaCart
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 terms considered. 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.
Specification and Verification of a Formal System for Structurally Recursive Functions
- Types for Proof and Programs, International Workshop, TYPES ’99, volume 1956 of Lecture Notes in Computer Science
, 2000
"... A type theoretic programming language is introduced that is based on lambda calculus with coproducts, products and inductive types, and additionally allows the definition of recursive functions in the way that is common in most functional programming languages. A formal system is presented that chec ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
A type theoretic programming language is introduced that is based on lambda calculus with coproducts, products and inductive types, and additionally allows the definition of recursive functions in the way that is common in most functional programming languages. A formal system is presented that checks whether such a definition is structurally recursive and a soundness theorem is shown for this system. Thus all functions passing this check are ensured to terminate on all inputs. For the moment only non-mutual recursive functions are considered. 1
The Allegory of E-Relations in Constructive Type Theory
, 2000
"... This paper presents a first step in the formalisation of a relationalcalculus inside a constructive type theoretic framework. The calculusis the one based on allegories, and its formalisation is carried onwith the help of a software tool assistant for Martin-Lof'smonomorphic type theory. The goal of ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper presents a first step in the formalisation of a relationalcalculus inside a constructive type theoretic framework. The calculusis the one based on allegories, and its formalisation is carried onwith the help of a software tool assistant for Martin-Lof'smonomorphic type theory. The goal of this effort is allowing us toimport relational calculus inside type theory, and take advantage ofthe wealth of results and methods for program construction andverification that are well established in relational formalisms.

