On the productivity of recursive list definitions
ACM Transactions on Programming Languages and Systems (TOPLAS)
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
Infinite objects in type theory
TYPES '93 Proceedings of the international workshop on Types for proofs and programs
Proving the correctness of reactive systems using sized types
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Functional Differentiation of Computer Programs
Higher-Order and Symbolic Computation
HOLCF: Higher Order Logic of Computable Functions
Proceedings of the 8th International Workshop on Higher Order Logic Theorem Proving and Its Applications
Function Definition in Higher-Order Logic
TPHOLs '96 Proceedings of the 9th International Conference on Theorem Proving in Higher Order Logics
Efficient Reasoning about Executable Specifications in Coq
TPHOLs '02 Proceedings of the 15th International Conference on Theorem Proving in Higher Order Logics
Type-based termination of recursive definitions
Mathematical Structures in Computer Science
Interactive Theorem Proving and Program Development
Interactive Theorem Proving and Program Development
Inductive and Coinductive Components of Corecursive Functions in Coq
Electronic Notes in Theoretical Computer Science (ENTCS)
A unifying approach to recursive and co-recursive definitions
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Filters on coinductive streams, an application to eratosthenes' sieve
TLCA'05 Proceedings of the 7th international conference on Typed Lambda Calculi and Applications
Productivity of stream definitions
FCT'07 Proceedings of the 16th international conference on Fundamentals of Computation Theory
Synchronous digital circuits as functional programs
ACM Computing Surveys (CSUR)
Hi-index | 0.00 |
We propose a (limited) solution to the problem of constructing stream values defined by recursive equations that do not respect the guardedness condition. The guardedness condition is imposed on definitions of corecursive functions in Coq, AGDA, and other higher-order proof assistants. In this paper, we concentrate in particular on those non-guarded equations where recursive calls appear under functions. We use a correspondence between streams and functions over natural numbers to show that some classes of non-guarded definitions can be modelled through the encoding as structural recursive functions. In practice, this work extends the class of stream values that can be defined in a constructive type theory-based theorem prover with inductive and coinductive types, structural recursion and guarded corecursion.