2020
DOI: 10.1145/3408973
|View full text |Cite
|
Sign up to set email alerts
|

A dependently typed calculus with pattern matching and erasure inference

Abstract: Some parts of dependently typed programs constitute evidence of their type-correctness and, once checked, are unnecessary for execution. These parts can easily become asymptotically larger than the remaining runtime-useful computation, which can cause normally linear-time programs run in exponential time, or worse. We should not make programs run slower by just describing them more precisely. Current dependently typed systems do not erase such computation satisfactorily. By modelling erasure indirectly through… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
9
0

Year Published

2021
2021
2023
2023

Publication Types

Select...
3
2
2

Relationship

0
7

Authors

Journals

citations
Cited by 8 publications
(9 citation statements)
references
References 22 publications
0
9
0
Order By: Relevance
“…Thanks to our indexed family, we have gained the ability to define a function that cannot possibly fail, as well as the ability to only talk about the pattern matching clauses that make sense. This seemed to be at the cost of efficiency but luckily for us there has already been extensive work on erasure to automatically detect redundant data [BMM03] or data that will not be used at runtime [Tej20].…”
Section: An Optimisation Examplementioning
confidence: 99%
See 2 more Smart Citations
“…Thanks to our indexed family, we have gained the ability to define a function that cannot possibly fail, as well as the ability to only talk about the pattern matching clauses that make sense. This seemed to be at the cost of efficiency but luckily for us there has already been extensive work on erasure to automatically detect redundant data [BMM03] or data that will not be used at runtime [Tej20].…”
Section: An Optimisation Examplementioning
confidence: 99%
“…A Tejiščák-style analysis [Tej20] can additionally notice that the lookup function never makes use of the bound's value and drop it entirely. This leads to the lookup function on vectors being compiled to its partial-looking counterpart acting on lists.…”
Section: Optimising Vect Fin and Lookupmentioning
confidence: 99%
See 1 more Smart Citation
“…As we see with length and append, sometimes an argument might be required (in length) and sometimes it might be erasable (in append). Idris 1 uses a constraint solving algorithm [41], which has been effective in practice, but has a weakness that it is not possible to tell from a definition's type alone which arguments are required at run time. In Section 3.2 we will see how quantitative type theory allows us to make a precise distinction between the run time relevant parts of a program and the compile time only parts.…”
Section: Implicit Argumentsmentioning
confidence: 99%
“…Furthermore, although it is outside the scope of the present paper, we can explore the benefits of dependently typed programming in implementing a full-scale programming language. A limitation of Idris 1 is that it is not always clear which arguments to functions and constructors are required at run time, and which are erased, even despite previous work [7,41,42]. QTT allows us to state clearly, in a type, which arguments are erased.…”
Section: Idrismentioning
confidence: 99%