Proceedings of the 2015 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applicatio 2015
DOI: 10.1145/2814270.2814323
|View full text |Cite
|
Sign up to set email alerts
|

Programming with enumerable sets of structures

Abstract: We present an efficient, modular, and feature-rich framework for automated generation and validation of complex structures, suitable for tasks that explore a large space of structured values. Our framework is capable of exhaustive, incremental, parallel, and memoized enumeration from not only finite but also infinite domains, while providing fine-grained control over the process. Furthermore, the framework efficiently supports the inverse of enumeration (checking whether a structure can be generated and fast-f… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
21
0

Year Published

2016
2016
2021
2021

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 21 publications
(21 citation statements)
references
References 49 publications
0
21
0
Order By: Relevance
“…We expose a new mechanism for enumeration that allows the programmer to define what it means for structures to be different. This is similar to what SciFe [Kuraj et al 2015] accomplishes, except we can express our enumerators to any SMT solver. This means that we can use established solvers, abstract away reasoning about data, and support constraints on strings (which most similar tools do not support).…”
Section: Our Constraint Problem Contrastedmentioning
confidence: 77%
“…We expose a new mechanism for enumeration that allows the programmer to define what it means for structures to be different. This is similar to what SciFe [Kuraj et al 2015] accomplishes, except we can express our enumerators to any SMT solver. This means that we can use established solvers, abstract away reasoning about data, and support constraints on strings (which most similar tools do not support).…”
Section: Our Constraint Problem Contrastedmentioning
confidence: 77%
“…It also best exploits the counterexample sharing optimization described above, as smaller sketches quickly generate a set of counterexamples that later local searches can use. We found the Cantor and Szudzik orders [19,38] to be particularly effective.…”
Section: Methodsmentioning
confidence: 88%
“…As in classic CEGIS, an invalid solution leads to a counterexample, which is added to Z (lines [12][13][14]. If there is no model for the problem, the search terminates (lines [19][20]. When the algorithm satisfies all the constraints it has received so far, it blocks until it receives new constraints.…”
Section: Local Searchesmentioning
confidence: 99%
“…Two popular techniques are declarative enumeration and imperative enumeration. In particular, declarative approaches leverage any given invariant to search for valid inputs [7,19,28,50], and the imperative approaches directly construct the inputs based on more prescriptive specifications [12,31,49,56]. In program synthesis, there have been studies on inductive functional programming systems for exhaustively synthesizing small programs [8,[25][26][27].…”
Section: Related Workmentioning
confidence: 99%