2012
DOI: 10.4204/eptcs.79.8
|View full text |Cite
|
Sign up to set email alerts
|

Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs

Abstract: We present an approach to program reasoning which inserts between a program and its verification conditions an additional layer, the denotation of the program expressed in a declarative form. The program is first translated into its denotation from which subsequently the verification conditions are generated. However, even before (and independently of) any verification attempt, one may investigate the denotation itself to get insight into the "semantic essence" of the program, in particular to see whether the … Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
4
0

Year Published

2013
2013
2020
2020

Publication Types

Select...
4
2

Relationship

3
3

Authors

Journals

citations
Cited by 6 publications
(4 citation statements)
references
References 16 publications
0
4
0
Order By: Relevance
“…Before the academic year 2017/2018, we used in the first part of this course (with four home assignments) the RISC ProofNavigator [17] as an interactive proving assistant on top of which the RISC ProgramExplorer [18] provided an integrated specification and verification environment for a subset of Java called "MiniJava". With these tools, the adequacy of specifications and the correctness of programs with respect to these specifications could in essence only be judged by proving the validity of (manually derived respectively automatically generated) verification conditions; if an attempt to such a proof failed, it remained often unclear to students whether this was due to a poor proof strategy or inadequate formal specifications respectively annotations (to at least rule out actual program errors, correct programs were handed out).…”
Section: A Course On Formal Methodsmentioning
confidence: 99%
“…Before the academic year 2017/2018, we used in the first part of this course (with four home assignments) the RISC ProofNavigator [17] as an interactive proving assistant on top of which the RISC ProgramExplorer [18] provided an integrated specification and verification environment for a subset of Java called "MiniJava". With these tools, the adequacy of specifications and the correctness of programs with respect to these specifications could in essence only be judged by proving the validity of (manually derived respectively automatically generated) verification conditions; if an attempt to such a proof failed, it remained often unclear to students whether this was due to a poor proof strategy or inadequate formal specifications respectively annotations (to at least rule out actual program errors, correct programs were handed out).…”
Section: A Course On Formal Methodsmentioning
confidence: 99%
“…While this is understandably a good approach within a traditional course setting, the variety of applications of logic seen today require a more flexible system, which gives the instructor the ability to freely expand and contract the formal language to a particular problem. A few existing systems taking a step in this direction are the risc program navigator [33], RISCAL [34], and Theorema [7]. The first two systems consider first-order logic (FOL) over finite models, while Theorema, defined in Mathematica, considers FOL over arbitrary models and using Mathematica's interface restricts the student's view of the current state of the software.…”
Section: Related Workmentioning
confidence: 99%
“…In a simplified case, sets are used as the semantic domains and the execution of statements is described by functions [30]. The general definition of denotational semantics uses lattices and homomorphisms between them [36]; an alternative formulation is based on relations [33]. Denotational semantics provides the results of program execution, but it does not consider the details during the execution process.…”
Section: Introductionmentioning
confidence: 99%