Overview

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.

Contact

Please use info@cafeobj.org to contact the CafeOBJ Team. Bug reports, issues and proposals can be submitted to our bug tracker at tracker.cafeobj.org.

For improvements of the built-in help systems (command ?), and the reference manual, please use the Reference Manual Wiki.

News

  • 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 […]
  • CafeOBJ 1.5.1 released - We have released a new version of CafeOBJ. The only fix included in this point release is support for UNC path on Windows. Furthermore, we now provide experimental SBCL based Windows builds. Please see theĀ  for the new releases.