+------------------------------------------------------------------------------+
| McScM - Read Me                                                              |
+------------------------------------------------------------------------------+


      McScM (Model Checker for Systems of Communicating fifo Systems)
      is a small tool for the safety verification of systems of
      communicating fifo machines (CFM). It's goal is the model
      checking of network protocols (given as CFM) with respect to
      a given set of undesired behaviours or "bad" states. The main
      difference to other tools for communicating automata is the
      modeling of ASYNCHRONOUS RELIABLE fifo channels which is
      indispensable for checking protocols that presuppose a reliable
      connection between the peers (for example as supplied by TCP).


The latest version and pointers to underlying theoretical publications can be
found at the following webpage:

      http://altarica.labri.fr/forge/projects/mcscm

The tool is distributed as source-code and as pre-compiled binary release for
several platforms (see below).


Authors / Copyright / Licensing
--------------------------------------------------------------------------------

This open-source software is released under a 2-clause BSD-like license.  Please
refer to the files AUTHORS and LICENSE for further details.


First Steps
--------------------------------------------------------------------------------

To get a first impression of the tool, start the shell script test/benchmark.sh
which will run through a set of example protocols, and compare the two different
implemented refinement techniques ("apinv-bwd" vs "upinv-fwd").

Please consult the user manual (man/mcscm.1) for more details on the tool.  Use
the standard man command to display the manual (man ./man/mcscm.1).  The binary
releases also include html and pdf versions of the manual.   Answers to some
frequently asked questions can be found in the file FAQ.


Binary Releases
--------------------------------------------------------------------------------

We distribute the tool with a set of example SCM models pre-compiled for Linux
and MacOS.

Linux: compiled and tested under GNU/Linux 2.6
       includes statically and dynamically linked binaries for x86-32 and x86-64

MacOS: compiled and tested under MacOS X 10.6
       includes dynamically linked binaries for x86-32 and x86-64

Please contact the authors for requesting packages prepared for other platforms.


File layout:

   --+
     +-bin/
     |   +- mcscm.native           the McScM tool
     |  [+- mcscm.native.static    static version (linux only)]
     |
     +-examples/                   a set of example protocols
     |
     +-man/                        the manual (roff, ascii, html and ps)
     |
     +-test/benchmark.sh           the benchmark script
     |
     +- AUTHORS
     +- FAQ
     +- LICENSE
     +- README


Source Code Releases
--------------------------------------------------------------------------------

The tool is programmed in Objective Caml and uses several 3rd-party libraries:

   - camllib, fixpoint, latticeAutomata, scm by B. Jeannet & T. Le Gall
     http://gforge.inria.fr/projects/bjeannet/
     all licensed under LGPL

* Build requirements:

  <required>    Objective Caml 3.12 or later       http://caml.inria.fr/ocaml/
  [optional]    Mdocml's mandoc 1.10.5 or later    http://mdocml.bsd.lv/

* Build instructions:

  1) adjust config.mk to your local installation (if Objective Caml 3.12 tools
     are not in your PATH)

  2) run `make' (or `make all' to also build documentation and manuals)

  As an alternative to steps 1 and 2, you may adjust config.mk variables on the
  make command-line, for instance `make OCAMLBUILD=<path to ocamlbuild 3.12>'.


--------------------------------------------------------------------------------
$LastChangedDate: 2011-04-06 11:07:54 +0200 (Wed, 06 Apr 2011) $
