The FoCaLiZe system provides means for the developers to formally express their specifications and to go step by step (in an incremental approach) to design and implementation while proving that this implementation meets its specification. The FoCaLiZe language offers high level mechanisms: multiple inheritance, late binding, redefinition, parametrization, etc. Confidence in proofs submitted by developers or automatically done relies on formal proof verification. FoCaLiZe also provides some automation of documentation production and management. A formal specification can be built by declaring names of functions and values and introducing properties. Then, design and implementation can incrementally be done by adding definitions of functions and proving that the implementation meets the specification. Thus, developing in FoCaLiZe is a kind of refinement process from formal model to design and code, completely done within FoCaLiZe . Taking the global development in consideration within the same environment brings some conciseness, helps documentation and reviewing.
FoCaLiZe is free software, distributed under the BSD licence.
FoCaLiZe version 0.1.0 has been released in January 2009.