No description
Find a file
Alexandre Duret-Lutz 0678d1a662 change the version from 2.1.1a to 2.1.1.dev for Debian
Fixes #186.

* configure.ac, NEWS: Update version.
2016-09-23 15:04:41 +02:00
bench * bench/dtgbasat/README: Update references. 2016-09-21 13:56:48 +02:00
bin genltl: fix typo in --help 2016-09-15 15:36:53 +02:00
buddy [buddy] fix an undefined behavior 2016-07-27 19:47:30 +02:00
debian * debian/python3-spot.examples: Fix wildcard. 2016-02-17 14:31:22 +01:00
doc simplify: rewrite GF(a & GFb) as G(Fa & Fb) 2016-09-22 17:37:55 +02:00
elisp org: show how to implement Kripke structures 2016-07-27 16:21:03 +02:00
lib update gnulib 2016-07-29 10:59:21 +02:00
m4 update gnulib 2016-07-29 10:59:21 +02:00
python python: make it possible to modify edges during iteration 2016-07-29 16:09:54 +02:00
spot simplify: rewrite GF(a & GFb) as G(Fa & Fb) 2016-09-22 17:37:55 +02:00
tests simplify: rewrite GF(a & GFb) as G(Fa & Fb) 2016-09-22 17:37:55 +02:00
tools help2man: update to 1.47.4 2016-09-03 19:54:08 +02:00
utf8 nullptr cleanup for -Wzero-as-null-pointer-constant 2015-09-26 23:07:40 +02:00
.checklog maint: add .checklog 2012-04-11 12:27:09 +02:00
.dir-locals.el workaround bad interactions between magit and whitespace-mode 2015-11-14 14:15:49 +01:00
.gitignore rename src/ as spot/ and use include <spot/...> 2015-12-04 20:13:59 +01:00
AUTHORS * AUTHORS: Add Laurent Xu. 2016-03-10 17:40:46 +01:00
ChangeLog Rename ChangeLog as ChangeLog.1 and leave an empty ChangeLog. 2012-03-12 16:41:32 +01:00
ChangeLog.1 Rename ChangeLog as ChangeLog.1 and leave an empty ChangeLog. 2012-03-12 16:41:32 +01:00
configure.ac change the version from 2.1.1a to 2.1.1.dev for Debian 2016-09-23 15:04:41 +02:00
COPYING Upgrade GPL v2+ to GPL v3+. 2012-10-12 22:05:18 +02:00
HACKING org: document explicit vs. on-the-fly 2016-07-26 11:26:16 +02:00
Makefile.am Remove obsolete ACLOCAL_AMFLAGS definition. 2016-02-03 16:51:24 +01:00
NEWS change the version from 2.1.1a to 2.1.1.dev for Debian 2016-09-23 15:04:41 +02:00
README configure: support --enable-glibgxx-debug 2016-07-24 00:07:04 +02:00
THANKS relabel: do not unregister old AP that are also new 2016-07-07 15:57:14 +02:00

Overview
========

Spot is a model-checking library developed collaboratively by LRDE
and LIP6. It provides algorithms and data structures to implement
the automata-theoretic approach to LTL model checking.

It is mainly meant to be used as a C++ library, but it also comes with
a few handy command-line utilities, and some Python bindings.

Keeping in touch
================

If you have questions regarding Spot, a bug reports, please send them
to <spot@lrde.epita.fr>.  This is a public mailing list which you may
subscribe to at https://www.lrde.epita.fr/mailman/listinfo/spot but you
should feel free to post without subscribing.

We also run an extremely low traffic list for announcements of
new releases of Spot.  You may subscribe to that list at
https://www.lrde.epita.fr/mailman/listinfo/spot-announce


Installation
============

Requirements
------------

Spot requires a C++11-compliant compiler.
G++ 4.8 or later, as well as Clang++ 3.5 or later should work.

Spot expects a complete installation of Python (version 3.3 or later).
Especially, Python's headers files should be installed.  If you don't
have Python installed, and do NOT want to install it, you should run
configure with the --disable-python option (see below).

Optional third-party dependencies
----------------------------------

If the SAT-solver glucose is found on your system, it will be used by
our test suite to test our SAT-based minimization algorithm.

Spot used to distribute a modified version of LBTT (an LTL to Büchi
test bench), mostly fixing errors reported by recent compilers.
However Spot now distributes its own reimplementation of LBTT, called
ltlcross, so the use of LBTT is completely optional.  The last
modified version of LBTT we used to distribute can now be found at
  http://www.lrde.epita.fr/dload/spot/lbtt-1.2.1a.tar.gz
If some lbtt binary is found on your system, it will be used in the
test suite in addition to ltlcross.


Building and installing
-----------------------

