Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Function Definition in Higher-Order Logic
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Derivation and Use of Induction Schemes in Higher-Order Logic
TPHOLs '97 Proceedings of the 10th International Conference on Theorem Proving in Higher Order Logics
Possibly Infinite Sequences in Theorem Provers: A Comparative Study
TPHOLs '97 Proceedings of the 10th International Conference on Theorem Proving in Higher Order Logics
Microprocessor Specification in Hawk
ICCL '98 Proceedings of the 1998 International Conference on Computer Languages
Hardware verification using coinductive assertions
Hardware verification using coinductive assertions
Journal of Functional Programming
Functional correctness proofs of encryption algorithms
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
The optimal fixed point combinator
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
Using the notions of unique fixed point, converging equivalence relation, and contracting function, we generalize the technique of well-founded recursion. We are able to define functions in the Isabelle theorem prover that recursively call themselves an infinite number of times. In particular, we can easily define recursive functions that operate over coinductively-defined types, such as infinite lists. Previously in Isabelle such functions could only be defined corecursively, or had to operate over types containing "extra" bottom-elements. We conclude the paper by showing that the functions for filtering and flattening infinite lists have simple recursive definitions.