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… 
Chapter I. Introduction 1 Motivation
  • Computer Science
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
TLDR
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
Formalisation of B in Isabelle/HOL
TLDR
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
TLDR
A decision procedure for a first-order logic language offering both extensional and (a restricted form of) intensional sets (RIS).
...
...