Spot follows the traditional `./configure && make && make check &&
make install' process.  People unfamiliar with the GNU Build System
should read the file INSTALL for generic instructions.

In addition to its usual options, ./configure will accept some
flags specific to Spot:

  --disable-python
    Turn off the compilation of Python bindings.  These bindings
    offers a convenient interface when used in an IPython notebook,
    and are also used to build the CGI script that translates LTL
    formulas on-line.  You may safely disable these, especially if you
    do not have a working Python 3.2+ installation or if you are
    attempting some cross-compilation.

  --enable-devel
    Enable debugging symbols, turn off aggressive optimizations, and
    turn on assertions.  This option is effective by default in
    development versions (version numbers ending with a letter).
    It is equivalent to
      --enable-debug
      --enable-warnings
      --enable-assert
      --enable-optimizations=-O
  --disable-devel
    Disable development options.  This is the case by default in
    releases (version numbers NOT ending with a letter).
    It is equivalent to
      --disable-debug
      --disable-warnings
      --disable-assert
      --enable-optimizations

   --enable-glibgxx-debug
     Enable the debugging version libstdc++
     https://gcc.gnu.org/onlinedocs/libstdc++/manual/debug_mode_semantics.html
     Note that the debugging version og libstdc++ is incompatible with
     the regular version.  So if Spot is compiled with this option, all
     client code should be compiled with -D_GLIBCXX_DEBUG as well.  This
     options should normally only be useful to run Spot's test-suite.

Here are the meaning of the fine-tuning options, in case
--enable/disable-devel is not enough.

  --disable-assert
  --enable-assert
    Control assertion checking.

  --disable-warnings
  --enable-warnings
    Whether warnings should be output.  Note that during development
    we consider warnings to be errors.

  --disable-debug
  --enable-debug
    Whether to compile extra debugging code.

  --enable-optimizations
  --enable-optimizations=FLAGS
  --disable-optimizations
    Whether the compilation should be optimized.  When FLAGS are
    given, use these as optimization flags.  Otherwise, pick working
    flags from a built-in list.


Documentation
=============

Some documentation can be found in the doc/ directory.

- doc/spot.html/ contains documentation for the C++ library.

- doc/tl/tl.pdf contains documentation about the various temporal
  logic operators supported by Spot

"make install" will install man pages for command-line tools.  (These
man pages can also be found in the spot/bin/man/ subdirectory of the
source tree.)  Additional documentation about these tools can be found
in doc/userdoc/, or online at https://spot.lrde.epita.fr/tools.html



Layout of the source tree
=========================

Core directories
----------------

spot/             Sources for libspot.
   graph/         Graph representations.
   ltsmin/        Interface with DiVinE2 and SpinS.  (Not part of libspot.)
   kripke/        Kripke Structure interface.
   tl/            Temporal Logic formulas and algorithms.
   misc/          Miscellaneous support files.
   parseaut/      Parser for automata in multiple formats.
   parsetl/       Parser for LTL/PSL formulas.
   priv/          Private algorithms, used internally but not exported.
   ta/            TA objects and cousins (TGTA).
   taalgos/       Algorithms on TA/TGTA.
   twa/           TωA objects and cousins (Transition-based ω-Automata).
   twaalgos/      Algorithms on TωA.
      gtec/       Couvreur's Emptiness-Check.
bin/              Command-line tools built on top of libspot.
   man/           Man pages for the above tools.
tests/            Test suite.
   core/          Tests for libspot and the binaries.
   ltsmin/	  Tests for the DiVinE2/SpinS interface.
   python/        Tests for Python bindings.
   sanity/        Tests for the coherence of the source base.
doc/              Documentation for Spot.
   org/           Source of userdoc/ as org-mode files.
   tl/            Documentation of the Temporal Logic operators.
   userdoc/       HTML documentation about the command-line tools.
   spot.html/     HTML reference manual for the library.
bench/            Benchmarks for ...
   dtgbasat/      ... SAT-based minimization of DTGBA,
   emptchk/       ... emptiness-check algorithms,
   ltl2tgba/      ... LTL-to-Büchi translation algorithms,
   ltlcounter/    ... translation of a class of LTL formulas,
   ltlclasses/    ... translation of more classes of LTL formulas,
   spin13/        ... compositional suspension and other improvements,
   stutter/       ... stutter-invariance checking algorithms,
   wdba/          ... WDBA minimization (for obligation properties).
python/           Python bindings for Spot and BuDDy
   ajax/          LTL-to-TGBA translator with web interface, using Javascript.

Third party software
--------------------

buddy/            A customized version of BuDDy 2.3 (a BDD library).
ltdl/             Libtool's portable dlopen() wrapper library.
lib/              Gnulib's portability modules.
utf8/             Nemanja Trifunovic's utf-8 routines.
elisp/		  Related emacs modes, used for building the documentation.

Build-system stuff
------------------

m4/      M4 macros used by configure.ac.
tools/   Helper scripts used during the build.
debian/  Configuration file to build Debian packages.

-------------------------------------------------------------------------------
Local Variables:
mode: text
coding: utf-8
End:

 LocalWords:  Python's BuDDy LBTT LTL Büchi lbtt gspn DIR GreatSPN Soheib Yann
 LocalWords:  Baarir Thierry Mieg CVS Università di Torino devel src libspot ac
 LocalWords:  ltlast ltlenv ltlparse ltlvisit  misc tgba TGBA tgbaalgos
 LocalWords:  gtec Tarjan doc html PDF spotref pdf cgi ELTL LRDE tl
 LocalWords:  CGI ltl iface BDD Couvreur's emptchk kripke Kripke saba vm
 LocalWords:  eltlparse eltltest SABA sabaalgos sabatest ssp ltlcouter scc SCC
LocalWords:  optimizations kripkeparse  Automata IPython subdirectory
LocalWords:  neverparse ltlcounter ltlclasses parallelizing automata
LocalWords:  wdba WDBA ajax dve DiVinE ltdl Libtool's dlopen userdoc
LocalWords:  parseaut parsetl priv TGTA taalgos twa twaalgos dtgbasat
LocalWords:  DTGBA compositional invariance ltsmin SpinS Gnulib's