2014-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.4

	* NEWS, configure.ac, doc/org/tools.org: Bump version.

2014-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: update bibliographic references

	* doc/org/satmin.org, src/bin/man/dstar2tgba.x, src/bin/man/ltl2tgba.x:
	Cite the FORTE'14 paper.
	* doc/org/tools.org, src/bin/man/ltl2tgba.x: Replace the VECOS'11
	citation by IJCCBS'14.
	* src/bin/man/ltl2tgba.x: Cite SPIN'13.

2014-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlast/multop.hh: Typo in comment.

2014-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: remove an incorrect simplification rule

	Fortunately was only enabled with the
	ltl_simplifier_options::favor_event_univ option, which cannot yet be
	turned on from the command-line tools.

	* src/ltlvisit/simplify.cc, doc/tl/tl.tex: Remove the rule.
	* src/ltltest/eventuniv.test: Adjust.
	* NEWS: Mention the bug.

2014-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	llt2tgba_fm: fix translation of ":" in some SERE

	* src/tgbaalgos/ltl2tgba_fm.cc: Here.
	* src/ltltest/reduccmp.test: Add a test case.
	* NEWS: Mention it.

2014-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: fix 3 incorrect simplification rules

	* src/ltlvisit/simplify.cc: Remove two incorrect rules, and
	partially disable another one.
	* doc/tl/tl.tex: Reflect the change.
	* src/ltltest/reduccmp.test: Likewise.
	* src/ltltest/equals.cc: Add safety checks to catch such errors in the
	future.
	* NEWS: Mention the bug.

2014-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Fix So[u]heib's name at his request.

2014-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2ta: fix a crash with --ta.

	* src/taalgos/tgba2ta.cc: Do not assume the input is an sba.
	* src/tgbatest/ltl2ta2.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* NEWS: Mention the fix.

2014-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes.

2014-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust to Swig 3.0.

	* wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py: Use
	Boolean instead of integers.

2014-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/dstarparse/nra2nba.cc: Fix comment.

2014-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: Add a degen-lskip option.

	Also generalize the degen-lcache option.

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add the option.
	* src/bin/spot-x.cc: Document it.
	* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: Implement it.
	* src/tgbatest/ltlcross2.test: Add a test configuration.
	* src/tgbatest/degenlskip.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add degenlskip.test.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlast: move all accessor methods to headers to help the optimizer

	* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
	src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/binop.cc,
	src/ltlast/binop.hh, src/ltlast/bunop.cc, src/ltlast/bunop.hh,
	src/ltlast/constant.cc, src/ltlast/constant.hh, src/ltlast/multop.cc,
	src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh: Move all
	one-line accessors methods like nth(), child(), op()... from *.cc files
	to their respective *.hh files.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Reword last paragraph.

2014-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2.3a.

2014-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.3

	* NEWS, configure.ac, doc/org/tools.org: Update version.

2014-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/dtgbasat/README: Update glucose URL.

2014-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: mention recent fixes.

2014-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around the clang version installed with MacOS X 10.9.

	Apparently their hash tables store the hash functions in a const
	member, and this requires a user-supplied default constructor.
	Reported by Étienne Renault.

	* src/misc/hash.hh: Add an empty constructor to all hash functions.

2014-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add missing const.

	* src/kripke/kripkeexplicit.cc: Add missing const, reported by Etienne
	Renault using Apple's clang version that is installed with OS X 10.9.

2014-02-10  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	testsuite: find files when building in remote directory

	* doc/Makefile.am, src/ltltest/defs.in, src/ltltest/latex.test: Here.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: adjust SPOT_SATSOLVER default for glucose 3.0

	* src/misc/satsolver.cc: Add the "-model" option.
	* NEWS, doc/org/satmin.org, src/bin/man/spot-x.x: Mention it.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_setup.cc: Bump copyright year.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: document the SPOT_SATLOG envvar

	* doc/org/satmin.org, src/bin/man/spot-x.x: Document it.
	* NEWS: Mention it.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	timer: also consider the time spent in child processes

	* src/misc/timer.hh: Fix.
	* NEWS: Mention the bug.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: more statistics.

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Record
	statistics about intermediate automata if SPOT_SATLOG is set to some
	filename, and display intermediate automata if SPOT_SATSHOW is set.
	* bench/dtgbasat/stat.sh, bench/dtgbasat/stats.sh,
	bench/dtgbasat/tabl.pl, bench/dtgbasat/tabl1.pl,
	bench/dtgbasat/tabl2.pl, bench/dtgbasat/tabl3.pl,
	bench/dtgbasat/tabl4.pl: Gather these extra statistics.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: limit number of iterations

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Compute the
	actual number of reachable states in the produced automaton to prepare
	the next iteration.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/dtgbasat/README: Typo.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/satmin2.test, src/tgbatest/Makefile.am: New test.

2014-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Revert "* src/tgbaalgos/dtbasat.cc: Better encoding for weak SCCs."

	This was simply wrong.

	* src/tgbaalgos/dtbasat.cc: reverts commit
	fc5a00d24d5964d6f6a48d362ecbdec357eaf154.

2014-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: more debug.

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: More debuging
	code.

2014-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: factor the creation of temporary files

	* src/misc/satsolver.hh, src/misc/satsolver.cc: Present
	the SAT solver as an object with a stream interface, to
	prepare for a better implementation.
	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc:
	Adjust to the new interface, removing all the handling
	of temporary files.
	* src/tgbatest/readsat.cc: Adjust.

2014-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: fix some non-determinism of the encoding

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Rewrite the
	loops that number the states of the reference automaton so that
	they declare CNF variable numbers in the same order as the states
	of the automaton.

2014-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Call glucose with -verb=0.

	* src/misc/satsolver.cc: Call glucose with -verb=0.
	* src/bin/man/spot-x.x: Document it.

2014-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/dtbasat.cc: Better encoding for weak SCCs.

2014-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Fix UP links and center them on the page.

	* doc/org/init.el.in: Center links.
	* doc/org/csv.org, doc/org/dstar2tgba.org, doc/org/genltl.org,
	doc/org/ioltl.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org,
	doc/org/ltlcross.org, doc/org/ltlfilt.org, doc/org/randltl.org,
	doc/org/satmin.org: Fix links.  Reported by Akim Demaille.

2014-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix spurious failre with Pandas 0.13.

	* src/tgbatest/ltlcross4.test: Work around Pandas 0.13.
	* NEWS: Mention it.

2014-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent fixes.

2014-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: gracefully handle the absence of unary or binary operators.

	* src/ltlvisit/randomltl.cc: Fix generation of formulas when unary or
	binary operators are missing.
	* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh
	(destroy_atomic_prop_set): New function.
	* src/bin/randltl.cc: Use it, and also honnor --boolean-priorities
	when generating SEREs.
	* src/ltltest/rand.test: New file.
	* src/ltltest/Makefile.am: Add it.

2014-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix warning of Clang-3.5 against Doxygen comments.

	* src/dstarparse/public.hh: Avoid LaTeX in comments to please clang-3.5.
	* src/tgbaalgos/isdet.hh: Typo in Doxygen comment.

2014-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlfilt.org: Typo, reported by Fabrice Kordon.

2014-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	length: slight simplification

	* src/ltlvisit/length.cc (length_boolone_visitor): Simplify.
	* NEWS: Mention Alexandre's fix.

2014-02-03  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	length_boolone: fix inconsistency

	* src/ltlvisit/length.cc: Consider length of all Boolean
	expressions combined in a multop as one.
	* src/ltltest/length.test: Test it.

2014-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better support for Python 3

	* wrap/python/spot.i (spot::ltl::parse_error_list,
	spot::tgba_parse_error_list): Add a __bool__ method, that is used
	instead of __nonzero__ in Python 3.
	* wrap/python/tests/interdep.py, wrap/python/tests/parsetgba.py:
	Force destruction order.
	* NEWS: Update.

2014-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2.2a.

2014-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.2

	* NEWS, configure.ac, doc/org/tools.org: Set version to 1.2.2.

2014-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: fix block_count() on 0-sized bit-vectors

	The bug was introduced by 522373984cd5100890b8fb641861fd1139b9e028.

	* src/misc/bitvect.hh (block_count): Here.
	* src/tgbatest/dstar.test: Add a test case.

2014-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc: Do not copy the unicity table.

2014-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Workaround another g++-4.0.1 bug on Darwin.

	* src/ltlast/formula_tree.hh: Mark nodes with SPOT_API.

2014-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update with recent fixes.

2014-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: fix some issues observed on 32bit architectures.

	* src/misc/bitvect.cc, src/misc/bitvect.hh: Do
	not assume the two bitvect with the same size have
	the same number of allocated blocks.  Fix an
	assertion in extra_range().

2014-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: Fix compilation on 32-bits hosts.

	* src/misc/bitvect.cc: Conditionally declare fnv<8>, so that the C++
	parser does not choke on 14695981039346656037UL when compiling on a
	32bit host.  Problem observed with g++ 4.0.1 and 4.2.1 on Darwin.

2014-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Workaround GCC 4.0.1 on the Darwin builds.

	* src/misc/bitvect.hh: Remove SPOT_API from class forward declarations.
	* src/ltlast/nfa.hh: Likewise.

2014-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Alexandre Lewkowicz

2014-01-13  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	python: use new print syntax.

	* wrap/python/tests/alarm.py: Here.

2014-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/eltlparse/eltlscan.ll (_atoi): Fix range checking.

2014-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse, eltlparse: avoid unnecessary calls to strlen().

	* src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh (flex_set_buffer):
	Take a std::string as argument and call yy_scan_bytes() with
	the string size() instead of calling yy_scan_string() which does
	strlen() on the supplied string.
	* src/ltlparse/ltlparse.yy: Adjust calls.
	* src/eltlparse/eltlscan.ll, src/eltlparse/parsedecl.hh,
	src/eltlparse/eltlparse.yy: Use a similar interface.  This
	also fixes a memory leak as the scanned buffer was not
	released.

2014-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/taalgos/emptinessta.cc: Include <cstdlib> for abs().

2013-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add missing #include.

	* src/tgbaalgos/cutscc.cc, src/tgbaalgos/ltl2taa.cc:  Include
	<algorithm> for set_difference and binary_search.

2013-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Upgrade to gnulib 23eecb48e39afd0d267d64d40ba6bf97aa865e13.

	* lib/Makefile.am, lib/time.in.h, m4/gettimeofday.m4, m4/time_h.m4:
	Update.

2013-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Upgrade to gnulib 6b8f1dd1a21ce49319795391e21adf645b64db3c.

	* m4/absolute-header.m4: New file.
	* lib/Makefile.am, lib/argp-fmtstream.h, lib/argp.h, lib/error.c,
	lib/gethrxtime.h, lib/intprops.h, lib/localcharset.c,
	lib/quotearg.c, lib/stdio.in.h, lib/strerror-override.h,
	lib/sys_time.in.h, lib/timespec.h, lib/unistd.in.h, lib/verify.h,
	lib/wctype.in.h, lib/xalloc.h, lib/xsize.h, lib/xtime.h,
	m4/configmake.m4, m4/extern-inline.m4, m4/gnulib-comp.m4,
	m4/include_next.m4, m4/unistd_h.m4: Update to today's gnulib.

2013-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaunion.hh: Remove unused private member.

2013-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2.1a

2013-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.1.

	* NEWS, configure.ac, doc/org/tools.org: Bump version to 1.2.1.

2013-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: support multi-line CSV fields.

	* src/bin/common_finput.cc (job_processor::process_stream): Read
	multi-line CSV fields.
	* src/ltltest/lbt.test, src/tgbatest/nondet.test: Add tests.

2013-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: end CSV lines with \n, not \r\n

	* src/bin/ltlcross.cc (print_stats_csv): Revert the recent
	addition of \r, it is caussing too many issues.
	* NEWS: Mention it.

2013-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: Add a --csv-escape option and document CSV I/O.

	* src/bin/common_output.cc, src/bin/common_output.hh:
	(output_formula_checked, aut_stat_printer): New.
	* src/bin/genltl.cc, src/bin/randltl.cc, src/bin/ltlfilt.cc: Call
	output_formula_checked() instead of output_formula().
	* src/bin/ltl2tgba.cc: Use aut_stat_printer and add option --csv-escape.
	* doc/org/csv.org: New file to document CSV I/O.
	* doc/Makefile.am: Add it.
	* doc/org/ioltl.org, doc/org/ltlfilt.org, doc/org/ltl2tgba.org,
	doc/org/tools.org: Link to csv.org

2013-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add support for reading formulas from CSV files.

	* NEWS: Mention it.
	* src/bin/common_finput.cc, src/bin/common_finput.hh: Implement it.
	* src/bin/common_output.cc, src/bin/common_output.hh: Add the %< and
	%> escapes.
	* src/bin/ltlfilt.cc: Connect %< and %> to the
	prefix andsuffix of the input, and document them.
	* src/tgbatest/det.test, src/tgbatest/nondet.test: Simplify these
	tests that read CSV files.

2013-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Typo

2013-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Typos.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: report statistics about Rabin and Streett automata

	* src/bin/ltlcross.cc: Implement it.
	* src/bin/man/ltlcross.x, doc/org/ltlcross.org, NEWS: Document it.
	* src/tgbatest/ltl2dstar.test, src/tgbatest/ltlcross3.test: Test it.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: support --products=+N

	* src/bin/ltlcross.cc: Implement it.
	* NEWS, doc/org/ltlcross.org: Document it.
	* src/tgbatest/ltlcross3.test: Test it.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/dtgbasat/README: Do not mention VMCAI'14.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add suggestions for bibliographic references

	* doc/org/tools.org, src/bin/man/genltl.x, src/bin/man/ltl2tgba.x,
	src/bin/man/ltl2tgta.x, src/bin/man/ltlcross.x, src/bin/man/ltlfilt.x,
	src/bin/man/randltl.x: Add bibliographic references, mostly to
	the ATVA'13 paper.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: report exit_status and exit_code columns in CSV and JSON

	* src/bin/ltlcross.cc: Report exit_status and exit_code columns in CSV
	and JSON files.  Also output lines for failed translations, and add
	a --omit-missing option to disable that.  Move the time column right
	after exit_status and exit_code.
	* src/bin/man/ltlcross.x: Document each column of the output.
	* bench/ltl2tgba/tools: Use the "{name}cmd" notation.
	* bench/ltl2tgba/sum.py: Adjust to the new columns.
	* bench/ltl2tgba/README: Update to point to the man page for a
	description of the columns.
	* bench/ltl2tgba/Makefile.am: Build results.pdf as said announced in
	README.
	* bench/spin13/html.bottom: Update code to ignore these two new
	columns and lines with null values.
	* src/tgbatest/ltlcross3.test: Add tests.
	* doc/org/ltlcross.org: Adjust examples.
	* NEWS: Mention this.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: report missing input/output sequence

	* src/bin/ltlcross.cc: Fix it.
	* src/tgbatest/ltlcross3.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* NEWS: Mention it.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: add some missing "set -e"

	* src/ltltest/lbt.test, src/ltltest/utf8.test,
	src/tgbatest/dbacomp.test, src/tgbatest/ltlcross.test,
	src/tgbatest/ltlcross2.test, src/tgbatest/ltlcrossce.test: Add set -e.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: support short names

	* NEWS: Mention it.
	* doc/org/ltlcross.org: Document it.
	* src/bin/ltlcross.cc: Implement it.
	* src/tgbatest/Makefile.am, src/tgbatest/defs.in,
	src/tgbatest/ltlcross4.test: Test it.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: follow RFC 4180 for CSV output.

	* src/misc/escape.cc, src/misc/escape.hh (escape_rfc4180): New
	function.
	* src/bin/ltlcross.cc: Do not output space after ',', use
	"\r\n" for end of line, and use escape_rfc4180().
	* NEWS: Mention it.

2013-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Show how to call ltl3dra and fix typos.

2013-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Typos, reported by František Blahoudek.

2013-10-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltl2tgta.cc: Simplify using spot::translator().

2013-10-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* README: Document utf8/.

2013-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Typo.

2013-10-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlfilt.org: Typo.

2013-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/relabel.cc: Add more comments.

2013-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2a

2013-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.

	* NEWS, configure.ac, doc/org/tools.org: Bump version to 1.2.

2013-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Update version requirements for Bison and SWIG.

2013-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix uninitialized variables in spot::postprocessor.

	* src/tgbaalgos/postproc.cc: Initialize option
	variables when opt is not given.

2013-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/finite.test: Work around Darwin's wc.

2013-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for Bison 3.0.

	We still want to remain compatible with Bison 2.7 so instead of fixing
	all the new errors reported by 3.0 we silence some warning.  We should
	fix these for good once Bison 3.0 is more widespread.

	* m4/bison.m4: New file. Test if bison support -Wno-empty-rule and
	-Wno-deprecated.  Define BISON and BISON_EXTRA_FLAGS.
	* configure.ac: Do not test for yacc, use the above test instead.
	* src/dstarparse/Makefile.am, src/eltlparse/Makefile.am,
	src/kripkeparse/Makefile.am, src/ltlparse/Makefile.am,
	src/neverparse/Makefile.am, src/tgbaparse/Makefile.am: Use BISON
	and BISON_EXTRA_FLAGS.
	* src/ltlparse/ltlparse.yy: Fix or and remove useless %right/%nonassoc
	settings.
	* src/eltlparse/eltlparse.yy: Likewise, and remove "%pure-parser".

2013-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around some configurations of latexmk.

	* src/ltltest/latex.test: Use latexmk -pvc- like in doc/tl/Makefile.am.
	Reported by Étienne Renault.

2013-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generalize implication-based simplifications for multops.

	And also speedup implication checks for Boolean expressions.

	* src/ltlvisit/simplify.cc: Improve implication-based rules
	rules for multops by checking one operand against all the
	other at once (instead of one by one).  Do not break
	Boolean expressions while performing implication checks.
	* src/ltlvisit/simplify.hh: Typo.
	* src/ltltest/reduccmp.test: More tests.

2013-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Sort comutative binops like we sort multops.

	* src/ltlast/formula.hh (is_literal): Rename as...
	(get_literal): ... this.
	(is_literal): New method.
	(formula_ptr_less_than_multop): Rename as...
	(formula_ptr_less_than_bool_first): ... this.
	* src/ltlast/binop.cc: Use formula_ptr_less_than_bool_first.
	* src/ltlast/multop.cc, src/ltlast/formula.cc: Adjust
	to renamings.

2013-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Include lib/ and config.h in ltlast/.

	* src/ltlast/Makefile.am: Include lib/ in search path.
	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/binop.cc, src/ltlast/bunop.cc,
	src/ltlast/constant.cc, src/ltlast/formula_tree.cc,
	src/ltlast/multop.cc, src/ltlast/nfa.cc,
	src/ltlast/refformula.cc, src/ltlast/unop.cc: Include
	config.h.

2013-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: implement relabeling of Boolean subexpressions.

	* src/ltlast/multop.cc, src/ltlast/multop.hh (multop::boolean_operands,
	multop::boolean_count): New methods.
	* src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh
	(relabel): Take an optional relabeling_map as parameter.
	(relabel_bse): New.
	* src/ltltest/ltlrel.test, src/ltltest/ltlrel.cc: New files.
	* src/ltltest/Makefile.am: Add them.
	* src/bin/ltlfilt.cc: Add option --relabel-bool.
	* src/ltltest/ltlfilt.test: Test it.
	* NEWS: Mention it.
	* doc/org/ltlfilt.org: Illustrate it.

2013-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/clone.cc: Use reserve() for multop.

2013-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/randomgraph.hh: Two typos, reported by Akim.

2013-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Arrange multops so that Boolean arguments come first.

	This helps recursive implication checks.  Also order
	atomic propositions with strverscmp().

	* src/ltlast/formula.hh (formula_ptr_less_than_multop,
	is_literal, atomic_prop_cmp): New.
	* src/ltlast/formula.cc (is_literal, atomic_prop_cmp): Implement them.
	* src/ltlast/multop.cc: Use formula_ptr_less_than_multop.
	* src/ltltest/isop.test, src/ltltest/ltlfilt.test,
	src/tgbatest/det.test, src/tgbatest/dstar.test,
	src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
	src/tgbatest/explpro3.test, src/tgbatest/explprod.test,
	src/tgbatest/nondet.test, src/tgbatest/tripprod.test: Adjust tests.
	* NEWS: Mention the new order.

2013-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: Add module strverscmp.

	* lib/strverscmp.c, m4/strverscmp.m4: New files.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.

2013-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix compilation with g++-4.4.7.

	* src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/reducerun.cc: Remove
	superfluous definition of state_set.  Reported by František Blahoudek.

2013-09-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/simplify.cc: Cosmetics.

2013-09-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tools: Add a --format option

	* src/bin/common_output.cc: Add option --format and implement
	it.
	* src/bin/ltlfilt.cc, src/bin/randltl.cc: Document the
	supported %-sequences.
	* src/bin/genltl.cc: Document the %-sequences, and supply
	the name of the pattern to output_formula().
	* doc/org/genltl.org, doc/org/ioltl.org, doc/org/ltlfilt.org,
	NEWS: Document it.
	* src/ltltest/latex.test: Use it.

2013-09-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add benchmark for our DTGBA SAT-minimization.

	* bench/dtgbasat/: New directory.
	* bench/Makefile.am: New file.
	* configure.ac, README: Adjust.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document SAT-based minimization

	* doc/org/satmin.org, doc/org/satmin.tex: New files.
	* doc/Makefile.am: Add them.
	* doc/org/tools.org: Point to satmin.org.
	* NEWS: Mention satmin.html.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	satdtba: optimize number of clauses of variables

	* src/tgbaalgos/dtbasat.cc: Skip variables of the form <q,q',q,q'>C or
	<q,q',q,q'>R and replace them by <q,q'>G.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgbasat: Improve handling of weaks SCC in the ref automaton

	* src/tgbaalgos/dtgbasat.cc: Here.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgbasat: get rid of the <q1,q1'>G variables

	Reuse the existing <q1,q1',q1,q1',0,0> instead.

	* src/tgbaalgos/dtgbasat.cc: Simplify.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	satmin: ignore (s,l,d2) if (s,l,d1) is already in result

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Here.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: consider common outgoing acceptance only inside an SCC

	* src/tgbaalgos/degen.cc: Here.
	* src/tgbatest/degenid.test: Add a test case that is improved
	by this.
	* src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.test: Adjust.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/dtbasat.cc: Skip clauses for trivial SCCs.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/satsolver.cc: Report when SAT-solver terminate by signal.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: catch write errors

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Throw
	exceptions on write errors.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: catch cases where nbclause > INT_MAX and report them

	* src/misc/satsolver.hh (clause_counter): New class.
	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Use it.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: use the initial state heuristic when entering SCCs

	* src/tgbaalgos/degen.cc: Implement it.
	* src/tgbatest/degenid.test: New test cases.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: make it possible to force sat-minimization

	* src/tgbaalgos/postproc.cc: Handle negative values for
	sat_minimize_ as a force option.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: two fixes for sat-minimize

	* src/tgbaalgos/postproc.cc: Compute original_acc before calling
	scc_filter(), and do not degeneralize the automaton before calling
	tba_determinize() even when building a BA.

2013-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: skip reference transitions that are out of any cycle

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Greatly reduce
	the number of clauses and variable by removing any path variable that
	reference a reference transition that is not in a SCC.

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: implement partial symmetry breaking

	Thanks to Rüdiger Ehlers for his helpful email.

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Here.

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tostring: add LaTeX output

	* src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh
	(to_latex_string): New function.
	* src/bin/common_output.cc, src/bin/common_output.hh:
	Add a --latex option.
	* doc/tl/spotltl.sty: New file.
	* doc/tl/Makefile.am: Distribute it.
	* src/ltltest/latex.test: New test.
	* src/ltltest/Makefile.am: Add it.
	* NEWS: Mention it.

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: generalize the code for reading the solution

	* src/misc/satsolver.cc, src/misc/satsolver.hh (satsolver_get_solution):
	New function, that accepts a solution split on multiple 'v ' lines.
	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc (get_solution):
	Remove, and adjust existing code to use satsolver_get_solution().
	* src/tgbatest/readsat.cc, src/tgbatest/readsat.test: New files.
	* src/tgbatest/Makefile.am: Add them.
	* src/bin/man/spot-x.x: Mention the SAT competition rules for
	the expected input/output format.

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: Add option to output Complete automata.

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Tweak set_pref()
	to also accept Any|Complete, Small|Complete, or Deterministic|Complete.
	* src/bin/common_post.hh, src/bin/common_post.cc: Add option --complete
	and set comp.
	* src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc: Pass
	comp to set_pref().
	* src/tgbaalgos/complete.cc: Preserve state-based acceptance.
	* src/tgbatest/dstar.test, src/tgbatest/ltlcross2.test,
	src/tgbatest/nondet.test: Augment tests.
	* doc/org/dstar2tgba.org, doc/org/ltl2tgba.org, NEWS: Document.

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename dba_complement() to dtgba_complement()

	* src/tgbaalgos/dbacomp.cc, src/tgbaalgos/dbacomp.hh
	(dba_complement): Rename to...
	* src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/dtgbacomp.hh
	(dtgba_complement): ... this.
	* src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
	src/tgbatest/ltl2tgba.cc, src/bin/ltlcross.cc,
	src/tgbaalgos/Makefile.am: Adjust to name change.

