2015
DOI: 10.1007/978-3-319-24644-4_21
|View full text |Cite
|
Sign up to set email alerts
|

From Event-B Models to Dafny Code Contracts

Abstract: Abstract. The constructive approach to software correctness aims at formal modelling and verification of the structure and behaviour of a system in different levels of abstraction. In contrast, the analytical approach to software verification focuses on code level correctness and its verification. Therefore it would seem that the constructive and analytical approaches should complement each other well. To demonstrate this idea we present a case for linking two existing verification methods, Event-B (constructi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
8
0

Year Published

2017
2017
2020
2020

Publication Types

Select...
4
3

Relationship

5
2

Authors

Journals

citations
Cited by 10 publications
(8 citation statements)
references
References 13 publications
0
8
0
Order By: Relevance
“…In our previous work [7], we introduced another approach for generating Dafny code contracts from Event-B models. The proposed approach generates Dafny method pre-and post-conditions from a group of atomic Event-B events in a way that any implementation that satisfies the generated pre-and postconditions is considered to be a correct implementation of the Event-B abstract model.…”
Section: Discussionmentioning
confidence: 99%
“…In our previous work [7], we introduced another approach for generating Dafny code contracts from Event-B models. The proposed approach generates Dafny method pre-and post-conditions from a group of atomic Event-B events in a way that any implementation that satisfies the generated pre-and postconditions is considered to be a correct implementation of the Event-B abstract model.…”
Section: Discussionmentioning
confidence: 99%
“…We have developed a proof-of-concept tool to automate the generation of C++ assertions from Event-B formal models. The tool, illustrated in Figure 2, is an extension of our existing contract generation tool [7] and is implemented as a Rodin plug-in. The assertion generation tool translates an Event-B event to a C++ function where the function implements an assertion.…”
Section: Automatic Assertion Generationmentioning
confidence: 99%
“…These existential quantifications can be seen as the specification of other procedures, so if there is a procedure that satisfies this existential quantification then the quantification in the branch condition can be replaced by a procedure call to that procedure (which should return a boolean value) in code level. Using an approach similar to [28], it is possible to transform the guards to a set of pre-and post-conditions in a language which is supported by a static verifier and then implement and verify the aforementioned procedures there.…”
Section: Towards Implementation Of Vbdmentioning
confidence: 99%