Foundations of the B method
Résumé
B is a method for specifying, designing and coding software systems. It is based on the Zermelo-Fraenkel set theory with choice axiom, the concept of generalized substitution and on structuring mechanisms (machine, refinement, implementation). The concept of refinement is the key notion for developing B models of (software) systems in an incremental way. B activities focus on writing mathematical proofs in order to justify developed B models. Proofs of B models makes the user (designer or specifier) convinced that the (software) system is effectively correct. We provide a survey of the underlying logic of the B method and the semantical concepts related to the B method; we detail the B development process partially supported by the mechanical engine of the prover.