Symbolic Abstraction: Algorithms and Applications

dc.contributor.authorThakur, Aditya
dc.date.accessioned2014-08-25T16:03:57Z
dc.date.available2014-08-25T16:03:57Z
dc.date.issued2014-08-21
dc.description.abstractThis dissertation explores the use of abstraction in two areas of automated reasoning: verification of programs, and decision procedures for logics. Establishing that a program is correct is undecidable in general. Program-verification tools sidestep this tar-pit of undecidability by working on an abstraction of a program, which over-approximates the original program's behavior. The theory underlying this approach is called abstract interpretation. Developing a scalable and precise abstract interpreter is a challenging problem, especially when analyzing machine code. Abstraction provides a new language for the description of decision procedures, leading to new insights. I call such an abstraction-centric view of decision procedures Satisfiability Modulo Abstraction (SMA). The unifying theme behind the dissertation is the concept of symbolic abstraction: Given a formula f in logic L and an abstract domain A, the symbolic abstraction of f is the strongest consequence of f expressible in A. This dissertation advances the field of abstract interpretation by presenting two new algorithms for performing symbolic abstraction, which can be used to synthesize various operations required by an abstract interpreter. The dissertation presents two new algorithms for computing inductive invariants for programs. The dissertation shows how the use of symbolic abstraction enables the design of a new abstract domain capable of representing bit-vector inequality invariants. The dissertation advances the field of machine-code analysis by showing how symbolic abstraction can be used to implement machine-code analyses. Furthermore, the dissertation describes MCVETO, a new model-checking algorithm for machine code. The dissertation advances the field of decision procedures by presenting a variety of SMA solvers. One is based on a generalization of Staalmarck's method, a decision procedure for propositional logic. When viewed through the lens of abstraction, Staalmarck's method can be lifted from propositional logic to richer logics, such as linear rational arithmetic. Furthermore, the SMA view shows that the generalized Staalmarck's method actually performs symbolic abstraction. Thus, the concept of symbolic abstraction brings forth the connection between abstract interpretation and decision procedures. The dissertation describes a new distributed decision procedure for propositional logic, called DiSSolve. Finally, the dissertation presents an SMA solver for a new fragment of separation logic.en
dc.identifier.citationTR1812en
dc.identifier.urihttp://digital.library.wisc.edu/1793/69652
dc.subjectdistributed solveren
dc.subjectseparation logicen
dc.subjectbit-vector abstract domainsen
dc.subjectinductive invariantsen
dc.subjectmachine-code verificationen
dc.subjectdecision proceduresen
dc.subjectabstract interpretationen
dc.subjectprogram verificationen
dc.titleSymbolic Abstraction: Algorithms and Applicationsen
dc.typeTechnical Reporten

Files

Original bundle

Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
TR1812.pdf
Size:
3.55 MB
Format:
Adobe Portable Document Format
Description:
tech report
Loading...
Thumbnail Image
Name:
TR1812.pdf
Size:
3.55 MB
Format:
Adobe Portable Document Format
Description:
tech report

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
2.03 KB
Format:
Item-specific license agreed upon to submission
Description: