2017
DOI: 10.1145/3133903
|View full text |Cite
|
Sign up to set email alerts
|

TiML: a functional language for practical complexity analysis with invariants

Abstract: We present TiML (Timed ML), an ML-like functional language with time-complexity annotations in types. It uses indexed types to express sizes of data structures and upper bounds on running time of functions; and refinement kinds to constrain these indices, expressing data-structure invariants and pre/post-conditions. Indexed types are flexible enough that TiML avoids a built-in notion of "size, " and the programmer can choose to index user-defined datatypes in any way that helps her analysis. TiML's distinguish… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
45
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 48 publications
(45 citation statements)
references
References 59 publications
(36 reference statements)
0
45
0
Order By: Relevance
“…However, none of these approaches can express correctness properties, which as we have seen, allow for a more precise analysis. Recent work [McCarthy et al 2017;Wang et al 2017] combines indexed types with functional correctness. McCarthy et al [2017] develop a Coq library that uses a monad indexed by a predicate to measure runtimes.…”
Section: Related Workmentioning
confidence: 99%
See 2 more Smart Citations
“…However, none of these approaches can express correctness properties, which as we have seen, allow for a more precise analysis. Recent work [McCarthy et al 2017;Wang et al 2017] combines indexed types with functional correctness. McCarthy et al [2017] develop a Coq library that uses a monad indexed by a predicate to measure runtimes.…”
Section: Related Workmentioning
confidence: 99%
“…Similarly to Danielsson [2008], relational cost analysis is not supported. TiML [Wang et al 2017] indexes the types of functions with their time bounds. A significant feature of this system is that it provides automated support for solving recurrence relations, by heuristically matching against cases of the Master Theorem.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Wang et al [20] present TiML, a functional programming language which can be annotated by invariants and specifically also with time complexity annotations in types. The type checker extracts verification conditions from these programs, which are handled by an SMT solver.…”
Section: Related Workmentioning
confidence: 99%
“…To assist programmers with deriving memory bounds, the programming language community has developed automatic and semi-automatic analysis techniques [24,12,2]. These systems are often special cases of more general resource bound analyses that are based on abstract interpretation [18,7,37], recurrence solving [16,1,14,28], type systems [27,22,29,43,42,15], program logics [5,10,9,35], proof assistants [33,11], and term rewriting [6,34,17].…”
Section: Introductionmentioning
confidence: 99%