2010
DOI: 10.4204/eptcs.43.3
|View full text |Cite
|
Sign up to set email alerts
|

Beating the Productivity Checker Using Embedded Languages

Abstract: Some total languages, like Agda and Coq, allow the use of guarded corecursion to construct infinite values and proofs. Guarded corecursion is a form of recursion in which arbitrary recursive calls are allowed, as long as they are guarded by a coinductive constructor. Guardedness ensures that programs are productive, i.e. that every finite prefix of an infinite value can be computed in finite time. However, many productive programs are not guarded, and it can be nontrivial to put them in guarded form. This pape… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
8
0

Year Published

2010
2010
2017
2017

Publication Types

Select...
6
2
1

Relationship

0
9

Authors

Journals

citations
Cited by 21 publications
(8 citation statements)
references
References 29 publications
0
8
0
Order By: Relevance
“…In principle, nothing stands in the way of AgdamiCo, AmiCoq, or MatitamiCo. Danielsson [22] and Thibodeau et al [65] showed that similar approaches work in type theory; what is missing is a tool design and implementation. AmiCo relies on parametricity, which is now understood for dependent types [10].…”
Section: Related Work and Discussionmentioning
confidence: 99%
“…In principle, nothing stands in the way of AgdamiCo, AmiCoq, or MatitamiCo. Danielsson [22] and Thibodeau et al [65] showed that similar approaches work in type theory; what is missing is a tool design and implementation. AmiCo relies on parametricity, which is now understood for dependent types [10].…”
Section: Related Work and Discussionmentioning
confidence: 99%
“…The same kind of issues also appears in other proof assistants, e. g., in Agda 1 , even though it has recently seen quite some progress in its termination checker. In [9] Danielsson describes an experimental solution to solve them (see also the extended case study with Altenkirch in [10]). This extension by datatypes that may have both inductive and coinductive constructors is still experimental.…”
Section: Remarkmentioning
confidence: 99%
“…Coq and Agda enforce productivity by checking that all occurences of the recursion variable are directly underneath a constructor. The syntactic checks do not interact well with higherorder programming, and this has led to research on how to "code around" these limitations, e.g., [9].…”
Section: Introductionmentioning
confidence: 99%