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

Focusing on pattern matching

Abstract: In this paper, we show how pattern matching can be seen to arise from a proof term assignment for the focused sequent calculus. This use of the Curry-Howard correspondence allows us to give a novel coverage checking algorithm, and makes it possible to give a rigorous correctness proof for the classical pattern compilation strategy of building decision trees via matrices of patterns.

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
8
0

Year Published

2009
2009
2024
2024

Publication Types

Select...
3
2
2

Relationship

0
7

Authors

Journals

citations
Cited by 23 publications
(9 citation statements)
references
References 20 publications
0
8
0
Order By: Relevance
“…Previously, focusing has been applied to pattern matching [Zeilberger 2008a;Krishnaswami 2009] and evaluation order [Zeilberger 2009;Curien and Herbelin 2000]. Closest to our work from a theoretical point of view is the work by Licata, Zeilberger and Harper [2008] where a language based on the sequent calculus is described which supports mixing LF types with computation-level types.…”
Section: Related Workmentioning
confidence: 98%
“…Previously, focusing has been applied to pattern matching [Zeilberger 2008a;Krishnaswami 2009] and evaluation order [Zeilberger 2009;Curien and Herbelin 2000]. Closest to our work from a theoretical point of view is the work by Licata, Zeilberger and Harper [2008] where a language based on the sequent calculus is described which supports mixing LF types with computation-level types.…”
Section: Related Workmentioning
confidence: 98%
“…The normal form is obtained by a type-directed reification procedure after evaluating the open term to a semantic value, mapping (reflecting) the free variables to corresponding unknowns in the semantics. The literal use of a standard interpreter can be achieved for the pure simply-typed lambda-calculus [8,13] by modelling uninterpreted base types as sets of neutral arXiv:1902.06097v1 [cs.PL] 16 Feb 2019 (aka atomic) terms, or more precisely, as presheaves or sets of neutral term families, in order to facilitate fresh bound variable generation during reification of functions to lambdas. Thanks to η-equality at function types, free variables of function type can be reflected into the semantics as functions applying the variable to their reified argument, forming a neutral term.…”
Section: Introductionmentioning
confidence: 99%
“…Concerning the presentation of polarized lambda calculus, we depart from Zeilberger [25] who employs a priori infinitary syntax, modelling a case tree as a meta-level function mapping well-typed patterns to branches. Instead, we use a graded monad representing complete pattern matching over a newly added hypothesis, which is in spirit akin to Filinski's [14,Section 4] and Krishnaswami's [16] treatment of eager pattern matching using a separate context of variables to be matched on.…”
Section: Introductionmentioning
confidence: 99%
“…• We present a dependently typed core language with inductive data types, coinductive record types, and an identity type. The language is focused (Andreoli, 1992;Zeilberger, 2008;Krishnaswami, 2009): terms of our language correspond to the non-invertible rules to introduce and eliminate these types, while the invertible rules constitute case trees. • We are the first to present a coverage checking algorithm for fully dependent copatterns.…”
Section: Contributionsmentioning
confidence: 99%