CafeOBJ Report The Language, Proof Techniques, and Methodologies for Object-oriented Algebraic Specification
This is a report on the formal definition of the CafeOBJ algebraic specification language, which is a modern successor to the famous algebraic language OBJ. While the equational core of CafeOBJ is just a reshaping of OBJ, CafeOBJ significantly extends OBJ by incorporating several recent major developments in the area of algebraic specification, such as behavioural specification and rewriting logic. The definition of the language parallels its logical semantics based on the so-called institutions, which also provide a methodological framework for structuring the presentation of the basic constructs of the language and their semantics. This report presents all the basic constructs of the language together with their semantics and addresses both the programming in-the-small and in-the-large levels. However, it also discusses proof systems and technologies, as well as methodologies. Examples are provided throughout the report as intuitive support for the definitions of the constructs and for illustrating proof techniques and methodologies.