## Practical Program Verification by Forward Symbolic Execution: Correctness and Examples (2008)

Venue: | Austrian-Japan Workshop on Symbolic Computation in Software Science |

Citations: | 5 - 4 self |

### BibTeX

@INPROCEEDINGS{Jebelean08practicalprogram,

author = {Tudor Jebelean},

title = {Practical Program Verification by Forward Symbolic Execution: Correctness and Examples},

booktitle = {Austrian-Japan Workshop on Symbolic Computation in Software Science},

year = {2008},

pages = {47--56}

}

### OpenURL

### Abstract

Abstract. We present the theoretical aspects and a prototype implementation in the Theorema system of a method for the verification of recursive imperative programs. The method is based on forward symbolic execution and functional semantics and generates first order verification conditions for the total correctness which use only the underlying theory of the program. All verification conditions are generated automatically by our prototype implementation in the frame of the Theorema system based on Mathematica. The termination property is expressed as an induction principle depending on the structure of the program with respect to recursion. It turns out that part of the verification conditions (notably the termination condition) are crucial for the existence of the function defined by the program, without which the total correctness formula is trivial due to inconsistency of the assumptions. The formal description of the method is the basis for the implementation and also for the proof of its correctness. 1

### Citations

1497 |
Theory of Linear and Integer Programming
- Schrijver
- 1986
(Show Context)
Citation Context ... ≯ b ∧ a ≥ b ⇒ a ≥ 0 ∧ b − a ≥ 0 (6) (a ≥ 0 ∧ b ≥ 0) ∧ a ̸= 0 ∧ b ̸= 0 ∧ a ≯ b ∧ a ≥ b ∧ (a ≥ 0 ∧ b − a ≥ 0)∧ ∃ k1 ∃ k2 ((a = k1 ∗ y2) ∧ (b − a = k2 ∗ y2)) ⇒ ∃ k1 ∃ ((a = k1 ∗ y2) ∧ (b = k2 ∗ y2)) k2 =-=(7)-=- (a ≥ 0 ∧ b ≥ 0) ∧ a ̸= 0 ∧ ¬(b ̸= 0) ⇒ ∃ k1 ∃ k2 ((a = k1 ∗ a) ∧ (b = k2 ∗ a)) (8) Remark 2. 1. Each verification condition is universally quantified; the bound variables are: a, b, y1, y2 ; 2. The f... |

71 |
The Foundations of Program Verification
- Loeckx, Seiber
- 1984
(Show Context)
Citation Context ... for the implementation and also for the proof of its correctness. 1 Introduction We present a formal verification method for imperative programs based on symbolic execution [4, 1], forward reasoning =-=[5, 3]-=- and functional semantics [6]. The distinctive features of our approach are: – All verification conditions are formulated in the theory of the objects which are manipulated by the program (the object ... |

30 |
A new approach to program testing
- King
- 1975
(Show Context)
Citation Context ...of the method is the basis for the implementation and also for the proof of its correctness. 1 Introduction We present a formal verification method for imperative programs based on symbolic execution =-=[4, 1]-=-, forward reasoning [5, 3] and functional semantics [6]. The distinctive features of our approach are: – All verification conditions are formulated in the theory of the objects which are manipulated b... |

26 |
An interactive program verifier
- Deutsch
- 1973
(Show Context)
Citation Context ...der logic formulae and the proofs of correctness is kept at object-level without introducing a model of computation. Approaches for solving the correctness of symbolic executed programs exists due to =-=[5, 8, 2]-=-; for the imperative programs containing assignments, conditionals and while loops bounded on the number of times they are executed, the proof of correctness is given by analyzing the verification con... |

18 |
Program Derivation: The Development of Programs from Specifications
- Dromey
- 1989
(Show Context)
Citation Context ... for the implementation and also for the proof of its correctness. 1 Introduction We present a formal verification method for imperative programs based on symbolic execution [4, 1], forward reasoning =-=[5, 3]-=- and functional semantics [6]. The distinctive features of our approach are: – All verification conditions are formulated in the theory of the objects which are manipulated by the program (the object ... |

18 |
A Basis For a Mathematical Theory of Computation. Computer Programming and Formal
- McCarthy
- 1963
(Show Context)
Citation Context ... for the proof of its correctness. 1 Introduction We present a formal verification method for imperative programs based on symbolic execution [4, 1], forward reasoning [5, 3] and functional semantics =-=[6]-=-. The distinctive features of our approach are: – All verification conditions are formulated in the theory of the objects which are manipulated by the program (the object theory – see below). – The no... |

4 |
Interactive program verification using virtual programs
- Topor
- 1975
(Show Context)
Citation Context ...der logic formulae and the proofs of correctness is kept at object-level without introducing a model of computation. Approaches for solving the correctness of symbolic executed programs exists due to =-=[5, 8, 2]-=-; for the imperative programs containing assignments, conditionals and while loops bounded on the number of times they are executed, the proof of correctness is given by analyzing the verification con... |

1 |
Symbolic execution systems – a review, Softw
- Coward
- 1988
(Show Context)
Citation Context ...of the method is the basis for the implementation and also for the proof of its correctness. 1 Introduction We present a formal verification method for imperative programs based on symbolic execution =-=[4, 1]-=-, forward reasoning [5, 3] and functional semantics [6]. The distinctive features of our approach are: – All verification conditions are formulated in the theory of the objects which are manipulated b... |