# The B-book - assigning programs to meanings

@inproceedings{Abrial1996TheB, title={The B-book - assigning programs to meanings}, author={Jean-Raymond Abrial}, year={1996} }

Tribute Foreword Introduction Part I. Mathematics: 1. Mathematical reasoning 2. Set notation 3. Mathematical objects Part II. Abstract Machines: 4. Introduction to abstract machines 5. Formal definition of abstract machines 6. Theory of abstract machines 7. Constructing large abstract machines 8. Examples of abstract machines Part III. Programming: 9. Sequencing and loop 10. Programming examples Part IV. Refinement: 11. Refinement 12. Constructing large software systems 13. Examples of…

## 2,948 Citations

Chapter I. Introduction 1 Motivation

- Computer Science

The intent of this book is to give some insights on modeling and formal reasoning before undertaking the effective coding of a computer system, so that the system in question will be correct by construction.

Computational Abstraction

- Computer ScienceEntropy
- 2021

It is argued that representation and abstraction, while mathematical siblings, are philosophically quite different and should be interpreted, modified, extended and imported into type theory.

Solving Inclusion Constraints between intensional sets

- Computer Science
- 2007

This paper proposes an extended logical programming language including the data-structure of intensional set formalizing set comprehension and cartesian product and describes a solving algorithm manipulating inclusion constraints containing set variables through suitable rules.

An Automation-Friendly Set Theory for the B Method

- Computer ScienceABZ
- 2018

An automation-friendly set theory for the B method is proposed using first order logic extended to polymorphic types and rewriting along the lines of deduction modulo theory, where axioms are turned into rewrite rules over both propositions and terms.

A Tutorial Introduction to Designs in Unifying Theories of Programming

- Computer ScienceIFM
- 2004

This work gives a tutorial introduction to the theory of alphabetised relations, and its sub-theory of designs, and illustrates the ideas by applying them to theories of imperative programming, including Hoare logic, weakest preconditions, and the refinement calculus.

Refinement as Inclusion of Predicates over Programs

- Computer Science
- 2012

An approach to refinement is described that formalizes the syntax and semantics of the target programming language and concludes with a predicate that characterizes a unique program in explicit syntactic form, from which the program text is obtained.

A Tutorial Introduction to CSP in Unifying Theories of Programming

- Computer SciencePSSE
- 2004

This work gives a tutorial introduction to the theory of alphabetised relations, and its sub-theory of designs, and illustrates the ideas by applying them to theories of imperative programming, including Hoare logic, weakest preconditions, and the refinement calculus.

From Predicates to Programs: The Semantics of a Method Language

- Computer ScienceElectron. Notes Theor. Comput. Sci.
- 2007

Formalisation of B in Isabelle/HOL

- Computer ScienceB
- 1998

This work aims at a foundation to formalise the full abstract machine notation, in order to produce a formally checked proof obligation generator, based on the B-Book.

Automated Reasoning with Restricted Intensional Sets

- Computer ScienceJ. Autom. Reason.
- 2021

A decision procedure for a first-order logic language offering both extensional and (a restricted form of) intensional sets (RIS).