DecProbStrHarvard100909

# DecProbStrHarvard100909 - DECISION PROCEDURES FOR...

This preview shows pages 1–6. Sign up to view the full content.

DECISION PROCEDURES FOR VERIFICATION by Harvey M. Friedman Distinguished University Professor of Mathematics, Philosophy, Computer Science Ohio State University [email protected] http://www.math.ohio-state.edu/ ~friedman/ Joint Theory of Computation and Programming Language Seminar Department of Computer Science Harvard University delivered October 9, 2009

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
ABSTRACT We focus on two formal methods contexts which generate investigations into decision problems for finite strings. • RESOLVE Verification Conditions (VCs) • JAVA Pathfinder At Ohio State and elsewhere, formal specifications are given and annotated programs are written (providing loop invariants) that are designed to meet those specifications. This generates mathematical statements called VCs (verification conditions), which guarantee that the annotated program meets the specifications. If the context is finite strings, then decision procedures for finite strings can be very useful. We discuss such a decision procedure which we formulated based on our examination of the VCs generated at Ohio State from string processing programs written in RESOLVE. We also discuss the boundary between the decidable and undecidable.
A second source of decision procedure investigations is suggested by a tool for JAVA programs called JAVA PATHFINDER. This is a tool to automatically detect dead code in JAVA programs. It exploits the structure of JAVA programs, and is based on recognizing the impossibility of satisfying finitely many conditions. This naturally leads to a very wide ranging investigation into decision procedures involving the primitives in JAVA libraries, such as string replacement x[y/z]. We discuss some decidability and undecidability results for this context.

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
INTEGERS, OBJECTS, STRINGS, CONCATENATION FOR VCs Language L has three sorts: integers, objects, and (finite) strings (of) objects. Variables n i , x i , α i . Linear arithmetic, strict linear ordering on objects, empty string, concatenation, length of string, object to length 1 string, n-th term of string, weakly increasing string. Terms, atomic formulas, universal formulas, universal sentences, are defined in the expected way. In all interpretations, everything is predetermined except the choice of the linear ordered set of objects. WHICH UNIVERSAL SENTENCES ARE TRUE IN ALL INTERPRETATIONS? THEOREM. A universal sentence is true in all interpretations if and only if it is true in THE interpretation where the objects are the integers with the usual ordering. Henceforth, we work only with this standard interpretation. Thus we only speak of the TRUTH or FALSITY of a sentence of L.
INTEGERS, OBJECTS, STRINGS, CONCATENATION FOR VCs We present the language L formally. We use INT, OBJ, STR. • binary relation symbols <,

This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document
This is the end of the preview. Sign up to access the rest of the document.

## This note was uploaded on 08/05/2011 for the course MATH 366 taught by Professor Joshua during the Fall '08 term at Ohio State.

### Page1 / 28

DecProbStrHarvard100909 - DECISION PROCEDURES FOR...

This preview shows document pages 1 - 6. Sign up to view the full document.

View Full Document
Ask a homework question - tutors are online