CafeOBJ is a most advanced formal specification language which inherits many advanced features (e.g. flexible mix-fix syntax,powerful and clear typing system with ordered sorts, parameteric modules and views for instantiating the parameters, and module expressions, etc.) from OBJ (or more exactly OBJ3) algebraic specification language.

CafeOBJ is a language for writing formal (i.e. mathematical) specifications of models for wide varieties of software and systems, and verifying properties of them. CafeOBJ implements equational logic by rewriting and can be used as a powerful interactive theorem proving system. Specifiers can write proof scores also in CafeOBJ and doing proofs by executing the proof scores.

CafeOBJ has state-of-art rigorous logical semantics based on institutions. The CafeOBJ cube shows the structure of the various logics underlying the combination of the various paradigms implemented by the language. Proof scores in CafeOBJ are also based on institution based rigorous semantics, and can be constructed using a complete set of proof rules.


  • Intro to CafeOBJ in English and Japanese - Thanks to Takahiro Seino there is now an introduction to CafeOBJ targeting beginners. This introduction is available in both English and Japanese. I have added links to the Introduction on the Documentation Page and in the Documentation menu. Thanks to Seino-san for his contribution.
  • Tutorial: Lists - This second in a series of tutorials will introduce you to functional programming the CafeOBJ way, in particular will we discuss lists and various ways to implement, use, and abuse the. We expect a running CafeOBJ interpreter being available. For a first steps tutorial, please consult .
  • CafeOBJ 1.5.3 released - We have released a new version of CafeOBJ, which incorporates besides other fixes the following changes: interpreter functions ‘describe module tree’ (new) – prints out module importing structure ‘show modules’ – does not print out hidden modules new abbreviations: tr, ctr, pd, pds, bpd, bpds (for trans, ctrans, pred, preds, bpred, bpreds, respectively) new meta […]
  • Tutorial: First steps in CafeOBJ - This tutorial will guide you through starting the CafeOBJ interpreter, and some simple calculations. We will also give a very short introduction to the logic background of CafeOBJ, and the basic structure of the language.
  • CafeOBJ 1.5.2 released - We have released a new version of CafeOBJ. It includes fixes to the wrapper on Unix/Mac so that it can deal with spaces in paths. Furthermore, the ls command is now supported on Windows (but not on UNC path). The binary builds for 1.5.1 contain already all the fixes, so for now we do not […]