B-Method
A system for rigorous or formal development of software using the notion of Abstract Machines to specify and design software systems. The B-Method is supported by the B-Toolkit.
Abstract Machines are specified using the Abstract Machine Notation (AMN) which is in turn based on the mathematical theory of Generalised Substitutions.