The University of Southampton
University of Southampton Institutional Repository

Automated Translation of Event-B Models to SPARK Proof Annotations

Automated Translation of Event-B Models to SPARK Proof Annotations
Automated Translation of Event-B Models to SPARK Proof Annotations
Ensuring and verifying the properties of safety- and security-critical software is paramount. Event-B is a modelling language which enables the design of
systems, using mathematical proofs ensuring the conformity of the system to
declared safety requirements. SPARK is a programming language making use of static analysis tools which verify written code correctly implements the properties of the system as specified in the form of written proof annotations. SPARK has been used in many industry-scale projects to implement safety-critical software.Manually writing SPARK proof annotations can be time-consuming and tedious. The aim of this project was to create a tool, in the form of a Rodin plug-in, to translate an Event-B model into a set of SPARK specifications in a SPARK specification file, in the form of proof annotations and other structures, from which SPARK code written can be verified together with, hence ensuring the correct behaviour of the software. A background literature review was conducted to find related works, to help guide the approach to this project. The common forms of a lot of predicates in Event-B, such as those involving set operations, had no direct counterpart in SPARK. Hence, an extra file in SPARK containing function definitions for common Event-B predicates was written. Using these function definitions, a set of translation rules from Event-B predicates to SPARK code was compiled, along with other translation rules for the making of other SPARK constructs which were needed in the specification file. Using these conceptual rules, the plug-in was created in Eclipse as an Eclipse plug-in to run on the Rodin target platform. Finally, this plug-in was tested with several Event-B models to ensure that the generated code was the same as the expected code.
University of Southampton
Sritharan, Sanjeevan
55c3bf83-4fc5-4986-afda-c65759f0a91b
Sritharan, Sanjeevan
55c3bf83-4fc5-4986-afda-c65759f0a91b
Hoang, Thai Son
dcc0431d-2847-4e1d-9a85-54e4d6bab43f

Sritharan, Sanjeevan (2020) Automated Translation of Event-B Models to SPARK Proof Annotations. University of Southampton, Masters Thesis.

Record type: Thesis (Masters)

Abstract

Ensuring and verifying the properties of safety- and security-critical software is paramount. Event-B is a modelling language which enables the design of
systems, using mathematical proofs ensuring the conformity of the system to
declared safety requirements. SPARK is a programming language making use of static analysis tools which verify written code correctly implements the properties of the system as specified in the form of written proof annotations. SPARK has been used in many industry-scale projects to implement safety-critical software.Manually writing SPARK proof annotations can be time-consuming and tedious. The aim of this project was to create a tool, in the form of a Rodin plug-in, to translate an Event-B model into a set of SPARK specifications in a SPARK specification file, in the form of proof annotations and other structures, from which SPARK code written can be verified together with, hence ensuring the correct behaviour of the software. A background literature review was conducted to find related works, to help guide the approach to this project. The common forms of a lot of predicates in Event-B, such as those involving set operations, had no direct counterpart in SPARK. Hence, an extra file in SPARK containing function definitions for common Event-B predicates was written. Using these function definitions, a set of translation rules from Event-B predicates to SPARK code was compiled, along with other translation rules for the making of other SPARK constructs which were needed in the specification file. Using these conceptual rules, the plug-in was created in Eclipse as an Eclipse plug-in to run on the Rodin target platform. Finally, this plug-in was tested with several Event-B models to ensure that the generated code was the same as the expected code.

Text
Automated_Translation_of_Event_B_Models_to_SPARK_Proof_Annotations - Version of Record
Download (1MB)

More information

Published date: 12 May 2020

Identifiers

Local EPrints ID: 444034
URI: http://eprints.soton.ac.uk/id/eprint/444034
PURE UUID: ad3d8d19-eb03-4810-809c-ae58560434eb
ORCID for Thai Son Hoang: ORCID iD orcid.org/0000-0003-4095-0732

Catalogue record

Date deposited: 23 Sep 2020 16:30
Last modified: 13 Dec 2021 03:15

Export record

Contributors

Author: Sanjeevan Sritharan
Thesis advisor: Thai Son Hoang ORCID iD

Download statistics

Downloads from ePrints over the past year. Other digital versions may also be available to download e.g. from the publisher's website.

View more statistics

Atom RSS 1.0 RSS 2.0

Contact ePrints Soton: eprints@soton.ac.uk

ePrints Soton supports OAI 2.0 with a base URL of http://eprints.soton.ac.uk/cgi/oai2

This repository has been built using EPrints software, developed at the University of Southampton, but available to everyone to use.

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×