The discoveries of continuations
Lisp and Symbolic Computation - Special issue on continuations—part I
Efficient Reasoning about Executable Specifications in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Codifying Guarded Definitions with Recursive Schemes
TYPES '94 Selected papers from the International Workshop on Types for Proofs and Programs
Journal of Functional Programming
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Modelling general recursion in type theory
Mathematical Structures in Computer Science
Recursive coalgebras from comonads
Information and Computation - Special issue: Seventh workshop on coalgebraic methods in computer science 2004
General recursion in type theory
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Recursive functions with higher order domains
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Fixed point semantics and partial recursion in Coq
Proceedings of the 10th international ACM SIGPLAN conference on Principles and practice of declarative programming
A Type of Partial Recursive Functions
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Another Look at Function Domains
Electronic Notes in Theoretical Computer Science (ENTCS)
Partial and Nested Recursive Function Definitions in Higher-order Logic
Journal of Automated Reasoning
Lightweight proof by reflection using a posteriori simulation of effectful computation
ITP'13 Proceedings of the 4th international conference on Interactive Theorem Proving
Hi-index | 0.00 |
We describe a new method to represent (partial) recursive functions in type theory. For every recursive definition, we define a co-inductive type of prophecies that characterises the traces of the computation of the function. The structure of a prophecy is a possibly infinite tree, which is coerced by linearisation to a type of partial results defined by applying the delay monad to the co-domain of the function. Using induction on a weight relation defined on the prophecies, we can reason about them and prove that the formal type-theoretic version of the recursive function, resulting from the present method, satisfies the recursive equations of the original function. The advantages of this technique over the method previously developed by the authors via a special-purpose accessibility (domain) predicate are: there is no need of extra logical arguments in the definition of the recursive function; the function can be applied to any element in its domain, regardless of termination properties; we obtain a type of partial recursive functions between any two given types; and composition of recursive functions can be easily defined.