A slice-based decision procedure for type-based partial orders

Elena Sherman, Brady J. Garvin, Matthew B. Dwyer

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

2 Scopus citations

Abstract

Automated software verification and path-sensitive program analysis require the ability to distinguish executable program paths from those that are infeasible. To achieve this, program paths are encoded symbolically as a conjunction of constraints and submitted to an SMT solver; satisfiable path constraints are then analyzed further. In this paper, we study type-related constraints that arise in path-sensitive analysis of object-oriented programs with forms of multiple inheritance. The dynamic type of a value is critical in determining program branching related to dynamic dispatch, type casting, and explicit type tests. We develop a custom decision procedure for queries in a theory of type-based partial orders and show that the procedure is sound and complete, has low complexity, and is amenable to integration into an SMT framework. We present an empirical evaluation that demonstrates the speed and robustness of our procedure relative to Z3.

Original languageEnglish
Title of host publicationAutomated Reasoning - 5th International Joint Conference, IJCAR 2010, Proceedings
Pages156-170
Number of pages15
DOIs
StatePublished - 2010
Event5th International Joint Conference on Automated Reasoning, IJCAR 2010 - Edinburgh, United Kingdom
Duration: 16 Jul 201019 Jul 2010

Publication series

NameLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Volume6173 LNAI
ISSN (Print)0302-9743
ISSN (Electronic)1611-3349

Conference

Conference5th International Joint Conference on Automated Reasoning, IJCAR 2010
Country/TerritoryUnited Kingdom
CityEdinburgh
Period16/07/1019/07/10

Fingerprint

Dive into the research topics of 'A slice-based decision procedure for type-based partial orders'. Together they form a unique fingerprint.

Cite this