Traits: correctness-by-construction for free
From MaRDI portal
Publication:2165220
Abstract: We demonstrate that traits are a natural way to support correctness-by-construction (CbC) in an existing programming language in the presence of traditional post-hoc verification (PhV). With Correctness-by-Construction, programs are constructed incrementally along with a specification that is inherently guaranteed to be satisfied. CbC is complex to use without specialized tool support, since it needs a set of refinement rules of fixed granularity which are additional rules on top of the programming language. In this work, we propose TraitCbC, an incremental program construction procedure that implements correctness-by-construction on the basis of PhV by using traits. TraitCbC enables program construction by trait composition instead of refinement rules. It provides a programming guideline, which similar to CbC should lead to well-structured programs, and allows flexible reuse of verified program building blocks. We introduce TraitCbC formally and prove the soundness of our verification strategy. Additionally, we implement TraitCbC as a proof of concept.
Recommendations
Cites work
- ArcAngel: a tactic language for refinement
- Dafny: an automatic program verifier for functional correctness
- Data refinement in Isabelle/HOL
- Feature integration using a feature construct
- First-Class Type Classes
- scientific article; zbMATH DE number 3574936 (Why is no real title available?)
- scientific article; zbMATH DE number 605806 (Why is no real title available?)
- scientific article; zbMATH DE number 3995020 (Why is no real title available?)
- scientific article; zbMATH DE number 3351184 (Why is no real title available?)
- Invariant based programming: Basic approach and teaching experiences
- Modeling in Event B. System and software engineering.
- Refinement Calculus
- The correctness-by-construction approach to programming
- Verifying traits: an incremental proof system for fine-grained reuse
Cited in
(3)
Describes a project that uses
Uses Software
This page was built for publication: Traits: correctness-by-construction for free
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q2165220)