2013-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	satmin: cleanup interfaces and minimization loops

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtbasat.hh:
	(dtba_sat_minimize): Split into...
	(dtba_sat_synthetize, dtba_sat_minimize): These.
	(dtba_sat_minimize_dichotomy): New function.
	* src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dtgbasat.hh
	(dtgba_sat_minimize, dtgba_sat_synthetize): Likewise.
	* src/tgbatest/ltl2tgba.cc: Adjust to new interface.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh:
	Cleanup option processing for SAT options.
	* src/tgbatest/satmin.test: Adjust.
	* src/bin/spot-x.cc, src/bin/man/spot-x.x, NEWS: Document.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: disable WDBA-minimization on request

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh:
	Implement the wdba-minimize option.
	* src/bin/spot-x.cc (wdba-minimize): Document.
	* src/bin/man/spot-x.x: Update references.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: add %r to display run-time

	* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh: Add
	support for printing run-time.
	* src/bin/ltl2tgba.cc, src/bin/dstar2tgba.cc: Compute
	the run-time and show the option.
	* NEWS: Mention it.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	isdet: simplify is_deterministic(), add is_complete().

	* src/tgbaalgos/isdet.cc: Simplify determinism check.
	* src/tgbaalgos/isdet.hh, src/tgbaalgos/isdet.cc (is_complete): New
	function.
	* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh, src/bin/dstar2tgba.cc
	src/bin/ltl2tgba.cc: Add escape sequence %p to the possible statistics
	to show whether an automaton is complete.
	* src/tgbatest/nondet.test: Add a couple more tests.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: improve our algorithms

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtbasat.hh:
	Rename dba_sat_minimize to dtba_sat_minimize.
	Make it possible to produce state-based automata, and do
	not output useless clauses.
	* src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dtgbasat.hh:
	likewise, but also add the possibility to set the
	target number of states, as in dtba_sat_minimize.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh:
	Add new options for state-based computations and
	setting acceptance and states number when using
	dtgba_sat_minimize().
	* src/tgbatest/ltl2tgba.cc: Adjust calls to
	dtba_sat_minimize().
	* src/tgbatest/satmin.test: Adjust calls.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Complement deterministic automata.

	* src/bin/ltlcross.cc: Complement deterministic automata,
	and use them for additional intersection checks.
	* NEWS, doc/org/ltlcross.org, src/bin/man/ltlcross.x: Document it.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_obligation: can complement the input TGBA if deterministic

	This makes dstar2tgba able to produce a minimal WDBA when the input DRA
	represent an obligation property.

	* src/tgbaalgos/minimize.cc (minimize_obligation): When the
	formula is not supplied but the input automaton is deterministic,
	complement it to check the result of WDBA minimization.
	* src/tgbatest/ltl2dstar.test, src/tgbatest/ltl2dstar2.test: Improve
	tests.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	satsolver: new function

	Uses the value of the SPOT_SATSOLVER environment variable
	to decide how to call the SAT solver.

	* src/misc/satsolver.cc, src/misc/satsolver.hh: New files.
	* src/misc/Makefile.am: Add them.
	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Use satsolver().

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitignore: More files to ignore.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement dtgba_sat_minimize().

	Joint work with Soheib Baarir.

	* src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dtgbasat.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add
	a dtgba-sat-minimize option.
	* src/tgbatest/ltl2tgba.cc: Add option -RG.
	* src/tgbatest/satmin.test: Add more tests.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbatba.cc: Register the variables of the source automaton.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add some test of the SAT-based minimization.

	* src/tgbatest/satmin.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: Add a sat-minimize option.

	* src/tgbaalgos/postproc.hh, src/tgbaalgos/postproc.cc: Here.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtbasat: implement dba_sat_minimize()

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtbasat.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc: Add option -RS.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: new algorithm for TGBAs

	* src/tgbaalgos/complete.cc, src/tgbaalgos/complete.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dbacomp: connect only back-links and generalize to tgba

	* src/tgbaalgos/dbacomp.cc: Here.
	* src/tgbaalgos/dbacomp.hh: Adjust documentation.
	* src/tgbatest/dbacomp.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.
	* src/tgbatest/det.test: Update.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tba_determinize: add a cycle_threshold

	* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh
	(tba_determinize, tba_determinize_check): Add a cycle_threshold
	argument.
	* src/tgbaalgos/postproc.cc: Use it.
	* src/tgbatest/ltl2tgba.cc: Adjust calls.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: use tba_determinize_check()

	* src/tgbaalgos/postproc.cc: Use tba_determinize_check()
	if option "tba-det" is set.
	* src/tgbaalgos/postproc.hh (tba_determinize_): New attribute.
	* src/tgbatest/det.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dba_determinize: Add a threshold argument.

	* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh
	(dba_determinize, dba_determinize_check): Add a threshold
	argument.
	* src/tgbatest/ltl2tgba.cc (-O, -RQ): Accept a threshold
	argument.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement tba_determinize_check(), following Dax et al. (ATVA'07).

	* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh
	(tba_determinize_check): New function.
	* src/tgbatest/ltl2tgba.cc (-O): Use it.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce a dba_complement() function.

	Loosely based on "Complementing Deterministic Büchi Automata in
	Polynomial Time", R. P. Kurshan, 1987, J. Comp. Syst. Sci. 35.

	* src/tgbaalgos/dbacomp.cc, src/tgbaalgos/dbacomp.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc (-DC): New option to test it.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implementent tba_determinize(), based on Dax et al (ATVA'07).

	* src/tgbaalgos/powerset.hh,
	src/tgbaalgos/powerset.cc (tba_determinize): New function.
	* src/tgbatest/ltl2tgba.cc (-RQ): New option, for testing.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	reachiter: fix the DFS, and add a version with on_stack()

	* src/tgbaalgos/reachiter.hh, src/tgbaalgos/reachiter.cc: Fix the
	tgba_reachable_iterator_depth_first implementation by not making
	inheriting from tgba_reachable_iterator.  Add a
	tgba_reachable_iterator_depth_first_stack
	* src/tgbatest/sim.test, src/tgbatest/dstar.test: Adjust.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Allow %D, %N, or %T to be used multiple time

	For example to interface with Rabinizer, we can now use
	'java -jar /pathto/Rabinizer.jar -ltl2dstar %F %D; mv %D.dst %D'
	because Rabinizer always append a suffix to its last argument, we
	rename the file...

	* src/bin/ltlcross.cc (printable_result_filename): Adjust.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document dstar2tgba.

	* doc/org/dstar2tgba.org: New file.
	* doc/org/tools.org: Link to it.
	* doc/Makefile.am: Distribute it.
	* NEWS: Mention the generated web page.

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcross.cc: Use dstar_to_tgba().

2013-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstar: Improve conversion from DRA to BA.

	Extended former conversion from DRA->DBA to handle
	the case where some SCC is not DBA-realizable.

	* src/dstarparse/dra2dba.cc: Rename as...
	* src/dstarparse/dra2ba.cc: ... this.
	(dra_to_dba, dra_to_dba_worker): Rename as...
	(dra_to_ba, dra_to_ba_worker): ... these and extend.
	* src/dstarparse/Makefile.am, src/dstarparse/public.hh,
	src/dstarparse/dstar2tgba.cc, src/dstarparse/nra2nba.cc: Adjust.
	* NEWS: Update the description of dstar2tgba accordingly.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/kripkeparse/Makefile.am: Add missing include directory.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstar2tgba: new command.

	* src/bin/dstar2tgba.cc, src/bin/man/dstar2tgba.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Add them.
	* NEWS: Mention it.
	* src/bin/ltl2tgba.cc, src/tgbaalgos/stats.cc, doc/org/ltl2tgba.org:
	Rename the %S sequence as %c, for consistency with dstar2tgba.
	* src/tgbatest/ltl2dstar.test: Add more tests.
	* src/tgbatest/ltl2dstar2.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstar: implement dra_to_dba()

	This is an implementation of Krishnan's ISAAC'94 paper to convert
	deterministic Rabin automata into DBA when possible.

	* src/dstarparse/dra2dba.cc: New file.
	* src/dstarparse/dstar2tgba.cc: New file.
	* src/dstarparse/Makefile.am: Add them.
	* src/dstarparse/nra2nba.cc (nra_to_nba): Adjust so
	that dra_to_dba() can call it using a masked automaton.
	* src/dstarparse/public.hh (dra_to_dba, dstar_to_tgba): Declare.
	* src/tgbatest/ltl2tgba.cc: Add an -XDD option.
	* src/tgbatest/dstar.test: More tests.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce some masked tgba.

	* src/tgba/tgbamask.cc, src/tgba/tgbamask.hh,
	src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh: New files.
	* src/tgba/Makefile.am: Add them.
	* src/tgbatest/explicit3.cc, src/tgbatest/explicit3.test:
	New files.
	* src/tgbatest/Makefile.am: Add them.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce spot::state_set.

	* src/tgba/state.hh: Define state_set and shared_state_set.
	* src/tgba/taatgba.cc, src/tgba/taatgba.hh: Rename the existing
	state_set (that inherits from spot::state) as set_state.
	* src/tgba/tgbakvcomplement.cc: Use shared_state_set instead
	of state_set.
	* src/tgbaalgos/minimize.cc (state_set): Rename as...
	(build_state_set): ... this.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc: Accept reading LBTT files from stdin.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add support for ltl2dstar's output.

	* src/bin/ltlcross.cc: Add support for %D.
	* src/bin/man/ltlcross.x: Add example.
	* NEWS: Mention it.
	* src/tgbatest/ltl2dstar.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstarparse: Preliminary work on a parser for ltl2dstar.

	Supports reading Rabin and Streett automata, and converting them to
	nondeterministic Büchi automata (for Rabin) or TGBA (for Streett).

	* src/dstarparse/Makefile.am, src/dstarparse/dstarparse.yy,
	src/dstarparse/dstarscan.ll, src/dstarparse/fmterror.cc,
	src/dstarparse/parsedecl.hh, src/dstarparse/public.hh,
	src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc: New files.
	* configure.ac, src/Makefile.am, README: Adjust.
	* src/tgbatest/ltl2tgba.cc: Add options -XD, -XDB.
	* src/tgbatest/dstar.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: implement a dynamic bit-vector class.

	* src/misc/bitvect.cc, src/misc/bitvect.hh: New files.
	* src/misc/Makefile.am: Add them.
	* src/tgbatest/bitvect.cc, src/tgbatest/bitvect.test: New files.
	* src/tgbatest/Makefile.am: Add them.

2013-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: Improve when initial state is accepting without self-loop.

	* src/tgbaalgos/degen.cc: Choose the initial level according
	to acceptance condition common to all outgoing transitions.
	* src/tgbatest/degenid.test: Add test case.
	* NEWS: Mention it.

2013-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix --enable-optimization, not to reset CXXFLAGS.

	* m4/gccoptim.m4: Typo.

2013-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix builds for older versions of g++.

	* configure.ac (CXXFLAGS): Add -DSPOT_BUILD regardless
	of whether -fvisibility-inlines-hidden is supported.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: give an example of accepted word for nonempty cross-products

	* src/tgbaalgos/word.cc, src/tgbaalgos/word.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltlcrossce.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* src/bin/ltlcross.cc: Compute and display an accepted word
	for nonempty cross-products.
	* NEWS, doc/org/ltlcross.org: Document it.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tmpfile: Honor SPOT_TMPFILE and SPOT_TMPKEEP.

	* src/misc/tmpfile.cc: Check these environment variables.
	* src/bin/man/ltlcross.x, NEWS: Document them.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Test driver for Teamcity.

	* tools/test-driver-teamcity: New file.
	* Makefile.am: Distribute it.
	* HACKING: Document it.
	* wrap/python/tests/Makefile.am: Use it also for Python
	tests.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: use tmpfile.

	* src/bin/ltlcross.cc: Use features introduced by misc/tmpfile.hh.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: import module mkstemps

	* lib/mkstemps.c, m4/mkstemps.m4: New files.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix gnulib to not replace gmtime() and localtime()

	It cause issues when <ctime> latter undefine the gmtime/localtime macros
	to access the real function.

	* lib/Makefile.am, lib/time.in.h, m4/gettimeofday.m4, m4/time_h.m4:
	These changes are mostly based on the patch posted in
	http://permalink.gmane.org/gmane.comp.lib.gnulib.bugs/29229 but
	with the prototype of gmtime() and localtime() fixed.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update to gnulib 312af25ba220ccff068245f0dc698e9bcc8f03f8

	* lib/.gitignore, lib/c-ctype.h, lib/msvc-inval.c, lib/stdalign.in.h,
	lib/vasnprintf.c, lib/verify.h, m4/extern-inline.m4, m4/stdalign.m4:
	Update.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	misc: Include config.h in *.cc files

	This is needed now that lib/ is in the include path.

	* src/misc/bareword.cc, src/misc/bddop.cc, src/misc/escape.cc,
	src/misc/formater.cc, src/misc/intvcmp2.cc, src/misc/intvcomp.cc,
	src/misc/memusage.cc, src/misc/minato.cc, src/misc/optionmap.cc,
	src/misc/random.cc, src/misc/timer.cc, src/misc/version.cc: Include
	config.h.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tmpfile: new module to create and keep track of temporary files.

	* src/misc/tmpfile.cc, src/misc/tmpfile.hh: New files.
	* src/misc/Makefile.am: Add them
	* src/Makefile.am: Link with gnulib for mkstemp and mkstemps.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: add module stpcpy

	* lib/stpcpy.c, m4/stpcpy.m4: New files.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Add a --color option.

	* src/bin/ltlcross.cc: Add a --color option.
	* NEWS: Mention it.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: Add modules argmatch and isatty.

	* lib/argmatch.c, lib/argmatch.h, lib/c-ctype.c, lib/c-ctype.h,
	lib/config.charset, lib/c-strcasecmp.c, lib/c-strcaseeq.h,
	lib/c-strcase.h, lib/c-strncasecmp.c, lib/exitfail.c, lib/exitfail.h,
	lib/isatty.c, lib/localcharset.c, lib/localcharset.h, lib/mbrtowc.c,
	lib/mbsinit.c, lib/quotearg.c, lib/quotearg.h, lib/quote.h,
	lib/ref-add.sin, lib/ref-del.sin, lib/streq.h, lib/wctype-h.c,
	lib/wctype.in.h, lib/xalloc-die.c, lib/xalloc.h, lib/xalloc-oversized.h,
	lib/xmalloc.c, m4/codeset.m4, m4/configmake.m4, m4/glibc21.m4,
	m4/isatty.m4, m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4,
	m4/locale-zh.m4, m4/mbrtowc.m4, m4/mbsinit.m4, m4/mbstate_t.m4,
	m4/quotearg.m4, m4/quote.m4, m4/wctype_h.m4, m4/xalloc.m4: New files.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Doxyfile.in: Hide private functions and member.  Enable search.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/cutscc.cc: Cosmetics.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/taalgos/tgba2ta.cc: Cosmetics.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/taalgos/minimize.cc: Cosmetics.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use the count_state() function instead of stats_reachable().

	* src/tgbaalgos/postproc.cc: Move the count_state() function...
	* src/priv/countstates.cc, src/priv/countstates.hh: ... in these
	new files.
	* src/priv/Makefile.am: Add them.
	* src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc,
	src/tgbaalgos/minimize.cc: Use count_states() instead of
	stats_reachable().

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden globally.

	* configure.ac: Check for flags and fill CXXFLAGS and CFLAGS.
	* iface/dve2/dve2.hh: Mark load_dve2 for export.
	* src/eltlparse/Makefile.am, src/kripke/Makefile.am,
	src/kripkeparse/Makefile.am, src/ltlast/Makefile.am,
	src/ltlenv/Makefile.am, src/ltlparse/Makefile.am,
	src/ltlvisit/Makefile.am, src/misc/Makefile.am,
	src/neverparse/Makefile.am, src/priv/Makefile.am, src/saba/Makefile.am,
	src/sabaalgos/Makefile.am, src/ta/Makefile.am, src/taalgos/Makefile.am,
	src/tgba/Makefile.am, src/tgbaalgos/Makefile.am,
	src/tgbaalgos/gtec/Makefile.am, src/tgbaparse/Makefile.am:
	Remove $(VISIBILITY_CXXFLAGS) now that it is set globally.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: Upgrade and build as a libtool library.

	* lib/Makefile.am lib/alloca.in.h lib/argp-ba.c lib/argp-eexst.c
	lib/argp-fmtstream.c lib/argp-fmtstream.h lib/argp-fs-xinl.c
	lib/argp-help.c lib/argp-namefrob.h lib/argp-parse.c lib/argp-pin.c
	lib/argp-pv.c lib/argp-pvh.c lib/argp-xinl.c lib/argp.h lib/asnprintf.c
	lib/basename-lgpl.c lib/dirname-lgpl.c lib/dirname.h lib/dosname.h
	lib/errno.in.h lib/error.c lib/error.h lib/fcntl.in.h lib/float+.h
	lib/float.c lib/float.in.h lib/gethrxtime.c lib/gethrxtime.h
	lib/getopt.c lib/getopt.in.h lib/getopt1.c lib/getopt_int.h
	lib/gettext.h lib/gettime.c lib/gettimeofday.c lib/intprops.h
	lib/itold.c lib/lstat.c lib/malloc.c lib/memchr.c lib/mempcpy.c
	lib/mkstemp.c lib/msvc-inval.c lib/msvc-inval.h lib/msvc-nothrow.c
	lib/msvc-nothrow.h lib/pathmax.h lib/printf-args.c lib/printf-args.h
	lib/printf-parse.c lib/printf-parse.h lib/progname.c lib/progname.h
	lib/rawmemchr.c lib/size_max.h lib/sleep.c lib/stat.c lib/stdalign.in.h
	lib/stdbool.in.h lib/stddef.in.h lib/stdint.in.h lib/stdio.in.h
	lib/stdlib.in.h lib/strcasecmp.c lib/strchrnul.c lib/strerror-override.c
	lib/strerror-override.h lib/strerror.c lib/string.in.h lib/strings.in.h
	lib/stripslash.c lib/strncasecmp.c lib/strndup.c lib/strnlen.c
	lib/sys_stat.in.h lib/sys_time.in.h lib/sys_types.in.h lib/sys_wait.in.h
	lib/sysexits.in.h lib/tempname.c lib/tempname.h lib/time.in.h
	lib/timespec.h lib/unistd.in.h lib/vasnprintf.c lib/vasnprintf.h
	lib/verify.h lib/vsnprintf.c lib/wchar.in.h lib/xsize.h lib/xtime.h
	m4/00gnulib.m4 m4/alloca.m4 m4/argp.m4 m4/clock_time.m4 m4/dirname.m4
	m4/double-slash-root.m4 m4/errno_h.m4 m4/error.m4 m4/exponentd.m4
	m4/extensions.m4 m4/extern-inline.m4 m4/fcntl-o.m4 m4/fcntl_h.m4
	m4/float_h.m4 m4/gethrxtime.m4 m4/getopt.m4 m4/gettime.m4
	m4/gettimeofday.m4 m4/gnulib-cache.m4 m4/gnulib-common.m4
	m4/gnulib-comp.m4 m4/gnulib-tool.m4 m4/include_next.m4 m4/intmax_t.m4
	m4/inttypes_h.m4 m4/largefile.m4 m4/longlong.m4 m4/lstat.m4 m4/malloc.m4
	m4/math_h.m4 m4/memchr.m4 m4/mempcpy.m4 m4/mkstemp.m4 m4/mmap-anon.m4
	m4/msvc-inval.m4 m4/msvc-nothrow.m4 m4/multiarch.m4 m4/nocrash.m4
	m4/off_t.m4 m4/pathmax.m4 m4/printf.m4 m4/rawmemchr.m4 m4/size_max.m4
	m4/sleep.m4 m4/ssize_t.m4 m4/stat.m4 m4/stdalign.m4 m4/stdbool.m4
	m4/stddef_h.m4 m4/stdint.m4 m4/stdint_h.m4 m4/stdio_h.m4 m4/stdlib_h.m4
	m4/strcase.m4 m4/strchrnul.m4 m4/strerror.m4 m4/string_h.m4
	m4/strings_h.m4 m4/strndup.m4 m4/strnlen.m4 m4/sys_socket_h.m4
	m4/sys_stat_h.m4 m4/sys_time_h.m4 m4/sys_types_h.m4 m4/sys_wait_h.m4
	m4/sysexits.m4 m4/tempname.m4 m4/time_h.m4 m4/timespec.m4 m4/unistd_h.m4
	m4/vasnprintf.m4 m4/vsnprintf.m4 m4/warn-on-use.m4 m4/wchar_h.m4
	m4/wchar_t.m4 m4/wint_t.m4 m4/xsize.m4 tools/snippet/arg-nonnull.h
	tools/snippet/c++defs.h tools/snippet/warn-on-use.h: Upgrade to
	gnulib 9ceceed274f83094127f9ff0bf061293c9fe1e7f.
	* m4/secure_getenv.m4, lib/secure_getenv.c, lib/unistd.c,
	lib/xtime.c: New files.
	* src/bin/Makefile.am: Link with the libtool library.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add missing copyright blurbs to sanity tests.

	* src/sanity/80columns.test, src/sanity/includes.test,
	src/sanity/private.test, src/sanity/style.test: Here.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Some doc on exporting symbols with SPOT_API.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a sanity check for installed private headers.

	If an installed header has an associated *.cc file (in the source
	tree), but does not declare any SPOT_API symbol, something is fishy.
	Either that header should not be installed, or it is missing the
	SPOT_API markers.

	* src/sanity/private.test: New test.
	* src/sanity/Makefile.am: Call it.
	* src/ltlast/Makefile.am: Do not install formula_tree.hh.
	* src/ltlvisit/Makefile.am: Do not install mark.hh.
	* src/tgbaalgos/Makefile.am: Do not intall weight.hh.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden in src/ta/ and src/taalgos/.

	* src/ta/Makefile.am, src/taalgos/Makefile.am: Use
	$(VISIBILITY_CXXFLAGS).
	* src/ta/ta.hh, src/ta/taexplicit.hh, src/ta/taproduct.hh,
	src/ta/tgta.hh, src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.hh,
	src/taalgos/dotty.hh, src/taalgos/emptinessta.hh,
	src/taalgos/minimize.hh, src/taalgos/reachiter.hh,
	src/taalgos/statessetbuilder.hh, src/taalgos/stats.hh,
	src/taalgos/tgba2ta.hh: Add SPOT_API in front
	of all public symbols.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden for all parsers.

	* src/eltlparse/Makefile.am, src/kripkeparse/Makefile.am,
	src/ltlparse/Makefile.am, src/neverparse/Makefile.am,
	src/tgbaparse/Makefile.am: Use $(VISIBILITY_CXXFLAGS)
	* src/eltlparse/public.hh, src/kripkeparse/public.hh,
	src/ltlparse/ltlfile.hh, src/ltlparse/public.hh,
	src/neverparse/public.hh, src/tgbaparse/public.hh:
	Mark public symbols with SPOT_API.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use the same location.hh and position.hh in all parsers.

	* src/misc/location.hh, src/misc/position.hh: New files,
	from Bison 2.7.
	* src/misc/Makefile.am: Distribute them.
	* src/eltlparse/Makefile.am, src/eltlparse/eltlparse.yy,
	src/eltlparse/parsedecl.hh, src/eltlparse/public.hh,
	src/kripkeparse/Makefile.am, src/kripkeparse/kripkeparse.yy,
	src/kripkeparse/parsedecl.hh, src/kripkeparse/public.hh,
	src/ltlparse/Makefile.am, src/ltlparse/fmterror.cc,
	src/ltlparse/ltlparse.yy, src/ltlparse/parsedecl.hh,
	src/ltlparse/public.hh, src/neverparse/Makefile.am,
	src/neverparse/neverclaimparse.yy, src/neverparse/parsedecl.hh,
	src/neverparse/public.hh, src/tgbaparse/Makefile.am,
	src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
	src/tgbaparse/tgbaparse.yy: Adjust to use and include
	misc/location.hh.
	* NEWS: Mention this change.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden in src/tgbaalgos/.

	* src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/Makefile.am: Add
	$(VISIBILITY_CXXFLAGS).
	* src/tgbaalgos/bfssteps.hh, src/tgbaalgos/compsusp.hh,
	src/tgbaalgos/cutscc.hh, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
	src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/explscc.hh,
	src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/nsheap.hh,
	src/tgbaalgos/gtec/sccstack.hh,
	src/tgbaalgos/gtec/status.hh, src/tgbaalgos/gv04.hh,
	src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc,
	src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.hh,
	src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.hh,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.hh,
	src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
	src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh,
	src/tgbaalgos/safety.hh, src/tgbaalgos/save.hh, src/tgbaalgos/scc.hh,
	src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.hh,
	src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.hh,
	src/tgbaalgos/stripacc.hh, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.hh, src/tgbaalgos/translate.hh: Mark public
	symbol with SPOT_API.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden in src/kripke/, src/saba/, and src/sabaalgos/

	* src/kripke/Makefile.am, src/saba/Makefile.am,
	src/sabaalgos/Makefile.am: Use $(VISIBILITY_CXXFLAGS).
	* src/kripke/fairkripke.hh, src/kripke/kripke.hh,
	src/kripke/kripkeexplicit.hh, src/kripke/kripkeprint.hh,
	src/saba/explicitstateconjunction.hh, src/saba/saba.hh,
	src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
	src/saba/sabasucciter.hh, src/sabaalgos/sabadotty.hh,
	src/sabaalgos/sabareachiter.hh: Mark exported symbols
	with SPOT_API.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden in src/tgba/.

	* src/tgba/Makefile.am: Use $(VISIBILITY_CXXFLAGS).
	* src/tgba/bdddict.hh, src/tgba/bddprint.hh, src/tgba/formula2bdd.hh,
	src/tgba/futurecondcol.hh, src/tgba/state.hh, src/tgba/statebdd.hh,
	src/tgba/succiter.hh, src/tgba/succiterconcrete.hh, src/tgba/taatgba.hh,
	src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddconcreteproduct.hh,
	src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.hh,
	src/tgba/tgbaproduct.hh, src/tgba/tgbasafracomplement.hh,
	src/tgba/tgbascc.hh, src/tgba/tgbasgba.hh, src/tgba/tgbatba.hh,
	src/tgba/tgbaunion.hh, src/tgba/wdbacomp.hh: Mark exported symbols with
	SPOT_API.
	* src/tgba/public.hh: Mark the file as deprecated.
	* src/tgbaalgos/cutscc.hh: Adjust.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -fvisibility=hidden in src/ltlast/, src/ltlvisit/, and src/ltlenv/.

	* src/ltlast/Makefile.am, src/ltlenv/Makefile.am,
	src/ltlvisit/Makefile.am: Use $(VISIBILITY_CXXFLAGS).
	* src/misc/common.hh (SPOT_DEPRECATED): New macro.
	* src/ltlast/atomic_prop.hh, src/ltlast/automatop.hh,
	src/ltlast/binop.hh, src/ltlast/bunop.hh, src/ltlast/constant.hh,
	src/ltlast/formula.hh, src/ltlast/formula_tree.hh,
	src/ltlast/multop.hh, src/ltlast/nfa.hh, src/ltlast/refformula.hh,
	src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
	src/ltlenv/defaultenv.hh, src/ltlvisit/apcollect.hh,
	src/ltlvisit/clone.hh, src/ltlvisit/contain.hh,
	src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh,
	src/ltlvisit/lbt.hh, src/ltlvisit/length.hh,
	src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh,
	src/ltlvisit/postfix.hh, src/ltlvisit/randomltl.hh,
	src/ltlvisit/reduce.hh, src/ltlvisit/relabel.hh,
	src/ltlvisit/remove_x.hh, src/ltlvisit/simpfg.hh,
	src/ltlvisit/simplify.hh, src/ltlvisit/snf.hh,
	src/ltlvisit/tostring.hh, src/ltlvisit/tunabbrev.hh,
	src/ltlvisit/wmunabbrev.hh: Add SPOT_API in fron of
	exported symbols.
	* src/ltlvisit/nenoform.cc, src/ltlvisit/remove_x.cc: Add missing
	include of the corresponding header file.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: summarize recent changes

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move bdd_allocator to src/priv/.

	* src/misc/bddalloc.cc, src/misc/bddalloc.hh,
	src/misc/freelist.cc, src/misc/freelist.hh: Move ...
	* src/priv/bddalloc.cc, src/priv/bddalloc.hh,
	src/priv/freelist.cc, src/priv/freelist.hh: ... here.
	* src/misc/Makefile.am, src/priv/Makefile.am: Adjust.
	* src/tgba/bdddict.cc: Adjust include.
	* src/tgbaalgos/ltl2tgba_fm.cc: Remove useless include.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Hide the only use of bdd_allocator.

	* src/tgba/bdddict.cc, src/tgba/bdddict.hh:  Hide the bdd_allocator
	dependency in a bdd_dict_priv class that is not defined publicly.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/unique_ptr.hh: Add missing operator->() const.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove modgray, it's not used.

	* src/misc/modgray.cc, src/misc/modgray.hh: Delete.
	* src/misc/Makefile.am: Adjust.
	* wrap/python/tests/modgray.py: Delete.
	* wrap/python/tests/Makefile.am: Adjust.
	* wrap/python/spot.i: Remove binding.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Create a new src/priv/ directory for private algorithms.

	* README: Document it.
	* configure.ac: Generate src/priv/Makefile.
	* src/Makefile.am: Recurse into priv/.
	* src/priv/Makefile.am: New file.
	* src/misc/acccompl.cc, src/misc/acccompl.hh,
	src/misc/accconv.cc, src/misc/accconv.hh: Move to...
	* src/priv/acccompl.cc, src/priv/acccompl.hh,
	src/priv/accconv.cc, src/priv/accconv.hh: ... here.
	* src/misc/Makefile.am: Adjust.
	* src/tgbaalgos/scc.cc, src/tgbaalgos/simulation.cc: Adjust
	includes.
	* src/sanity/style.test: Make sure no public header
	file include a private one.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Enable -fvisibility=hidden for src/misc/.

	* configure.ac: Check for -fvisibility support.
	* m4/ax_check_compile_flag.m4: New file.
	* src/misc/common.hh: New file.
	* src/misc/Makefile.am: Add common.hh, and adjust to use -fvisibility.
	* src/misc/bareword.hh, src/misc/escape.hh, src/misc/formater.hh,
	src/misc/intvcmp2.hh, src/misc/intvcomp.hh, src/misc/memusage.hh,
	src/misc/minato.hh, src/misc/optionmap.hh, src/misc/random.hh,
	src/misc/timer.hh, src/misc/version.hh, src/misc/bddop.hh: Include
	common.hh and add SPOT_API tags.
	* src/misc/acccompl.hh, src/misc/accconv.hh: Prepare for upcoming
	move.
	* src/sanity/style.test: Ignore SPOT_API tags.
	* wrap/python/Makefile.am: Ignore SPOT_API.
	* wrap/python/spot.i: Do not emit binding for bddalloc.hh.
	* wrap/python/tests/minato.py: Do not use bdd_allocator.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 1.1.4a.

	* NEWS: Bump version.
	* configure.ac: Bump version, and add a banner
	about this being a development version at the end.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.1.4.

	* NEWS, configure.ac, doc/org/tools.org: Update version.

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* THANKS: Jan should have been added earlier...

2013-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix interpretation of {e[*]} and !{e[*]}.

	This follows from a discussion with Ernesto Posse.

	The semantics for the {...} operator we use in Spot comes from the
	cl(...) operator defined by Dax et al. (ATVA'09).  This is slightly
	different from the the way the PSL spec interprets a SERE used in the
	context of a temporal formula (appendix B.3.1.1.2, item 7).

	cl({a;b}[*]) would match any infinite word that starts with a;b, while
	in PSL {a;b}[*] would match any infinite word that alternates a and b.

	Spot documents that {SERE} in a temporal formula is interpreted like
	cl(SERE) however it failed to ignore the empty prefix of SERE.  So
	{{a;b}[*]} would match anything, because the empty word is a prefix of
	any word, and is also accepted by {a;b}[*].  Some trivial identities
	and basic rewritings were also wrongly considering these empty
	prefixes as well.

	This patch therefore fixes the translation and syntactic
	simplification rules, to really ignore these empty prefixes.

	In some future version it should probably be wise to rename this {...}
	operator as cl(...), and use {...} for the semantics given in appendix
	B.3.1.1.2 (item 7) of the PSL specs.

	* src/ltlast/unop.cc: Fix trivial identities.  We have
	{[*0]} = 0 and !{[*0]} = 1.
	* src/ltlvisit/simplify.cc: Fix basic rewriting rules.
	{e[*]} = {e} and !{e[*]} = !{e}.
	* doc/tl/tl.tex: Adjust documentation.
	* doc/tl/tl.bib (dax.09.atva): New entry.
	* src/tgbaalgos/ltl2tgba_fm.cc: Do not accept any
	infinite word for {e[*]} just because the empty
	prefix is matched by e[*].
	* src/tgbatest/ltl2tgba.test: Add a test case.
	* NEWS: Mention it.
	* THANKS: Add Ernesto.

2013-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/ltlcross.x: Typo.

2013-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverparse: accept more unparenthesised guards

	Also accept guards of the form (a) || !(b) or (a) && !(b).

	* src/neverparse/neverclaimscan.ll: Adjust.
	* src/tgbatest/neverclaimread.test: Add a test case.

2013-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverparse: Remove superfluous %expect-rr in grammar.

	* src/neverparse/neverclaimparse.yy: Remove %expect-rr, that's only for
	GLR parsers.

2013-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: missing newline in error message.

	* src/bin/ltlcross.cc: Add that missing new line.
	* NEWS: Mention it.

2013-07-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/isweakscc.cc: Remove useless guards.

2013-07-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverpase: fix parsing of neverclaim produced by ltl2ba and ltl3ba

	These translator may output guards such as (a) || (b), but with the
	changes in Spot 1.1.3 it would only work with ((a) || (b)).

	Furthermore when ltlcross would fail to parse a neverclaim containing
	such a guard, it would fail to parse all later neverclaims, because
	the lexer was not properly reset.

	* src/neverparse/neverclaimscan.ll: Scan (a) || (b) as a single
	token.
	(neverclaimyyopen): Reset the lexer.
	* src/tgbatest/neverclaimread.test: Add a test for (a) || (b).
	* NEWS: Update.

2013-07-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/reducerun.hh: Typos in documentation.

2013-07-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcross.cc: Typo.

2013-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ioltl.org: Typos.

2013-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.1.3a.

2013-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.1.3.

	* configure.ac, doc/org/tools.org, NEWS: Set version to 1.1.3.

2013-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: do not use f after it has been destroyed.

	Reported by Joachim Klein.

	* src/bin/ltlcross.cc: Here.
	* NEWS, THANKS: Update.

2013-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2013-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Support reading the new style of neverclaim output by Spin 6.24+.

	* src/neverparse/neverclaimparse.yy, src/neverparse/neverclaimscan.ll:
	Allow transitions between do..od, recognize atomic and assert.
	* src/neverparse/parsedecl.hh: Pass the error_list to the lexer.
	* src/tgbatest/neverclaimread.test: Add a test case.

2013-06-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix non-standard use of the date command.

	Reported by Étienne Renault.

	* bench/spin13/run.sh: Here.

2013-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix "BDD Error" in scc_filter().

	If all the acceptance set of an SCC but the first one were useless, the
	scc_filter() algorithm could abort with a BDD error because of a bug in
	the logic.

	* src/tgbaalgos/sccfilter.cc (scc_filter): Fix.
	* src/tgbatest/sccsimpl.test: Add a test case supplied by Étienne
	Renault.

2013-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Improve ltlfilt.org

	* doc/org/ltlfilt.org: Mention that the --stutter-invariant check
	use automata.  Fix a typo.

2013-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac, NEWS: Bump version to 1.1.2a.

2013-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.1.2.

	* configure.ac, NEWS, doc/org/tools.org: Bump version to 1.1.2.

2013-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2013-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Improve documentation here and there.

	* doc/Doxyfile.in: Update to Doxygen 1.8.4
	* doc/footer.html: Point to the mailing list.
	* doc/mainpage.dox: Point to spot::translator,
	and spot::kripke.
	* src/ta/tgta.hh: Do not use \emph.
	* src/tgba/succiter.hh: Fix rendering of example.
	* src/tgba/tgba.hh: Correct documentation.
	* src/tgbaalgos/cycles.hh: Improve rendering of
	documentation.
	* src/tgbaalgos/lbtt.hh, src/tgbaalgos/minimize.hh:
	Document missing arguments.

2013-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix verbatim blocks of Doxygen comments.

	* src/ltlast/formula.hh, src/ltlvisit/contain.hh,
	src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.hh,
	src/ltlvisit/remove_x.hh, src/ltlvisit/simplify.hh, src/ltlvisit/snf.hh,
	src/misc/minato.hh, src/misc/optionmap.hh,
	src/saba/sabacomplementtgba.hh, src/taalgos/emptinessta.hh,
	src/taalgos/minimize.hh, src/taalgos/tgba2ta.hh,
	src/tgba/tgbakvcomplement.hh, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gv04.hh, src/tgbaalgos/ltl2taa.hh,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
	src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.hh,
	src/tgbaalgos/randomgraph.hh, src/tgbaalgos/se05.hh,
	src/tgbaalgos/simulation.hh, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.hh: Surround verbatim blocks with /** ... */
	instead of using /// on each line.  Otherwise Doxygen will output the
	leading "///" tokens -- apparently this is a feature.
	* src/sanity/style.test: Strip multi-line comments before checking
	code style.

2013-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move \ingroup before \brief in all Doxygen comments.

	Using \ingroup between \brief and the rest of the documentation causes
	Doxygen to concatenate the brief with the rest of the doc.

	* src/sanity/style.test: Warn when \ingroup is found
	on the line after \brief.
	* src/kripke/fairkripke.hh, src/kripke/kripke.hh,
	src/kripke/kripkeprint.hh, src/ltlast/atomic_prop.hh,
	src/ltlast/automatop.hh, src/ltlast/binop.hh, src/ltlast/bunop.hh,
	src/ltlast/constant.hh, src/ltlast/formula.hh, src/ltlast/multop.hh,
	src/ltlast/refformula.hh, src/ltlast/unop.hh, src/ltlast/visitor.hh,
	src/ltlenv/declenv.hh, src/ltlenv/defaultenv.hh,
	src/ltlenv/environment.hh, src/ltlparse/ltlfile.hh,
	src/ltlvisit/clone.hh, src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
	src/ltlvisit/dump.hh, src/ltlvisit/length.hh, src/ltlvisit/lunabbrev.hh,
	src/ltlvisit/mark.hh, src/ltlvisit/nenoform.hh, src/ltlvisit/postfix.hh,
	src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.hh,
	src/ltlvisit/relabel.hh, src/ltlvisit/simpfg.hh,
	src/ltlvisit/simplify.hh, src/ltlvisit/tunabbrev.hh,
	src/ltlvisit/wmunabbrev.hh, src/misc/bddalloc.hh, src/misc/bddlt.hh,
	src/misc/freelist.hh, src/misc/hash.hh, src/misc/ltstr.hh,
	src/misc/minato.hh, src/misc/modgray.hh, src/misc/optionmap.hh,
	src/misc/version.hh, src/saba/explicitstateconjunction.hh,
	src/saba/saba.hh, src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
	src/saba/sabasucciter.hh, src/sabaalgos/sabadotty.hh,
	src/sabaalgos/sabareachiter.hh, src/ta/ta.hh, src/ta/taproduct.hh,
	src/ta/tgta.hh, src/taalgos/reachiter.hh, src/taalgos/tgba2ta.hh,
	src/tgba/futurecondcol.hh, src/tgba/sba.hh, src/tgba/state.hh,
	src/tgba/succiter.hh, src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbakvcomplement.hh,
	src/tgba/tgbaproduct.hh, src/tgba/tgbasafracomplement.hh,
	src/tgba/tgbascc.hh, src/tgba/tgbasgba.hh, src/tgba/tgbatba.hh,
	src/tgba/tgbaunion.hh, src/tgba/wdbacomp.hh, src/tgbaalgos/bfssteps.hh,
	src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
	src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/lbtt.hh,
	src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/powerset.hh, src/tgbaalgos/projrun.hh,
	src/tgbaalgos/randomgraph.hh, src/tgbaalgos/reachiter.hh,
	src/tgbaalgos/reducerun.hh, src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/rundotdec.hh, src/tgbaalgos/save.hh,
	src/tgbaalgos/stripacc.hh, src/tgbaalgos/translate.hh: Move \ingroup
	before \brief.

2013-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: fix compilation with g++ < 4.5.

	* src/tgbaalgos/simulation.cc: Pass template arguments to base-class
	initializer to fix compilation with g++ < 4.5.  Reported by Sonali
	Dutta.

2013-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More files to ignore.

2013-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcross.cc (statistics): Initialize all members.

2013-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.1.1a.

2013-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.1.1

	* NEWS, configure.ac, doc/org/tools.org: Bump version.

2013-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Augment the load-path.

	* doc/org/init.el.in: Add emacs-goodies-el to the load-path, so that
	org-mode has a better chance to find htmlize.

2013-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlfilt.org: Add an example with --stutter-invariant.

2013-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: more documentation

	* doc/org/ltlcross.org: Describe statistics, and mention --products=N.

2013-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add a --products=N option

	* src/bin/ltlcross.cc: Implement the new option.  Average the product
	statistics on all products.
	* src/tgbatest/basimul.test, src/tgbatest/ltlcross.test,
	src/tgbatest/ltlcross2.test, bench/ltl2tgba/tools: Use the new option.
	* NEWS: Mention it.

2013-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bdddict: add an unregister_all_typed_variables() method

	* src/tgba/bdddict.cc, src/tgba/bdddict.hh
	(unregister_all_typed_variables): New method.
	* src/tgbaalgos/degen.cc (degeneralize): Use it.
	* NEWS: Mention it.

2013-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: Fix co-simulation and iterated simulations of BA automata

	* src/tgbaalgos/simulation.hh, src/tgbaalgos/simulation.cc
	(simulation_sba, cosimulation_sba, iterated_simulations_sba): New
	function.  Also speedup the existing functions by avoiding
	add_acceptince_conditions() and add_conditions().  Finally, use
	scc_filter_states() when dealing with degeneralized automata.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh (do_ba_simul):
	New method.  Use it after degeneralization.
	* src/tgba/tgbaexplicit.hh (get_transition, get_state): New methods.
	* src/tgbatest/basimul.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.
	* NEWS: Introduce the new function and summarize the bug.

2013-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: Ignore empty lines on input.

	* src/bin/common_finput.cc: Here.
	* src/ltltest/ltlfilt.test: Test it.
	* NEWS: Mention it.

2013-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Add a --seed option.

	* src/bin/ltlcross.cc: Here.
	* NEWS: Mention it.

2013-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce scc_filter_states().

	The main motivation is the upcoming patch that introduces
	simulation_sba() and requires this function.

	* src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccfilter.cc: Implement it.
	* src/tgbaalgos/postproc.cc: Use it for monitors, because we do not
	care about acceptance conditions.
	* NEWS: Mention it.

2013-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: Fix handling --universal, --eventual, and --stutter-invariant.

	* src/bin/ltlfilt.cc: Handle --universal and --eventual.  Match
	only LTL formulas with --stutter-invariant.
	* src/ltltest/ltlfilt.test: New file.
	* src/ltltest/Makefile.am (TESTS): Add it.
	* NEWS: Mention these bug fixes.

2013-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbtt: improve the LBTT output

	Provide a way to output automata with state-based acceptance.  Also
	print the guards using to_lbt_string() for consistency: as a
	consequence, atomic proposition that do not match p[0-9]+ are now
	double-quoted.

	* src/tgbaalgos/lbtt.hh (lbtt_reachable): Add a sba option.
	* src/tgbaalgos/lbtt.cc: Implement it, and use to_lbt_string().
	* src/ltlvisit/lbt.cc (is_pnum): Reject 'p' without number.
	* src/bin/ltl2tgba.cc: Activate the sba option of --ba was given.
	Add an option --lbtt=t to get the old behavior.
	* src/bin/man/ltl2tgba.x: Document the LBTT format we use with
	some links and examples.
	* src/tgbatest/lbttparse.test: More tests.
	* src/tgbatest/ltlcross2.test: Add a check with --lbtt --ba.
	* NEWS: Update.

2013-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix genltl --gh-r

	Reported by František Blahoudek.

	* src/bin/genltl.cc (R_n): Really generate (GFp1 || FGp2), not
	(GFp1 || GFp2).
	* NEWS: Mention the bug.
	* THANKS: Update.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.1a.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.1

	* configure.ac, doc/org/tools.org: Bump version number.
	* NEWS: Likewise, plus some missing entries.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Makefile.am (org-stamp): Depend on init.el.in, not init.el.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: Fix installation and distribution of spot-x.7.

	* src/bin/man/Makefile.am: Install spot-x.7 in $(man7dir),
	and make sure we distribute spot-x.x.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: improve documentation

	* wrap/python/ajax/ltl2tgba.html: Augment and update tooltips to match
	vocabulary in the Spin'13 paper.  Hide the compose obligation option
	since it's a work in progress.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* Makefile.am (SUBDIRS): Build doc last.

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Étienne

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbatba.hh: Mention degeneralize().

2013-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltl2tgba.org: Typo.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: count SCCs of various strenghts

	* src/bin/ltlcross.cc: Implement the counters.
	* doc/org/ltlcross.org: Update the documentation.
	* bench/ltl2tgba/sum.py: Do not assume a fixed column for the time.
	* NEWS: Update.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	isweakscc: cleanup interfaces and code

	* src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh: Do not pass
	automata since they are known from the scc.  Avoid several dynamic
	casts.  Try to match the established vocabulary wrt "weak" and
	"inherently weak".  The old is_weak_scc() that used to enumerate cycles
	is therefore renamed to is_inherently_weak_scc(), while the new
	is_weak_scc() will should ensure all transitions are fully accepting.
	* NEWS: Mention the new interface.

2013-04-27  Etienne Renault  <renault@lrde.epita.fr>

	Heuristics for SCC strength

	Provides 3 heurisitics to compute the strength of an SCC:
	inherent, structural and syntactic

	* src/tgbaalgos/isweakscc.cc: implementation
	* src/tgbaalgos/isweakscc.hh: definition

2013-04-27  Etienne Renault  <renault@lrde.epita.fr>

	Fix Warning GCC 4.8

	* src/tgbatest/taatgba.cc: Remove unused typedef

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement a favor_even_univ option in the rewriting rules.

	The set of rules enabled by favor_even_univ try to "lift" the
	subformulae that are both eventual and universal, so they appear
	higher in the AST.  This is contrary to what we used to do (and still
	do when the option is unset), were we try to postpone such subformulae
	(by moving them down the AST).  It is still a bit experimental.

	* src/ltlvisit/simplify.hh: Add option favor_event_univ.
	* src/ltlvisit/simplify.cc: Implement new rewriting rules.
	* doc/tl/tl.tex: Document them.
	* src/tgbatest/ltl2tgba.cc: Add option -ra to enable them.
	* src/tgbatest/spotlbtt.test: Test the translation with this option.
	* src/ltltest/reduc.cc, src/ltltest/equals.cc: Add option
	to enable the new rules.
	* src/ltltest/eventuniv.test: New file to test them.
	* src/ltltest/Makefile.am: Add it.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add the Spin'13 benchmark.

	* bench/spin13/: New directory.
	* bench/Makefile.am, README, configure.ac: Add it.
	* bench/ltl2tgba/sum.py: Display smaller tables.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: use compositional suspension on request

	This has to be turned on using "-x comp-susp" and other
	related options documented in spot-x (7).

	* src/tgbaalgos/translate.hh, src/tgbaalgos/translate.cc:
	Add support for calling composition-suspension, with
	optional simulation, WDBA-minimization, and composition.
	* src/bin/spot-x.cc: Document the new options.
	* src/bin/man/spot-x.x: Add some bibliography.
	* src/tgbatest/ltlcross2.test: Test it.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter: Improve selection of missing acceptance sets.

	* src/tgbaalgos/sccfilter.cc: Reuse existing acceptance set as filler
	in SCC sets that need less SCC sets than the other SCCs automaton.
	* src/tgbatest/sccsimpl.test: Add more tests.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: Perform simulation on the BA in --high mode.

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Do simulation
	on the BA produced in --high mode.
	* src/bin/spot-x.cc: Document the ba-simul option that can be used
	to disable it.

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add compositional suspension to the web interface.

	* wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/protocol.txt:
	Add options for compositional suspension.
	* wrap/python/ajax/spot.in: Implement them.
	* wrap/python/spot.i: Export compsusp().

2013-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce compositional suspension (SPIN'13)

	* src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh: Add option
	for suspended labels removal.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/spotlbtt.test: Test it.

2013-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/init.el.in: Disable org-publish-use-timestamps-flag.

2013-04-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes.

2013-04-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench/ltl2tgba: Adjust to support different config files.

	* bench/ltl2tgba/algorithms: Rename as...
	* bench/ltl2tgba/tools: ... this.
	* bench/ltl2tgba/README, bench/ltl2tgba/Makefile.am,
	bench/ltl2tgba/defs.in, bench/ltl2tgba/big, bench/ltl2tgba/small,
	bench/ltl2tgba/known: Adjust.
	* bench/ltl2tgba/tools.sim: New file, extracted from ./algorithms.

2013-04-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Elie (recent patches) and Heikki (very old patch).

2013-04-15  Elie Abi Saad  <elie.abisaad@epita.fr>

	* bench/ltl2tgba/sum.py: Adjust.

2013-04-15  Elie Abi Saad  <elie.abisaad@epita.fr>

	Add inputs support.

	* src/bin/ltlcross.cc: Update print_stats_json.

2013-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Make sure ../../src/bin is searched first.

	We used to set PATH in emacs, but because babel executes "sh" via
	shell-command, the configuration of the main shell may supersedes ours.

	* doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org,
	doc/org/ltlfilt.org, doc/org/randltl.org, doc/org/tools.org,
	doc/org/genltl.org: Move all local-file variable to...
	* doc/org/.dir-locals.el: ... here.  And also set the PATH
	in org-babel-sh-command.
	* doc/org/init.el.in: Set the PATH in org-babel-sh-command.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/ltlfilt.x: Add a bibliography section.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_x: Implement detection of stutter-invariant LTL formulas.

	* src/bin/ltlfilt.cc: Add options --remove-x and --stutter-invariant.
	* src/ltlvisit/remove_x.cc, src/ltlvisit/remove_x.hh: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/ltltest/remove_x.test: New file.
	* src/ltltest/Makefile.am: Add it.
	* NEWS: Mention the new algorithms.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/bddprint.hh: Typo in Doxygen comment.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Makefile.am: Add missing dependency on userdoc/

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlscan: get rid of boost::lexical_cast

	This is one less useless dependency on Boost.

	* src/ltlparse/ltlscan.ll: Replace lexical_cast<unsigned>() by
	strtoul().
	* src/ltltest/parseerr.test: Add a test case.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: mention doc/org/ and doc/userdoc/

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Document the use of emacs / org-mode.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Add an org-deploy rule

	* doc/Makefile.am: Here.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ioltl.org: Fix link to ltl2dstar.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: batch-generate userdoc/ and distribute it

	* doc/org/init.el.in, doc/org/syntax.css: New files.
	* configure.ac: Generate init.el from init.el.in, and check for
	emacs.
	* doc/Makefile.am: Build userdoc/ from org/ and distribute userdoc/.
	* README: Mention org/ and userdoc/.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: upgrade to 1.0.2

	* doc/org/tools.org: Update to 1.0.2.
	* doc/org/ltl2tgba.org: Mention monitors in the intro.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update for 1.0.1

	* doc/org/ioltl.org: Mention ltl2dstar and the changes to the prefix
	parser.
	* doc/org/ltlcross.org: Mention bench/ltl2tgba/sum.py.
	* doc/org/tools.org: Bump version number.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a .dir-locals.el for org files.

	* doc/org/.dir-locals.el: New files.
	* doc/Makefile.am (EXTRA_DIST): Distribute it.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add org-mode documentation for user tools

	* doc/org/.gitignore, doc/org/genltl.org, doc/org/ioltl.org,
	doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org,
	doc/org/ltlfilt.org, doc/org/randltl.org, doc/org/tools.org: New files.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/dve2/Makefile.am: Add missing dependency.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dve2: use the new translator class

	* iface/dve2/dve2check.cc: Adjust.
	* iface/dve2/README: Some (unrelated) typos.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce a translator class.

	This perform pre- and post-processings in addition to
	the LTL-to-TGBA translation.

	* src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbaalgos/postproc.hh: Make the private part protected, so
	that we can inherit from that in the translator class.
	* src/bin/ltl2tgba.cc: Use the translator class to hide LTL
	simplification, translation, and postprocessings.
	* NEWS: Mention it.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Document recent changes.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgta: Honor -x as well

	* src/bin/ltl2tgta.cc: Honor -x.
	* src/bin/man/ltl2tgta.x, src/bin/man/spot-x.x: Add cross references.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	spot-x.7: new man page for common fine-tuning options

	* src/bin/spot-x.cc, src/bin/man/spot-x.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Adjust.
	* src/bin/man/ltl2tgba.x: Remove all fine-tuning options,
	and make a reference spot spot-x (7).
	* src/bin/common_setup.hh, src/bin/common_setup.cc: Add
	a misc_argp_hidden version of the option, so that --help
	and --version are not shown in the --help output used
	by help2man to generate spot-x.7.
	* src/bin/ltl2tgba.cc: Refer to spot-x.7.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: many fixes.

	* src/tgbaalgos/simulation.cc: Attempt to fix several cases.
	* src/tgbatest/sim.test: Add more tests.
	* src/tgbatest/sim2.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add an scc-filter option

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add an
	scc-filter option.
	* src/bin/man/ltl2tgba.x: Document it.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add some experimental don't care options

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add a
	"simul-limit" option, and add two new cases to "simul"
	for the two don't care simulation
	* src/bin/man/ltl2tgba.x: Mention the new options.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/simulation.cc: Merge two loops.

2013-04-09  Thomas Badie  <badie@lrde.epita.fr>

	Add the "don't care" simulation

	* src/tgba/bddprint.cc, src/tgba/bddprint.hh: Add bdd_print_isop
	that prints the bdd into a Irreductible Sum Of Product.
	* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Add a way to
	know which states (in the input) is which (in the result).
	* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Add
	the Don't Care Simulation and the Don't Care Iterated Simulation.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/spotlbtt.test,
	src/tgbatest/Makefile.am, src/tgbatest/sim.test: Test them.
	* bench/ltl2tgba/algorithms, bench/ltl2tgba/README,
	bench/ltl2tgba/algorithms: Add a way to bench the don't care
	simulation.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add a "simul" option to select the simulation algorithm

	* src/tgbaalgos/postproc.hh, src/tgbaalgos/postproc.cc: Honor the
	"simul" option in the option_map.
	(do_simul, do_degen): New method to wrap the algorithms that may be
	altered via option_map.
	* src/bin/man/ltl2tgba.x (simul): Document this option.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccfilter: ignore more acceptance conditions

	* src/tgbaalgos/sccfilter.cc: Compute useless variable SCC-wise, then
	renumber the useful variables so that they can be shared between SCCs.
	* src/tgbatest/sccsimpl.test, src/tgbatest/ltl2ta.test: Adjust test
	cases.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: Add an option_map parameter

	* src/tgbaalgos/postproc.cc: Add an option_map parameter, and use to get
	extra options to pass to the degeneralization algorithm.
	* src/tgbaalgos/postproc.hh: Adjust prototype, and store Boolean
	variables for degeneralize() options.
	* src/bin/ltl2tgba.cc: Add a -x option to fill the option map, and pass
	it to the postprocessor.
	* src/bin/man/ltl2tgba.x: Document the three degeneralization options.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: fix a memory leak

	* src/tgbaalgos/degen.cc (degeneralize): Do not call i->current_state()
	to get the current SCC, as we already have the state in d.first.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc: Fix style.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: disable custom order by default

	Because benchmark show that this option usually do not help.

	* src/tgbaalgos/degen.hh, src/tgbatest/ltl2tgba.cc: Here.
	* src/tgbaalgos/degen.hh: Document the new options.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: small fixups and interface with ltl2tgba

	* src/tgbaalgos/degen.cc: Fixups.
	* src/tgbatest/ltl2tgba.cc: Add switches to enable/disable
	the options Tomáš added to degeneralize().

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Tomáš Babiak.

2013-04-09  Tomáš Babiak  <xbabiak@fi.muni.cz>

	degen: introduce three optimizations

	* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: Add three
	options use_z_level, use_cust_acc_orders, and use_lvl_cache.

2013-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlfilt.cc: Destroy equivalent_to, implied_by, and imply.

2013-04-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlast/formula.cc: Typo.

2013-04-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: fix translation of !{xxx} when xxx reduces to false

	* src/tgbaalgos/ltl2tgba_fm.cc: Typo.
	* src/tgbatest/ltl2tgba.test: Add a test case.

2013-04-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a memory leak in basic LTL simplifications

	When something like XFa & FXa is reduced, the subformulae XFa and FXa
	are both rewritten separately to XFa, and then the vector of arguments
	of the And operators, [XFa,XFa], is passed through a specialized loop
	that searches of the form X(...) that can potentially be simplified with
	some other terms.  This loop converts the vector [XFa,XFa] into the set
	{XFa,XFa}={XFa} and forgot to deal with the case where the insertion
	would actually not add an existing subformula.

	* src/ltlvisit/simplify.cc: Fix the code for Or, and And.
	* src/ltltest/reduc0.test: New file, to test it.
	* src/ltltest/Makefile.am (TESTS): Add it.
	* src/ltltest/reduccmp.test: Add an extra test that does not
	trigger the bug (because reduccmp.test uses more than basic
	optimizations, and the implication-based simplifications are
	already able to detect that XFa and FXa are equivalent).

2013-04-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Typo

2013-04-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbascc.cc: 80 columns.

2013-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version.

2013-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.0.2.

	* NEWS, configure.ac: Bump version.

2013-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl_simplifier: add a boolean_to_isop option and method

	* src/ltlvisit/simplify.hh (ltl_simplifier_options): add
	a boolean_to_isop option
	(ltl_simplifier::boolean_to_isop): New method.
	* src/ltlvisit/simplify.cc: Implement these.
	* src/bin/ltlfilt.cc: Add a --boolean-to-isop option.
	* src/ltltest/isop.test: New file.
	* src/ltltest/Makefile.am: Add it.
	* NEWS: Mention it.

2013-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Document recent changes.

2013-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: fix displaying of TA and GTA

	* wrap/python/ajax/spot.in (print_stats): Do not call
	sub_stats_reachable on testing automata.

2013-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: Add an nondeterministic monitor option

	* src/tgbaalgos/postproc.hh (run): Rename the first argument as
	input_disown to help Swig.
	* wrap/python/spot.i: Wrap spot::postprocessor.
	* wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/protocol.txt:
	Add an option for nondeterministic monitor.
	* wrap/python/ajax/spot.in: Honor the new option, and rewrite the
	monitor production using postprocessor.

2013-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix two memory leak reported by Sonali Dutta.

	* src/tgbatest/ltl2tgba.cc: Calling tgbatest/ltl2tgba -M -O (which
	makes no sense, but that is no reason) used the "minimized" variable
	for two automata, overwriting one.
	* wrap/python/spot.i: The python bindings did not know about
	sba_explicit automata, causing memory leaks, and complaints from the
	bdd_dict.

2013-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: cleanup option display for monitors

	* wrap/python/ajax/ltl2tgba.html: Do not display testing automaton
	options when generating monitors.

2013-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: Fix handling of LTL simplification options.

	Enable LTL simplifications by default for ltl2tgba & ltl2tgta, and make
	sure the ltl_simplifier_options are all false initially.  Before this
	patch --low/-r1 had the same effect as --medium/-r2 with respect to LTL
	simplification.

	* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc (simplification_level): Set
	to 3 by default.
	* src/bin/common_r.cc: Disable all ltl_simplifier options initially.

2013-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Improve some Doxygen comments.

	This follows up on a mail from Sonali Dutta.

	* src/tgba/bdddict.hh (assert_emptiness, ~bdd_dict): Better
	documentation.
	* src/tgba/formula2bdd.hh (formula_to_bdd): Mention
	unregister_all_my_variables().
	(bdd_to_formula): Complete the documentation.
	* THANKS: Add Sonali Dutta.

2013-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: work around setup that pass -pvc automatically

	* doc/tl/Makefile.am (LATEXMK): Add -pvc- to work around Etienne's
	setup.

2013-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .dir-locals.el: Remove extra parenthese.

2013-01-31  Thomas Badie  <badie@lrde.epita.fr>

	Fix some VPATH related bugs.

	* bench/ltl2tgba/defs.in (LTLFILT): Add this variable.
	* bench/ltl2tgba/big, bench/ltl2tgba/small: Use $LTLFILT.
	* bench/ltl2tgba/known: Add a missing '$srcdir'.

2013-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.0.1a.

2013-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.0.1

	* NEWS, configure.ac: Bump version.

2013-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/Makefile.am (common_dep): Fix dependency.

2013-01-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltlcross2.test: Fix list of tested configurations.

2013-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/postproc.cc (count_states): Speed up explicit case.

2013-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/minimize.hh: Fix documentation.

2013-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cycles: fix documentation.

	* src/tgbaalgos/cycles.hh: Fix comments.

2013-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: diagnose missing i/o specifications earlier.

	* src/misc/formater.cc, src/misc/formater.hh (scan): New method.
	(prime): Use it.
	* src/bin/ltlcross.cc (translator_runner::translator_runner): Scan each
	specification string, and report those missing an input or output
	%-sequence.
	* NEWS: Mention it.

2013-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: Add compatibility with ltl2dsar's input.

	* src/ltlparse/ltlscan.ll: Accept as a proposition any
	alphanumeric string that is not an operator.
	* NEWS: Mention it.
	* src/ltltest/lbt.test: New file.  Also tests previous patch.
	* src/ltltest/Makefile.am: Add it.

2013-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbt: Do not write a trailing space.

	* NEWS: Mention it.
	* src/ltlvisit/lbt.cc: Instead of outputting a space after each
	node, output one before each node but the first one.

2013-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tostring: quote U, W, M, R when used as atomic propositions

	* src/ltltest/tostring.test, src/ltltest/parse.test: More tests.
	* src/ltlvisit/tostring.cc (is_bare_word): Quote U, W, M, R.
	* NEWS: Mention it.

2013-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Display the number of timeouts.

	* NEWS: Mention it.
	* src/bin/ltlcross.cc: Always display the number of timeout
	on normal termination.

2013-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba on-line: display edge and transition count

	* wrap/python/ajax/spot.in: Adjust display.
	* NEWS: Mention it.

2013-01-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix two dead assignments detected by clang's static analyzer.

	* src/tgbaalgos/scc.cc, src/tgbatest/ltl2tgba.cc: Remove assignments to
	unread variables.

2013-01-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	eltl2tgba: slight cleanup of the tests.

	* src/eltltest/acc.test, src/tgbatest/eltl2tgba.test: Simplify use of
	here documents, and also test for ltl2tgba's -lo option with valgrind.

2013-01-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix documentation errors reported by clang++ 3.2.

	* m4/gccwarn.m4: Use -Wdocumentation if supported.
	* src/ltlast/binop.hh, src/ltlparse/public.hh, src/ta/taproduct.hh,
	src/taalgos/emptinessta.hh, src/taalgos/reachiter.hh,
	src/tgba/state.hh, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/ltl2tgba_fm.hh: Fix Doxygen documentations errors signaled
	by clang++ 3.2.

2013-01-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix several warnings reported by clang++ 3.2.

	* src/tgba/tgbakvcomplement.cc
	(tgba_kv_complement_succ_iterator::current_state_),
	src/ta/taexplicit.hh (state_ta_explicit::source_):
	Remove useless private member.
	* src/ta/taexplicit.cc: Adjust constructors.
	* src/ta/tgta.cc, src/ta/taexplicit.hh: Also fix
	copyright banner.
	* src/bin/ltlcross.cc (exec_with_timeout): Work
	around warning about status not being set in the
	error path.

2013-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Test previous patch.

	* iface/dve2/finite.test: Add test case.
	* NEWS: Mention the fix.

2013-01-14  Pierre PARUTTO  <parutto@lrde.epita.fr>

	tgbaproduct: fix segfault

	* src/tgba/tgbaproduct.cc (transition_annotation): Adapt down cast to
	new hierarchy.

2013-01-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: add four simplification rules for GF and FG

	GF(a|Xb) = GF(a|b)      GF(a|Fb) = GF(a|b)
	FG(a&Xb) = FG(a&b)      FG(a&Gb) = FG(a&b)

	* src/ltlvisit/simplify.cc: Implement them.
	* NEWS, doc/tl/tl.tex: Document them.
	* src/ltltest/reduccmp.test: Test then.

2013-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/babiak.test: Rewrite using ltlcross.

2013-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: Rewrite ltl2neverclaim using ltlcross.

	* src/tgbatest/ltl2neverclaim.test: Rename as...
	* src/tgbatest/ltl2neverclaim-lbtt.test: ... this.
	* src/tgbatest/ltl2neverclaim.test: New version, using ltlcross.
	* src/tgbatest/Makefile.am: Add ltl2neverclaim-lbtt.test.

2013-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around Debian's patched libtool.

	* configure.ac: Set link_all_deplibs to yes.

2013-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_setup.cc: Bump copyright year.

2013-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add missing copyright notice.

	* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/sum.py: Add copyright
	notice.

2013-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update with recent changes.

2013-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove anything related to evtgba.

	* src/evtgba/, src/evtgbaalgos/, src/evtgbaparse/, src/evtgbatest/:
	Delete.
	* src/Makefile.am (SUBDIRS): Adjust.
	* configure.ac, README: Adujst.

2013-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench: delete useless defs.in files.

	* bench/wdba/defs.in, bench/ltlclasses/defs.in,
	bench/ltlcounter/defs.in: Delete.
	* bench/wdba/run, bench/ltlclasses/run, bench/ltlcounter/run: Adjust not
	to use them.
	* configure.ac: Do not output the associated defs files.

2013-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite the ltl2tgba bench using ltlcross

	* bench/ltl2tgba/sum.py: New file.
	* bench/ltl2tgba/.gitignore, bench/ltl2tgba/Makefile.am,
	bench/ltl2tgba/README, bench/ltl2tgba/algorithms, bench/ltl2tgba/big,
	bench/ltl2tgba/defs.in, bench/ltl2tgba/known, bench/ltl2tgba/small:
	Rewrite this benchmark completely.  Also drop support of Wring and
	Modella, as we cannot get them to work reliably.
	* bench/ltl2tgba/formulae.ltl: Rewrite in Spot's syntax.
	* bench/ltl2tgba/lbtt2csv.pl, bench/ltl2tgba/ltl2baw.in,
	bench/ltl2tgba/parseout.pl: Delete these scripts, no
	longer needed.
	* configure.ac: Do not output ltl2baw.pl anymore.

2012-12-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove LBTT.

	* configure.ac: Detect lbtt using AC_CHECK_PROG.
	* m4/lbtt.m4: Delete.
	* lbtt/: Remove directory.
	* Makefile.am, README: Adjust.

2012-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Address several issues reported by cppcheck all over the place.

	* src/bin/common_finput.cc, src/tgbaalgos/lbtt.cc: Use !empty() instead
	of size() > 0.
	* src/bin/ltl2tgta.cc, src/kripke/kripkeexplicit.cc,
	src/tgbatest/complementation.cc: Avoid useless assignments.
	* src/bin/ltlcross.cc: Correct mistaken assignment inside assert().
	* src/evtgba/symbol.hh, src/tgba/tgbabddcoredata.cc,
	src/tgba/tgbabddcoredata.hh,
	src/tgba/tgbasafracomplement.cc (operator=): Do not return a const
	reference.
	* src/evtgbatest/ltl2evtgba.cc, src/evtgbatest/product.cc,
	src/evtgbatest/product.cc: Check indices before using them, not after.
	* src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/tgbatest/randtgba.cc: Pass constant strings by reference.
	* src/kripke/kripkeprint.cc, src/tgbaalgos/simulation.cc:
	Remove a useless operation.
	* src/ltlvisit/simplify.cc: Remove a duplicate condition.
	* src/misc/formater.hh: Remove unused attribute.
	* src/misc/modgray.cc: Initialize done_ in the constructor.
	* src/saba/explicitstateconjunction.cc,
	src/saba/explicitstateconjunction.hh (operator=): Fix prototype.
	* src/saba/sabacomplementtgba.cc: Remove unused default constructor.
	* src/ta/taexplicit.cc, src/ta/taproduct.cc, src/ta/tgtaproduct.cc,
	src/ta/tgtaproduct.hh, src/taalgos/emptinessta.cc,
	src/taalgos/minimize.cc, src/taalgos/reachiter.cc,
	src/taalgos/tgba2ta.cc, src/tgbaalgos/cutscc.cc: Use C++ casts, and
	++it instead of it++.
	* src/taalgos/dotty.cc, src/tgbatest/ltl2tgba.cc: Refine the scope of
	variables.
	* src/tgba/tgbakvcomplement.hh (bdd_order): Always initialize bdd_.
	* src/tgba/tgbasgba.cc, src/tgba/wdbacomp.cc: Use the initialization
	line to initialize all members.

2012-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acccompl: Speed up.

	* src/misc/acccompl.cc: Simplify both directions of the conversion.
	* src/misc/acccompl.hh: Pass bdds by reference.

2012-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .dir-locals.el: Fix whitespace-mode configuration.

2012-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlast: use the return of insert() to avoid a double lookup

	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/binop.cc, src/ltlast/bunop.cc,
	src/ltlast/multop.cc, src/ltlast/unop.cc: Do not look for a key
	and then insert the (key,value) on failure.  Simply insert
	(key,0), and replace 0 by value on failure.  This replaces two map
	lookups by one.

2012-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More documentation.

	* README: Introduce Spot, and point to the documentation.
	* wrap/python/ajax/README: Mention ltl3ba 1.0.2.

2012-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cosmetics.

	* src/sanity/style.test: Catch extra space around operator declarations.
	* src/ltlast/automatop.hh, src/ltlast/multop.hh,
	src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh,
	src/tgbaalgos/simulation.cc: Fix them.

2012-12-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove useless variable.

	* src/tgba/tgbaexplicit.hh (add_state): Remove useless variable.
	Reported by Étienne Renault.

2012-12-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	x-to-1: Honor $PERL

	* tools/x-to-1.in: Run $HELP2MAN via $PERL so that the user gets a
	chance to use his preferred version of Perl.  This is typically
	required by Darwin users whose default /usr/bin/perl do not have all
	the libraries required by help2man, and who need to use their MacPorts
	installation of Perl instead.

2012-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Document recent bug fixes.

2012-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Print F"proc.st" as Fproc.st.

	* src/ltlvisit/tostring.cc: Allow '.' in bare words while
	printing atomic propositions.
	* src/ltltest/bare.test: New file.
	* src/ltltest/Makefile.am: Add it.

2012-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2012-11-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a .dir-locals.el file.

	* .dir-locals.el: New file.
	* Makefile.am (EXTRA_DIST): Distribute it.

2012-11-14  Thomas Badie  <badie@lrde.epita.fr>

	Fix non determinism in the simulation.

	* src/tgbaalgos/simulation.cc: Fix non determinism.
	* src/tgbatest/simdet.test: Test that the behavior is now correct.
	* src/tgbatest/Makefile.am (TESTS): Add the new test to the
	test-suite.

2012-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: diagnose failure to write into temporary files

	The removes a warning about the return code from write() being
	ignored.  Reported by Thomas Badie.

	* src/bin/ltlcross.cc (string_to_tmp): Call error() on error.

2012-10-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.0a

2012-10-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.0.

	* NEWS, configure.ac: Bump version to 1.0.

2012-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* m4/ax_prefix_config_h.m4: Update to more recent version.

2012-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: rephrase some items

2012-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speed-up translation of persistence formulas.

	* src/tgbaalgos/ltl2tgba_fm.cc: Use a single acceptance for syntactic
	persistence formulas.

2012-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Typo in comment.

2012-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Add a --stop-on-error option.

	* src/bin/ltlcross.cc: Add the option.
	* src/bin/common_finput.hh, src/bin/common_finput.cc: Make it possible
	to abort run().

2012-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	unabbreviate_wm: fix a segfault.

	* src/ltlvisit/wmunabbrev.cc: Fix clone() order.
	* src/ltltest/equals.cc: Add a mode for unabbreviate_wm().
	* src/ltltest/unabbrevwm.test: New file.
	* src/ltltest/Makefile.am: Add it.

2012-10-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/genltl.x: Missing dot.

2012-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename ltlcheck as ltlcross

	* src/bin/ltlcheck.cc, src/bin/man/ltlcheck.x,
	src/tgbatest/ltlcheck.test, src/tgbatest/ltlcheck2.test: Rename as ...
	* src/bin/ltlcross.cc, src/bin/man/ltlcross.x,
	src/tgbatest/ltlcross.test, src/tgbatest/ltlcross2.test: ... these.
	* NEWS, src/bin/Makefile.am, src/bin/man/Makefile.am,
	src/tgbatest/Makefile.am: Adjust.

2012-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbaexplicit: fix state_is_accepting()

	* src/tgba/tgbaexplicit.hh (state_is_accepting): Use
	all_acceptance_conditions(), not all_acceptance_conditions_, so that
	it works even when all_acceptance_conditions_ is not ready.
	* src/tgbatest/explicit2.cc, src/tgbatest/explicit2.test: Adjust
	test case.

2012-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add the possibility to output a monitor

	* src/tgbaalgos/stripacc.cc, src/tgbaalgos/stripacc.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add a Monitor
	output option.
	* src/bin/ltl2tgba.cc: Add a --monitor/-M option.
	* NEWS: Mention monitors.
	* src/tgba/tgbaexplicit.hh (is_accepting_state): Fix for the
	case where the automaton has no acceptance set.

2012-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Document to_wring_string().

2012-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a parse_boolean() function to use in parsers for Automata.

	* src/ltlparse/public.hh, src/ltlparse/ltlparse.yy (parse_boolean):
	New function.
	* src/neverparse/neverclaimparse.yy, src/tgbaparse/tgbaparse.yy:
	Use it.

2012-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_string: remove extra parentheses

	* src/ltlvisit/tostring.cc: Fix duplicate parentheses around
	argument of unary operators when full_parent=true.

2012-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for printing LTL formulas using Wring's syntax.

	* src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc
	(to_wring_string): New option.
	* src/bin/common_output.hh, src/bin/common_output.cc:
	Add support for a --wring option.
	* src/bin/ltlcheck.cc: Add %w and %W format specifiers.

2012-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaexplicit.hh: Fix hash_map definition to please old g++.

2012-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: Adjust version display and help options.

	In particular, this get rid of the ugly -? option that argp adds by
	default, and we also remove -V so that we can use it for something
	else later.

	* src/bin/common_setup.cc, src/bin/common_setup.hh (misc_argp):
	Provide support for --help/--version/--usage output, replacing argp's
	default builting version.
	* src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlcheck.cc, src/bin/ltlfilt.cc, src/bin/randltl.cc:
	Call argp_parse() with ARGP_NO_HELP, and use misc_argp instead.

2012-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	accconv: speed up acceptance_convertor::as_positive_product()

	* src/misc/accconv.cc (as_positive_product): Use a small loop instead
	of calling bdd_satone().

2012-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbaexplicit: speed up merge_transitions()

	* src/tgba/tgbaexplicit.hh (merge_transitions): Use a hash table
	to merge compatible transitions.
	* src/tgbatest/readsave.test: Add a test case.

2012-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Cleanup temporary files on ^C.

2012-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbttparse: allow acceptance sets that are not consecutive integers.

	* src/tgbaalgos/lbtt.cc: Renumber acceptance sets as they are read.
	* src/tgbatest/lbttparse.test: Add a test cases.

2012-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbttparse: make sure we parse wring2lbtt's output

	* src/tgbaalgos/lbtt.cc: Do not expect a new line after the number of
	acceptance conditions.
	* src/tgbatest/lbttparse.test: Add a test case.

2012-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: diagnose empty (...) block in lenient mode.

	* src/ltlparse/ltlparse.yy (try_recursive_parse): Diagnose
	empty strings.
	* src/ltltest/lenient.test: Add tests.

2012-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention lenient parsing.

2012-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: add a lenient parsing mode

	Spin 6 supports formulas such as []<>(a < b) so that atomic properties
	need not be specified using #define.  Of course we don't want to
	implement all the syntax of Spin in our LTL parser because other tools
	may have different syntaxes for their atomic propositions.  The
	lenient mode tells the scanner to return any (...), {...}, or {...}!
	block as a single token.  The parser will try to recursively parse
	this block as a LTL/SERE formula, and if this fails, it will consider
	the block to be an atomic proposition.  The drawback is that most
	syntax errors will no be considered to be atomic propositions.  For
	instance (a U b U) is a single atomic proposition in lenient mode, and
	a syntax error in default mode.

	* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll,
	src/ltlparse/parsedecl.hh, src/ltlparse/public.hh: Add a
	lenient parsing mode.  Simplify the lexer using yy_scan_string.
	* src/bin/common_finput.cc: Add a --lenient option.
	* src/ltltest/lenient.test: New file.
	* src/ltltest/Makefile.am: Add it.
	* src/neverparse/neverclaimparse.yy: Parse the guards in lenient mode.
	* src/tgbatest/neverclaimread.test: Adjust.
	* src/ltlvisit/tostring.cc: When outputing a formula in Spin's syntax,
	output (a < b) instead of "a < b".
	* src/misc/escape.cc, src/misc/escape.hh (trim): New helper function.

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: plug several memory leaks

	* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc: Destroy the translated
	formulas.
	* src/bin/ltlcheck.cc, src/bin/ltlfilt.cc: Free the unicity table on
	exit.

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Add a --no-checks option.

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: do not check duplicate formulas

	* src/bin/ltlcheck.cc: filter duplicate formulas, unless the
	new --allow-dups option is used.

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: mention ltlcheck

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man page cosmetics

	* src/bin/man/genltl.x, src/bin/man/ltlcheck.x, src/bin/man/ltlfilt.x,
	src/bin/man/randltl.x: Use .BR in the SEE ALSO section.

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: add options --json and --csv

	* src/bin/ltlcheck.cc: Add option --json and --csv.
	* src/bin/man/ltlcheck.x: Adjust examples.
	* src/tgbatest/ltlcheck.test: Do not output any statistic.
	* src/tgbatest/ltlcheck2.test: Output both JSON and CSV stats.

2012-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/spotlbtt.test: Remove superfluous options.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: add a "Sanity check..." message

	* src/bin/ltlcheck.cc: Here.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add new tests for LTL and PSL translation, based on ltlcheck.

	* src/tgbatest/ltlcheck.test, src/tgbatest/ltlcheck2.test: New files.
	* src/tgbatest/Makefile.am: Add them.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Diagnose missing output format.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: do not ignore ^C during sanity checks

	* src/bin/ltlcheck.cc (sig_handler): Exit when receiving the signal.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/simplify.cc (simplify_visitor): Return automatop as-is.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: Add a man page.

	* src/bin/man/ltlcheck.x: New file.
	* src/bin/man/Makefile.am: Add it.
	* src/bin/ltlcheck.cc: Arrange help text.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a has_lbt_atomic_props() method to LTL formulas.

	* src/ltlast/formula.hh (has_lbt_atomic_props): New method.
	* src/ltlast/formula.cc (printprops): Display it.
	* src/ltlast/atomic_prop.cc: Update it.
	* src/bin/ltlcheck.cc, src/bin/genltl.cc: Use it.
	* doc/tl/tl.tex: Menton has_lbt_atomic_props().

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: disable timeout handling when  kill() or alarm() are missing

	* configure.ac: Check for kill and alarm.
	* src/bin/ltlcheck.cc: Disable timeout code when kill or alarm are
	missing.  Recognize the --timeout option, but display a warning.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: use kill instead of killpg

	kill(-x,y) is more portable than killpg(x,y)

	* src/bin/ltlcheck.cc: Use kill.

2012-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: add module sys_wait, for compilation on MinGW

	Also, upgrade to gnulib 4af1990a0902f5914f582bade9d1aa843a291f5a.

	* lib/sys_wait.in.h, m4/sys_wait_h.m4: New files.
	* m4/sys_stat_h.m4, m4/stdlib_h.m4, m4/gnulib-comp.m4,
	m4/gnulib-cache.m4, lib/stdlib.in.h, lib/Makefile.am: Update.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/lbt.cc: Add missing case for Xor.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbtt_parse: add support for state-based acceptance

	* src/tgbaalgos/lbtt.cc (lbtt_read_gba): New function.
	(lbtt_parse): Call lbtt_read_gba.
	* src/tgbatest/lbttparse.test: Add a test.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/formater.hh: Add virtual destructors to please g++-4.0.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_spin_string: fix output of false and true

	We used to output 0 and 1, but "spin -f" does not under understand
	that.

	* src/ltlvisit/tostring.cc (kw_spin): Output true and false instead of
	0 and 1.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Fix exit status and error reporting.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: Add a timeout option.

	* src/bin/ltlcheck.cc: Add option -T and machinery for signal handling.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcheck: Record translation time.

	* lib/gethrxtime.h, lib/xtime.h: Add extern "C".
	* src/bin/Makefile.am (ltlcheck_LDADD): Use LIB_GETHRXTIME.
	* src/bin/ltlcheck.cc: Use gethrxtime() to record translation time.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Import the gethrxtime module from gnulib.

	gnulib 9e117ae955a5c6a0406140e62b76c3ef50e3bc2b.

	* lib/gethrxtime.c, lib/gethrxtime.h, lib/gettime.c, lib/timespec.c,
	lib/timespec.h, lib/xtime.h, m4/clock_time.m4, m4/gethrxtime.m4,
	m4/gettime.m4, m4/timespec.m4: New files.
	* m4/gnulib-cache.m4, m4/gnulib-comp.m4, lib/Makefile.am: Adjust.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Improve example in --help.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Compute statistics and print them in JSON.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Pick the most readable format available for displaying formulas.

	* src/bin/ltlcheck.cc (translator_runner::formula): New function.
	(processor::process_formula): Use it.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Clean up the misc/formater.hh file.

	* src/misc/formater.hh (formater::format, formater::prime): Move ...
	* src/misc/formater.cc: ... in this new file.
	* src/misc/Makefile.am: Add it.
	* src/sanity/style.test: Allow <iostream> in headers where << or >> are
	used.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use the spot::formater class in ltlcheck to format output commands.

	* src/misc/formater.hh (printable_value): Add more accessors.
	* src/bin/ltlcheck.cc: Use the formater class to factor the %-expansion
	loop, and reuse filenames (such as %F, %S, and %L) between executions
	on the same formula.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Factor the %-formating machinery.

	* src/misc/formater.hh: New file.
	* src/misc/Makefile.am: Add it.
	* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh: Use it.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcheck.cc: Add support for LBTT's output as %T.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlparse/ltlscan.ll: Reset the starting condition to 0 initially.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a parser for automata in LBTT's format.

	* src/tgbaalgos/lbtt.hh, src/tgbaalgos/lbtt.cc (lbtt_parse):
	New function.
	* src/tgba/tgbaexplicit.hh (get_acceptance_condition): Make it public.
	* src/tgbatest/ltl2tgba.cc: Add a -XL option to read LBTT file.
	* src/tgbatest/lbttparse.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Preliminary implementation of an LBTT clone.

	* src/bin/ltlcheck.cc: New file.
	* src/bin/Makefile.am: Add it.

2012-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: upgrade and install the mkstemp module.

	gnulib 9e117ae955a5c6a0406140e62b76c3ef50e3bc2b.

	* lib/fcntl.in.h, lib/gettimeofday.c, lib/lstat.c, lib/mkstemp.c,
	lib/pathmax.h, lib/stat.c, lib/sys_stat.in.h, lib/sys_time.in.h,
	lib/tempname.c, lib/tempname.h, lib/time.in.h, lib/xsize.c,
	m4/extern-inline.m4, m4/fcntl-o.m4, m4/fcntl_h.m4, m4/gettimeofday.m4,
	m4/largefile.m4, m4/lstat.m4, m4/mkstemp.m4, m4/pathmax.m4,
	m4/stat.m4, m4/sys_stat_h.m4, m4/sys_time_h.m4, m4/tempname.m4,
	m4/time_h.m4: New files.
	* lib/xsize.h, m4/gnulib-cache.m4, m4/gnulib-comp.m4,
	m4/xsize.m4, lib/Makefile.am: Upgrade.

2012-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/kv.test: Fix the test comparison.

2012-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Upgrade GPL v2+ to GPL v3+.

	* NEWS: Mention this.
	* COPYING: Replace by GPL v3.
	* src/sanity/style.test: Check files with the wrong license,
	in case we forgot to update it during a merge.
	* Makefile.am, bench/Makefile.am, bench/emptchk/Makefile.am,
	bench/emptchk/defs.in, bench/emptchk/ltl-human.sh,
	bench/emptchk/ltl-random.sh, bench/emptchk/pml-clserv.sh,
	bench/emptchk/pml-eeaean.sh, bench/emptchk/pml2tgba.pl,
	bench/ltl2tgba/big, bench/ltl2tgba/defs.in, bench/ltl2tgba/known,
	bench/ltl2tgba/lbtt2csv.pl, bench/ltl2tgba/ltl2baw.in,
	bench/ltl2tgba/parseout.pl, bench/ltl2tgba/small,
	bench/ltlclasses/Makefile.am, bench/ltlclasses/defs.in,
	bench/ltlclasses/run, bench/ltlcounter/Makefile.am,
	bench/ltlcounter/defs.in, bench/ltlcounter/run,
	bench/scc-stats/Makefile.am, bench/scc-stats/stats.cc,
	bench/split-product/Makefile.am, bench/split-product/cutscc.cc,
	bench/split-product/pml2tgba.pl, bench/wdba/Makefile.am,
	bench/wdba/defs.in, bench/wdba/run, configure.ac, doc/Makefile.am,
	doc/dot.in, doc/tl/Makefile.am, iface/Makefile.am,
	iface/dve2/Makefile.am, iface/dve2/defs.in, iface/dve2/dve2.cc,
	iface/dve2/dve2.hh, iface/dve2/dve2check.cc,
	iface/dve2/dve2check.test, iface/dve2/finite.test,
	iface/dve2/kripke.test, iface/gspn/Makefile.am, iface/gspn/common.cc,
	iface/gspn/common.hh, iface/gspn/dcswave.test,
	iface/gspn/dcswaveeltl.test, iface/gspn/dcswavefm.test,
	iface/gspn/dcswaveltl.test, iface/gspn/dottygspn.cc,
	iface/gspn/dottyssp.cc, iface/gspn/gspn.cc, iface/gspn/gspn.hh,
	iface/gspn/ltlgspn.cc, iface/gspn/simple.test, iface/gspn/ssp.cc,
	iface/gspn/ssp.hh, iface/gspn/udcsefm.test, iface/gspn/udcseltl.test,
	iface/gspn/udcsfm.test, iface/gspn/udcsltl.test, src/Makefile.am,
	src/bin/Makefile.am, src/bin/common_cout.cc, src/bin/common_cout.hh,
	src/bin/common_finput.cc, src/bin/common_finput.hh,
	src/bin/common_output.cc, src/bin/common_output.hh,
	src/bin/common_post.cc, src/bin/common_post.hh, src/bin/common_r.cc,
	src/bin/common_r.hh, src/bin/common_range.cc, src/bin/common_range.hh,
	src/bin/common_setup.cc, src/bin/common_setup.hh,
	src/bin/common_sys.hh, src/bin/genltl.cc, src/bin/ltl2tgba.cc,
	src/bin/ltl2tgta.cc, src/bin/ltlfilt.cc, src/bin/man/Makefile.am,
	src/bin/randltl.cc, src/eltlparse/Makefile.am,
	src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll,
	src/eltlparse/fmterror.cc, src/eltlparse/parsedecl.hh,
	src/eltlparse/public.hh, src/eltltest/Makefile.am,
	src/eltltest/acc.cc, src/eltltest/acc.test, src/eltltest/defs.in,
	src/eltltest/nfa.cc, src/eltltest/nfa.test, src/evtgba/Makefile.am,
	src/evtgba/evtgba.cc, src/evtgba/evtgba.hh, src/evtgba/evtgbaiter.hh,
	src/evtgba/explicit.cc, src/evtgba/explicit.hh, src/evtgba/product.cc,
	src/evtgba/product.hh, src/evtgba/symbol.cc, src/evtgba/symbol.hh,
	src/evtgbaalgos/Makefile.am, src/evtgbaalgos/dotty.cc,
	src/evtgbaalgos/dotty.hh, src/evtgbaalgos/reachiter.cc,
	src/evtgbaalgos/reachiter.hh, src/evtgbaalgos/save.cc,
	src/evtgbaalgos/save.hh, src/evtgbaalgos/tgba2evtgba.cc,
	src/evtgbaalgos/tgba2evtgba.hh, src/evtgbaparse/Makefile.am,
	src/evtgbaparse/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
	src/evtgbaparse/fmterror.cc, src/evtgbaparse/parsedecl.hh,
	src/evtgbaparse/public.hh, src/evtgbatest/Makefile.am,
	src/evtgbatest/defs.in, src/evtgbatest/explicit.cc,
	src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.cc,
	src/evtgbatest/ltl2evtgba.test, src/evtgbatest/product.cc,
	src/evtgbatest/product.test, src/evtgbatest/readsave.cc,
	src/evtgbatest/readsave.test, src/kripke/Makefile.am,
	src/kripke/fairkripke.cc, src/kripke/fairkripke.hh,
	src/kripke/kripke.cc, src/kripke/kripke.hh,
	src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh,
	src/kripkeparse/Makefile.am, src/kripkeparse/fmterror.cc,
	src/kripkeparse/kripkeparse.yy, src/kripkeparse/kripkescan.ll,
	src/kripkeparse/parsedecl.hh, src/kripkeparse/public.hh,
	src/kripkeparse/scankripke.ll, src/kripketest/Makefile.am,
	src/kripketest/bad_parsing.test, src/kripketest/defs.in,
	src/kripketest/kripke.test, src/kripketest/parse_print_test.cc,
	src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
	src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
	src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/binop.cc,
	src/ltlast/binop.hh, src/ltlast/bunop.cc, src/ltlast/bunop.hh,
	src/ltlast/constant.cc, src/ltlast/constant.hh, src/ltlast/formula.cc,
	src/ltlast/formula.hh, src/ltlast/formula_tree.cc,
	src/ltlast/formula_tree.hh, src/ltlast/multop.cc,
	src/ltlast/multop.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh,
	src/ltlast/predecl.hh, src/ltlast/refformula.cc,
	src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
	src/ltlast/visitor.hh, src/ltlenv/Makefile.am, src/ltlenv/declenv.cc,
	src/ltlenv/declenv.hh, src/ltlenv/defaultenv.cc,
	src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
	src/ltlparse/Makefile.am, src/ltlparse/fmterror.cc,
	src/ltlparse/ltlfile.cc, src/ltlparse/ltlfile.hh,
	src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll,
	src/ltlparse/parsedecl.hh, src/ltlparse/public.hh,
	src/ltltest/Makefile.am, src/ltltest/consterm.cc,
	src/ltltest/consterm.test, src/ltltest/defs.in, src/ltltest/equals.cc,
	src/ltltest/equals.test, src/ltltest/kind.cc, src/ltltest/kind.test,
	src/ltltest/length.cc, src/ltltest/length.test,
	src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
	src/ltltest/parse.test, src/ltltest/parseerr.test,
	src/ltltest/readltl.cc, src/ltltest/reduc.cc, src/ltltest/reduc.test,
	src/ltltest/reduccmp.test, src/ltltest/reducpsl.test,
	src/ltltest/syntimpl.cc, src/ltltest/syntimpl.test,
	src/ltltest/tostring.cc, src/ltltest/tostring.test,
	src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
	src/ltltest/utf8.test, src/ltltest/uwrm.test,
	src/ltlvisit/Makefile.am, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/ltlvisit/clone.cc,
	src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
	src/ltlvisit/contain.hh, src/ltlvisit/destroy.cc,
	src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
	src/ltlvisit/dump.cc, src/ltlvisit/dump.hh, src/ltlvisit/lbt.cc,
	src/ltlvisit/lbt.hh, src/ltlvisit/length.cc, src/ltlvisit/length.hh,
	src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
	src/ltlvisit/mark.cc, src/ltlvisit/mark.hh, src/ltlvisit/nenoform.cc,
	src/ltlvisit/nenoform.hh, src/ltlvisit/postfix.cc,
	src/ltlvisit/postfix.hh, src/ltlvisit/randomltl.cc,
	src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.cc,
	src/ltlvisit/reduce.hh, src/ltlvisit/relabel.cc,
	src/ltlvisit/relabel.hh, src/ltlvisit/simpfg.cc,
	src/ltlvisit/simpfg.hh, src/ltlvisit/simplify.cc,
	src/ltlvisit/simplify.hh, src/ltlvisit/snf.cc, src/ltlvisit/snf.hh,
	src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
	src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
	src/ltlvisit/wmunabbrev.cc, src/ltlvisit/wmunabbrev.hh,
	src/misc/Makefile.am, src/misc/acccompl.cc, src/misc/acccompl.hh,
	src/misc/accconv.cc, src/misc/accconv.hh, src/misc/bareword.cc,
	src/misc/bareword.hh, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
	src/misc/bddlt.hh, src/misc/bddop.cc, src/misc/bddop.hh,
	src/misc/casts.hh, src/misc/escape.cc, src/misc/escape.hh,
	src/misc/fixpool.hh, src/misc/freelist.cc, src/misc/freelist.hh,
	src/misc/hash.hh, src/misc/hashfunc.hh, src/misc/intvcmp2.cc,
	src/misc/intvcmp2.hh, src/misc/intvcomp.cc, src/misc/intvcomp.hh,
	src/misc/ltstr.hh, src/misc/memusage.cc, src/misc/memusage.hh,
	src/misc/minato.cc, src/misc/minato.hh, src/misc/modgray.cc,
	src/misc/modgray.hh, src/misc/mspool.hh, src/misc/optionmap.cc,
	src/misc/optionmap.hh, src/misc/random.cc, src/misc/random.hh,
	src/misc/timer.cc, src/misc/timer.hh, src/misc/unique_ptr.hh,
	src/misc/version.cc, src/misc/version.hh, src/neverparse/Makefile.am,
	src/neverparse/fmterror.cc, src/neverparse/neverclaimparse.yy,
	src/neverparse/neverclaimscan.ll, src/neverparse/parsedecl.hh,
	src/neverparse/public.hh, src/saba/Makefile.am,
	src/saba/explicitstateconjunction.cc,
	src/saba/explicitstateconjunction.hh, src/saba/saba.cc,
	src/saba/saba.hh, src/saba/sabacomplementtgba.cc,
	src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
	src/saba/sabasucciter.hh, src/sabaalgos/Makefile.am,
	src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
	src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
	src/sabatest/Makefile.am, src/sabatest/defs.in,
	src/sabatest/sabacomplementtgba.cc, src/sanity/Makefile.am,
	src/sanity/readme.test, src/sanity/style.test, src/ta/Makefile.am,
	src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh,
	src/ta/tgta.cc, src/ta/tgta.hh, src/ta/tgtaexplicit.cc,
	src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
	src/taalgos/Makefile.am, src/taalgos/dotty.cc, src/taalgos/dotty.hh,
	src/taalgos/emptinessta.cc, src/taalgos/emptinessta.hh,
	src/taalgos/minimize.cc, src/taalgos/minimize.hh,
	src/taalgos/reachiter.cc, src/taalgos/reachiter.hh,
	src/taalgos/statessetbuilder.cc, src/taalgos/statessetbuilder.hh,
	src/taalgos/stats.cc, src/taalgos/stats.hh, src/taalgos/tgba2ta.cc,
	src/taalgos/tgba2ta.hh, src/tgba/Makefile.am, src/tgba/bdddict.cc,
	src/tgba/bdddict.hh, src/tgba/bddprint.cc, src/tgba/bddprint.hh,
	src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh,
	src/tgba/futurecondcol.cc, src/tgba/futurecondcol.hh,
	src/tgba/public.hh, src/tgba/sba.hh, src/tgba/state.hh,
	src/tgba/statebdd.cc, src/tgba/statebdd.hh, src/tgba/succiter.hh,
	src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
	src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.cc,
	src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
	src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
	src/tgba/tgbabddconcretefactory.hh,
	src/tgba/tgbabddconcreteproduct.cc,
	src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
	src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
	src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
	src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.hh,
	src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgba/tgbascc.cc, src/tgba/tgbascc.hh, src/tgba/tgbasgba.cc,
	src/tgba/tgbasgba.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
	src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc,
	src/tgba/wdbacomp.hh, src/tgbaalgos/Makefile.am,
	src/tgbaalgos/bfssteps.cc, src/tgbaalgos/bfssteps.hh,
	src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh,
	src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh,
	src/tgbaalgos/dottydec.cc, src/tgbaalgos/dottydec.hh,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/eltl2tgba_lacim.hh,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/emptiness_stats.hh, src/tgbaalgos/gtec/Makefile.am,
	src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
	src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh,
	src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
	src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh, src/tgbaalgos/isdet.cc,
	src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc,
	src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2taa.cc,
	src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
	src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/projrun.cc, src/tgbaalgos/projrun.hh,
	src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh,
	src/tgbaalgos/reachiter.cc, src/tgbaalgos/reachiter.hh,
	src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh,
	src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
	src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh,
	src/tgbaalgos/safety.cc, src/tgbaalgos/safety.hh,
	src/tgbaalgos/save.cc, src/tgbaalgos/save.hh, src/tgbaalgos/scc.cc,
	src/tgbaalgos/scc.hh, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.cc,
	src/tgbaalgos/se05.hh, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.cc,
	src/tgbaalgos/stats.hh, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03.hh, src/tgbaalgos/tau03opt.cc,
	src/tgbaalgos/tau03opt.hh, src/tgbaalgos/weight.cc,
	src/tgbaalgos/weight.hh, src/tgbaparse/Makefile.am,
	src/tgbaparse/fmterror.cc, src/tgbaparse/parsedecl.hh,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbaparse/tgbascan.ll, src/tgbatest/Makefile.am,
	src/tgbatest/babiak.test, src/tgbatest/bddprod.test,
	src/tgbatest/complementation.cc, src/tgbatest/complementation.test,
	src/tgbatest/cycles.test, src/tgbatest/defs.in,
	src/tgbatest/degendet.test, src/tgbatest/degenid.test,
	src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
	src/tgbatest/eltl2tgba.test, src/tgbatest/emptchk.test,
	src/tgbatest/emptchke.test, src/tgbatest/emptchkr.test,
	src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
	src/tgbatest/explicit2.cc, src/tgbatest/explicit2.test,
	src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
	src/tgbatest/explpro4.test, src/tgbatest/explprod.cc,
	src/tgbatest/explprod.test, src/tgbatest/intvcmp2.cc,
	src/tgbatest/intvcomp.cc, src/tgbatest/intvcomp.test,
	src/tgbatest/kv.test, src/tgbatest/ltl2neverclaim.test,
	src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/ltl2tgba.test, src/tgbatest/ltlcounter.test,
	src/tgbatest/ltlprod.cc, src/tgbatest/ltlprod.test,
	src/tgbatest/mixprod.cc, src/tgbatest/mixprod.test,
	src/tgbatest/neverclaimread.test, src/tgbatest/nondet.test,
	src/tgbatest/obligation.test, src/tgbatest/powerset.cc,
	src/tgbatest/randpsl.test, src/tgbatest/randtgba.cc,
	src/tgbatest/randtgba.test, src/tgbatest/readsave.test,
	src/tgbatest/renault.test, src/tgbatest/scc.test,
	src/tgbatest/sccsimpl.test, src/tgbatest/spotlbtt.test,
	src/tgbatest/spotlbtt2.test, src/tgbatest/taatgba.cc,
	src/tgbatest/taatgba.test, src/tgbatest/tgbaread.cc,
	src/tgbatest/tgbaread.test, src/tgbatest/tripprod.cc,
	src/tgbatest/tripprod.test, src/tgbatest/wdba.test,
	src/tgbatest/wdba2.test, wrap/Makefile.am, wrap/python/Makefile.am,
	wrap/python/ajax/Makefile.am, wrap/python/ajax/spot.in,
	wrap/python/buddy.i, wrap/python/spot.i,
	wrap/python/tests/Makefile.am, wrap/python/tests/alarm.py,
	wrap/python/tests/bddnqueen.py, wrap/python/tests/implies.py,
	wrap/python/tests/interdep.py, wrap/python/tests/ltl2tgba.py,
	wrap/python/tests/ltl2tgba.test, wrap/python/tests/ltlparse.py,
	wrap/python/tests/ltlsimple.py, wrap/python/tests/minato.py,
	wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py,
	wrap/python/tests/parsetgba.py, wrap/python/tests/run.in,
	wrap/python/tests/setxor.py: Update licence version, and replace the
	FSF address by a URL.

2012-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/kv.test: Rewrite the sed command more portably.

2012-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_map: fix computation of ap_set_of, and (indirectly) aprec_set_of

	Reported by Étienne Renault.

	* src/tgbaalgos/scc.cc (build_map): Update root_.frond().supp for all
	transitions leaving the top state, not only those causing a merge.
	* src/tgbaalgos/scc.hh (ap_set_of): Clarify documentation.
	* src/tgbatest/kv.test: Add a test case.

2012-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaexplicit.hh: Fix definition of the new alias_ map.

2012-10-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/sanity/includes.test: Work around a bug in Bison 2.6.

2012-10-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/neverparse/neverclaimparse.yy: Prefer accepting labels in aliases.

2012-10-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_explicit: fix support for aliases

	This had been broken in the 0.9 reorganization of the tgba_explicit
	hierarchy.  The output of 'spin -f' was incorrectly parsed as a
	consequence.

	* src/tgba/tgbaexplicit.hh: Introduce an alias_ map and use it.

2012-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a string version of to_lbt_string().

	* src/ltlvisit/lbt.cc, src/ltlvisit/lbt.hh (to_lbt_string):
	New string version.

2012-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/cycles.cc (nocycle): Fix a comment.

2012-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	enumerate_cycles: fix memory management.

	* src/tgbaalgos/cycles.cc (tag_state): Destroy duplicate states, not
	new states!
	* src/tgbatest/cycles.test: Add a test case that used to segfault.
	Reported by Étienne Renault.

2012-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix return of is_deterministic(), it was inverted.

	Reported by Étienne Renault.

	* src/tgbaalgos/isdet.cc (is_deterministic): Invert return code.
	* src/tgbatest/nondet.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.

2012-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor version display.

	* src/bin/common_setup.cc (display_version): New function.
	(setup): Hook the display_version function.
	(argp_program_bug_address): Define this common variable here.
	* src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlfilt.cc, src/bin/randltl.cc (argp_program_bug_address,
	argp_program_version): Remove these definitions.

2012-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor the calls to set_program_name().

	* src/bin/common_setup.cc, src/bin/common_setup.hh: New files.
	* src/bin/Makefile.am: Add them.
	* src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlfilt.cc, src/bin/randltl.cc: Adjust.

2012-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor the code to read LTL formulas from -f or -F.

	* src/bin/common_finput.cc, src/bin/common_finput.hh: Define the
	processor class.
	* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc, src/bin/ltlfilt.cc:
	Simplify accordingly.

2012-09-27  Thomas Badie  <badie@lrde.epita.fr>

	simulation: Fix a bug reported by Étienne Renault.

	* src/tgbatest/renault.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* src/tgbaalgos/simulation.cc: Fix the bug.

2012-09-26  Thomas Badie  <badie@lrde.epita.fr>

	Create unique_ptr for Spot.

	* src/misc/unique_ptr.hh: Create unique_ptr for Spot.
	* src/misc/Makefile.am: Register this new file.
	* src/tgbatest/ltl2tgba.cc: Replace two calls to delete by the
	utilisation of unique_ptr.
	* src/tgbaalgos/simulation.cc: Replace two calls to delete by the
	utilisation of unique_ptr.

2012-09-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Allow lbtt not to be built, and skip relevant tests.

	* m4/lbtt.m4: Turn the missing lbtt error into a warning,
	and do not configure lbtt wen --without-included-lbtt is specified.
	* bench/ltl2tgba/defs.in: Abort if lbtt is missing.
	* src/tgbatest/defs.in (need_lbtt): New function to skip
	tests that require lbtt.
	* src/tgbatest/babiak.test, src/tgbatest/ltl2neverclaim.test,
	src/tgbatest/spotlbtt.test: Call need_lbtt.

2012-09-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlfilt.cc (--psl): Remove this option.

2012-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/minimize.hh: Typo in comment.

2012-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgta: new tool

	* src/bin/common_post.cc, src/bin/common_post.hh: New files, extracted
	from ...
	* src/bin/ltl2tgba.cc: ... here.
	* src/bin/ltl2tgta.cc, src/bin/man/ltl2tgta.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Adjust.
	* NEWS: Mention ltl2tgta.

2012-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix prototype of atomic_prop_collect_as_bdd().

	* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh
	(atomic_prop_collect_as_bdd): Take a const tgba.

2012-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Document the Gettext.pm and LaTeX dependencies

2012-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add two event_univ rewriting rules.

	* src/ltlvisit/simplify.cc: Here.
	* doc/tl/tl.tex: Document them.
	* src/ltltest/reduccmp.test: Test them.

2012-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add 11 implication-based simplification rules for U,W,R,M.

	* src/ltlvisit/simplify.cc: Add them.
	* src/ltltest/reduccmp.test: Check them.
	* doc/tl/tl.tex: Document them.

2012-09-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix failures detected on MacOS X with g++ 4.0.

	* src/tgbaalgos/cycles.hh (state_info): Initialize
	mark and reach to false.
	* src/tgbatest/cycles.test: Use jot if seq is missing,
	and a custom loop of jot is missing too.

2012-09-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around old g++ versions.

	* src/tgbaalgos/isweakscc.cc (cycle_found): Add a const_cast.

2012-09-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/cycles.hh: Add virtual destructor.

2012-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup is_weak_scc() if all transitions in the SCC are accepting.

	* src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh: Speedup when
	all transitions are accepting.

2012-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Don't pass the automaton to enumerate_cycle and is_weak_scc.

	The scc_map knows the automaton already.

	* src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh: Simplify the
	interface.
	* src/tgbatest/ltl2tgba.cc: Adjust calls.

2012-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dve2: use postprocessor to simplify the code.

	* iface/dve2/dve2check.cc: Use postprocessor to simplify the code.
	* iface/dve2/dve2check.test: Adjust to some different output values
	when a counterexample is found, caused by nondeterminism introduced by
	the orders of transitions.

2012-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reorganize and update recent changes.

2012-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Better documentation for the cycle enumeration algorithms.

	* src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/isweakscc.hh: Improve .doc
	* src/tgbaalgos/isweakscc.cc (weak_checker::cycle_found):
	Scan the DFS backward so we only look at the cycle part.

2012-09-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a is_weak_scc() function based on cycle enumeration.

	* src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc: Add a -KW option.
	* src/tgbatest/cycles.test: Test it on a small example.

2012-09-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement Loizou & Thanisch's algorithm for enumerating cycles.

	* src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
	src/tgbatest/cycles.test: New files.
	* src/tgbaalgos/Makefile.am, src/tgbatest/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc: Add a -KC option for testing.

2012-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbascc.cc: Cosmetics.

2012-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltl2tgba.cc: Fix cases where --stats is not used...

2012-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltl2tgba.cc: Improve documentation.

2012-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: Add a --stats option.

	* src/bin/ltl2tgba.cc (--stats): New option.
	* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh (stat_printer): New
	class.

2012-09-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add option --lbt-input to ltl2tgba.  Factor it with ltlfilt.

	* src/bin/ltlfilt.cc: Extra input options into...
	* src/bin/common_finput.cc, src/bin/common_finput.hh: ... these new
	files...
	* src/bin/ltl2tgba.cc: ... and use them here.
	* src/bin/Makefile.am: Adjust.

2012-09-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Various utf-8 fixes.

	* src/bin/ltl2tgba.cc: Add option -8.
	* src/tgbatest/ltl2tgba.cc, wrap/python/spot.i: Enable utf8 on
	sba_explicit_formula automata too.

2012-09-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltl2tgba.cc: Fix display of BA.

2012-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/postproc.cc: Misplaced call to scc_filter().

2012-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/genltl.cc (parse_opt): Add OPT_U_LEFT and OPT_U_RIGHT cases.

2012-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More fixes for the OS X builds.

	* src/bin/common_r.hh: Include common_sys.hh first.
	* src/sanity/80columns.test: Set LANG.

2012-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlfilt.cc: Add a --remove-wm option.

2012-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix sanity failure on Mac OS X.

	* src/sanity/Makefile.am: Pass TOPBUILD to includes.test, and split the
	tests in different targets.
	* src/sanity/includes.test: Add include directories to bin/'s headers.

2012-09-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a visitor to relabel the atomic proposition in formulas.

	* src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/ltlvisit/clone.cc (recurse): Don't call clone(), nobody
	needs that.  Instead, really recurse.
	* src/bin/ltlfilt.cc: Add a --relabel option.
	* src/bin/genltl.cc: Relabel formulas if --lbt is used.
	* src/sanity/style.test: Tweak detection of i++.

2012-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add an LTL printer in LBT's syntax.

	* src/ltlvisit/lbt.cc, src/ltlvisit/lbt.hh: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/bin/common_output.cc, src/bin/common_output.hh: Add
	support for LBT output, and reporting formulae that cannot
	be output in this syntax.
	* src/bin/ltlfilt.cc: Pass filename and linenum to
	output_formula() for better error reporting.

2012-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement a parser for LBT's prefix syntax for LTL.

	* src/ltlparse/public.hh (parse_lbt): New function.
	* src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Implement it.
	* src/bin/ltlfilt.cc: Use it.

2012-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use more sba_explicit more often.

	* src/tgbaalgos/minimize.cc, src/tgbaalgos/minimize.hh
	(minimize_dfa, minimize_wdba): Return a sba_explicit_number automaton
	instead of tgba_explicit_number.
	* src/tgba/tgbaexplicit.hh (declare_acceptance_condition): Fix code
	so it works on sba as well.
	* src/tgbaalgos/dotty.cc, src/tgbaalgos/neverclaim.cc: Specialize
	for sba instead of tgba_sba_proxy.
	* src/tgbaalgos/neverclaim.hh: Point to degeneralize().

2012-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Detect fail conditions on std::cout in user's tools.

	* src/bin/common_cout.cc, src/bin/common_cout.hh: New files.
	* src/bin/Makefile.am: Add them.
	* src/bin/ltl2tgba.cc, src/bin/ltlfilt.cc, src/bin/common_output.cc:
	Report error when writing to std::cout failed.  This is mainly
	motivated by ltlfilt not being killed by SIGPIPE on lip6's OSX
	buildfarm (SIGPIPE is probably ignored when the build is started), but
	it could detect other errors such as a disk full.

2012-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/wdba2.test: Adjust to yesterday's change to -kt.

2012-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin/ltl2tgba: New user binary.

	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: New class to
	capture the postprocessing logic.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/bin/ltl2tgba.cc, src/bin/man/ltl2tgba.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Add them.
	* src/tgbatest/spotlbtt.test: Prune the list of configurations slightly.
	* src/tgbatest/spotlbtt2.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* bench/ltl2tgba/algorithms, bench/ltl2tgba/defs.in: Adjust to
	use the new binary.
	* NEWS: Update.

2012-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix multiple inclusions of config.h.

	* src/bin/common_sys.hh: New file.
	* src/bin/Makefile.am: Add it.
	* src/bin/common_output.hh, src/bin/common_r.cc,
	src/bin/common_range.cc, src/bin/genltl.cc, src/bin/ltlfilt.cc,
	src/bin/randltl.cc: Include common_sys.hh instead of config.h.

2012-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add count_nondet_states(aut) and is_deterministic(aut).

	* src/tgbaalgos/isdet.cc, src/tgbaalgos/isdet.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* wrap/python/spot.i: Wrap them.
	* wrap/python/ajax/spot.in: Display count of nondeterministic
	states.
	* src/tgbatest/ltl2tgba.cc (-kt): Likewise.
	* NEWS: Upadte.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Kill the gspn-ssp benchmark (it was not working anymore).

	* bench/gspn-ssp/: Delete recursively.
	* bench/Makefile.am, README, configure.ac: Adjust.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Kill src/ltltest/randltl and replace it by src/bin/randltl.

	* src/ltltest/randltl.cc: Delete.
	* src/ltltest/Makefile.am (noinst_PROGRAMS, randltl_SOURCES): Remove.
	* src/ltltest/reduc.test, src/ltltest/reducpsl.test,
	src/ltltest/utf8.test, src/tgbatest/randpsl.test,
	bench/emptchk/README: Adjust to use bin/randltl.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Kill src/ltltest/genltl now that src/bin/genltl does everything it did.

	* src/ltltest/genltl.cc: Delete.
	* src/ltltest/Makefile.am (noinst_PROGRAMS): Remove genltl.
	* src/tgbatest/ltlcounter.test, bench/ltlclasses/run,
	bench/ltlcounter/run: Adjust to call bin/genltl.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix missing spaces after comma.

	* src/sanity/style.test: Fix the space-after-comma test.
	* src/bin/randltl.cc, src/tgba/tgbaexplicit.hh: Add missing spaces.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: Output unique formulae by default.

	* src/bin/randltl.cc: Replace the --unique by an --allow-dups option.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/randltl.cc: Add a --weak-fairness option.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/Makefile.am: Use a static library for all common functions.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: add option to simplify formulas

	* src/bin/common_r.cc, src/bin/common_r.hh: New files, extracted from...
	* src/bin/ltlfilt.cc: Here.
	* src/bin/randltl.cc: Use them.
	* src/bin/Makefile.am: Adjust.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix prototype of ltl_simplifier::ltl_simplifier.

	* src/ltlvisit/simplify.hh, src/ltlvisit/simplify.cc: Here.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/apcollect.hh: Improve doc.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: first stage of the reimplementation

	* src/bin/common_range.cc, src/bin/common_range.hh: New files,
	extracted from...
	* src/bin/genltl.cc: ... here.
	* src/bin/randltl.cc, src/bin/man/randltl.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Adjust.
	* src/bin/man/genltl.x: Point to randltl(1).

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_output.hh, src/bin/common_output.cc: Fix includes.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	help2man: generate man pages for genltl and ltlfilt

	* tools/help2man, tools/x-to-1.in: New files, copied from gnulib
	1af55d85d9762a679b4302d5995f05ccd883e956.
	* configure.ac: Create x-to-1 and export CROSS_COMPILING.
	* Makefile.am: Distribute help2man.
	* src/bin/Makefile.am (SUBDIRS): New.
	* src/bin/man/Makefile.am: New file.
	* src/bin/man/genltl.x, src/bin/man/ltlfilt.x: New files.
	* src/bin/genltl.cc: Document the RANGE in the options,
	and move the bibliography to genltl.x.
	* README: Document src/bin/man

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt, genltl: factor the common output options.

	* src/bin/common_output.cc, src/bin/common_output.hh: New file
	with the common output code.
	* src/bin/Makefile.am: Add them.
	* src/bin/genltl.cc, src/bin/ltlfilt.cc: Simplify, using
	argp's children parser, and calling output_formula().

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: update the exit status in the same way as grep

	* src/bin/ltlfilt.cc: Do it.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add option to filter by implication or equivalence

	* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh: Add a
	implication() option.
	* src/bin/ltlfilt.cc: Add options --implied-by, --imply, and
	--equivalent-to.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: reimplement using argp, and allowing ranges.

	* src/bin/genltl.cc: New file.
	* src/bin/Makefile.am: Add it.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: use error() to report errors.

	* lib/error.c, lib/error.h, lib/msvc-inval.c, lib/msvc-inval.h,
	lib/msvc-nothrow.c, lib/msvc-nothrow.h, m4/error.m4, m4/msvc-inval.m4,
	m4/msvc-nothrow.m4: New files from gnulib
	1af55d85d9762a679b4302d5995f05ccd883e956.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Adjust.
	* src/bin/ltlfilt.cc: Use error() and error_at_line().

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: Call set_program_name().

	* src/bin/ltlfilt.cc (main): Call set_program_name().
	* lib/progname.c, lib/progname.h: New files, from gnulib
	1af55d85d9762a679b4302d5995f05ccd883e956.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Adjust.

2012-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Install gnulib to make sure we can use argp in ltlfilt.

	* lib/Makefile.am, lib/alloca.c, lib/alloca.in.h, lib/argp-ba.c,
	lib/argp-eexst.c, lib/argp-fmtstream.c, lib/argp-fmtstream.h,
	lib/argp-fs-xinl.c, lib/argp-help.c, lib/argp-namefrob.h,
	lib/argp-parse.c, lib/argp-pin.c, lib/argp-pv.c, lib/argp-pvh.c,
	lib/argp-xinl.c, lib/argp.h, lib/asnprintf.c, lib/basename-lgpl.c,
	lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h, lib/errno.in.h,
	lib/float+.h, lib/float.c, lib/float.in.h, lib/getopt.c,
	lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h, lib/gettext.h,
	lib/intprops.h, lib/itold.c, lib/malloc.c, lib/memchr.c,
	lib/memchr.valgrind, lib/mempcpy.c, lib/printf-args.c,
	lib/printf-args.h, lib/printf-parse.c, lib/printf-parse.h,
	lib/rawmemchr.c, lib/rawmemchr.valgrind, lib/size_max.h,
	lib/sleep.c, lib/stdalign.in.h, lib/stdbool.in.h, lib/stddef.in.h,
	lib/stdint.in.h, lib/stdio.in.h, lib/stdlib.in.h, lib/strcasecmp.c,
	lib/strchrnul.c, lib/strchrnul.valgrind, lib/strerror-override.c,
	lib/strerror-override.h, lib/strerror.c, lib/string.in.h,
	lib/strings.in.h, lib/stripslash.c, lib/strncasecmp.c,
	lib/strndup.c, lib/strnlen.c, lib/sys_types.in.h, lib/sysexits.in.h,
	lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h,
	lib/vsnprintf.c, lib/wchar.in.h, lib/xsize.h, m4/00gnulib.m4,
	m4/alloca.m4, m4/argp.m4, m4/dirname.m4, m4/double-slash-root.m4,
	m4/errno_h.m4, m4/exponentd.m4, m4/extensions.m4, m4/float_h.m4,
	m4/getopt.m4, m4/gnulib-cache.m4, m4/gnulib-common.m4,
	m4/gnulib-comp.m4, m4/gnulib-tool.m4, m4/include_next.m4,
	m4/intmax_t.m4, m4/inttypes_h.m4, m4/longlong.m4, m4/malloc.m4,
	m4/math_h.m4, m4/memchr.m4, m4/mempcpy.m4, m4/mmap-anon.m4,
	m4/multiarch.m4, m4/nocrash.m4, m4/off_t.m4, m4/printf.m4,
	m4/rawmemchr.m4, m4/size_max.m4, m4/sleep.m4, m4/ssize_t.m4,
	m4/stdalign.m4, m4/stdbool.m4, m4/stddef_h.m4, m4/stdint.m4,
	m4/stdint_h.m4, m4/stdio_h.m4, m4/stdlib_h.m4, m4/strcase.m4,
	m4/strchrnul.m4, m4/strerror.m4, m4/string_h.m4, m4/strings_h.m4,
	m4/strndup.m4, m4/strnlen.m4, m4/sys_socket_h.m4, m4/sys_types_h.m4,
	m4/sysexits.m4, m4/unistd_h.m4, m4/vasnprintf.m4, m4/vsnprintf.m4,
	m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4, m4/wint_t.m4,
	m4/xsize.m4, tools/snippet/_Noreturn.h, tools/snippet/arg-nonnull.h,
	tools/snippet/c++defs.h, tools/snippet/warn-on-use.h: New files from
	gnulib 1af55d85d9762a679b4302d5995f05ccd883e956.
	* configure.ac, Makefile.am: Adjust to compile gnulib.
	* src/bin/Makefile.am: Adjust to use gnulib.
	* README: Mention lib/.

2012-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/tostring.hh: Cosmetics.

2012-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: initial implementation.

	* src/bin/ltlfilt.cc, src/bin/Makefile.am: New files.
	* src/Makefile.am (SUBDIRS): Add bin.
	* configure.ac: Add src/bin/Makefile.am.
	* README: Document src/bin/.

2012-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ta: compatibility with Swig 1.3.

	* src/ta/taexplicit.hh (state_ta_explicit): Hide contents from Swig.
	* src/ta/ta.hh (scc_stack_ta): Hide class from Swig.

2012-08-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add back the '*' syntax for And.

	This somehow revert changes from 2010-01-30 which killed this use of
	star to make room for the Kleen star.  Here we only allow '*' in the
	temporal formula, so that it can still be the Kleen star in SERE.  The
	motivation for '*' available as And is better compatibility with Wring
	and VIS.

	* src/ltlparse/ltlscan.ll: Distinguish * from [*].
	* src/ltlparse/ltlparse.yy: Allows * to be used as AND between
	temporal formulae.
	* src/ltltest/equals.test, src/ltltest/parse.test: Add a few
	tests.
	* doc/tl/tl.tex: Document it.

2012-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add an option to use WDBA only if it reduces the size of the automaton.

	* src/tgba/tgbaexplicit.hh (num_states): New method.
	* src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc
	(minimize_obligation): Add a reject_bigger option.
	* src/tgbatest/ltl2tgba.cc (-RM): New option.
	* src/tgbatest/spotlbtt.test: Test -RM.
	* bench/ltl2tgba/algorithms: Include -RM in addition to -Rm, and
	replace -RDS by -RIS.
	* NEWS: Mention this.

2012-08-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	CGI: Do not call any simulation on WDBA's success.

	* wrap/python/ajax/spot.in: Here.

2012-08-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	CGI: Better call of scc_filter.

	* wrap/python/ajax/spot.in: Account for reverse and iterated simulations
	when calling scc_filter the first time.

2012-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2012-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, buddy/src/bddop.c, m4/valgrind.m4: s/wether/whether/.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cleanup ltl2tgba.cc.

	* src/tgbatest/ltl2tgba.cc: Fix some typos, and factor the second
	call to scc_filter when simulations are used.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add cosimulation and iterated_simulations to the web interface.

	* wrap/python/spot.i (cosimulation, iterated_simulations): Declare.
	* wrap/python/ajax/spot.in, wrap/python/ajax/protocol.txt,
	wrap/python/ajax/ltl2tgba.html: Add options to trigger these two
	optimizations.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/simulation.hh: Improve documentation.

2012-08-21  Thomas Badie  <badie@lrde.epita.fr>

	Optimize the use of -RRS with -R3.

	* src/tgbatest/ltl2tgba.cc: Change the order of the call to the
	simulation and the cosimulation.
	Call scc_filter when cosimulation is called with -R3.
	Call scc_filter when simulation is called with -R3.

2012-08-21  Thomas Badie  <badie@lrde.epita.fr>

	* src/tgbaalgos/simulation.cc: Fix a bug in the simulation.

2012-08-21  Thomas Badie  <badie@lrde.epita.fr>

	* bench/ltl2tgba/lbtt2csv.pl: Fix a bug when using big.log.

2012-08-21  Thomas Badie  <badie@lrde.epita.fr>

	Create the iterated simulations.

	* src/tgbaalgos/simulation.cc: Create the iterated_simulations.
	(direct_simulation) Add an attribute "stat" that represents the
	number of states and transitions of the resulting automaton.
	* src/tgbaalgos/simulation.hh: Declare the iterated_simulations.
	* src/tgbatest/spotlbtt.test: Test the iterated_simulations.
	* src/tgbatest/ltl2tgba.cc: Associate the option -RIS to the
	iterated_simulations.

2012-08-21  Thomas Badie  <badie@lrde.epita.fr>

	Add missing dependencies to the ltl2tgba benchmark Makefile.

	* bench/ltl2tgba/Makefile.am (run): Remove wfair.txt.
	(small.txt, big.txt, known.txt) Add a dependency to ltl2tgba.

2012-08-21  Thomas Badie  <badie@lrde.epita.fr>

	Create the cosimulation.

	* src/tgbaalgos/simulation.cc: Add the cosimulation:
	(acc_compl_automaton) Add a template parameter.
	(acc_compl_automaton::process_link) Add a swap source destination.
	(direct_simulation) Add a template parameter.
	(direct_simulation::compute_sig) Add a flag in the signature to
	know if the state is initial.
	(direct_simulation::build_result) Remove the flag before reading
	the signature.
	Swap source and destination when building the new automaton.
	* src/tgbaalgos/simulation.hh: Declare and document the
	Cosimulation.
	* src/tgbatest/ltl2tgba.cc: Associate the cosimulation with the -RRS
	option.
	* src/tgbatest/spotlbtt.test: Add a test on the cosimulation.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	80 columns.

	* src/ltlvisit/apcollect.hh, src/taalgos/minimize.cc,
	src/taalgos/tgba2ta.cc, src/tgbatest/ltl2tgba.cc: Here.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Draw a run by default, don't print it.

	* wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/spot.in: Here.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/ltl2tgba.html: Remember killed blocks.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Add a warning.

	* wrap/python/ajax/spot.in: Warn about formulae that don't look
	stuttering insensitive.

2012-08-21  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Set is_accepting_state to false in GTA

	* src/taalgos/tgba2ta.cc: Set is_accepting_state to false in GTA.
	* src/tgbatest/ltl2tgba.cc: Call tgta_explicit.get_ta() to avoid
	segfault.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix tgta_explicit not to inherit from ta_explicit to please clang++.

	* src/ta/tgtaexplicit.cc, src/ta/tgtaexplicit.hh: Use a ta_explicit
	attribute instead of inheriting from it.
	(get_ta): New method.
	* src/taalgos/minimize.cc, src/taalgos/minimize.hh,
	src/taalgos/tgba2ta.cc, src/tgbatest/ltl2tgba.cc: Adjust usage.
	* wrap/python/spot.i (as_ta): Remove, now that we have get_ta.
	* wrap/python/ajax/spot.in: Use get_ta instead of as_ta.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Clean up dotty output of TAs.

	* src/taalgos/dotty.cc: Clean up output of TAs.
	* src/tgbatest/ltl2tgba.cc: Fix memory management, and use the TA
	printer for TGTA.
	* wrap/python/spot.i (as_ta): New function to convert a tgta_explicit
	into a TA.
	* wrap/python/ajax/spot.in: Use this new function to display automata.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Add testing automata options.

	* wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/protocol.txt,
	wrap/python/ajax/spot.in: Here.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Preliminary support for TA

	* wrap/python/spot.i: Add wrapper the new TA algorithms.
	* wrap/python/ajax/ltl2tgba.html: Add a testing automaton tab.
	* wrap/python/ajax/protocol.txt, wrap/python/ajax/spot.in: Support it.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify the construction of TA.

	* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh: Add a version
	that builds a BDD.
	* src/tgbatest/ltl2tgba.cc: Use it.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Don't always delete the tgba used in ta_explicit.

	* src/ta/taexplicit.hh (ta_explicit): Take a boolean to tell whether
	the tgba is owned.
	* src/ta/taexplicit.cc, src/ta/tgtaexplicit.cc,
	src/ta/tgtaexplicit.hh: Likewise.
	* src/ta/taexplicit.cc (~ta_explicit): Adjust destruction.
	* src/tgbatest/ltl2tgba.cc: Adjust usage.
	* src/taalgos/minimize.cc: Likewise.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix ta/ and taalgos/ include path for VPATH builds.

	* src/ta/Makefile.am, src/taalgos/Makefile.am: Add -I..

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Don't use -Rm for two different things.

	* src/tgbatest/ltl2tgba.cc: Introduce -RT to turn on bisimulation on
	TA instead of hijacking -Rm.
	* src/tgbatest/ltl2ta.test: Adjust.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix, run, and distribute ltl2ta.test.

	* src/tgbatest/ltl2ta.test: Adjust expected values.
	* src/tgbatest/Makefile.am (TESTS): Add ltl2ta.test.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Post-rebase fixup.

	* src/taalgos/tgba2ta.cc: Adjust to use the sba base class.

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fixes to pass sanity checks.

	* src/ta/taproduct.cc, src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
	src/taalgos/emptinessta.cc, src/tgbatest/ltl2ta.test: 80 columns.
	* src/ta/tgta.hh, src/ta/tgtaproduct.hh, src/taalgos/emptinessta.hh,
	src/taalgos/tgba2ta.hh: Fix include gards.
	* src/taalgos/tgba2ta.hh: Remove superfluous includes.
	* src/taalgos/tgba2ta.cc: Add missing include.
	* src/tgbatest/ltl2tgba.cc: Fix use of bdd_true().

2012-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Post rebase fixups.

	* src/ltltest/randltl.cc: Document the -wf option.  Declare formula*
	as const.  Simplify GF_n().
	* src/tgbatest/ltl2tgba.cc: Suppress unused variable.

2012-08-21  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Update the description of the commands options (-TA,-lv,-sp,-in,-TGTA)

	* src/tgbatest/ltl2tgba.cc: update the description of the options for
	the different kinds of Testing Automata: TA, STA, GTA, SGTA and TGTA.

2012-08-21  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Changes in order to pass sanity tests

	* src/tgbatest/ltl2tgba.cc, src/ta/Makefile.am, README: code style

2012-08-21  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Changes to pass sanity tests

	* src/ta/taexplicit.hh, src/ta/taexplicit.cc, src/taalgos/minimize.cc,
	src/taalgos/tgba2ta.cc, src/tgbatest/ltl2tgba.cc: correct the code style
	in order to respect the sanity rules

2012-08-21  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Stable version of TGTA approach implementation (automaton + product)

	* src/ta/tgta.hh, src/ta/tgta.cc, src/ta/tgtaexplicit.hh,
	src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.hh, src/ta/tgtaproduct.cc,
	src/taalgos/minimize.cc, src/taalgos/minimize.hh,
	src/taalgos/emptinessta.hh, src/taalgos/emptinessta.hh,
	src/taalgos/emptinessta.cc, src/taalgos/tgba2ta.hh,
	src/taalgos/tgba2ta.cc: rename tgbta to tgta
	in this source files.
	* src/ta/tgbtaexplicit.hh, src/ta/tgbtaproduct.hh,  src/ta/tgbta.cc,
	src/ta/tgbtaproduct.cc, src/ta/tgbta.hh, src/ta/tgbtaexplicit.cc:
	Rename as...
	* src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc,
	src/ta/taproduct.hh, src/ta/tgtaexplicit.cc: ... these.
	* src/taalgos/sba2ta.hh, src/taalgos/sba2ta.cc: deleted because
	the implementation of all the transformations beteween TGBA and
	the different forms of TA are new implemented in src/taalgos/tgba2ta.hh
	 and src/taalgos/tgba2ta.cc.
	* src/tgbatest/ltl2tgba.cc: rename the options of commands that build
	the different forms of TA.
	* src/ta/ta.hh: BUG Fix
	* src/ta/Makefile.am, src/tgbatest/ltl2ta.test: impacts of this renaming

2012-08-21  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Doxygen comments.

	* src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.hh,
	src/ta/taproduct.cc, src/ta/taproduct.hh, src/ta/tgbtaexplicit.cc,
	src/ta/taexplicit.cc, src/ta/tgbtaproduct.cc,
	src/taalgos/emptinessta.cc, src/taalgos/emptinessta.hh,
	src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh,
	src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc: Add Doxygen
	comments.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	BUG FIX in TA construction and minimization

	* src/taalgos/tgba2ta.cc: BUG FIX in TA construction
	* src/taalgos/minimize.cc: BUG FIX in TA minimization (did_split Flag)

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	STA and TGTA optimisations

	* src/taalgos/tgba2ta.cc: the transformations of TGBA

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Improving the construction of TGTA

	* src/taalgos/tgba2ta.hh, src/taalgos/tgba2ta.cc:
	optimization of the TGTA automaton obtained from a TGBA.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Cleaning code of TA Product and Emptiness-check

	* src/ta/taproduct.cc, src/taalgos/emptinessta.cc:
	remove unused (commented) code.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	STA: the artificial livelock state becomes the first successor

	* src/taalgos/tgba2ta.cc: improves the STA (Single-pass TA) by adding
	the  artificial livelock state as the first successor.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Add an implementation of TGTA minimization

	* src/ta/taexplicit.cc, src/ta/taexplicit.hh: Bug fix TGTA
	* src/taalgos/minimize.cc,src/taalgos/minimize.hh: TGTA minimization
	* src/taalgos/tgba2ta.cc: add a TGTA minimization command (uses -Rm)
	* src/taalgos/minimize.cc, src/taalgos/minimize.hh
	(minimize_tgbta): New function.
	* src/taalgos/tgba2ta.cc: Set livelock-accepting flag of TGTA states
	to false so they can be merged with other states.
	* src/ta/taexplicit.cc (hash): Use id.
	* src/ta/taexplicit.hh: Cosmetics.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	New Automata: TGTA (Transition-based Generalized TA)

	* src/ta/Makefile.am, src/ta/taexplicit.cc, src/ta/taexplicit.hh,
	src/ta/taproduct.cc, src/ta/tgbta.cc, src/ta/tgbta.hh,
	src/ta/tgbtaexplicit.cc, src/ta/tgbtaexplicit.hh,
	src/ta/tgbtaproduct.cc, src/ta/tgbtaproduct.hh,
	src/taalgos/emptinessta.cc, src/taalgos/emptinessta.hh,
	src/taalgos/sba2ta.cc, src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh,
	src/tgbatest/ltl2tgba.cc: Implementation of TGTA, a new kind of automata
	combining ideas from TGBA and TA.

2012-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove statement with no effect, to please GCC 4.6.

	* src/taalgos/emptinessta.cc (ta_check::check): Remove statement
	with no effect, to please GCC 4.6.

2012-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove unused argument in constructor.

	* src/taalgos/tgba2ta.cc, src/ta/taexplicit.hh (state_ta_explicit):
	Remove unused argument in constructor.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Properly free memory and print logs

	* src/tgbatest/ltl2tgba.cc: Properly free memory
	* src/taalgos/tgba2ta.cc, src/taalgos/emptinessta.cc: print logs

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	GTA (Generalized Testing Automata) implementation

	* src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh,
	src/taalgos/Makefile.am, src/taalgos/dotty.cc,
	src/taalgos/emptinessta.cc, src/taalgos/minimize.cc,
	src/taalgos/minimize.hh, src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh,
	src/tgbatest/ltl2tgba.cc: changes introduced to add a new form of TA
	called GTA (Generalized Testing Automata). GTA is a TA with acceptance-
	conditions added on transitions.

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Single-pass Testing Automata (STA) optimizations

	* src/taalgos/sba2ta.cc, src/taalgos/emptinessta.cc: STA optimizations

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Add a new form of TA with a Single-pass emptiness check (STA)

	* src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/ta/taproduct.cc,src/ta/taproduct.hh,
	src/taalgos/dotty.cc, src/taalgos/emptinessta.cc,
	src/taalgos/emptinessta.hh, src/taalgos/minimize.cc,
	src/taalgos/reachiter.cc, src/taalgos/sba2ta.cc, src/taalgos/sba2ta.hh,
	src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc: Impacts of the
	implementation of a new variant of TA, called STA, which involve a
	Single-pass emptiness check. The new options (-in and -lv) added to
	build the new variants of TA allow to add two artificial states:
	1- an initial artificial state to have an unique initial state (-in)
	2- a livelock artificial state which has no successors in order to
	obtain the new form of TA which requires only a Single-pass emptiness-
	check: STA (-lv).

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	Improvement of TA Product/Minimisation and of WFair generation

	* src/ta/taproduct.hh, src/ta/taproduct.cc: improvement of TA Product
	* src/ltltest/randltl.cc: improvement of WFair Formulas generation
	* src/taalgos/minimize.cc: improvement of TA minimization

2012-07-15  Ala-Eddine Ben-Salem  <ala@lrde.epita.fr>

	TA Product optimization and WFair Formulas generation

	* src/ta/taproduct.cc: TA Product optimization
	* src/ltltest/randltl.cc: WFair Formulas generation

2012-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use downcast when appropriate.

	* src/taalgos/sba2ta.cc, src/ta/ta.cc, src/ta/taexplicit.cc,
	src/ta/taproduct.cc, src/taalgos/emptinessta.cc: Use downcast
	and cleanup whitespace.

2012-07-15  Ala Eddine  <ala@pret-move.rsr.lip6.fr>

	Impacts of the new method state.destroy()

	* src/ta/taexplicit.cc, src/ta/taproduct.cc,
	src/taalgos/minimize.cc, src/taalgos/sba2ta.cc:
	changes to use the new method destroy() added to state.hh

2012-07-15  Ala Eddine  <ala@pret-move.rsr.lip6.fr>

	Add TA minimization: merge bisimulating states

	* src/taalgos/minimize.hh, src/taalgos/minimize.cc: implements a
	minimization of TA by merging bisimular states.
	* src/taalgos/statessetbuilder.hh, src/taalgos/statessetbuilder.cc:
	returns the set of reachable states of a TA (used in minimize.cc).
	* src/taalgos/Makefile.am: add them.
	* src/tgbatest/ltl2tgba.cc: add commands to test TA minimization

2012-07-15  Ala Eddine  <ala@gaborone.lrde.epita.fr>

	Add Testing Automata Product & Emptiness Check

	* src/taalgos/stats.hh, src/taalgos/stats.cc: Compute statistics for a
	automaton.
	* src/ta/ta.hh, src/ta/ta.cc: Abstract representation of a Testing
	Automata(TA)
	* src/ta/taexplicit.hh, src/ta/taexplicit.cc: Explicit representation of
	a Testing Automata (TA)
	* src/taalgos/dotty.cc: Print a TA in dot format.
	* src/taalgos/reachiter.hh, src/taalgos/reachiter.cc: Iterate over all
	reachable states of a TA
	* src/taalgos/sba2ta.cc: implements the construction of a TA from a BA
	(Buchi Automata)
	* src/tgbatest/ltl2tgba.cc: add commands to test the TA implementation
	* src/taalgos/emptinessta.hh, src/taalgos/emptinessta.cc: implementation
	 of the TA emptiness-check algorithm
	* src/ta/taproduct.hh, src/ta/taproduct.cc: representation of the
	product (automaton) between a TA and a Kripke structure.
	* src/ta/Makefile.am, src/taalgos/Makefile.am: add them

2012-07-15  Ala Eddine  <ala@gaborone.lrde.epita.fr>

	Preliminary implementation of Testing Automata.

	* configure.ac: Generate src/ta/Makefile and src/taalgos/Makefile.
	* src/Makefile.am (SUBDIRS): Add them.
	* src/tgbatest/ltl2tgba.cc (main): Add option -TA.
	* src/ta/Makefile.am, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/taalgos/Makefile.am,
	src/taalgos/dotty.cc, src/taalgos/dotty.hh,
	src/taalgos/reachiter.cc, src/taalgos/reachiter.hh,
	src/taalgos/sba2ta.cc, src/taalgos/sba2ta.hh: New files.

2012-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 0.9.2a.

2012-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Relase Spot 0.9.2.

	* NEWS, configure.ac: Bump version number.

2012-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/Makefile.am (EXTRA_DIST): Add loading.gif.

2012-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes.

2012-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Please the upcoming g++ 4.8.

	* src/tgbaalgos/simulation.cc: Remove unused typedef.

2012-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Use the new degeneralization routine.

	* wrap/python/spot.i: Export degeneralize().
	* wrap/python/ajax/spot.in: Use it.

2012-06-20  Thomas Badie  <badie@lrde.epita.fr>

	Add a bench script for the output of `lbtt'.

	* bench/ltl2tgba/lbtt2csv.pl: Write a perl script to change the
	format outputted by `lbtt' into a csv format.
	* bench/ltl2tgba/Makefile.am: Add the script to EXTRA_DIST.

2012-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	LTL parser: better error recovery.

	* src/ltlparse/ltlparse.yy: Keep the left operand of binary operator,
	if the right one is erroneous.  Also keep the sane beginning of
	parenthesized blocks.
	* src/ltltest/parseerr.test: Adjust test cases.
	* NEWS: Mention it.

2012-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc (~unicity_table): Accommodate g++ 4.0.1.

2012-06-19  Thomas Badie  <badie@lrde.epita.fr>

	Fix a perl warning in `parseout.pl'.

	* bench/ltl2tgba/parseout.pl: Fix a warning when using an option
	by shifting the option when there is one.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Document recent changes.

	* NEWS: Update.
	* wrap/python/ajax/README: Explain the ltl3ba requirement.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/ltl2tgba.html: Typos, and better WDBA doc.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/ltl2tgba.html: Add a favicon link.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Apply Jan's comments on ltl3ba's interface.

	* wrap/python/ajax/ltl2tgba.html: Adjust text.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/ltl2tgba.html: Add tooltips for LTL, PSL, SERE.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Update tooltips with Tomáš Babiak's comments.

	* wrap/python/ajax/ltl2tgba.html: Update tooltips for LTL3BA.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: add meta description, and validate page.

	* wrap/python/ajax/ltl2tgba.html: Here.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Display a loading logo for delayed results.

	* wrap/python/ajax/css/loading.gif: New file.
	* wrap/python/ajax/css/ltl2tgba.css (.loading): New class.
	* wrap/python/ajax/ltl2tgba.html: Display loading.gif after 200ms if
	the answer hasn't arrived
	* wrap/python/ajax/spot.in: Do not suggest not to draw the automaton
	on timeout.
	* wrap/python/ajax/js/jquery.ba-dotimeout.min.js: New file.
	* wrap/python/ajax/Makefile.am: Distribute it.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add more ltl3ba options.

	* wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/protocol.txt:
	Add options 'o' and 'p'.
	* wrap/python/ajax/spot.in: Handle these, and use '-v' to check
	version.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Detect ltl3ba's presence and version.

	* wrap/python/ajax/ltl2tgba.html: Display the ltl3ba version, and
	disable its tab when unavailable.
	* wrap/python/ajax/protocol.txt: Add option for ltl3ba's version.
	* wrap/python/ajax/spot.in: Implement this option, and catch
	errors when ltl3ba is not installed.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use tgba_explicit_numbered to create SCC-filtered automata.

	* src/tgbaalgos/sccfilter.cc: tgba_explicit_numbered replace
	tgba_explicit_string for the general case.  This way we don't have to
	prefix the result of format_state() in case to states have the same
	description.  We just number the states instead.  For the specific
	cases where the input automata are instance of tgba_explicit_string or
	tgba_explicit_formula, we clone the label.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Preliminary work on integrating LTL3BA in ltl2tgba.html.

	* wrap/python/ajax/ltl2tgba.html: Add a dedicated tab with
	two columns of options.
	* wrap/python/ajax/css/ltl2tgba.css: Support for two columns.
	* wrap/python/ajax/protocol.txt: Document new options.
	* wrap/python/ajax/spot.in: Handle the new options.
	* wrap/python/ajax/Makefile.am: Substitude LTL3BA in spot.in.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Small speedup in sba_explicit::state_is_accepting().

	* src/tgba/tgbaexplicit.hh (state_is_accepting): Implement without
	creating then deleting an iterator.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention that Safra is faster.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbasafracomplement.cc: Use the new offline degeneralization.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc: Use a small map instead of merge_transitions.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc: Use the new bdd_implies() function.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc: Clock the degeneralization.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc (outgoing_acc): Fill both caches at once.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Offline version of the degeneralization.

	* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: New files, with
	most of the logic extracted from src/tgba/tgbatba.cc (SBA version).
	* src/tgbaalgos/Makefile.am: Distribute these.
	* src/tgbatest/ltl2tgba.cc: Use the new degeneralization instead of
	the on-the-fly version.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent BDD speedups.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* m4/buddy.m4: Check for bdd_implies.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use bdd_implies() to speedup various algorithms.

	* src/ltlvisit/simplify.cc, src/tgba/tgbaproduct.cc,
	src/tgba/tgbatba.cc, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/simulation.cc: Here.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Export bdd_implies to the Python interface, and test it.

	* wrap/python/buddy.i (bdd_implies): New function.
	* wrap/python/tests/implies.py: New file.
	* wrap/python/tests/Makefile.am: Add it.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Accomodate Automake 1.12.x.

	* wrap/python/tests/Makefile.am (TEST_ENVIRONMENT): Rename as...
	(LOG_COMPILER): ... this.

2012-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a few files that claimed to be distributed under GPLv3 by mistake.

	* src/eltlparse/Makefile.am, src/ltlvisit/randomltl.cc,
	src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc, src/ltlvisit/snf.hh:
	Fix GPL to version 2 or later.

2012-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	FM: Translate X(a&b) as if it were X(a)&X(b).

	This helps reducing (p&XF!p)|(!p&XFp)|X(Fp&F!p) to (p&XF!p)|(!p&XFp).

	* src/tgbaalgos/ltl2tgba_fm.cc: Adjust rewriting rules of X.
	* src/tgbatest/ltl2tgba.test: Add a test case.

2012-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix computation of support_conditions in tgba_wdba_comp_proxy.

	* src/tgba/wdbacomp.cc
	(tgba_wdba_comp_proxy::compute_support_conditions): Fix.
	* src/tgbatest/wdba2.test: Test a formula that used to be wrongly
	minimized if translated by LaCIM, because the product of a
	tgbabddconcrete automaton with another automaton (done during
	WDBA-minimization) use the support conditions to speed things up.

2012-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/ltl2tgba/algorithms: Add two missing degeneralized config.

2012-06-06  Thomas Badie  <badie@lrde.epita.fr>

	* bench/ltlclasses/README: Fix a typo.

2012-06-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a memory leak on failure to WDBA-minimize.

	* src/tgbaalgos/minimize.cc (minimize_obligation): Delete the powerset
	automaton when we return 0 because we know if the result is correct
	and don't have the formulae to check it.  Reported by Étienne Renault.

2012-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Typos.

2012-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/mainpage.dox: Use a better title.

2012-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rework the timeout of the CGI script.

	The previous implementation was fine to catch timeout of third-party
	tools (like dot), but to good to catch timeout in Spot itself, because
	Python will not deliver a SIGALRM while a native function (e.g. Spot's
	translation) is running.  So we fork() the Python process, with a
	parent that does nothing but wait for the termination of the child or
	for an alarm.  On SIGALRM, the parent kills all children.

	* wrap/python/ajax/spot.in: Adjust to fork.
	* wrap/python/tests/alarm.py: New test file to test this
	scenario in a more controled environment.
	* wrap/python/tests/Makefile.am: Add it.

2012-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Add a tricky example for the {r} operator.

2012-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Remarks from Denis Poitrenaud.

2012-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 0.9.1a.

2012-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 0.9.1

	* configure.ac, NEWS: Bump version number.

2012-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Export tgba_parse() to the python interface.

	* src/tgbaparse/public.hh: Hide tgba_parse_errorlist to SWIG.
	* wrap/python/spot.i: Export tgba_parse.
	* wrap/python/tests/parsetgba.py: New file.
	* wrap/python/tests/Makefile.am: Add it.

2012-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it easier to convert acc-conditions to associated formulae.

	This is motivated by the fact that sog-its used the low-level data
	structures used by the bdd_dict to do such work, and broke because of
	the recent changes in this area.

	* src/tgba/bdddict.cc, src/tgba/bdddict.hh (oneacc_to_formula):
	New method.
	* src/tgbaalgos/save.cc: Use it.

2012-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2012-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Clear the contaiment cache after -r7.

	Doing so will release all BDD variables used by automata created for
	syntactic implication.  This way the main translation will create
	acceptance variables again in a more natural order, which will help
	the degeneralization (until we get a better degeneralization).

	* src/ltlvisit/contain.cc, src/ltlvisit/contain.hh
	(language_containment_checker::clear): New method to clear the
	containment cache.
	* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh
	(clear_as_bdd_cache): Also call language_containment_checker::clear.

2012-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use the distributed LBTT is the installed one is not 1.2.1a.

	* m4/lbtt.m4: Check version number.

2012-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust parseout.pl to the new LBTT output.

	* bench/ltl2tgba/parseout.pl: Adjust to output nondeterministic
	indices and number of nondeterministic automata.
	* bench/ltl2tgba/README: Update explanations.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	FM: Simplify promises of U, M, and F formulae.

	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::register_a_variable):
	Simplify promises by replacing P(a U b), P(b M a), and P(Fb), by P(b).

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: Set assume_sba for automata read from a neverclaim.

	This cause double-circles for accepting states in dot output.

	* src/tgbatest/ltl2tgba.cc: Set assume_sba for automata read from
	neverclaims.  Reset assume_sba after scc_filter and simulation.
	* src/tgbatest/neverclaimread.test: Expect a double circle.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Clean the as_bdd() cache after LTL simplification.

	Syntactic implication checks may use as_bdd() to compare Boolean
	formulae.  By doing so, they register Boolean variables in an order
	that is usially detrimental to the LTL translator.  The new,
	clear_as_bdd_cache() function offers a mean to unregister these
	variables, so that the LTL translator will register them again in the
	a more natural way.

	* src/ltlvisit/simplify.hh, src/ltlvisit/simplify.cc
	(clear_as_bdd_cache): New function.
	* src/tgbatest/ltl2tgba.cc, wrap/python/ajax/spot.in: Call it.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup syntactic implication by not comparing literals using bdd.

	* src/ltlvisit/simplify.cc
	(ltl_simplifier_cache::syntactic_implication): If the lhs and rhs are
	literals that are not equal, return false immediately.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add -rD option to ltl2tgba, to display some caching statistics.

	* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh (print_stats):
	New function.
	* src/tgbatest/ltl2tgba.cc: Call it.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Correctly handle ltl2tgba's option -rL.

	* src/tgbatest/ltl2tgba.cc: Fix mismatch between the help text,
	documenting -rL, and the handling code, expecting -rs.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	FM: use a vector to store the Next BDD->formula map.

	* src/tgbaalgos/ltl2tgba_fm.cc: Here.

2012-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Overhaul bdddict to speedup bdd->formula lookups.

	* src/tgba/bdddict.hh, src/tgba/bdddict.cc: Store variable types and
	associated formula in a vector indexed by BDD variable numbers,
	instead of using several maps.
	* src/evtgbaalgos/tgba2evtgba.cc, src/tgba/bddprint.cc,
	src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/save.cc: Adjust usage.

2012-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	FM: collect implied formulae in & arguments; do not to translate them

	* src/tgbaalgos/ltl2tgba_fm.cc (implied_subforfmulae): New function.
	(ltl_trad_visitor::visit(const binop*)): Use it.  This is an attempt
	to correct the unoptimal translation of 'Fa & GFa' left by previous
	patch.  It still fails to optimize 'Fa & GF(a&b)', but this is not a
	regression compared to previous version.

2012-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Faster translation of GFa.

	* src/tgbaalgos/ltl2tgba_fm.cc: Add a "recurring" mode for the
	translation of the child of G.  This generalizes Couvreur's original
	trick to translate GFa as (a|Prom(a))&X(GFa) without generating an
	intermediate GF(a)&F(a) state that would have to be merged with GF(a)
	latter.  This implementation will also speedup formulas such a G((a U
	b) & (c M d)).  With this patch, translating GF(p1) & GF(p2) &
	... GF(p20) into a TGBA takes 57s instead of 128s on my computer.
	However it alsos causes some formulas to be translated into larger
	automata that are not immediately reduced (the simulation-reduction is
	needed).  For instance Fa & GFa now has a different signature than
	GFa, so translating 'Fa & GFa' generates two states where is used to
	generate only one.

2012-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix translation of !{r}.

	We need a marked version of !{r} to perform breakpoint unroling.

	* src/ltlast/unop.cc, src/ltlast/unop.hh: Declare a NegClosureMarked
	operator.
	* src/ltlvisit/mark.hh, src/ltlvisit/mark.cc,
	src/tgbaalgos/ltl2tgba_fm.cc: Adjust to deal with NegClosureMarked
	and NegClosure as apropriate.
	* src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc,
	src/ltlvisit/tunabbrev.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgba/formula2bdd.cc: Deal with NegClosureMarked in the same way as
	we deal with NegClosure.
	* src/tgbatest/ltl2tgba.test: More tests.
	* src/ltltest/kind.test: Adjust.
	* doc/tl/tl.tex: Mention the marked negated closure.

2012-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/README: More debugging help.

2012-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/simulation.cc (get_state): Do not lookup the map twice.

2012-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Equip the LTL parser with printers for formulas and other token.

	* src/ltlparse/ltlparse.yy: Add new printers.  Suggested by Akim
	Demaille.

2012-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Missing space in help text.

	* src/tgbatest/ltl2tgba.cc (syntax): Here.  Reported by Akim Demaille.

2012-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix generation of randome SERE formulae.

	* src/ltlvisit/randomltl.cc: Use the correct flavor of And and Or.
	Reported by Etienne Renault.
	* NEWS: Mention the bug.

2012-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* m4/buddy.m4: Typo, reported by Thomas Badie.

2012-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac, NEWS: Bump version to 0.9a.

2012-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 0.9

	* configure.ac, NEWS: Bump version to 0.9.

2012-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update the help text for the Couvreur/FM algorithm.

	* wrap/python/ajax/ltl2tgba.html: Mention PSL.

2012-05-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix syntactic implication rule between R/M and U/W.

	* doc/tl/tl.tex, src/ltlvisit/simplify.cc: Fix the rule.
	* src/ltltest/reduccmp.test, src/ltltest/syntimpl.test:
	Add more tests.

2012-05-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo in date.

2012-05-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix mismatch between srand/srand48 and rand/rand48.

	Because only the configure macros of spot::srand() had been updated to
	the introduction of _config.h, rand() was used even if drand48() was
	available, and yet srand48() was being called by spot::srand().  The
	consequence is that setting the seed with srand48() had not effect on
	the value returned by rand().  Reported by Etienne Renault.

	* src/misc/random.cc (drand): Fix configure macros used.

2012-05-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Properly thank Christian and Felix.

	* THANKS, src/tgbaalgos/ltl2tgba_fm.cc: Here.

2012-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix LTL output for Spin.

	* src/ltlvisit/tostring.cc (spin_kw): Output X, not ().

2012-05-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	80columns.test: Add workaround for non-unicode systems.

	* src/sanity/80columns.test: If the system cannot count unicode
	characters, only search for long ascii lines.

2012-05-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix two formula leaks.

	* src/ltlvisit/simplify.cc (reduce_sere_ltl): Here.
	* src/ltltest/reduccmp.test: Add a test case.

2012-05-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbaexplicit.hh: Fix clang-3.0 warnings.

2012-05-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltl2tgba.cc (-rs): New option for reduce_size_striclty.

2012-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust benchmarks that had not been compiled since 0.8...

	* bench/scc-stats/stats.cc, bench/split-product/cutscc.cc: Adjust to
	use state->destroy() and to use const formula*.

2012-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Downcase a couple of misnamed class names.

	* src/misc/acccompl.hh, src/misc/acccompl.cc (AccCompl): Rename to
	acc_compl.
	* src/tgbaalgos/simulation.cc (AccComplAutomaton, Simulation): Rename
	to acc_compl_automaton and direct_simulation.  At the same time,
	reindent the whole file.
	* src/sanity/style.test: Detect capitalized class names.
	* src/kripke/kripkeexplicit.hh (KripkePrint): Remove useless
	predeclaration.
	* src/tgbaalgos/simulation.hh: Typo in comment.

2012-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Small documentation fixes.

	* doc/tl/tl.tex: Fix a few typos, and comment a missplaced paragraph.
	* doc/tl/tl.bib: Typos.

2012-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/simplify.cc: Add missing call to recurse_destroy().

2012-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add ltl3ba to the ltl2tgba benchmark.

	* configure.ac: Search for ltl3ba.
	* bench/ltl2tgba/defs.in: Define LTL3BA and HAVE_LTL3BA.
	* bench/ltl2tgba/algorithms: Use LTL3BA. Also add simulation options
	for LTL2BA.
	* bench/ltl2tgba/README: Slight wording changes.

2012-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use 'const formula*' instead of 'formula*' everywhere.

	The distinction makes no sense since Spot 0.5, where we switched from
	mutable furmulae to immutable formulae.  The difference between
	const_visitor and visitor made no sense either.  They have been merged
	into one: visitor.

	* iface/dve2/dve2check.cc, iface/gspn/ltlgspn.cc,
	src/eltlparse/eltlparse.yy, src/eltlparse/public.hh,
	src/evtgbatest/ltl2evtgba.cc, src/kripkeparse/kripkeparse.yy,
	src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
	src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/binop.cc,
	src/ltlast/binop.hh, src/ltlast/bunop.cc, src/ltlast/bunop.hh,
	src/ltlast/constant.cc, src/ltlast/constant.hh, src/ltlast/formula.cc,
	src/ltlast/formula.hh, src/ltlast/formula_tree.cc,
	src/ltlast/formula_tree.hh, src/ltlast/multop.cc,
	src/ltlast/multop.hh, src/ltlast/predecl.hh, src/ltlast/refformula.cc,
	src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
	src/ltlast/visitor.hh, src/ltlenv/declenv.cc, src/ltlenv/declenv.hh,
	src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
	src/ltlenv/environment.hh, src/ltlparse/ltlfile.cc,
	src/ltlparse/ltlfile.hh, src/ltlparse/ltlparse.yy,
	src/ltlparse/public.hh, src/ltltest/consterm.cc,
	src/ltltest/equals.cc, src/ltltest/genltl.cc, src/ltltest/kind.cc,
	src/ltltest/length.cc, src/ltltest/randltl.cc, src/ltltest/readltl.cc,
	src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
	src/ltltest/tostring.cc, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/ltlvisit/clone.cc,
	src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
	src/ltlvisit/contain.hh, src/ltlvisit/dotty.cc,
	src/ltlvisit/length.cc, src/ltlvisit/lunabbrev.cc,
	src/ltlvisit/lunabbrev.hh, src/ltlvisit/mark.cc, src/ltlvisit/mark.hh,
	src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
	src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
	src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
	src/ltlvisit/reduce.cc, src/ltlvisit/reduce.hh,
	src/ltlvisit/simpfg.cc, src/ltlvisit/simpfg.hh,
	src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh,
	src/ltlvisit/snf.cc, src/ltlvisit/snf.hh, src/ltlvisit/tostring.cc,
	src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
	src/ltlvisit/wmunabbrev.cc, src/ltlvisit/wmunabbrev.hh,
	src/neverparse/neverclaimparse.yy, src/sabatest/sabacomplementtgba.cc,
	src/tgba/bdddict.cc, src/tgba/formula2bdd.cc, src/tgba/taatgba.cc,
	src/tgba/taatgba.hh, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/complementation.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
	src/tgbatest/randtgba.cc: Massive adjustment!
	* src/tgbatest/reductgba.cc: Delete.

2012-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Show how to rewrite a̅ as ¬a before calling dot, if needed.

	Because some old version of libpango will render a̅ as a‾, without
	combining.

	* wrap/python/ajax/spot.in: Add the code as a comment.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.bib (babiak.12.tacas): Update reference.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Prefer -R3 to -R3f when applying direct simulation in the web interface.

	* wrap/python/ajax/spot.in: Adjust.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	One more test for U,W,R,M rewritins.

	* src/ltltest/uwrm.test: New file.
	* src/ltltest/Makefile.am: Add it.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/minimize.hh: Reencode in utf-8 and wrap long lines.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Disable draft mode.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Change tgba_dupexp_bfs() and tgba_dupexp_dfs() to build numbered tgba.

	* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Change the return
	type.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement rewritings for {f|g} and !{f|g}.

	* src/ltlvisit/simplify.cc: Here.
	* src/ltltest/reduccmp.test: Test them.
	* doc/tl/tl.tex: Document them.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update the intro of tl.tex, and add a reference to VECOS'11.

	* doc/tl/tl.tex, doc/tl/tl.bib: Here.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rertite a M (b | a) = b U a and a R (b | a) == b W a.

	* src/ltlvisit/simplify.cc: Here.
	* src/ltltest/reduccmp.test: Test it.
	* doc/tl/tl.tex: Document it.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement W,M removal for Spin output.

	* src/ltlvisit/wmunabbrev.hh, src/ltlvisit/wmunabbrev.cc: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/ltlvisit/tostring.cc (to_spin_string): Use the new rewriting.
	* wrap/python/ajax/spot.in: Warn when a "Spin" still contain PSL
	operators.
	* wrap/python/ajax/ltl2tgba.html: Adjust help text.
	* doc/tl/tl.tex, NEWS: Document the new rewriting.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention utf-8 output.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Allow atomic propositions negated with a combining overline.

	* src/ltlparse/ltlscan.ll: Understand the combining overline, and
	combining overbar as synonym for =0.
	* src/ltlvisit/tostring.cc: Emit a combining overline for
	single-letter atomic propositions.
	* src/ltlast/atomic_prop.hh (is_atomic_prop): New function.
	* doc/tl/tl.tex: Document these two characters.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make sure PYTHON is absolute.

	* m4/pypath.m4: Here.  This is needed because PYTHON is used as
	she-bang line in scripts.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add an UTF-8 option to the web interface.

	* wrap/python/ajax/ltl2tgba.html: Add the checkbox.
	* wrap/python/ajax/css/ltl2tgba.css: Add the necessary class.
	* wrap/python/ajax/protocol.txt: Add the new option.
	* wrap/python/ajax/spot.in: Handle it.
	* wrap/python/ajax/README: Add a few lines to explain
	how to run the CGI script from the command line for debugging.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it possible to output UTF-8 for dotty().

	* src/tgba/tgbaexplicit.hh: Rerganize a bit to
	allow different functions to be used to format
	states.  Add an enabled_utf8() method to
	tgba_explicit_formula.
	* src/tgbaalgos/dotty.hh, src/tgbaalgos/dotty.cc:
	Simplify the interface by not depending on
	dotty_decorator explicitely.
	* src/tgba/bddprint.hh (enable_utf8): New function.
	* src/tgba/bddprint.cc (enable_utf8): Implement it
	and use the global utf8 flag in other functions.
	* src/tgbatest/ltl2tgba.cc: Add an -8 option for
	UTF-8 outpout.
	* wrap/python/spot.i: Adjust for tgbexplicit.hh
	changes.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix constness of minimize_wdba() return.

	* src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc:
	Return a tgba*, not a const tgba*.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix doxygen comments.

	* src/tgba/formula2bdd.hh: Fix the comments so Doxygen can
	see them.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement to_utf8_string().

	* src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh: Here.
	* src/ltltest/randltl.cc: Add option -8 to display utf-8 formulae.
	* src/ltltest/utf8.test: Test it.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove useless include.

	* src/misc/acccompl.cc: Do not include tgbaexplicit.hh.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Document recognized utf8 characters.

	* doc/tl/tl.tex: Here.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix error reporting in utf8-encoded LTL formulae.

	* src/ltlparse/public.hh (fix_utf8_locations): New function.
	* src/ltlparse/fmterror.cc (fix_utf8_locations): Implement it.
	(format_parse_errors): Rename as ...
	(format_parse_errors_aux): ... this.
	(format_parse_errors): New implementation that call fix_utf8_locations()
	before format_parse_errors_aux() on valid utf8 strings.
	* src/ltlparse/Makefile.am: Include $(top_srcdir).
	* src/ltltest/utf8.test: New file.
	* src/ltltest/Makefile.am: Add it.
	* src/ltltest/parse.test: Fix header.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Distribute UTF8-for-cpp.

	* utf8/doc/ReleaseNotes, utf8/doc/utf8cpp.html, utf8/utf8.h,
	utf8/utf8/checked.h, utf8/utf8/core.h, utf8/utf8/unchecked.h:
	New files.
	* Makefile.am (EXTRA_DIST): Distribute them.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: Preliminary support for utf8 operators.

	* src/ltlparse/ltlscan.ll: Recognize several utf8 operators
	such as □, ◇, ◯, ↔, ⤇, etc.

2012-04-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix the associativity of ->, <->, U, R, W, and M wrt the PSL standard.

	* src/ltlparse/ltlparse.yy: Make all the above operators
	right-associative.  Also let `:' have precedence over `;'.
	* src/ltltest/reduccmp.test: Adjust for the `:' precedence.
	* doc/tl/tl.tex, NEWS: Document this.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Document the changes from the PSL branch.

	* NEWS: Here.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	web ltl2tgba: add an option to disable larger rewritings

	* wrap/python/ajax/ltl2tgba.html: Add a checkbox and some
	code to keep it consistent with the basic rewriting checkbox.
	* wrap/python/ajax/spot.in: Deal with the new option.
	* wrap/python/ajax/protocol.txt: Document it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace the "encoding: utf-8" by "coding: utf-8" comments.

	* Makefile.am, src/ltlast/formula.cc, src/ltlast/formula.hh,
	src/tgba/tgbaexplicit.hh, wrap/python/ajax/Makefile.am,
	wrap/python/spot.i: Here.
	* HACKING: Document -*- coding: utf-8 -*-.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement basic rewriting rules for {r} and !{r}.

	* src/ltlvisit/simplify.cc: Here.
	* src/ltltest/reduccmp.test: Test them.
	* doc/tl/tl.tex: Document them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement dual rewritings rules for <>->.

	* src/ltlvisit/simplify.cc (reduce_sere_ltl): New function,
	to factor the code of the []-> and <>-> rewrittings.
	* src/ltltest/reduccmp.test: Add more tests.
	* doc/tl/tl.tex: Document these rewritings.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement star-normal-form rewriting.

	* src/ltlvisit/snf.cc, src/ltlvisit/snf.hh: New files.
	* src/ltlvisit/Makefile.am: Distribute them.
	* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh: Call snf(f) for
	all f[*].
	* src/ltltest/reduccmp.test: Test it.
	* doc/tl/tl.tex, doc/tl/tl.bib: Document it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Trivially reduce f;f to f[*2], f[*1..3];f to f[*2..4], etc.

	* src/ltlast/multop.cc (instance): Implement the reduction.
	* src/ltlast/multop.hh, doc/tl/tl.tex: Document it.
	* src/ltltest/equals.test: Add a test.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Trivially reduce 1[*]&&f = f and 1[*]|f = 1[*].

	* src/ltlast/bunop.hh (one_star): New static method building 1[*].
	* src/ltlast/bunop.cc (bunop::~bunop, bunop::instance_count): Adjust.
	* src/ltlast/multop.cc: Implement the trivial rewriting.
	* src/ltlast/multop.hh, doc/tl/tl.tex: Document it.
	* src/ltltest/equals.test: Test it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix handling of 1 in trivial identities for rational operators.

	Especially, 1&f and 1:f were mistakenly always reduced to f, which is
	incorrect when f accept the empty word.

	* src/ltlast/multop.cc: Here.
	* src/ltlast/multop.hh, doc/tl/tl.tex: Adjust documentation.
	* src/ltltest/equals.test: Add more tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce AndRat and OrRat operator.

	It was a mistake to try to overload And/Or LTL operator for these when
	trivial simplification are performed.  The reason is so simple it is
	embarassing: And(f,1)=f is a trivial identity that should not be
	applied with AndRat.  E.g. AndRat(a;b, 1) is equal to 0, not a;b.

	* src/ltlast/multop.hh, src/ltlast/multop.cc: Add the AndRat and OrRat
	operators.
	* src/ltlparse/ltlparse.yy: Build them.
	* src/ltlvisit/mark.cc, src/ltlvisit/simplify.cc,
	src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
	src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
	Adjust all switches.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add more simplification rules for AndNLM.

	* src/ltlvisit/simplify.cc: Here.
	* src/ltltest/reduccmp.test: More tests.
	* doc/tl/tl.tex: Document them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix translation of AndNLM and Fusion operators.

	* src/tgbaalgos/ltl2tgba_fm.cc: Here.
	The check is done by next patch.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix trivial rules for b₁:b₂ and b&f.

	* src/ltlast/multop.cc (instance): Here.
	* src/ltlast/multop.hh, doc/tl/tl.tex: Adjust documentation.
	* src/ltltest/equals.test: Adjust test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Trivially reduce 'a[*1]' to 'a'.

	* src/ltlast/bunop.cc (bunop::instance): Here.
	* src/ltlast/bunop.hh, doc/tl/tl.tex: Document it.
	* src/ltltest/equals.test: Test it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Get rid of bunop::Equal and bunop::Goto.

	* src/ltlast/bunop.hh, src/ltlast/bunop.cc, src/ltlvisit/randomltl.cc,
	src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc,
	src/tgbaalgos/ltl2tgba_fm.cc: Remove all traces of these two
	operators since they are not handled like sugar.
	* doc/tl/tl.tex: Adjust documentation to reflect the fact that these
	two operators are sugar.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Factor the code of ltl::to_string and ltl::to_spin_string.

	* src/ltlvisit/tostring.cc (to_string_visitor): Take a list of
	keywords as fourth argument.
	(to_spin_string_visitor): Remove.
	(to_string, to_spin_string): Adjust usage of to_string_visitor.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Display properties of formulas.

	* src/ltlast/formula.hh, src/ltlast/formula.cc (list_formula_props):
	New function.
	* wrap/python/spot.i: Adjust to wrap list_formula_props.
	* wrap/python/ajax/ltl2tgba.html: Add option to display properties.
	* wrap/python/ajax/spot.in: Handle ff=p and display properties.
	* wrap/python/ajax/protocol.txt: Adjust.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Prefer "xor" over "^" when outputing formulae.

	* src/ltlvisit/tostring.cc (to_string_visitor): Here.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Provide a link to an SVG output.  Suggested by Denis.

	Because this means we are running dot twice, I have added a flag that
	will allow us to easily turn this off, should it prove too slow.

	* wrap/python/ajax/spot.in (output_both): New variable.
	(run_dot): New function, extracted from ...
	(render_dot): ... here.  Adjust to call run_dot for all needed format.
	And ajust the output accordingly.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl::dotty: Number children for Concat and Fusion.

	* src/ltlvisit/dotty.cc (dotty_visitor): Replace the "dir" attribute
	by a childnum attribute used to number children.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: lists PSL operators in the help text.

	* wrap/python/ajax/ltl2tgba.html: Revamp the syntax table to include
	PSL operators.
	* wrap/python/ajax/css/ltl2tgba.css: Adjust CSS as needed.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move helper functions from simplify.cc to the AST files.

	* src/ltlvisit/simplify.cc (spot::ltl::is_And, spot::ltl::is_F,
	spot::ltl::is_FG, spot::ltl::is_G, spot::ltl::is_GF, spot::ltl::is_M,
	spot::ltl::is_Or, spot::ltl::is_R, spot::ltl::is_U, spot::ltl::is_W,
	spot::ltl::is_X, spot::ltl::is_binop, spot::ltl::is_constant,
	spot::ltl::is_multop, spot::ltl::is_unop): Move ...
	* src/ltlast/binop.hh, src/ltlast/constant.hh, src/ltlast/multop.hh
	src/ltlast/unop.hh: ... here, as appropriate.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify some simplification code using but_all().

	* src/ltlvisit/simplify.cc: Use but_all() to simplify code.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Reduce 'a|(b&X(b U a))' to 'b U a', plus three simular rules.

	* src/ltlast/multop.hh, src/ltlast/multop.cc (all_but): New method
	used to simplify the removal of one element of a multop.
	* src/ltlvisit/simplify.cc: Implement the new rewriting rules.
	* doc/tl/tl.tex: Document them.
	* src/ltltest/reduccmp.test: Test them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite "(Xc) M b" as "b & X(b U c)", plus three similar rules.

	* src/ltlvisit/simplify.hh (ltl_simplifier_options): New option
	reduce_size_stricly.
	* src/ltlvisit/simplify.cc (simplify_visitor): Implement these
	rules.
	* src/ltltest/reduc.cc: Check with reduce_size_strictly unset or
	set, but only use the latter result to check sizes.
	* src/ltltest/reduccmp.test: Test them.
	* doc/tl/tl.tex: Document them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/tostring.cc: Output <-> and -> instead of <=> and =>.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move the U,W,R,M equivalences to an appendix.

	* doc/tl/tl.tex (Other Equivalences): Move...
	(Defining LTL with only one of $\U$, $\W$, $\R$, or $\M$): ... here.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add new simplification rules like: "a | (Xa R b)" gives "b U a".

	* src/ltlvisit/simplify.cc: Add new rules.
	* doc/tl/tl.tex: Document them.
	* src/ltltest/reduccmp.test: Add test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Augment the Syntactic Hierarchy Classes grammar with ->, <-> and xor.

	* doc/tl/tl.tex (Syntactic Hierarchy Classes): Document the ->,
	<->, and xor operators.  Also add a \phi_F class.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix computation of syntactic classes for Implies.

	* src/ltlast/binop.cc (binop::binop): Fix computation
	of syntactic guarantee and syntactic obligation for the Implies
	operator.  Reported by Étienne Renault.
	* src/ltltest/kind.test: Add more tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite a&XGa as Ga, and a|XFa as Fa.

	The actual rules are a bit more complex:
	a & X(G(a&b...)&c...) = Ga & X(G(b...)&c...)
	a | X(Fa | c) = F(a) | c
	with the second rule being applied only if all XF can
	be removed.  See the documentation for an example.

	* src/ltlvisit/simplify.cc: Implement these new rules.
	* doc/tl/tl.tex: Document them.
	* src/ltltest/reduccmp.test: Add test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/Makefile.am: Fix timestamp issue causing distcheck failure.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite F(a M b) as F(a & b), and G(a W b) as G(a | b).

	* src/ltlvisit/simplify.cc: Implement these rules.
	* src/ltltest/reduccmp.test: Add tests.
	* doc/tl/tl.tex: Document them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add implication-based rewritings from Babiak et al. (TACAS'12)

	* src/ltlvisit/simplify.cc: Implement them here, and augment them
	to support M, and W operators.
	* src/ltltest/reduccmp.test: Add some tests.
	* doc/tl/tl.tex (Simplifications Based on Implications): Document
	these rules.
	* doc/tl/tl.bib (babiak.12.tacas): New entry.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a new length_boolone() function to fix an assert in randpsl.

	* src/ltlvisit/length.hh (length_boolone): New function.
	* src/ltlvisit/length.cc (length_boolone): Implement it using...
	(length_boolone_visitor): ... this new visitor.
	* src/ltltest/randltl.cc: Use length_boolone() to check the result
	of the random generator, and ignore any formula larger (in
	length()) than opt_f.  This fix a bug where the random formula
	generator would sometime produce formula larger than requested,
	because of the trivial rewriting of {f}[]->e as e|!f.
	* src/ltltest/length.cc: Add option -b to call length_boolone().
	* src/ltltest/length.test: Test length_boolone().

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite "a U (a&b)" as "b M a", and "a W (a&b)" as "b R a".

	* src/ltlvisit/simplify.cc (simplify_visitor): Implement these
	rules.
	* doc/tl/tl.tex: Document these rules.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix compilation of tl.tex in VPATH builds.

	* doc/tl/Makefile.am (LATEXMK): Set BIBINPUTS for VPATH builds.
	(EXTRA_DIST): Distribute tl.tex and tl.bib.
	($(srcdir)/tl.pdf): Fix update in srcdir.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a g++ warning about possibly uninitialized variable.

	* src/ltlvisit/simplify.cc (simplify_visitor::visit(multop)):
	Initialize `ri' to kill a warning.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/Makefile.am (LATEXMK): Support an older version of latexmk.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Various minor improvements.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: More text for the temporal hierarchy.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Fix trivial identities for AndNLM.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix drawing a bonup operators in the AST.

	* src/ltlvisit/dotty.cc (dotty_visitor::visit): Do not
	declare bunop as sinks.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace reference to RATEXP in the parser, by reference to SERE.

	* src/ltlparse/ltlparse.yy: Cleanup the names used in the grammar.
	* src/ltlparse/public.hh (parse_ratexp): Rename as...
	(parse_sere): ... this.
	* src/ltltest/consterm.cc: Adjust call to parse_ratexp().

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make sure PSL formulae are translated with the FM translation online.

	* wrap/python/ajax/spot.in: Diagnose attempt to use LaCIM or Tau
	on PSL formulae.
	* wrap/python/ajax/css/ltl2tgba.css (.ltl2tgba .error): New entry.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make sure PSL formulae are translated with the FM translation.

	* src/tgbatest/ltl2tgba.cc: Diagnose attempt to use -l and -taa
	on PSL formulae.  Switch back to -f for these formulae.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use `SERE' consistently.   Add more references.

	* doc/tl/tl.tex: Replace all occurrences of ``rational
	[expression]'' by SERE.  Add a couple of more notes and
	bibliographic references.
	* doc/tl/tl.bib: More entries.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify {r1;b1}&&{r2;b2} or {b1:r1}&&{b2:r2}, or similar.

	* src/ltlvisit/simplify.cc: Add four rules.
	* doc/tl/tl.tex: Document these rules.
	* src/ltltest/reduccmp.test: Add tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/postfix.cc: Fix recursion on bunop formulae.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Fix footnote the the property table.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove a dynamic_cast.

	* src/tgbaalgos/ltl2tgba_fm.cc (translate_ratexp): Replace
	a dynamic cast by a call to kind().

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify {b && {r1;...;rn}}.

	* doc/tl/tl.tex: Document the rules.
	* src/ltlvisit/simplify.cc (simplify_visitor): Implement them.
	* src/ltltest/reduccmp.test: Test them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify {b && {r1:...:rn}} as {b && r1 && ... && rn}.

	* src/ltlvisit/simplify.cc (simplify_visitor): Do it.
	* src/ltltest/reduccmp.test: Add a test.
	* doc/tl/tl.tex: Document it.
	* src/ltlast/multop.cc: Fix the computation of is.accepting_eword
	for Fusion.  The Fusion operator never accepts [*0].

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Document operator precedence.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use latexmk to build tl.tex.

	* doc/tl/Makefile.am: Rewrite using latexmk instead of texi2dvi.
	Also define the SpotVersion when calling latexmk, not in tl.tex.
	* doc/tl/tl.tex: Assume SpotVersion is defined outside the file.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup mark_concat_ops() and simplify_mark() with a cache.

	* src/ltlvisit/mark.hh, src/ltlvisit/mark.cc (mark_concat_ops,
	simplify_mark): Rewrite these two functions as methods of
	(mark_tools): this new class.
	* src/ltlast/binop.cc, src/ltlast/unop.cc: Adjust computation
	of not_marked to ignore marked operators that are not at
	the top-level.  I.e., something like X(!{a}) is not marked.
	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::mt): New
	instance of mark_tools.
	(formula_canonizer::translate) Adjust calls to
	mark_concat_ops() and simplify_mark().

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite {b}<>->f as (!b)|f instead of b->f.

	* src/ltlast/binop.cc, src/ltlast/binop.hh: Here.
	* doc/tl/tl.tex, src/ltltest/equals.test: Adjust.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Ignore sub-"SERE" that have been proved useless already.

	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::translate): Do not
	translate a subformula if we have already proved it useless in
	a previous rational expression.
	* src/tgbatest/ltl2tgba.test: Add an example, although that
	test does not ensure the subformula is ignored early in the
	translation.  I.e., it would still work without the patch.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup construction of transitions in ltl_to_tgba_fm.

	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::translate,
	ltl_to_tgba_fm): Do not convert labels as Boolean formulas before
	creating transitions.  Use the bdd directly, and register the used
	transitions later.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Reuse Boolean->BDD translations performed during simplification.

	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::ltl_to_bdd):
	Use boolean_to_bdd()

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cache the LTL->BDD translation for every subformulae.

	We used to cache it only for formulas used as states.

	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::ltl_to_bdd): New method.
	(ltl_trad_visitor::recurse): Use ltl_to_bdd().
	(formula_canonizer): Likewise.
	(ltl_to_tgba_fm): Adjust.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add trivial identity {b}=b and !{b}=!b for any Boolean formula b.

	* src/ltlast/unop.cc: Perform the simplification.
	* src/ltlast/unop.hh, doc/tl/tl.tex: Document it.
	* src/ltltest/equals.test: Adjust test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup minimize_obligation() when f->is_syntactic_obligation().

	* src/tgbaalgos/minimize.cc (minimize_obligation): Do not check
	the output of minimize_wdba if the input formula is a syntactic
	obligation.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add documentation for temporal logic operators.

	* doc/tl/Makefile.am, doc/tl/tl.tex, doc/tl/tl.bib: New files.
	* doc/Makefile.am (SUBDIRS): Recurse into tl/.
	* configure.ac: Output doc/tl/Makefile
	* README: Describe doc/tl/.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Trim DFAs used when translating PSL's closure operators.

	This fixes a bug where {(a&!a)[=2]} was translated either into an
	universal automaton (with simplification turned off) or in an
	empty automaton (with simplification turned on).

	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::translate): Trim
	the automaton.
	(ratexp_to_dfa::succ, ratexp_to_dfa::get_label): Deal with trimed
	states.
	(ltl_trad_visitor::visit(unop::Closure)): Likewise.
	* src/tgbatest/ltl2tgba.test, src/ltltest/reduccmp.test: New test
	cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Setup machinery to build DFA when translating some PSL operators.

	This is especially important when translating the Closure
	operators, because normally we should only keep the satisfiable
	formulae (i.e. co-accessible states), which seems hard to check on
	the fly.  After this patch we need to teach
	ratexp_to_dfa::translate() how to trim (and then minimize) the DFA
	to prune those useless (non co-accessible) states.

	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_to_dfa): New class.
	(translate_dict::transdfa): New member.
	(ltl_trad_visitor::visit(unop::Closure)): Use transdfa.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generalize syntactic implication for event. and univ. formulae.

	* src/ltlvisit/simplify.cc (syntactic_implication_aux): Refine
	rules to deal with pure eventualities and purely universal
	properties.
	* src/ltltest/reduccmp.test: Add tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Translate Boolean formulae as BDD using the ltl_simplifier cache.

	* src/ltlvisit/simplify.hh, src/ltlvisit/simplify.cc
	(ltl_simplifier::ltl_simplifier, ltl_simplifier::get_dict): Make
	it possible to supply and retrieve the dictionary used.
	(ltl_simplifier::as_bdd): New function, exported from the cache.
	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict): Store the
	ltl_simplifier object.
	(translate_dict::boolean_to_bdd): Call ltl_simplifier::as_bdd.
	(translate_ratexp): New wrapper around the ratexp_trad_visitor,
	calling boolean_to_bdd whenever possible.
	(ratexp_trad_visitor): Do not deal with negated formulae, there
	are necessarily Boolean and handled by translate_ratexp().
	(ltl_visitor): Adjust to call translate_ratexp.
	(ltl_to_tgba_fm): Adjust passing of the ltl_simplifier to the
	translate_dict, and make sure everybody is using the same
	dictionary.
	* src/tgbatest/ltl2tgba.cc: Pass the dictionary to the
	ltl_simplifier.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite syntactic implication using a single function.

	* src/ltlvisit/simplify.cc (inf_left_recurse_visitor,
	inf_right_recurse_visitor): Remove.
	(syntactic_implication, syntactic_implication_aux): Rewrite all
	rules for syntactic implication.
	(syntactic_implication_neg): Simplify.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Decrease the maximum bound used in random BUnOps.

	* src/ltlvisit/randomltl.cc (bunop_bounded_builder,
	bunop_bool_bounded_builder): Set the maximum value
	to 3 instead of 4, to speed up the test suite.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Avoid containment checks on equal formulae.

	* src/ltlvisit/contain.cc
	(language_containment_checker::contained,
	language_containment_checker::neg_contained,
	language_containment_checker::contained_neg): Detect
	cases where both formulae are equal.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix translation of '{(c&!c)[->0..1]}!'.

	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor::visit): Fix
	the translation of the Goto operator.
	(ratexp_trad_visitor::next_to_concat): More comments.
	* src/ltltest/reduccmp.test: Add a test case.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a Clang-2.9 warning.

	* src/tgbaalgos/ltl2tgba_fm.cc (trace_ltl_bdd):
	Declare as unused.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Check that reductions are legitimates with containment.

	* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh
	(are_equivalent): Export this function from the cache.
	* src/ltltest/reduc.cc, src/ltltest/equals.cc: Use
	are_equivalent() to check that the reductions are legitimate.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix universal and eventual rules for M and W.

	* src/ltlast/binop.cc: a M b is eventual if both a and b are
	eventual, or if b == 1.  a W b is universal if both a and b
	are universal or if b == 0.
	* src/ltltest/kind.test: New test case.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Compare Boolean LTL formulae using BDDs.

	* src/ltlvisit/simplify.cc (syntactic_implication): Here.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge the syntactic implication code with ltl_simplifier.

	So that we can latter use some combined optimizations.

	* src/ltlvisit/simplify.hh, src/ltlvisit/simplify.cc: Integrate
	the code from syntimpl.cc
	* src/ltlvisit/syntimpl.hh, src/ltlvisit/syntimpl.cc: Delete.  All
	code has been moved above.
	* src/ltlvisit/Makefile.am: Adjust.
	* src/ltltest/syntimpl.cc: Adjust code.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/simplify.cc: More comments.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rewrite xor, =>, and <=> in negative_normal_form().

	* src/ltlvisit/simplify.hh, src/ltlvisit/simplify.cc
	(ltl_simplify::negative_normal_form): Remove the third
	parameter and always rewrite XOR, =>, and <=>.  This avoid
	problems with the cache, that could have been populated with
	a different value for this third parameter.
	* src/ltltest/reduc.cc, src/tgbaalgos/ltl2tgba_fm.cc: Adjust
	calls to negative_normal_form().
	* src/ltltest/nenoform.test: Adjust tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Mark reduce_tau03() as deprecated.

	* src/ltlvisit/contain.hh (reduce_tau03): Mark as deprecated.
	* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbatest/ltl2tgba.cc,
	src/ltltest/equals.cc: Do not include ltlvisit/contain.hh, since
	it's not used.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove basicreduce files.  ltl_simplifier does all the work.

	* src/ltlvisit/basicreduce.cc, src/ltlvisit/basicreduce.hh: Delete.
	* src/ltlvisit/Makefile.am: Remove them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Deprecate reduce() in favor of ltl_simplifier.

	* src/ltlvisit/reduce.hh: Mark the file as obsolete.
	(reduce): Declare this function as obsolete.
	* src/ltlvisit/reduce.cc: Define SKIP_DEPRECATED_WARNING
	so we can include reduce.hh.
	* src/sanity/includes.test: Also use SKIP_DEPRECATED_WARNING
	when compiling headers.
	* iface/dve2/dve2check.cc,
	src/ltltest/equals.cc, src/ltltest/randltl.cc,
	src/ltltest/reduc.cc, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbatest/randtgba.cc,
	wrap/python/ajax/spot.in, wrap/python/spot.i: Adjust
	to use ltl_simplifier.
	* src/tgbatest/ltl2tgba.cc: Adjust to use ltl_simplifier,
	and replace -fr1...-fr7 options by a single -fr option.
	* src/tgbatest/spotlbtt.test: Adjust -fr flags accordingly.
	* src/tgbatest/reductgba.cc: Do not include reduce.hh.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move the remaining reduce() logic into ltl_simplifier.

	* src/ltlvisit/simplify.hh
	(ltl_simplifier::negative_normal_form): Allow logical
	unabbreviations during the NNF pass.
	* src/ltlvisit/simplify.cc
	(ltl_simplifier::negative_normal_form)
	(negative_normal_form_visitor): Adjust.
	(ltl_simplifier::simplify): Request unabbreviations.
	* src/ltlvisit/reduce.cc (reduce): Remove most
	of the code, leaving only a call ltl_simplifier
	and some wrapper code to convert options.
	* src/ltltest/reduccmp.test: Add more test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typo in the code rewriting "a M 1 = Fa".

	* src/ltlvisit/simplify.cc (simplify_visitor): Fix it,
	and leave the trace code.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the negative_normal_form call from reduce().

	* src/ltlvisit/simplify.cc (ltl_simplifier::simplify):
	Convert in negative normal form if needed.
	* src/ltlvisit/reduce.cc (reduce): Do not call
	negative_normal_form().

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move language containment into ltl_simplifier.

	* src/ltlvisit/simplify.cc: Integrate the tau03
	containment rules.
	* src/ltlvisit/simplify.hh: Add options to select simplifications.
	* src/ltlvisit/reduce.cc (reduce): Do not call reduce_tau03().
	* src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove.
	(reduce_tau03): Implement it using ltl_simplifier.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generalize G,&,| rewritings to deal with event. and univ. terms.

	* src/ltlvisit/simplify.cc (ltl_simplifier): Adjust
	code.
	* src/ltltest/reduccmp.test: Add some test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More rewritings or multop::And and multop::Or.

	* src/ltlvisit/simplify.cc (ltl_simplifier): Add more rewritings
	for formulae that are both universal and eventual.
	* src/ltltest/reduccmp.test: Add six more cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make sure 'a U XXXFb' reduces to 'XXXFb'.  Spot 0.7.1 missed that.

	* src/ltltest/reduccmp.test: Add the test.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/reduce.hh: 80 columns.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a case caught by the random formula generator.

	* src/ltlvisit/simplify.cc (ltl_simplifier): Since we are processing
	the formula bottom-up, don't assume all trivial simplification have
	been done.
	* src/ltltest/reduccmp.test: More tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Reimplement basic_reduce()'s rules in ltl_simplifier.

	So far I have only checked these rewritings with reduccmp.test.
	There are probably a few kinks to iron out.

	* src/ltlvisit/simplify.cc: Reimplement most of the basic
	rewriting rules, leaving some FIXME comments for dubious ones.
	* src/ltlast/multop.cc, src/ltlast/multop.hh: Ignore NULL
	pointers in the vector.
	* src/ltlvisit/reduce.cc (reduce): Do not call basic_reduce().
	* src/ltltest/reduccmp.test: Adjust tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/simplify.hh (ltl_simplifier): Disallow copy.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	event./univ. and syntactic implications rewriting in ltl_simplifier.

	* src/ltlvisit/reduce.cc (reduce_visitor): Move ...
	* src/ltlvisit/simplify.cc (simplify_visitor): ... here, and
	adjust to use the new ltl_simplifier_options.
	* src/ltlvisit/reduce.cc (reduce): Use ltl_simplifier
	to perform the work of reduce_visitor.  Eventually we want to
	get rid of reduce.cc.
	* src/ltlvisit/reduce.hh (reduce): Remove the
	syntactic_implication_cache used as third argument.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust kind.test Adjust after the change of 2011-05-23.

	* src/ltltest/kind.test: More pure eventualities and purely
	universal properties are detected.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Take trivial identities into account to simplify basicreduce.

	* src/ltlvisit/basicreduce.cc: Do not test
	for things like X(true), F(false), or `a U 1`.
	These are all trivial identities.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlast/formula.hh: Typos in comments.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generalize computation of is.eventual and is.universal.

	* src/ltlast/binop.cc (binop::binop): Generalize detection
	of pure eventualities and purely universal formulae.  E.g.
	`f U g' is a pure eventuality if g is a pure eventuality
	(regardless of f) or if g is 1.
	* src/ltlast/unop.cc (unop::unop): Compute is.eventual
	and is.universal for Not.
	* src/ltltest/kind.test: Adjust.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce ltl_simplifier.

	It is limited to negative_normal_form_visitor for now.

	* src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh: Rewrite
	using ltl_simplifier.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup randpsl.test.

	* src/tgbatest/randpsl.test: Run without valgrind, it is too
	slow otherwise.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Track finite formulae.

	I.e., SERE without star, or LTL formula using only X and Boolean
	operators.

	* src/ltlast/formula.hh, src/ltlast/formula.cc: Add a bit for
	tracking finite formulas.
	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/formula.cc:
	Adjust.
	* src/ltlast/unop.cc, src/ltlast/binop.cc: Adjust and use that
	bit to refine the computation of some LTL classes.
	* src/ltltest/kind.test: New tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Track syntactic classes.

	These are safety, guarantee, obligation, persistence, and recurrence.

	* src/ltlast/formula.hh, src/ltlast/formula.cc: Declare a bit for
	each of these classes.
	* src/ltlast/atomic_prop.cc, src/ltlast/constant.cc,
	src/ltlast/automatop.cc, src/ltlast/binop.cc, src/ltlast/bunop.cc,
	src/ltlast/unop.cc: Update these bits.
	* src/ltltest/kind.test: Update tests and add more.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Combine Boolean formulae in Fusion arguments.

	* src/ltlast/multop.cc (multop::instance): Implement
	the rewriting.   "a:b:c[*]:d:e" becomes "{{a&&b}&c[*]}:{d&&e}".
	* src/ltlast/multop.hh: Document it.
	* src/ltltest/equals.test, src/ltltest/kind.test: Add test cases.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cosmetic change to please sanity checks.

	* src/ltlvisit/randomltl.cc (random_formula::update_sums): Remove
	duplicate semicolon.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Disable LTL reductions on SERE formulae.

	* src/ltlvisit/contain.cc (recurse, reduce_tau03): Do not
	run on non-PSL formulae.
	* src/ltlvisit/reduce.cc (reduce_visitor::visit): Skip
	multop::Fusion operators, and do not run syntactic_implication_neg
	on SERE formulae.
	* src/ltlvisit/syntimpl.cc (inf_right_recurse_visitor::visit):
	Skip [*0].

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Track SERE formulas.

	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc,
	src/ltlast/formula.cc, src/ltlast/formula.hh,
	src/ltlast/multop.cc, src/ltlast/unop.cc: Add a bit is.sere_formula
	to track SEREs, and fix tracking of PSL formulae.
	* src/ltltest/kind.test: Adjust.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for the {SERE}! PSL operator.

	* src/ltlparse/ltlscan.ll: Recognize }!.  Also remove
	five duplicate rules.
	* src/ltlparse/ltlparse.yy: Build {r}<>->1 when parsing {r}!.
	* src/ltlvisit/tostring.cc: Print {r}! instead of {r}<>->1.
	* src/ltltest/tostring.test, src/ltltest/equals.test:
	Add more tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Cosmetic changes in doc for bunop and multop.

	* src/ltlast/bunop.hh, src/ltlast/multop.hh: Reorder some comments.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix handling of PSL operators in reductions rules.

	We still don't have any PSL-specific reductions, but at least
	the LTL reduction now appear to work on PSL formulas.

	* src/ltlvisit/basicreduce.cc (basic_reduce_visitor): Fix the
	call to std::copy to handle Concat, Fusion, and AndNLM.
	* src/ltlvisit/reduce.cc (reduce_visitor): Fix handling
	of UConcat, EConcat, and EConcatMarked.
	* src/tgbatest/randpsl.test: Activate reductions.
	* src/ltltest/reducpsl.test: New file.
	* src/ltltest/Makefile.am (TESTS): Add it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Plug a memory leak in randltl.

	* src/ltlvisit/randomltl.hh (random_formula::~random_formula):
	Declare as virtual.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Translate 50 random PSL formulae until we get a better test.

	* src/tgbatest/randpsl.test: New file.
	* src/tgbatest/Makefile.am (TESTS): Add it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add random generators of Boolean, SERE, and PSL formula.

	* src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh:
	(random_boolean, random_sere, random_psl): Add new classes.
	* src/ltltest/randltl.cc: Add options to support the above.
	Nore: the -p option was renamed to -pL for consistency, but
	it is still understood.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it possible to format SERE.

	* src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc (to_string):
	Add third option to enable formating suitable for SERE.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Relax usage of ->, <->, and xor in SERE.

	* src/ltlparse/ltlparse.yy (rationalexp): Allow ->, <->, and xor,
	in rational expressions as long as they apply only to Boolean
	formulae.
	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor): Adjust
	assert in handling of unop::Not.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Equal and Goto should only apply to Boolean expressions.

	* src/ltlast/bunop.cc (bunop::bunop): Ensure it using an assert.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Prepare the introduction of random_sere() and random_psl().

	* src/ltlvisit/randomltl.hh (random_ltl): Split this class into...
	(random_formula, random_ltl): ... these.
	* src/ltlvisit/randomltl.cc: New

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup syntactic_implication() by using a cache.

	* src/ltlvisit/syntimpl.hh (syntactic_implication,
	syntactic_implication_neg): Move as member of ...
	(syntactic_implication_cache): ... this new class, that holds
	a cache of results to speedup these functions.
	* src/ltlvisit/syntimpl.cc: Adjust to use (lookup, populate,
	and cleanup) the cache.
	* src/ltltest/syntimpl.cc: Likewise.
	* src/ltlvisit/reduce.hh (reduce): Take an optional
	syntactic_implication_cache parameter.
	* src/ltlvisit/reduce.cc: Adjust to use a
	syntactic_implication_cache.
	* src/ltltest/equals.cc: Call dump_instances() to help debugging.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup some rewriting by detecting cases where they do nothing.

	* src/ltlvisit/nenoform.cc, src/ltlvisit/lunabbrev.cc,
	src/ltlvisit/simpfg.cc, src/ltlvisit/tunabbrev.cc: Do not recurse
	if the formula properties indicate that it is already in the right
	form.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the has_mark() function in favor of the is_marked() method.

	* src/ltlast/unop.cc (NegClosure): Reset is.not_marked.
	* src/ltlvisit/mark.hh,
	src/ltlvisit/mark.cc (has_mark_visitor, has_mark): Remove.
	* src/tgbaalgos/ltl2tgba_fm.cc: Use f->is_marked() instead
	of has_mark(f).

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Get rid of all dynamic_cast<>s while working on LTL formulae.

	They are too slow.

	* src/ltlast/formula.hh (opkind, kind, kind_): Use an enum
	to indicate the actual kind of the formula.  This way we can
	check the kind of a formula without relying on dynamic_cast.
	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc,
	src/ltlast/multop.cc, src/ltlast/refformula.cc,
	src/ltlast/refformula.hh, src/ltlast/unop.cc: Adjust constructors.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
	src/ltlvisit/tostring.cc: Replace all dynamic_cast by a
	call to kind() followed by a static_cast.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace the constant_term visitor by a flag in the formulae.

	* src/ltlast/formula.hh (formula::accepts_eword): New method.
	(formula::is.accepting_eword): New flag.
	* src/ltlast/formula.cc (print_formula_props): Display the new
	property.
	* src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
	src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc,
	src/ltlast/multop.cc, src/ltlast/unop.cc: Update
	is.accepting_eword as appropriate.
	* src/ltltest/consterm.cc, src/tgbaalgos/ltl2tgba_fm.cc: Adjust to
	use accepts_eword().
	* src/ltlvisit/consterm.cc, src/ltlvisit/consterm.hh: Delete.
	* src/ltlvisit/Makefile.am: Remove these files.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Maintain basic LTL properties using a bitfield inside formula objects.

	This bitfield is easily updated as the formulae are constructed.
	Doing so avoids many AST recursions to compute these properties
	individually.  This patch removes the eventual_universal_visitor,
	as well as the kind_of() function.

	* src/ltlast/formula.hh (is_boolean, is_sugar_free_boolean,
	is_in_nenoform, is_X_free, is_sugar_free_ltl,
	is_ltl_formula, is_eltl_formula, is_psl_formula, is_eventual,
	is_universal, is_marked): New methods to query formula
	properties in constant time.
	(get_props, ltl_prop): A method and structure for
	implementation as a field bit in an unsigned, for fast
	computation.
	(print_formula_props): New function.
	* src/ltlast/formula.cc (print_formula_props): Implement it.
	* src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
	src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/multop.cc,
	src/ltlast/unop.cc, src/ltlast/automatop.cc: Compute the
	properties as instances are constructed.
	* src/ltlparse/ltlparse.yy: Update to use is_boolean() instead
	of kind_of().
	* src/ltltest/kind.cc: Update to use print_formula_props().
	* src/ltltest/kind.test: Adjust to test eventual and universal
	properties.
	* src/ltlvisit/kind.cc, src/ltlvisit/kind.hh: Delete these files.
	* src/ltlvisit/Makefile.am: Remove kind.hh and kind.cc.
	* src/ltlvisit/reduce.cc (recurse_eu, eventual_universal_visitor):
	Remove, no longer needed.
	(reduce_visitor, is_eventual, is_universal): Adjust to
	use formula::is_eventual(), and formula::is_universal().
	* src/ltlvisit/reduce.hh (is_eventual, is_universal): Declare as
	deprecated.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify fUf, fRf, fWf,	and fRF as f.

	* src/ltlast/binop.cc (binop::instance): Simplify fUf, fRf, fWf,
	and fRF.
	* src/ltlast/binop.hh: Document it.
	* src/ltltest/equals.test: Add new tests for 'Exp U Exp'
	and 'Exp R Exp', and all missing tests for W and M.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not simplify F([*0]) and G([*0]).  Make sure it does not happen.

	* src/ltlast/unop.hh, src/ltlast/unop.cc: Replace the
	simplification by an assert.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix trivial identity (0 => Exp) == 1, and add rewritings for =>.

	The new rewriting are (Exp => Exp) = 1, (Exp <=> Exp) == 1,
	and (Exp ^ Exp) == 0.

	* src/ltlast/binop.hh: Fix documentation.
	* src/ltlast/binop.cc: Fix implementation.
	* src/ltltest/equals.test: More tests.
	* src/tgbatest/emptchk.test: Remove a useless test.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Read p=0Wq=1 and p=0Mq=1 correctly.

	* src/ltlparse/ltlscan.ll: Handle p=0Wq=1 and p=0Mq=1 in
	the same way as we did for
	* src/ltltest/parse.test: More tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix rewriting of Negated constants and atomic propositions

	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor): Take a
	"negated" parameter and use it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlast/multop.hh: Fix documentation of some trivial identity.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add functions to compute the kind of a formula (LTL, PSL, Boolean...)

	* src/ltlvisit/kind.hh, src/ltlvisit/kind.cc: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/ltltest/kind.test, src/ltltest/kind.cc: New files.
	* src/ltltest/Makefile.am: Add them.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Print '{!a}*' rather than '!a*'.

	* src/ltlvisit/tostring.cc: Use braces for unary operators in
	Star.
	* src/ltltest/tostring.test: Add some PSL formulae, it cannot
	hurt.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Recognize and use "*" (or "[*]") as an abbreviation for 1*.

	* src/ltlparse/ltlparse.yy: Recognize "*" as "1*".
	* src/ltlvisit/tostring.cc: Abbreviate "1*" as "*".
	* src/tgbatest/ltl2tgba.test: Use the new syntax.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Allow boolean atoms to be negated in rational expressions.

	* src/ltlparse/ltlparse.yy (rationalexp): Recognize "OP_NOT
	booleanatom".
	* src/ltlvisit/consterm.cc, src/tgbaalgos/ltl2tgba_fm.cc: Adjust.
	* src/tgbatest/ltl2tgba.test: Add one test.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for PSL's non-length-matching And.

	* src/ltlast/multop.cc, src/ltlast/multop.hh: Declare AndNML
	operator.
	* src/ltlparse/ltlscan.ll: Distinguish "&" and "&&".
	* src/ltlparse/ltlparse.yy: Handle them both as "And" for LTL
	formula, use AndNML or And for rational expressions.
	* src/ltlvisit/tostring.cc: Adjust to distinguish "&" and "&&" in
	rational expressions. Also use {braces} to group rational
	expressions.
	* src/tgbaalgos/ltl2tgba_fm.cc
	(ratexp_trad_visitor::ratexp_trad_visitor): Remove the possibility
	to select the empty_word should act like true, and fix the rules
	for Closure and NegClosure to rely on constant_term instead.
	(ratexp_trad_visitor::visit) Adjust the And translation to also
	support AndNML.
	(ratexp_trad_visitor::recurse_and_concat): Introduce this new
	method to simplify some calls to recurse(f, to_concat_).
	* src/tgbatest/ltl2tgba.test: Add more test cases.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
	src/ltlvisit/contain.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/nenoform.cc, src/ltlvisit/syntimpl.cc,
	src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Add
	missing cases in switches.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Accept "{E}|->ltl" and "{E}(ltl)" as synonym for "{E}[]->ltl".

	* src/ltlparse/ltlparse.yy (parenthesedsubformula): Extract these
	rules from...
	(subformula): ... here, and use it to recognize "{SERE}(formula)".
	* src/ltlparse/ltlscan.ll: Recognize "|->" as "[]->".
	* src/ltltest/equals.test: Test these two new syntaxes.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Support braces in addition to parentheses in rational expressions.

	* src/ltlparse/ltlparse.yy (rationalexp): Allow bracedrationalexp.
	* src/ltltest/consterm.test, src/tgbatest/ltl2tgba.test: Add more
	tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for {SERE} and !{SERE} closure operators.

	* src/ltlast/unop.hh, src/ltlast/unop.cc: Introduce Closure and
	NegClosure operators.
	* src/ltlparse/ltlparse.yy: Recognize {foo} as a Closure.
	* src/ltlvisit/mark.cc: Consider NegClosure as a marked operator.
	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor): Add option to
	select whether the empty_word should act like true (for {SERE}
	and {!SERE}) or false (for {SERE}<>->Exp or {SERE}[]->Exp).
	(ltl_trad_visitor): Translate Closure and NegClosure.
	* src/tgbatest/ltl2tgba.test: Add more tests.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
	src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
	src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
	src/ltlvisit/tunabbrev.cc, src/tgba/formula2bdd.cc,
	src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2taa.cc: Straightforward update to support or
	assert on these new operators.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust Python tests to the new simplification rules.

	* wrap/python/tests/ltlsimple.py: Adjust.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Build deterministic automata for <>-> operators.

	* src/tgbaalgos/ltl2tgba_fm.cc (ltl_trad_visitor): Take
	an exprop argument, and use it while translation <>-> operators.
	* src/tgbatest/ltl2tgba.test (check_psl): Use -x too.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Parse the fusion operator (":") and translate it in ltl2tgba_fm().

	* src/ltlast/multop.hh (multop::type::Fusion): New operator.
	* src/ltlast/multop.cc: Handle it.
	* src/ltlparse/ltlparse.yy: Declare OP_FUSION and add grammar
	rules.
	* src/ltlparse/ltlscan.ll: Recognize ":" as OP_FUSION.
	* src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor::visit):
	Add translation rule for multop::Fusion.
	* src/tgbatest/ltl2tgba.test: Add more tests.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
	src/ltlvisit/contain.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/nenoform.cc, src/ltlvisit/syntimpl.cc,
	src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
	src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc: Handle multop::Fusion in switches.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not assume that concatenation cannot accept the empty word.

	For instance "(a+#e);(b+#e);(c*)" does.

	* src/ltlvisit/consterm.cc: Fix handling of Concat operator.
	* src/ltltest/consterm.test: Add more tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Visitors to transform <>-> into <>+> or to detect the latter.

	* src/ltlvisit/mark.cc, src/ltlvisit/mark.hh: New files.
	* src/ltlvisit/Makefile.am: Add mark.hh and mark.cc.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce EConcatMarked "<>+>" as operator.

	* src/ltlast/binop.cc, src/ltlast/binop.hh: Introduce
	EConcatMarked ("<>+>").
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
	src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc,
	src/ltlvisit/reduce.cc, src/ltlvisit/simpfg.cc,
	src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc, src/tgba/formula2bdd.cc,
	src/tgba/formula2bdd.cc: Deal with it if possible or ignore
	it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify #e in conjunctions.

	* src/ltlast/multop.cc: Handle it.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify {#e}[]->Exp and {#e}<>->Exp.

	* src/ltlast/binop.cc: Add simplification rules.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more tests for rational operator simplifications.

	* src/ltltest/nenoform.test, src/ltltest/equals.test,
	src/ltltest/consterm.test: Update tests for rational ops.
	* src/ltltest/consterm.cc: Use parse_ratexp().
	* src/ltlast/binop.cc: Fix simplification rules for []-> and
	<>->.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Enable parsing stand-alone rational expressions with the LTL parser.

	* src/ltlparse/ltlparse.yy (parse_ratexp): New function.
	(START_LTL, START_RATEXP): Add these new tokens.
	(result): Parse and LTL formula or a rational expression depending
	on the start symbol.
	* src/ltlparse/public.hh (parse_ratexp): New function.
	* src/ltlparse/parsedecl.hh (flex_set_buffer): Add a new argument
	to set the starting rule.
	* src/ltlparse/ltlscan.ll (flex_set_buffer): Adjust.
	(start_token): New global variable.  Return this as first token if
	it is set.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a constant_term() visitor to decide whether #e is accepted.

	* src/ltlvisit/Makefile.am: Add consterm.cc and consterm.hh.
	* src/ltlvisit/consterm.hh, src/ltlvisit/consterm.cc: New files.
	* src/ltltest/Makefile.am: Add consterm.cc and consterm.test.
	* src/ltltest/consterm.cc, src/ltltest/consterm.test: New files.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce rational operators and trivial simplification rules.

	Trivial simplifications rules (such as "FFa=Fa" or "x&1=x")
	are performed any time a formule is instanciated.

	* src/ltlast/constant.hh, src/ltlast/constant.cc
	(true_instance, true_instance_): Declare the true_instance_ as a
	static member, and move true_instance() into the .hh so it gets
	inlined.  Have true_instance_ as a class variable will ensure that
	it is the first formula instantiated.  Binop simplifications rely
	on this to order arguments.
	(false_instance, false_instance_): Likewise.
	(empty_word_instance, empty_word_instance_): New method and static
	member.
	* src/ltlast/formula.hh (formula::formula): If max_count_ ever
	loops, skip the first three values so that constants always have
	smaller hash codes.
	* src/ltlast/binop.hh, src/ltlast/binop.cc (instance): Add
	simplifications and document them.
	* src/ltlast/multop.hh (multop::Concat): New operator.
	* src/ltlast/multop.cc (op_name): Handle Concat.
	(instance): Inline Concat arguments without reordering.  Handle
	absorbent and neutral elements for all operators.
	* src/ltlast/unop.hh (unop::Star): New operator.
	* src/ltlast/unop.cc (op_name): Handle Star.
	(instance): Handle Star, and add trivial simplifications for
	other unary operators.
	* src/ltlparse/ltlparse.yy (OP_CONCAT, OP_STAR, CONST_EMPTYWORD):
	Declare these new operators and add rules for them.
	* src/ltlparse/ltlscan.ll (OP_CONCAT, OP_STAR, CONST_EMPTYWORD):
	Output these new operators.
	* src/ltltest/equals.test: New tests.
	* src/ltltest/parse.test: Remove redundant test.
	* src/ltltest/tunabbrev.test, src/tgbatest/emptchk.test: Adjust tests.
	* src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
	src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
	src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
	src/ltlvisit/tunabbrev.cc: Complete visitors to handle new
	operators.
	* src/ltltest/nenoform.test: More tests.
	* src/ltlvisit/lunabbrev.cc (unabbreviate_logic_visitor::visit):
	Clone formulae before instance() function actually have a chance
	to destroy them.
	* src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc: Adjust switches to assert on new
	operators.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Apply ACI rules to multop formulae.

	* src/ltlast/multop.cc (instance): Handle neutral and absorbent
	elements for the operator.
	* src/ltltest/equals.test: Add more tests.

2012-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Summarize recent changes.

	* NEWS: Here.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Don't compare memory consumption between 2 runs of dve2check

	* iface/dve2/dve2check.test: Here.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Change the simulation option from -RSD to -RDS and document it.

	* src/tgbatest/ltl2tgba.cc: Here.
	* src/tgbatest/spotlbtt.test: Adjust.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the old broken game-theory-based simulation reductions.

	This implementation of direct simulation was only working on
	degeneralized automata, and produce automata that are inferiors to
	those output by the new direct simulation implementation (in
	tgba/simulation.hh) which can also work on TGBA.  The delayed
	simulation has never been reliable.  It's time for some spring
	cleaning.

	* src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc: Delete.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh:
	Remove all code, and keep only a deprecated replacement
	from reduc_tgba_sim().
	* src/tgbaalgos/reductgba_sim_del.cc: Delete.
	* src/tgbaalgos/Makefile.am: Adjust.
	* src/tgbatest/reduccmp.test, src/tgbatest/reductgba.cc,
	src/tgbatest/reductgba.test: Delete.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/ltl2tgba.cc: Undocument options -R1s, -R1t,
	-R2s, -R2t, and implement them using the new direct simulation.
	Remove options -Rd and -RD.
	* src/tgbatest/spotlbtt.test: Remove entry using these old options.
	* wrap/python/spot.i: Do not process tgbaalgos/reductgba_sim.cc.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	slights documentation changes around direct simulation

	* src/tgbaalgos/simulation.hh: Mention the fact that this is
	a "direct" simulation.
	* wrap/python/ajax/ltl2tgba.html: Likewise, and change the key
	to "ds".
	* wrap/python/ajax/protocol.txt, wrap/python/ajax/spot.in: Adjust.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Document --without-included-lbtt.

	* README: Here.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Define WEXITSTATUS if not available (e.g. on MinGW)

	* iface/dve2/dve2.cc: Here.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use clock() when times() is not available.

	* configure.ac: Check for times() and sys/times.h.
	* src/misc/timer.hh: Include sys/times.h conditionally
	and use clock() if times() is not available.
	Reported by Yann Thierry-Mieg.

2012-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	memusage: drop two useless includes.

	* src/misc/memusage.cc: Do not include the unneeded sys/time.hh
	and sys/resource.h.  Reported by Yann Thierry-Mieg.

2012-04-18  Thomas Badie  <badie@lrde.epita.fr>

	Add the simulation in the Spot web interface.

	* wrap/python/ajax/spot.in: Add the simulation.
	* wrap/python/ajax/protocol.txt: Add the direct simulation in the
	automaton simplifications section.
	* wrap/python/spot.i (simulation_new): Create a function which
	takes an automaton and a call to the simulation with the good
	template parameter.
	* wrap/python/ajax/ltl2tgba.html: Add the direct simulation
	checkbox.

2012-04-18  Thomas Badie  <badie@lrde.epita.fr>

	Fix two VPath-related bugs in bench.

	* bench/ltl2tgba/known (ltlfile): Add a $srcdir.
	* bench/ltlclasses/defs.in (builddir): Add the $builddir.
	* bench/ltlclasses/run (gen): Change the $srcdir into $builddir.

2012-04-18  Thomas Badie  <badie@lrde.epita.fr>

	Create the direct simulation.

	* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: New files.
	* src/tgbaalgos/Makefile.am: Add the new files to the compilation.
	* src/tgbatest/spotlbtt.test: Add the simulation.
	* src/tgbatest/ltl2tgba.cc: Add direct simulation (-RSD).

2012-04-18  Thomas Badie  <badie@lrde.epita.fr>

	Add a class to convert a bdd into its complement.

	* src/misc/acccompl.cc, src/misc/acccompl.hh: Add a way to
	an acceptance condition in an automaton, into its
	complement.
	Create a method to make the reverse operation.
	* src/misc/Makefile.am: Add the new files to the compilation.

2012-04-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatba: fix destroying of cache variables.

	* src/tgba/tgbatba.cc (tgba_tba_proxy::~tgba_tba_proxy):
	Zero last_support_conditions_input_ and last_support_variables_input_.

2012-04-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbaexplicit: execute the test

	* src/tgbatest/explicit2.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* src/tgbatest/explicit2.cc: Print the LTL formula as text.

2012-04-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Declare the sba class in its own header.

	* src/tgba/sba.hh: New file, extrated from...
	* src/tgba/tgbaexplicit.hh: ... here.  Also rename
	sba_explicit::is_accepting as sba_explicit::state_is_accepting for
	consistency with tgba_sba_proxy.
	* src/tgbatest/explicit2.cc: Adjust to the renaming.
	* src/tgba/Makefile.am: Add sba.hh.

2012-04-12  Pierre PARUTTO  <parutto@lrde.epita.fr>

	Correct a bug in tgba_explicit_succ_iterator class

	* src/tgba/tgbaexplicit.hh (current_acceptance_conditiosn):
	remove a suspect and in return statement

2012-04-12  Pierre PARUTTO  <parutto@lrde.epita.fr>

	Modify is_accepting sba's method to run in constant time.

	* src/tgba/tgbaexplicit.hh: modify is_accepting method

2012-04-12  Pierre PARUTTO  <parutto@lrde.epita.fr>

	Implement sba_explicit class, add tests

	* src/tgba/tgbaexplicit.hh: Add sba_explicit implementation
	* src/tgbatest/explicit2.cc: Add test to check the good instantiation
	of sba_explicit_*

2012-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_explicit: make the new class work with Swig.

	* src/tgba/tgbaexplicit.hh (explicit_graph, tgba_explicit): Make the
	transition type explicit.
	(state_explicit_string::get_iterator): New method.
	(explicit_graph::get_transition): Use it.
	(tba): Rename as ...
	(sba): ... this.
	* wrap/python/spot.i: Instanciate explicit_graph and tgba_explicit
	for all three types.

2012-04-12  Pierre PARUTTO  <parutto@lrde.epita.fr>

	Revamp tgbaexplicit.hh

	* src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc: Factor most of
	the code in an explicit_graph<State, Type> that inherits from type.
	The tgba_explicit type<State> now inherits from
	explicit_graph<State,tgba>.
	* src/ltlvisit/contain.cc, src/neverparse/neverclaimparse.yy
	src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh, src/tgbaalgos/cutscc.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/sccfilter.cc, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/complementation.cc, src/tgbatest/explicit.cc,
	src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
	src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc:
	Replace tgba_explicit* by the actual type used.
	* src/tgbatest/explicit2.cc: New file.
	* src/tgbatest/Makefile.am: Add it.

2012-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	maint: add .checklog

	* .checklog: New file.

2012-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	maint: set umask 022 in lrde-upload.sh

	* lrde-upload.sh: Call umask, so that newly created directories are
	accessible.

2012-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Scroll to result. (Suggested by Thomas Badie.)

	* wrap/python/ajax/ltl2tgba.html: Scroll the the results the first
	time a formula is submitted, and anytime a formula is submitted with
	'enter'.  Also do not animate the settings of panels when reloading
	the page from a hash fragment.

2012-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typo: rename automata_ as aut_.

	* src/tgbaalgos/reachiter.hh, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/lbtt.cc, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim_del.cc,
	src/tgbaalgos/save.cc, src/tgbaalgos/sccfilter.cc,
	src/tgba/tgbareduc.cc, src/evtgbaalgos/tgba2evtgba.cc,
	src/kripke/kripkeprint.cc: Rename automata_ as aut_.

2012-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Generate ChangeLog from git log during "make dist".

	* tools/gitlog-to-changelog: New file, from gnulib.
	* Makefile.am (EXTRA_DIST): Distribute it.
	(dist-hook, gen_start, gen-ChangeLog): Generate the ChangeLog during
	distdir.

2012-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename ChangeLog as ChangeLog.1 and leave an empty ChangeLog.

	The empty ChangeLog is required so that Automake does not complain.

	* ChangeLog: Rename as ...
	* ChangeLog.1: ... this.
	* Makefile.am (EXTRA_DIST): Distribute it.
	* ChangeLog: New empty file.
