JAIST, Research Center for Software Verification, Japan
Systematic construction and verification of specifications is still one of the most important challenges in system development aka engineering. We present our approach to this problem, an executable algebraic specification language, CafeOBJ. Based on rigorous logical semantics (institutions) and equipped with high level programming concepts (e.g., abstraction, inheritance, parametrization), the language implements equational logic by rewriting. Being executable by rewriting allows to write both specification and verification within the same language.
After a hands-on introduction to CafeOBJ with some programming challenges, we will present some recent work concerning representation of infinite streams and verification of safety and liveness properties.