ProB

ProB is an animator, constraint solver and model checker for the B-Method. It allows fully automatic animation of B specifications, and can be used to systematically check a specification for a wide range of errors. The constraint-solving capabilities of ProB can also be used for model finding, deadlock checking and test-case generation. It allows fully automatic animation of B specifications, and can be used to systematically check a specification for a wide range of errors. The constraint-solving capabilities of ProB can also be used for model finding, deadlock checking and test-case generation.

Avatar
Sebastian Krings
Postdoc

My research interests include formal methods, model checking and logic programming.

Publications

Embedding SMT-LIB into B for Interactive Proof and Constraint Solving

The SMT-LIB language and the B language are both based on predicate logic and share the definition of several operators. However, B …

Embedding High-Level Formal Specifications into Applications

The common formal methods workflow consists of formalising a model followed by applying model checking and proof techniques. Once an …

Automated Backend Selection for ProB Using Deep Learning

Employing formal methods for software development usually involves using a multitude of tools such as model checkers and provers. Most …

Repair and Generation of Formal Models Using Synthesis

Writing a formal model is a complicated and time-consuming task. Usually, one successively refines a model with the help of proof, …

From Software Specifications to Constraint Programming

Non-deterministic specifications play a central role in the use of formal methods for software development. Such specifications can be …

A Translation from Alloy to B

In this paper, we introduce a translation of the specification language Alloy to classical B. Our translation closely follows the Alloy …

plspec - A Specification Language for Prolog Data

In general, even though Prolog is a dynamically typed language, predicates may not be called with arbitrarily typed arguments. …

Proof Assisted Bounded and Unbounded Symbolic Model Checking of Software and System Models

We have implemented various symbolic model checking algorithms, such as BMC, k-Induction and IC3 for B, Event-B and other modeling …

Towards Infinite-State Symbolic Model Checking for B and Event-B

The idea of verifying the correctness of software has been brought up in the early days of computing, for example by Alan Turing in …

Contraint Logic Programming over Infinite Domains with an Application to Proof

We present a CLP(FD)-based constraint solver able to deal with unbounded domains. It is based on constraint propagation, resorting to …

The Burden of High-Level Languages: Complicated Symbolic Model Checking

Symbolic model checking algorithms like IC3 have proven to be an effective technique for hardware model checking. Extensions to …

SMT Solvers for Validation of B and Event-B models

We present an integration of the constraint solving kernel of the ProB model checker with the SMT solver Z3. We apply the combined …

Interactive Model Repair by Synthesis

When using B or Event-B for formal specifications, model checking is often used to detect errors such as invariant violations, …

Proof Assisted Symbolic Model Checking for B and Event-B

We have implemented various symbolic model checking algorithms, like BMC, k-Induction and IC3 for B and Event-B. The high-level nature …

Turning Failure into Proof: The ProB Disprover for B and Event-B

The ProB disprover uses constraint solving to find counter-examples for B proof obligations. As the ProB kernel is now capable of …

Inferring Physical Units in Formal Models

Most state-based formal methods, like B, Event-B or Z, provide support for static typing. However, these methods and the associated …

From Animation to Data Validation: The ProB Constraint Solver 10 Years On

Various solvers are linked via reification and Prolog co-routines. The overall challenge of ProB is to solve constraints in full …

Turning Failure into Proof: The ProB Disprover

Initially, the ProB disprover used constraint solving to try and find counterexamples to proof obligations generated from Event-B …

Who watches the watchers: Validating the ProB Validation Tool

Over the years, ProB has moved from a tool that complemented proving, to a development environment that is now sometimes used instead …

Inferring Physical Units in B Models

Most state-based formal methods, like B, Event-B or Z, provide support for static typing. However, these methods and the associated …

Turning Failure into Proof: Evaluating the ProB Disprover

The ProB disprover uses constraint solving to try and find counter examples to proof obligations. As the ProB kernel is now capable of …

B constrained

In a previous work, we applied constraint solving techniques to problems like invariant preservation and deadlock freedom checking. The …

Talks

Three is a crowd: SAT, SMT and CLP on a chessboard

Declarative encodings of chess problems and how to solve them