A constraint solver for software engineering : finding models and cores of large relational specifications

Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Includes bibliographical refe...

Full description

Bibliographic Details
Main Author: Torlak, Emina, 1979-
Other Authors: Daniel Jackson.
Format: Others
Language:English
Published: Massachusetts Institute of Technology 2009
Subjects:
Online Access:http://hdl.handle.net/1721.1/46789
id ndltd-MIT-oai-dspace.mit.edu-1721.1-46789
record_format oai_dc
spelling ndltd-MIT-oai-dspace.mit.edu-1721.1-467892019-05-02T15:50:20Z A constraint solver for software engineering : finding models and cores of large relational specifications Torlak, Emina, 1979- Daniel Jackson. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009. This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. Includes bibliographical references (p. 105-120). Relational logic is an attractive candidate for a software description language, because both the design and implementation of software often involve reasoning about relational structures: organizational hierarchies in the problem domain, architectural configurations in the high level design, or graphs and linked lists in low level code. Until recently, however, frameworks for solving relational constraints have had limited applicability. Designed to analyze small, hand-crafted models of software systems, current frameworks perform poorly on specifications that are large or that have partially known solutions. This thesis presents an efficient constraint solver for relational logic, with recent applications to design analysis, code checking, test-case generation, and declarative configuration. The solver provides analyses for both satisfiable and unsatisfiable specifications--a finite model finder for the former and a minimal unsatisfiable core extractor for the latter. It works by translating a relational problem to a boolean satisfiability problem; applying an off-the-shelf SAT solver to the resulting formula; and converting the SAT solver's output back to the relational domain. The idea of solving relational problems by reduction to SAT is not new. The core contributions of this work, instead, are new techniques for expanding the capacity and applicability of SAT-based engines. They include: a new interface to SAT that extends relational logic with a mechanism for specifying partial solutions; a new translation algorithm based on sparse matrices and auto-compacting circuits; a new symmetry detection technique that works in the presence of partial solutions; and a new core extraction algorithm that recycles inferences made at the boolean level to speed up core minimization at the specification level. by Emina Torlak. Ph.D. 2009-09-24T20:46:46Z 2009-09-24T20:46:46Z 2009 2009 Thesis http://hdl.handle.net/1721.1/46789 428811198 eng M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 120 p. application/pdf Massachusetts Institute of Technology
collection NDLTD
language English
format Others
sources NDLTD
topic Electrical Engineering and Computer Science.
spellingShingle Electrical Engineering and Computer Science.
Torlak, Emina, 1979-
A constraint solver for software engineering : finding models and cores of large relational specifications
description Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2009. === This electronic version was submitted by the student author. The certified thesis is available in the Institute Archives and Special Collections. === Includes bibliographical references (p. 105-120). === Relational logic is an attractive candidate for a software description language, because both the design and implementation of software often involve reasoning about relational structures: organizational hierarchies in the problem domain, architectural configurations in the high level design, or graphs and linked lists in low level code. Until recently, however, frameworks for solving relational constraints have had limited applicability. Designed to analyze small, hand-crafted models of software systems, current frameworks perform poorly on specifications that are large or that have partially known solutions. This thesis presents an efficient constraint solver for relational logic, with recent applications to design analysis, code checking, test-case generation, and declarative configuration. The solver provides analyses for both satisfiable and unsatisfiable specifications--a finite model finder for the former and a minimal unsatisfiable core extractor for the latter. It works by translating a relational problem to a boolean satisfiability problem; applying an off-the-shelf SAT solver to the resulting formula; and converting the SAT solver's output back to the relational domain. The idea of solving relational problems by reduction to SAT is not new. The core contributions of this work, instead, are new techniques for expanding the capacity and applicability of SAT-based engines. They include: a new interface to SAT that extends relational logic with a mechanism for specifying partial solutions; a new translation algorithm based on sparse matrices and auto-compacting circuits; a new symmetry detection technique that works in the presence of partial solutions; and a new core extraction algorithm that recycles inferences made at the boolean level to speed up core minimization at the specification level. === by Emina Torlak. === Ph.D.
author2 Daniel Jackson.
author_facet Daniel Jackson.
Torlak, Emina, 1979-
author Torlak, Emina, 1979-
author_sort Torlak, Emina, 1979-
title A constraint solver for software engineering : finding models and cores of large relational specifications
title_short A constraint solver for software engineering : finding models and cores of large relational specifications
title_full A constraint solver for software engineering : finding models and cores of large relational specifications
title_fullStr A constraint solver for software engineering : finding models and cores of large relational specifications
title_full_unstemmed A constraint solver for software engineering : finding models and cores of large relational specifications
title_sort constraint solver for software engineering : finding models and cores of large relational specifications
publisher Massachusetts Institute of Technology
publishDate 2009
url http://hdl.handle.net/1721.1/46789
work_keys_str_mv AT torlakemina1979 aconstraintsolverforsoftwareengineeringfindingmodelsandcoresoflargerelationalspecifications
AT torlakemina1979 constraintsolverforsoftwareengineeringfindingmodelsandcoresoflargerelationalspecifications
_version_ 1719029507174694912