Proceedings of the 40th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages 2013
DOI: 10.1145/2429069.2429075
|View full text |Cite
|
Sign up to set email alerts
|

Copatterns

Abstract: Inductive datatypes provide mechanisms to define finite data such as finite lists and trees via constructors and allow programmers to analyze and manipulate finite data via pattern matching. In this paper, we develop a dual approach for working with infinite data structures such as streams. Infinite data inhabits coinductive datatypes which denote greatest fixpoints. Unlike finite data which is defined by constructors we define infinite data by observations. Dual to pattern matching, a tool for analyzing finit… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

1
19
0

Year Published

2014
2014
2024
2024

Publication Types

Select...
5
3

Relationship

3
5

Authors

Journals

citations
Cited by 63 publications
(20 citation statements)
references
References 32 publications
1
19
0
Order By: Relevance
“…To save space, when we build a proof in iFOL using (∀-I), (∀-E) or (Conv), etc., we may omit the condition branch, which is x : τ Γ, Γ M : τ or ψ ≡ ψ respectively, if and only if we know that the condition holds. Now let P denote the singleton set of clause (2). In Fig.…”
Section: B) C[ #-mentioning
confidence: 99%
See 1 more Smart Citation
“…To save space, when we build a proof in iFOL using (∀-I), (∀-E) or (Conv), etc., we may omit the condition branch, which is x : τ Γ, Γ M : τ or ψ ≡ ψ respectively, if and only if we know that the condition holds. Now let P denote the singleton set of clause (2). In Fig.…”
Section: B) C[ #-mentioning
confidence: 99%
“…Related Work. It may be surprising that automated proof search for coinductive predicates in rstorder logic does not have a coherent and comprehensive theory, even after three decades [3,60], despite all the attention that it received as programming [2,28,41,43] and proof [32,33,37,38,44,59,65,66,67,68] method. The work that comes close to algorithmic proof search is the system CIRC [64], but it cannot handle general coinductive predicates and corecursive programming.…”
Section: Conclusion Related Work and The Futurementioning
confidence: 99%
“…We can define values in the delay monad corecursively, using copatterns [Abel et al 2013]. A copattern corresponding to a record field specifies the result of projecting the given field from the value.…”
Section: Up-to Techniques Usingmentioning
confidence: 99%
“…Formally, we have defined a member of the record type ∞Delay i A by giving the contents of all of its fields, here only force. The use of a projection like force on the left hand side of a defining equation is called a copattern [5]. Corecursive definitions by copatterns are the latest addition to Agda, and can be activated since version 2.3.2 via the flag --copatterns.…”
Section: Delay Monadmentioning
confidence: 99%