Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs
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...
Main Author: | |
---|---|
Format: | Article |
Language: | English |
Published: |
Open Publishing Association
2012-02-01
|
Series: | Electronic Proceedings in Theoretical Computer Science |
Online Access: | http://arxiv.org/pdf/1202.4834v1 |
id |
doaj-cf1ae384aa554a209ac01939a9ee8c01 |
---|---|
record_format |
Article |
spelling |
doaj-cf1ae384aa554a209ac01939a9ee8c012020-11-24T23:02:38ZengOpen Publishing AssociationElectronic Proceedings in Theoretical Computer Science2075-21802012-02-0179Proc. THedu 201112414210.4204/EPTCS.79.8Computer-Assisted Program Reasoning Based on a Relational Semantics of ProgramsWolfgang SchreinerWe 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 denotation indeed gives reason to believe that the program has the expected behavior. Errors in the program and in the meta-information may thus be detected and fixed prior to actually performing the formal verification. More concretely, following the relational approach to program semantics, we model the effect of a program as a binary relation on program states. A formal calculus is devised to derive from a program a logic formula that describes this relation and is subject for inspection and manipulation. We have implemented this idea in a comprehensive form in the RISC ProgramExplorer, a new program reasoning environment for educational purposes which encompasses the previously developed RISC ProofNavigator as an interactive proving assistant.http://arxiv.org/pdf/1202.4834v1 |
collection |
DOAJ |
language |
English |
format |
Article |
sources |
DOAJ |
author |
Wolfgang Schreiner |
spellingShingle |
Wolfgang Schreiner Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs Electronic Proceedings in Theoretical Computer Science |
author_facet |
Wolfgang Schreiner |
author_sort |
Wolfgang Schreiner |
title |
Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs |
title_short |
Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs |
title_full |
Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs |
title_fullStr |
Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs |
title_full_unstemmed |
Computer-Assisted Program Reasoning Based on a Relational Semantics of Programs |
title_sort |
computer-assisted program reasoning based on a relational semantics of programs |
publisher |
Open Publishing Association |
series |
Electronic Proceedings in Theoretical Computer Science |
issn |
2075-2180 |
publishDate |
2012-02-01 |
description |
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 denotation indeed gives reason to believe that the program has the expected behavior. Errors in the program and in the meta-information may thus be detected and fixed prior to actually performing the formal verification. More concretely, following the relational approach to program semantics, we model the effect of a program as a binary relation on program states. A formal calculus is devised to derive from a program a logic formula that describes this relation and is subject for inspection and manipulation. We have implemented this idea in a comprehensive form in the RISC ProgramExplorer, a new program reasoning environment for educational purposes which encompasses the previously developed RISC ProofNavigator as an interactive proving assistant. |
url |
http://arxiv.org/pdf/1202.4834v1 |
work_keys_str_mv |
AT wolfgangschreiner computerassistedprogramreasoningbasedonarelationalsemanticsofprograms |
_version_ |
1725635753329819648 |