2006
DOI: 10.1007/s10009-005-0180-2
|View full text |Cite
|
Sign up to set email alerts
|

Inductive assertions and operational semantics

Abstract: Abstract. This paper shows how classic inductive assertions can be used in conjunction with an operational semantics to prove partial correctness properties of programs. The method imposes only the proof obligations that would be produced by a verification condition generator but does not require the definition of a verification condition generation. The paper focuses on iterative programs but recursive programs are briefly discussed. Assertions are attached to the program by defining a predicate on states. Th… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
7
0

Year Published

2006
2006
2020
2020

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 10 publications
(7 citation statements)
references
References 16 publications
0
7
0
Order By: Relevance
“…To prove partial correctness, at the very least we are required to define a sufficient collection of program invariants. In fact, a method that requires only this is due to Moore [39], who shows how to use ACL2 to automatically generate the verification conditions required to show that the program invariants imply partial correctness. There are also extensions that allows us to prove total correctness results [37].…”
Section: Reasoning About Programsmentioning
confidence: 99%
“…To prove partial correctness, at the very least we are required to define a sufficient collection of program invariants. In fact, a method that requires only this is due to Moore [39], who shows how to use ACL2 to automatically generate the verification conditions required to show that the program invariants imply partial correctness. There are also extensions that allows us to prove total correctness results [37].…”
Section: Reasoning About Programsmentioning
confidence: 99%
“…The generation of VCs based on theorem proving and operational semantics has been investigated in [31,33]. In [33] the authors present a proof of concept method to prove partial correctness of programs that makes use of a small-step operational semantics.…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…In [33] the authors present a proof of concept method to prove partial correctness of programs that makes use of a small-step operational semantics. The semantics is explicitly expressed in the logic, and the VCs are generated as a by-product of the correctness proof.…”
Section: Related Work and Conclusionmentioning
confidence: 99%
“…In this method, the user annotates a program by attaching assertions on certain cutpoints, and the goal is to prove that whenever program control reaches a cutpoint, the corresponding assertions hold. Moore [7] shows how to use symbolic simulation to derive such proofs from an operational model of the system. An operational model is given by a function next that can be treated as a state transformation function: (next s) gives the state of the machine after one transition from s. Moore's method involves the definition of a predicate inv0 with the following equation: (= (inv0 s) (if (cut s) (assert s) (inv0 (next s))))…”
Section: Practical Benefitsmentioning
confidence: 99%