Share This Author
Kodkod: A Relational Model Finder
Three new techniques are addressed with three new techniques: a symmetry detection algorithm that works in the presence of partial solutions, a sparse-matrix representation of relations, and a compact representation of boolean formulas inspired by boolean expression diagrams and reduced boolean circuits.
This work describes three different instantiations of the counter-example-guided-inductive-synthesis (CEGIS) strategy for solving the synthesis problem, reports on prototype implementations, and presents experimental results on an initial set of benchmarks.
Growing solver-aided languages with rosette
ROSETTE is introduced, a framework for designing solver-aided languages that frees designers from having to compile their languages to constraints and describes three case studies of using ROSETTE to implement languages and synthesizers for web scraping, spatial programming, and superoptimization of bitvector programs.
A lightweight symbolic virtual machine for solver-aided host languages
This paper describes how to implement a symbolic virtual machine (SVM) for a solver-aided domain-specific languages (SDSL) by employing a novel symbolic execution technique with two key properties: it produces compact encodings and it enables concrete evaluation to strip away host constructs that are outside the subset compilable to constraints.
A constraint solver for software engineering: finding models and cores of large relational specifications
- E. Torlak
- Computer Science
This thesis presents an efficient constraint solver for relational logic, with recent applications to design analysis, code checking, test-case generation, and declarative configuration, and new techniques for expanding the capacity and applicability of SAT-based engines.
Controlled physical random functions and applications
- B. Gassend, Marten van Dijk, D. Clarke, E. Torlak, S. Devadas, P. Tuyls
- Computer Science, MathematicsTSEC
This work proposes controlled physical random functions (CPUFs) as an alternative to storing keys and describes the core protocols that are needed to use CPUFs and presents some elementary applications, such as certified execution.
MemSAT: checking axiomatic specifications of memory models
An automated tool, MemSAT, that helps in debugging and reasoning about memory models, based on a SAT solver, that outputs a trace of the program in which both the assertions and the memory model axioms are satisfied.
Scaling symbolic evaluation for automated verification of systems code with Serval
- Luke Nelson, James Bornholt, Ronghui Gu, Andrew Baumann, E. Torlak, Xi Wang
- Computer ScienceSOSP
- 27 October 2019
This paper presents Serval, a framework for developing automated verifiers for systems software. Serval provides an extensible infrastructure for creating verifiers by lifting interpreters under…
Optimizing synthesis with metasketches
Many advanced programming tools---for both end-users and expert developers---rely on program synthesis to automatically generate implementations from high-level specifications. These tools often need…
Effective interprocedural resource leak detection
This paper presents a new tool, Tracker, that performs static analysis to find resource leaks in Java programs and describes the design, implementation and evaluation of Tracker, focusing on the features that make the tool scalable and its output actionable by the user.