🧑‍🎓
Training Resources for Atelier B
  • Introduction
  • Guides and Tutorials
    • Installation
    • Training Videos
    • Training Slides
    • Applying the B Method
      • Project Creation
      • Code Generation
      • Mathematical Proof
        • 🔥Writing Mathematical Rules
          • Introduction
          • Introduction to the Theory Language
          • How to write mathematical rules
          • Using Automatic Prover Mechanisms
          • Guards in a nutshell
          • Normalisation of Expressions
          • Common pitfall
          • All guards in the theory language
    • Extending Atelier B
      • Syntax
      • Examples
    • Programming the CLEARSY Safety Platform
  • Examples and Case-studies
    • Fuel Level
    • Switch
    • Security Policy
    • Verified Software Competitions
  • Additional Resources
    • Glossary
    • References
    • Frequently Asked Questions
Powered by GitBook
On this page
  • Introduction
  • VSTTE 2010
  • Problem 1: Sum and maximum
  • Problem 2: Inverting an injection
  • Problem 3: Searching a Linked List
  • Problem 4: N-Queens
  • VSTTE 2011
  • VSTTE 2012
  • Problem 3: Ring Buffer

Was this helpful?

  1. Examples and Case-studies

Verified Software Competitions

PreviousSecurity PolicyNextGlossary

Last updated 3 years ago

Was this helpful?

Introduction

Several software verification competitions have been organized last years, with different objectives and modalities. Some problems from these competitions have been selected and solved using the B method. For each of these problems, are provided:

  • a B model archive, containing the B models, the proof files (saved demonstration), the added mathematical rules (to be used during interactive proof)

  • a report:

    • explaining how the problem was tackled (possibly with several options), how the proof was conducted,

    • providing project metrics per component

    • showing the generated source code when executed

  • source code, generated by Atelier B from B models and handwritten for others files.

These projects should be replayed with Atelier B 4.1 or greater with the parameters below. Copy the two lines, select your Atelier B project, open contextual menu, select “properties” then “resources file”, paste the two lines at the end of the file, press “OK”.

ATB*BCOMP*Disable_Array_Compatibility_Check:TRUE
ATB*BCOMP*Disable_Concrete_Constants_Type_Check:TRUE

VSTTE 2010

The VSTTE 2010 conference was organized August 16-19, 2010 in Edinburgh, Scotland (). Problems are available .

Problem 1: Sum and maximum

“Given an N-element array of natural numbers, write a program to compute the sum and the maximum of the elements in the array.”

Report

B Projet Archive

Source code

Problem 2: Inverting an injection

“Invert an injective array A on N elements in the subrange from 0 to N-1, i.e. the output array B must be such that B[A[i]] = i for 0 ≤ i ˂ N. You can assume that A is surjective.”

Report

B Projet Archive

Source code

Problem 3: Searching a Linked List

“Given a linked list representation of a list of integers, find the index of the first element that is equal to 0.”

Report

B Projet Archive

Source code

Problem 4: N-Queens

“Write a program to place N queens on an N*N chess board so that no queen can capture another one with a legal move.”

Report

B Projet Archive

Rodin Project Archive

VSTTE 2011

Challenge 3: Two equal elements

“Given an integer array A of length n+2 with n>=2. It is known that at least two values stored in the array appear twice (i.e., there are at least two duplets). Implement and verify a program finding such two values. You may assume that the array contains values between 0 and n-1.“

Report

B Projet Archive

Source code

VSTTE 2012

Problem 1: Two-way sort

“We want to sort an array of Boolean values (assuming false < true) using only swaps.”

Report

B Projet Archive

Source code

Problem 3: Ring Buffer

“We want to implement a queue data structure using a ring buffer.”

Report

B Projet Archive

Source code

The COST IC701 Verification Competition 2011 was organized at the occasion of the conference on Formal Verification of Object-Oriented Software, held in 5-7 October, 2011, at Turin, Italy (). Problems are not available any more from the website.

The VSTTE 2012 conference was organized January 28-29, 2012 in Philadelphia, USA (). Problems are available .

website
here
website
website
here
622KB
Problem_11.pdf
pdf
27KB
VSTTE10_1_B.arc
4KB
vstte10_1_code.zip
archive
610KB
Problem21.pdf
pdf
13KB
VSTTE10_2_B.arc
2KB
vstte10_2_code.zip
archive
622KB
Problem31.pdf
pdf
14KB
VSTTE10_3.arc
10KB
vstte10_3_code.zip
archive
653KB
Problem_4.pdf
pdf
5KB
NQueens_eventB.arc
65KB
NQueens.zip
archive
725KB
Challenge_32.pdf
pdf
27KB
COST_3_B.arc
3KB
COST_3_code.zip
archive
622KB
Problem_11.pdf
pdf
30KB
VSTTE12_1_B.arc
4KB
vstte12_1_code.zip
archive
781KB
Challenge-3.pdf
pdf
52KB
VSTTE12_3_B.arc
25KB
vstte12_3_code.zip
archive