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...

Full description

Bibliographic Details
Main Author: Wolfgang Schreiner
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