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

	release Spot 2.14.2

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

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

	update bibliographic references to CIAA'25

	* bin/man/ltlfsynt.x, doc/org/citing.org, doc/spot.bib: There.

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

	bin: improve reads from pipes, and deal with EINTR

	* bin/common_trans.cc (read_stdout_of_command): Read 16k at a time,
	instead of 512 bytes.  Also retry read/waitpid on EINTR.

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

	bin: fix missing pipe close

	* bin/common_trans.cc (read_stdout_of_command): Correctly close the
	read-side of the pipe.

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

	* configure.ac: Pass noyywrap to AM_PROG_LEX.

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

	org: add a tutorial about ppLTLTT

	* doc/org/tut60.org: New file.
	* doc/org/tut.org, doc/Makefile.am: Add it.
	* NEWS: Mention it.

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

	ltlfsynt: fix controller in some decomposed cases

	Part of issue #610.

	* spot/twaalgos/ltlf2dfa.hh (mtdfa_strategy_to_mealy): Add a loop
	option.
	* spot/twaalgos/ltlf2dfa.cc (mtdfa_strategy_to_mealy): Implement it.
	* bin/ltlfsynt.cc: Always produce looping strategies.
	* tests/python/ltlf2dfa.ipynb, tests/core/ltlfsynt2.test: Test it.
	* NEWS: Mention the fix.

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

	ltlfsynt: avoid spurious warning while improving code

	* bin/ltlfsynt.cc (solve_formula): Move vector to avoid spurious
	warning from gcc-snapshot.

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

	org: add tlsf.org

	* doc/org/tlsf.org, doc/org/chomp.tlsf: New files.
	* doc/Makefile.am: Distribute them.
	* doc/org/ltlsynt.org, doc/org/ltlfsynt.org, doc/org/tools.org: Link
	to tlsf.org.
	* NEWS: Mention the new page.
	* HACKING: Mention syfco.
	* elisp/tlsf-mode.el: New file, from syfco.
	* elisp/Makefile.am, elisp/README: Update for tlsf-mode.el.
	* elisp/hoa-mode.el: Update while we are at it.
	* doc/org/init.el.in: Require tlsf-mode.el.

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

	* .gitlab-ci.yml (raspbian): Use tag 'arm' instead of 'armv7'.

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

	hoa: fix handling of multiple initial state with no outgoing edges

	Reported by Raven Beutner.

	* spot/parseaut/parseaut.yy: Avoid selecting states without successors
	as candidates for merging all initial states.
	* tests/core/522.test: Add test cases.
	* NEWS: Mention the bug.

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

	mtdfa: fix AP registration in twadfa_to_mtdfa

	* spot/twaalgos/ltlf2dfa.cc (twadfa_to_mtdfa): Fix the call
	to register_all_propositions_of, and also copy the list
	of atomic propositions in aps.
	* tests/python/mtdfa.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

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

	adjust test cases after previous BuDDy patch

	Fixes #611.

	* tests/core/ltlfsynt2.test: Adjust expected number of nodes.
	* tests/python/ltlf2dfa.ipynb: Adjust outputs, and pseudo-code.
	* NEWS: Mention the change.

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

	adjust test cases after after previous patch to BuDDy

	For issue #611.

	* tests/python/ltlf2dfa.ipynb: Adjust.
	* tests/core/ltlfsynt2.test: New test case.

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

	work around different output by GraphViz 2.42.2 and 2.43

	clusters are not always output in the same order...

	* tests/python/ipnbdoctest.py: Squash any cluster into a simple
	<cluster/>.

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

	change many LRDE URLs into LRE

	* debian/copyright, doc/org/citing.org, doc/org/install.org,
	doc/org/ltlsynt.org, doc/org/setup.org, doc/spot.bib, spot.spec.in,
	tests/core/bdd.test, tests/python/ltlf2dfa.ipynb: Point to the newest
	version of the dload/ address.

2025-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlf: fix build error

	Reported by Thomas Moor with Apple clang 14.0.0 on macOS 12.7.6.

	* spot/tl/ltlf.cc: Use robin_hood::unordered_map instead of
	std::unordered_map, like in the rest of the file.  <unordered_map> was
	not directly included.
	* THANKS: Add Thomas.

2025-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING, README: Minor updates.

2025-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlfsynt.org: Typo.

2025-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.14.1.dev.

2025-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	release spot 2.14.1

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

2025-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (publish-stable): Use fully-qualified names.

2025-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfsynt: disable decomposition in presence of X

	Work around issue #610 until we know better.

	* bin/ltlfsynt.cc: Disable the decomposition optimization
	if the specification contains some X.
	* NEWS, doc/org/ltlfsynt.org: Mention the issue.
	* tests/core/ltlfsynt2.test: Adjust test cases.
	* tests/core/ltlfsynt.test: Add test cases.

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

	print_hoa: don't turn transition-based automaton into state-based

	This is important when we abuse the HOA format to represent
	transition-based DFAs...

	* spot/twaalgos/hoa.cc: Honor prop_state_acc().is_false().
	* tests/core/ltlf2dfa.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the fix.

2025-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlf2dfa: fix a case of unsequenced function calls

	* spot/twaalgos/ltlf2dfa.cc: Fix a case where the recursive calls
	implementing the F operator could use different execution order
	depending on the compiler/ABI.

2025-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/autcross.org: Fix one section.

2025-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tools.org: Typo.

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

	misc typos

	* spot/ltsmin/ltsmin.hh, spot/tl/formula.hh,
	spot/twaalgos/emptiness.hh: Fix minor typo in doxygen comments.

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

	* spot/twaalgos/gfguarantee.cc: Typo.

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

	python: specify the encoding of dot's output

	this fix a failure of the online LTL translator

	* python/spot/aux_.py (str_to_svg): The output is expected to be utf-8.

2025-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: speedup ltlfsynt.test

	This test is causing some major slowdowns because it was testing 768
	different ltlfsynt configurations over 37 different formulas.  That's
	over 28000 invocations of ltlfsynt.  That seems to be very slow in
	some setups/hosts: for instance building Debian packages using
	profiling took more than 6 hours on node14, and many conda-forge
	builds where killed after 200 minutes.

	* tests/core/ltlfsynt.test: Rewrite the test so that each invocation
	of ltlfsynt is testing all formulas at once, and do not test
	global-equiv and polarity separately.  This reduce the number of
	invocations to just 384.
	* tests/Makefile.am (twa_TESTS): Start ltlfsynt.test earlier.

2025-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: distribute tl.pdf

	* debian/spot-doc.doc-base: Add tl.pdf.

2025-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix SVG export with older org-mode

	* doc/org/ltlfsynt.org: Do not use sessions, that seems to cause
	problem with old org-mode version, causing SVG not to be exported.

2025-06-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.14.0.dev.

2025-06-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	release Spot 2.14

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

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

	* doc/org/install.org: Add link to OBS.

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

	do not force the classic look when exporting jupyter notebook

	This was needed in the past because the acd code used jquery, but that
	is not the case since d0b15088.

	* tests/Makefile.am (.ipynb.html): Drop the --classic stdout option.

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

	update citations

	* bin/man/autfilt.x: Update citation of the PetriNet'25 paper.
	* spot/twaalgos/given.hh: Cite the above paper here too.
	* bin/man/ltlf2dfa.x, bin/man/ltlfsynt.x, spot/twaalgos/ltlf2dfa.hh:
	Cite the CIAA'25 paper.
	* doc/spot.bib, doc/org/citing.org: Add both paper.

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

	ltlf2dfa: improve documentation

	* spot/twaalgos/ltlf2dfa.hh, spot/twaalgos/ltlf2dfa.cc: Cleanup and
	comment.

2025-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around dynamic_case issues on OSX

	Fixes #609.

	* configure.ac: When compiling shared libraries, use
	-fno-assume-unique-vtables if the compiler supports it.

2025-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Require Python 3.8

	It seems safe to bump our requirements and require Python 3.8.  This
	is what Ubuntu 20.04 uses, which is the oldest distribution we compile
	for at the moment.  Both Python 3.8 and Ubuntu 20.04 have reached
	end-of-life.

	* NEWS: Mention the bumped requirements.
	* m4/pypath.m4, HACKING, README: Bump the requirement.
	* doc/org/tut25.org, doc/org/tut90.org, python/spot/__init__.py,
	python/spot/aux_.py, python/spot/ltsmin.i: Modernize.
	* tests/python/_aux.ipynb: Adjust.

2025-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix spurious failure on Ubuntu 20.04 / Dash 0.5.10.2

	For some reason running "X=y foo bar" on Ubuntu 20.04 (which uses Dash
	0.5.10.2) does not set X as an environment variable when foo is a
	shell function.

	This causes a single test to fail, so it is easy to work around.

	* tests/core/included.test: Use export to define environment variables.

2025-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around newer graphviz versions

	* spot/twaalgos/dot.cc: Use label="" instead of label=<>.
	* tests/core/alternating.test: Adjust.
	* tests/python/ipnbdoctest.py: Ignore xml:space="preserve".

2025-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	replace centos by ubuntu:20.04

	CentOS is has very old version of GCC and Python (3.6).  We supported
	it only because it was still used on the starexec server which were in
	use for the Synthesis competition until 2024.  Today CentOS has bee
	discountinued, and SyntComp moved to another architecture.  Let's
	replace this by a compilation on Ubuntu 20.4.  That version had
	already reached end-of-life, but it supports Python 3.8.

	* .gitlab-ci.yml: Remplace the CentOs build by a Ubuntu 20.04 build.

2025-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	trivals do not throw

	This should fix a warning with newer compilers.

	* spot/misc/trival.hh: Mark constructors as noexcept.

2025-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlf2dfa: new mtdfa_winning_region_lazy3 function

	This is a variant of mtdfa_winning_region_lazy that works with
	three-valued status.  It was suggested by Nir Piterman.

	* spot/twaalgos/ltlf2dfa.hh (mtdfa_winning_region_lazy3): Declare this
	new function.
	* spot/twaalgos/ltlf2dfa.cc (mtdfa_winning_region_lazy3): Implement it
	in a way that share the code with mtdfa_winning_region_lazy.
	(mtdfa_restrict_as_game): Also write a trival variant.
	* bin/ltlfsynt.cc: Add a --backprop=trival-states option.
	* tests/core/ltlfsynt.test: Test it.
	* python/spot/impl.i: Add bindings for vector<trival>.
	* tests/python/ltlf2dfa.ipynb: Illustrate mtdfa_winning_region_lazy3
	and the variant of mtdfa_restrict_as_game.

2025-06-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: simplify log file wildcards

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

	Merge branch 'master' into next

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

	* configure.ac, NEWS: Bump version to 2.13.2.dev.

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

	Release Spot 2.13.2

	* NEWS, configure.ac, doc/org/setup.org: Update.

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

	* NEWS: summarize recent bug fixes.

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

	fix memory handling in remove_univ_otf

	univ_remover_succ_iterator::dst() was not correctly cloning the
	returning states.  In cases where the calling call would free the
	returned state before calling univ_remover_succ_iterator::acc(), this
	caused access to free memory.  python/alternating.py was failing on
	OpenBSD for this reason.

	* spot/twaalgos/alternation.cc (univ_remover_succ_iterator::dst):
	Clone the returned state.
	(univ_remover_succ_iterator::~univ_remover_succ_iterator): New method,
	to free the local copy.

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

	fix portability non-determinism in forq_contains

	The FORQ codes depends too much on std::unordered_map/set, and has
	bits where it iterate over those structures.  Unfortunately, different
	C++ library will have different implementations of these structures,
	so that can cause the FORQ functions to returns different words,
	because of different exploration orders.

	This causes the forq_contains.py to fails on OpenBSD (which uses
	libc++ and not libstdc++).

	I'm not sure is this fixes all relevant places, but this is enough to
	pass the forq_contains.py test.

	* spot/twaalgos/forq_contains.cc: replace state_set_t by a list,
	and create the final_states/final_edges vectors without iterating
	over unordered_sets.
	* tests/python/forq_contains.py: Adjust expected result.

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

	work around OpenBSD's set -x behavior

	With OpenBSD's sh, "set -x" also prints the redirection as they are
	being performed.   This is helpful for debugging, but if you do
	something like
	    ls 2>err 1>&2

	the shell output tree lines of traces: "+ ls", "+ 2>err", and "+ >&2".
	Those lines are output on standard error, but since standard error is
	redirected after printing "+ 2>err", the last "+ >&2" is sent into
	"err".   This causes spurious error in our test suite when comparing
	the error outputs.

	* tests/core/ltlsynt.test: Use ">out 2>&1" instead of "2>out 1>&2".

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

	work around some issue between Swig and libc++

	Issue #603, reported by Christoph Weinhuber.
	See also https://github.com/swig/swig/issues/3189

	* python/Makefile.am: Give a unique name to SwigPyIterator in all
	modules.
	* THANKS: Add Christoph.

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

	improve error message when Bison is missing

	Fixes #607 reported by Sebastian Junges.

	* m4/bison.m4: Use AM_MISSING_PROG to check for bison.
	* THANKS: Add Sebastian.

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

	update README

	Part of #607.

	* README: Update for URLs from LRDE ot LRE.  Mention HACKING for the
	extra dependencies.

2025-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: summarize recent bug fixes.

2025-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix memory handling in remove_univ_otf

	univ_remover_succ_iterator::dst() was not correctly cloning the
	returning states.  In cases where the calling call would free the
	returned state before calling univ_remover_succ_iterator::acc(), this
	caused access to free memory.  python/alternating.py was failing on
	OpenBSD for this reason.

	* spot/twaalgos/alternation.cc (univ_remover_succ_iterator::dst):
	Clone the returned state.
	(univ_remover_succ_iterator::~univ_remover_succ_iterator): New method,
	to free the local copy.

2025-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix portability non-determinism in forq_contains

	The FORQ codes depends too much on std::unordered_map/set, and has
	bits where it iterate over those structures.  Unfortunately, different
	C++ library will have different implementations of these structures,
	so that can cause the FORQ functions to returns different words,
	because of different exploration orders.

	This causes the forq_contains.py to fails on OpenBSD (which uses
	libc++ and not libstdc++).

	I'm not sure is this fixes all relevant places, but this is enough to
	pass the forq_contains.py test.

	* spot/twaalgos/forq_contains.cc: replace state_set_t by a list,
	and create the final_states/final_edges vectors without iterating
	over unordered_sets.
	* tests/python/forq_contains.py: Adjust expected result.

2025-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around OpenBSD's set -x behavior

	With OpenBSD's sh, "set -x" also prints the redirection as they are
	being performed.   This is helpful for debugging, but if you do
	something like
	    ls 2>err 1>&2

	the shell output tree lines of traces: "+ ls", "+ 2>err", and "+ >&2".
	Those lines are output on standard error, but since standard error is
	redirected after printing "+ 2>err", the last "+ >&2" is sent into
	"err".   This causes spurious error in our test suite when comparing
	the error outputs.

	* tests/core/ltlsynt.test: Use ">out 2>&1" instead of "2>out 1>&2".

2025-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around some issue between Swig and libc++

	Issue #603, reported by Christoph Weinhuber.
	See also https://github.com/swig/swig/issues/3189

	* python/Makefile.am: Give a unique name to SwigPyIterator in all
	modules.
	* THANKS: Add Christoph.

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

	improve error message when Bison is missing

	Fixes #607 reported by Sebastian Junges.

	* m4/bison.m4: Use AM_MISSING_PROG to check for bison.
	* THANKS: Add Sebastian.

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

	update README

	Part of #607.

	* README: Update for URLs from LRDE ot LRE.  Mention HACKING for the
	extra dependencies.

2025-05-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfsynt: make BFS the default

	* bin/ltlfsynt.cc, doc/org/ltlfsynt.org: Adjust.

2025-05-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfsynt: rename dfs as dfs-strict and other changes

	ltlf_synthesis_with_dfs does not seem very pertinent anymore since the
	bfs approach was found slightly better after commit
	7e8d6a7531fc5453a95f1fb8d3f8a4b46ab9bbcb.  This patch rename dfs as
	dfs-strict, and let dfs/bfs be two variants of the same
	ltlf_to_mtdfa() function: one popping from the back, the other from
	the front, and both pushing on the back.

	This also switch to using bdd_mt_quantify_to_bool in realizability
	mode when testing checking Boolean formulas.

	* bin/ltlfsynt.cc, spot/twaalgos/ltlf2dfa.hh: Add support for
	dfs-strict.
	* tests/core/ltlfsynt.test: Test it.
	* spot/twaalgos/ltlf2dfa.cc: Implement the changes listed above.

2025-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2025-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.13.1.dev

	* NEWS, configure.ac: Here.

2025-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Relase Spot 2.13.1

	* configure.ac, doc/org/setup.org: Bump version to 2.13.1.
	* NEWS, THANKS: Update for release.

2025-05-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfsynt: fix generation of strategies

	Use the choice recorded during game solving when postprocessing the
	MTDFA to turn in into a strategy.

	* spot/twaalgos/ltlf2dfa.cc: Fix 3 "FIXMEs".
	* tests/core/ltlfsynt2.test: Test that using Scutella's example,
	for which the strategy was badly encoded.
	* tests/python/ltlf2dfa.ipynb: Adjust.

2025-05-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	backprop: rework to keep track of choices

	* spot/twaalgos/backprop.hh, spot/twaalgos/backprop.cc: Tweak
	the interface so we can keep track of choices.
	* bin/ltlfsynt.cc, spot/twaalgos/ltlf2dfa.cc,
	tests/python/backprop.ipynb, tests/python/ltlf2dfa.ipynb: Adjust.

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

	work around some spurious warnings from GCC 15+

	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120288

	* m4/gccwarn.m4: Add the code causing false negative, and disable
	-Wnull-dereference in GCC versions the produce those.

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

	work around some spurious warnings from GCC 15+

	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120288

	* m4/gccwarn.m4: Add the code causing false negative, and disable
	-Wnull-dereference in GCC versions the produce those.

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

	ltlfsynt: fix the DFS strategy

	* spot/twaalgos/ltlf2dfa.cc
	(ltlf_translator::ltlf_synthesis_with_dfs): Remove a wrong
	optimization.
	* tests/core/ltlfsynt.test: Add tests for it.

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

	* doc/Makefile.am: Fix Makefile command for getting plantuml.

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

	* doc/Makefile.am: Fix Makefile command for getting plantuml.

2025-05-12  Matthias Volk  <m.volk@tue.nl>

	Fix robin_hood compilation with gcc-15

	Fixes #605.

	* spot/priv/robin_hood.hh: Add missing include.

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

	misc typos and doc updates

	* doc/org/satmin.org: Fix some quoting.
	* spot/ltsmin/README: Update reference to README.ltsmin.

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

	fix patch_game with global-equiv=no polarity=yes

	* spot/tl/apcollect.cc (realizability_simplifier::patch_game): Do not
	throw an exception if global_equiv is disabled.
	* NEWS: Mention the bug.
	* tests/core/ltlsynt.test: Test it.

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

	fetch plantuml from www.lre.epita.fr first, then www.lrde.epita.fr

	* doc/Makefile.am: Here.

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

	* NEWS: Typo in very old entry.

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

	org: various doc fixes

	* doc/org/concepts.org: Fix link to Andersen's BDD notes.
	* doc/org/setup.org: Export all header levels.  Just restrict the toc
	to 2 level.
	* doc/org/spot.css: Add styling for <h4> (i.e., "***" in org).

2025-05-12  Matthias Volk  <m.volk@tue.nl>

	Fix robin_hood compilation with gcc-15

	Fixes #605.

	* spot/priv/robin_hood.hh: Add missing include.

2025-05-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	misc typos and doc updates

	* doc/org/arch.tex: Fix a link.
	* doc/org/satmin.org: Fix some quoting.
	* spot/ltsmin/README: Update reference to README.ltsmin.

2025-05-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix patch_game with global-equiv=no polarity=yes

	* spot/tl/apcollect.cc (realizability_simplifier::patch_game): Do not
	throw an exception if global_equiv is disabled.
	* NEWS: Mention the bug.
	* tests/core/ltlsynt.test: Test it.

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

	fetch plantuml from www.lre.epita.fr first, then www.lrde.epita.fr

	* doc/Makefile.am: Here.

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

	bin: add support for --tlsf=FILENAME/PARAM1=VAL1,PARAM2=VAL2

	These extra assignments get converted into "-op PARAM=VAL" arguments
	when calling syfco.

	* bin/common_finput.cc, bin/common_finput.hh (job_processor): Add
	an assignments member to remember this assignment.
	* bin/common_trans.cc, bin/common_trans.hh (read_stdout_of_command):
	Add a variant that takes a vector.
	* bin/ltlf2dfa.cc, bin/ltlsynt.cc, bin/ltlfsynt.cc: Adjust code
	for decoding filename and calling syfco.
	* doc/org/ltlsynt.org: Document this.
	* tests/core/syfco.test: Add more tests.

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

	* NEWS: Typo in very old entry.

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

	genltl: change chomp to produce formulas compatible with LTL and LTLf

	* spot/gen/formulas.cc: Use X instead of StrongX in one place where it
	does not matters.
	* bin/genltl.cc: Adjust help text.

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

	genltl: new --chomp-mealy option

	* bin/genltl.cc: Implement the option.
	* NEWS: Mention it.
	* spot/gen/formulas.cc, spot/gen/formulas.hh: Implement the generator.
	* tests/core/ltlfsynt.test: Test it.

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

	ltlsynt: check tlsf semantics and adds hidden --semantics options

	ltlsynt currently does not support Moore semantics, but we should work
	towards that.  First, we should not assume that TLSF files use Mealy
	semantics, so this patch test that.  Then, eventually we want to
	support a --semantics=Moore option.  This adds the option but hides
	it.  Setting it aborts ltlsynt in error.

	* bin/ltlsynt.cc: Add support for semantics options, even if our
	pipeline does not support it yet.
	* tests/core/ltlsynt.test: Make sure we print an error message
	when --semantics=Noore is used.

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

	Improve ltlf2dfa notebook

	* tests/python/ltlf2dfa.ipynb: Improve documentation of game-related
	functions.

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

	fix some typos

	* doc/org/ltlfsynt.org, spot/twaalgos/ltlf2dfa.hh: Typos.

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

	ltlf: fix handling of <->/xor in one-step unrealizability

	* spot/tl/ltlf.cc (ltlf_one_step_unsat_rewrite): Implement rules
	for Xor and Equiv.

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

	* doc/org/ltlfsynt.org: use --semantics instead of --semantic.

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

	org: improve doc for ltlf2dfa and ltlfsynt

	* doc/org/ltlf2dfa.org: Fix some typos.
	* doc/org/ltlfsynt.org: Likewise, and add more figures.
	* doc/org/ltlsynt.org: Add an anchor for --aiger.

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

	genltl: new --tv-nim-mealy option

	* spot/gen/formulas.cc, spot/gen/formulas.hh: Implement
	LTLF_TV_NIM_MEALY.
	* bin/genltl.cc: Add a --tv-nim-mealy option.
	* NEWS: Mention it.
	* tests/core/ltlfsynt.test: Use it.

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

	* bin/man/genltl.x: Add missing reference.

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

	* NEWS: Summarize recent developments.

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

	org: various doc fixes

	* doc/org/concepts.org: Fix link to Andersen's BDD notes.
	* doc/org/setup.org: Export all header levels.  Just restrict the toc
	to 2 level.
	* doc/org/spot.css: Add styling for <h4> (i.e., "***" in org).

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

	* doc/org/ltlfsynt.org: Document this tool.

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

	genltl: learn --tv-counter-mealy --tv-double-counts-mealy

	* spot/gen/formulas.cc, spot/gen/formulas.hh: Add support for
	LTLF_TV_COUNTER_MEALY, LTLF_TV_DOUBLE_COUNTERS_MEALY.
	* bin/genltl.cc: Add option --tv-counter-mealy,
	--tv-double-counters-mealy.
	* doc/spot.bib: Add reference.
	* tests/core/ltlfsynt.test: Use --tv-counter-mealy and
	--tv-double-counters-mealy in tests.

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

	ltlf2dfa: fix DFS algorithm

	* spot/twaalgos/ltlf2dfa.cc: Fix the DFS algorithm to fill
	old_rootnums with leaves that are reachable from undetermined nodes.
	* spot/twaalgos/backprop.hh (is_frozen): New method.

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

	ltlf2dfa: get rid of the scc approach

	Also rename to the on-the-fly approach as "bfs-on-the-fly"

	* bin/ltlfsynt.cc, spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh, tests/core/ltlfsynt.test: Adjust.

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

	* bin/ltlfsynt.cc: Use DFS by default.

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

	ltlf2dfa: add one optimization to the dfs version

	* spot/twaalgos/ltlf2dfa.cc (ltlf_translator::ltlf_synthesis_with_dfs):
	Abort the DFS exploration of the successors of a state as soon as that
	state has been determined.

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

	ltlfsynt: add a dfs version that does not track SCCs

	* spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh (ltlf_translator::ltlf_synthesis_with): New.
	* bin/ltlfsynt.cc: Add an option for it.
	* tests/core/ltlfsynt.test: Test it.

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

	ltlf2dfa: add option to simplify formulas

	* bin/ltlf2dfa.cc: Lean --simplify-formula.

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

	ltlfsynt: add cheap LTLf simplification by default

	* bin/ltlfsynt.cc: Learn option --symplify-formula.
	* tests/core/ltlfsynt.test: Turn it on and off.
	* spot/tl/ltlf.cc: More rules.
	* tests/python/ltlf.py: Test them.

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

	ltlf: implement some cheap simplification rules

	* spot/tl/ltlf.cc, spot/tl/ltlf.hh (ltlf_simplifier): New class.
	* spot/twaalgos/ltlf2dfa.cc (one_step_real_rewrite,
	one_step_real_rewrite): Move ...
	* spot/tl/ltlf.cc, spot/tl/ltlf.hh (ltlf_one_step_sat_rewrite,
	ltlf_one_step_unsat_rewrite): ... here.
	* tests/python/ltlf.py: Test it.

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

	ltlfsynt: better defaults

	The last benchmark I ran shows that --backprop=nodes is better than
	--backprop=states, that --one-step=yes helps on some specific cases
	without slowing things too much, and that --translation=scc
	marginally better than --translation=otf which is better than other
	translations.

	* bin/ltlfsynt.cc: Make --translation=scc --one-step=yes
	--backprop=node the default.  Disable minimization by default unless
	the compositional translation is used.

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

	ltlfsynt: add --one-step option

	* spot/twaalgos/ltlf2dfa.hh, spot/twaalgos/ltlf2dfa.cc: Add an option
	to attempt one-step realiaziability/unrealizability checks as a
	preprocessing for each state.
	* bin/ltlfsynt.cc: Add support for --one-step.
	* tests/core/ltlfsynt.test: Test it.

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

	ltlfsynt: more options for on-the-fly synthesis

	* bin/ltlfsynt.cc: Add otf and otf-scc options.
	* tests/core/ltlfsynt.test: Adjust.
	* spot/twaalgos/ltlf2dfa.hh,
	spot/twaalgos/ltlf2dfa.cc (ltlf_synthesis_with_scc): Add a version
	that detects SCCs on-the-fly.
	* tests/python/ltlf2dfa.ipynb: Adjust.

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

	ltlfsynt: add node-based backpropagation options

	* bin/ltlfsynt.cc: Add a --backprop option, and reorganize
	the code a bit with better verbose output.
	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Implement
	variants using backpropagation.
	* tests/core/ltlfsynt.test: Test the --backprop option.
	* tests/python/backprop.ipynb: Demonstrate mtdfa_to_backprop.
	* tests/python/ltlf2dfa.ipynb: Adjust to API change, but do not
	mention node-level backpropagation yet.
	* python/spot/__init__.py: Adjust to API change.

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

	backprop: make it possible to name states

	* spot/twaalgos/backprop.cc, spot/twaalgos/backprop.hh: Add a way to
	name states.

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

	mtdfa: use adjlist for reverse graphs

	because it uses less memory

	* spot/twaalgos/ltlf2dfa.cc: Adjust.

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

	backprop: add support for solving reachability games

	* spot/graph/adjlist.hh: New file.
	* spot/graph/Makefile.am: Add it.
	* spot/twaalgos/backprop.hh, spot/twaalgos/backprop.cc: New file.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/__init__.py, python/spot/impl.i: Add bindings.
	* tests/python/backprop.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.

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

	mtdfa: improve loops in mtdfa_winning_region_lazy

	and also in mtdfa_winning_strategy

	* spot/twaalgos/ltlf2dfa.cc (mtdfa_winning_region_lazy,
	mtdfa_winning_strategy): Remove some useless checks, and only query
	the reverse graph after all nodes of the current iteration have been
	evaluated.

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

	mtdfa: fix calls to bdd_mt_quantify_prepare

	The array listing all variable to quantify is reset everytime a new
	variable is added, we we need to call bdd_mt_quantify_prepare()
	everytime we detect some variables have been introduced.

	* spot/twaalgos/ltlf2dfa.cc (ltlf_to_mtdfa): Call
	bdd_mt_quantify_prepare when needed.
	* tests/python/ltlf2dfa.ipynb: Adjust to demonstrate and discuss the
	effect of the latest change bdd_mt_apply1_synthesis.
	* tests/core/ltlfsynt2.test: Adjust.

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

	tests: avoid some spurious errors while comparing timings

	ltlf2dfa.ipynb contains a small benchmark in which very small
	timings a recompared.  This can cause spurious failures.

	* tests/python/ipnbdoctest.py: Hide those comparisons.

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

	ltlfsynt: make aiger translation conditional on --aiger

	* bin/ltlfsynt.cc: Fix this.
	* tests/core/ltlfsynt2.test: Test it.

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

	mtdfa: add a direct translation restricted to the game

	Also add a set_controllable_variables() method to mtdfa

	* spot/twaalgos/ltlf2dfa.hh (ltlf_to_mtdfa): Allow controllable
	variables as an argument.
	(mtdfa::set_controllable_variables,
	mtdfa::get_controllable_variables): New methods.
	* spot/twaalgos/ltlf2dfa.cc (ltlf_to_mtdfa): Implement this
	variant.
	* bin/ltlfsynt.cc: Use that new translation by default,
	and add options to select it.
	* tests/core/ltlfsynt.test, tests/core/ltlfsynt2.test: Adjust.
	* tests/python/ltlf2dfa.ipynb: Illustrate those.

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

	ltlfsynt: add aiger/dot/hoa outputs

	* bin/ltlfsynt.cc: Add more output options.
	* spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc: Add a variant of
	mealy_machines_to_aig that take a vector of non-const Mealy machines.
	* tests/core/ltlfsynt2.test: New file.
	* tests/Makefile.am: Add it.

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

	formula: make strong_X always available

	This change introduces a backward incompatibility, but as strong_X is
	more an more used by Spot, it doesn't make sense to keep this hidden.

	* spot/tl/formula.hh (SPOT_WANT_STRONG_X, SPOT_HAS_STRONG_X,
	strong_X): define unconditionally.
	* NEWS: Mention is change.

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

	mtdfa: add conversion to mealy machines

	* spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh (mtdfa_strategy_to_mealy): New function.
	* tests/python/ltlf2dfa.ipynb: Demonstrate it.

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

	ltlfsynt: new tool

	* bin/ltlfsynt.cc, bin/man/ltlfsynt.x, doc/org/ltlfsynt.org,
	tests/core/ltlfsynt.test: New files.
	* bin/Makefile.am, bin/man/Makefile.am, doc/Makefile.am,
	tests/Makefile.am: Add them.
	* doc/org/arch.tex, doc/org/tools.org, bin/spot.cc: Adjust list of
	tools.
	* spot/tl/apcollect.cc, spot/tl/apcollect.hh: Add support for Mealy
	semantics.
	* bin/man/ltlf2dfa.x, bin/man/ltlsynt.x, bin/man/spot.x: Add links
	to ltlfsynt.1.
	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Make it
	possible to pass unused controllable propositions to
	mtdfa_winning_region_lazy and mtdfa_winning_strategy.
	* spot/twaalgos/synthesis.cc (split_independent_formulas): Add missing
	support for strong_X.
	* bin/.gitignore, spot.spec.in: Adjust.

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

	ltlf2dfa: add preliminary functions related to games

	These are not final implementations, in particular, the fixpoint
	algorithms need to be revisited by restricting the next iteration to
	states that changed in the previous one.

	* spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh (mtdfa_winning_region,
	mtdfa_winning_region_lazy, mtdfa_restrict_as_game,
	mtdfa_winning_strategy): New functions.
	* spot/twa/bdddict.hh (bdd_dict_preorder): New class.
	* tests/python/ltlf2dfa.ipynb: Illustrate those.
	* python/spot/__init__.py: Add binding for bdd_dict_preorder.

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

	mtdfa: apply some (reduced) shortcuts

	* spot/twaalgos/ltlf2dfa.cc (product_mtdfa_aux): Apply shortcuts for
	and, or, and implies.

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

	mtdfa: fix cache handling in propositional equivalence

	* spot/twaalgos/ltlf2dfa.cc (ltlf_translator::formula_to_int): Fix
	update of formula_to_int_ in case the formula was rewritten and an
	equivalent one was known.  Not really bug fix, but a tiny improvement.

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

	mtdfa: fix composition and improve caching

	Several direct translations performed in the same compositional
	approach were reusing the direct translation caches, introducing some
	incorrect translations (if the later translation reused some
	previously seen subformulas).

	Also, give some completely arbitrary size estimsations of the cache
	size needed for various compositions algorithm.  These will have to be
	revisited based on actually data, but they seem good enough for now.

	* spot/twaalgos/ltlf2dfa.cc: Do the above.
	* tests/python/ltlf2dfa.py: Add more test cases to exersize
	the compositional approaches better.
	* tests/python/ltlf2dfa.ipynb: Adjust.

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

	mtdfa: improve ap-based composition

	* spot/twaalgos/ltlf2dfa.cc (ltlf_to_mtdfa_compose): The composition
	of AP-disjoint automata should still be done from the smallest to the
	largest.

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

	mtdfa: some doxygen documentation

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Update.

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

	mtdfa: improve the product by caching calls to bdd_terminal

	* spot/twaalgos/ltlf2dfa.cc: Cache the ids of the terminals associated
	to pairs, instead of the value.  Also get rid if the unused
	terminal_to_pair array.  Overall, this save 1% on the runtime for
	compositional translation of lydia_05_01.ltl.

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

	ltlf2dfa: learn to select the statistics to compute

	Counting paths and edges in MTBDDs can be very expensive,
	so disable that by default.

	* bin/ltlf2dfa.cc: Add an optional argument to mtdfa-stats.
	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Add optional
	arguments to get_stats().
	* doc/org/ltlf2dfa.org: Update documentation.

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

	mtdfa: use bdd_mt_apply2_leaves whenever possible

	Doing so avoid the need to call bdd_get_terminal() in the callback
	function.  Also use bdd_terminal_as_int() to avoid creating
	reference-counted BDDs.  These two optimizations save a bit more than
	10% on lydia_06_01.ltl.

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Adjust.

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

	mtdfa: improves the composition approach

	This actually implement three optimizations.
	(1) keep track of APs used by mtdfa so that we can skip minimization
	after compositing two automata that have different set of APs, (2)
	implement an altertive composition order that group operands based on
	their APs, and (3) improve the speed of products by removing the calls
	to leaves_of().

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh:
	Here.
	* bin/ltlf2dfa.cc: Add a --composition option.
	* tests/python/ltlf2dfa.py: Test the new variant.

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

	mtdfa: keep track of empty/universal translation

	* spot/twaalgos/ltlf2dfa.cc (ltlf_to_mtdfa): Keep track
	of fully-rejecting/full-accepting translations, and simplify
	those to false/true.
	* spot/twaalgos/ltlf2dfa.hh (ltlf_to_mtdfa): Add an option to disable
	this feature.
	* tests/python/ltlf2dfa.ipynb: Illustrate it.

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

	mtdfa: Add missing merge_edges() in as_twa()

	* spot/twaalgos/ltlf2dfa.cc (mtdfa::as_twa): Call merge_edges.
	* tests/python/ltlf2dfa.ipynb: Adjust.

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

	mtdfa: improve is_empty() and num_states()

	* spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh (mtdfa::is_empty, mtdfa::num_states): Use
	bdd_find_leaf() and bdd_has_true() to improve these two functions.

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

	bin: add a ltlf2dfa tool

	* bin/ltlf2dfa.cc, bin/man/ltlf2dfa.x, doc/org/ltlf2dfa.org: New
	files.
	* bin/Makefile.am, bin/man/Makefile.am, doc/Makefile.am: Add them.
	* NEWS, bin/man/spot.x, bin/spot.cc, doc/org/arch.tex,
	doc/org/tools.org: Mention the new tool.
	* spot/twa/bdddict.cc,
	spot/twa/bdddict.hh (bdd_dict::register_all_propositions_of): New
	method.
	* spot/twaalgos/ltlf2dfa.hh, spot/twaalgos/ltlf2dfa.cc: Implement some
	statistics, and use register_all_propositions_of to avoid copying
	the anonymous variables.
	* bin/.gitignore, spot.spec.in: Adjust.

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

	mtwdba: add a compositional LTLf->DFA translation

	* spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh (ltlf_to_mtdfa_compose): New function.
	* python/spot/__init__.py: Add bindings for ltlf_to_mtdfa_compose.
	* tests/python/ltlf2dfa.py: Test it.
	* tests/python/ltlf2dfa.ipynb: Mention it.

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

	preliminary work on a MTBDD-based deterministic twa

	* spot/twaalgos/mtdtwa.cc, spot/twaalgos/mtdtwa.hh: New file.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/impl.i, python/spot/__init__.py: Add Python bindings.
	* tests/python/mtdtwa.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Mention it.

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

	mtdfa: simplify terminals using cheap rules

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh:
	Tweak propeq_representative to implement some cheap simplification
	on conjunctions and disjunctions.   Use apply2b for all binary
	operator so that we can return bddtrue/bddfalse if
	propeq_representative simplify the formula to true/false.
	* tests/python/ltlf2dfa.ipynb: Illustrate that.

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

	mtdfa: add some test case

	* tests/python/ltlf2dfa.py: New file.
	* tests/Makefile.am: Add it.

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

	mtdfa: add propositional equivalence

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Here.
	* tests/python/ltlf2dfa.ipynb: Illustrate it.

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

	add support for X[!] in randltl

	* NEWS, doc/org/randltl.org, spot/tl/randomltl.hh: Mention it.
	* spot/tl/randomltl.cc: Implement it.
	* python/spot/impl.i, python/spot/__init__.py: Fix
	the dump_priorities option in Python.
	* tests/python/randltl.ipynb: Adjust.
	* tests/core/rand.test: Test it.

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

	mtdfa: add conversion from twa

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Here.  Also
	fix state-based conversion from mtdfa to twa, and support nameless
	mtdfas.
	* tests/python/ltlf2dfa.ipynb: Add some test cases.

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

	mtdfa: improve dot output, and implement Boolean operations on mtdfa

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: Here.
	* tests/python/ltlf2dfa.ipynb: Add more examples.

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

	implement conversion from mtdfa to state-based TwA

	I don't expect this to be very useful except as an help
	to introduce someone to the transition-based DFAs.

	* spot/twaalgos/ltlf2dfa.cc,
	spot/twaalgos/ltlf2dfa.hh (mtdfa::as_twa): Add a new argument to
	request a state-based version.
	* tests/python/ltlf2dfa.ipynb: Update with more examples.

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

	introduce a translation of LTLf to MTBDD-based DFA

	This is very experimental yet, and will likely be improved.

	* spot/twaalgos/ltlf2dfa.cc, spot/twaalgos/ltlf2dfa.hh: New files.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/__init__.py, python/spot/impl.i: Add bindings.
	* tests/python/ltlf2dfa.ipynb: New notebook.
	* tests/python/ipnbdoctest.py: Do not complete about timing differences.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* NEWS: Mention those changes.

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

	* python/buddy.i: Add new functions.

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

	ltl2tgba: add support for --ltlf

	This should be regarded as experimental, because of the limited
	testing.

	* bin/ltl2tgba.cc: Add the --ltlf option.
	* spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/minimize.hh, spot/twaalgos/minimize.cc: Add option to
	assume that the input is an obligation.
	* spot/twaalgos/postproc.hh: Add support for Finite and Obligation.
	* spot/twaalgos/postproc.cc, spot/twaalgos/translate.cc: Implement
	those.
	* tests/core/ltlf.test: Add a quick test.
	* python/spot/__init__.py: Add option for "finite".
	* NEWS: Mention that option.

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

	* bin/options.py: Use python3, we are in 2025.

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

	bin: remove some useless includes

	* bin/autcross.cc, bin/autfilt.cc, bin/dstar2tgba.cc, bin/genaut.cc,
	bin/genltl.cc, bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc,
	bin/ltldo.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/ltlmix.cc,
	bin/ltlsynt.cc, bin/randaut.cc, bin/randltl.cc, bin/spot-x.cc,
	bin/spot.cc: Remove many unnecessary #include files.

2025-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	HACKING: update some comments

	* HACKING: The version of org-mode that is distributed with recent
	emacs version should be fine.  Also point to the latest version of the
	Dockerfile with debian dependencies.

2025-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlsynt.org: Fix missing CSV table.

2025-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.13.0.dev.

2025-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.13

	* NEWS, configure.ac, doc/org/setup.org: Update.

2025-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: get rid of --given-strategy=all

	This was left-over from previous experiment, but there is no
	reason to let this visible in the user interface.

	* bin/autfilt.cc: Remove support for --given-strategy=all.
	* tests/core/given.test: Adjust test cases.

2025-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: more documentation

	* tests/python/given.ipynb: Reorganize and comment.
	* spot/twaalgos/given.hh: Improve documentation.
	* NEWS: Mention autfilt's new options.
	* bin/man/autfilt.x: Mention the PetriNet'25 paper.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: remove --given-stategy=none, and compute bounds only for minato

	* bin/autfilt.cc: Here.
	* tests/core/given.test: More test cases.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: add a STUTTER_RESTRICT strategy

	* spot/twaalgos/given.hh, spot/twaalgos/given.cc (stutterize_given):
	Add a boolean to select restrict or relax.
	* bin/autfilt.cc: Distinguish between --given-strategy=stutter-relax
	and --given-strategy=stutter-restrict.
	* tests/core/given.test: Adjust test cases.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: Add test case from Yann

	* tests/core/given.test: Add a test case that used to cause segfault.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: reimplement using bounded-automata

	* doc/org/concepts.org: Document upper-cond.
	* spot/twaalgos/dot.cc: Add support for upper-cond.
	* spot/twaalgos/given.cc, spot/twaalgos/given.hh: Rewrite
	everything.
	* spot/twa/twa.cc: Add support for upper-cond.
	* spot/twa/twagraph.cc (purge_dead_state): When keeping a self-loop,
	keep only the first.
	* bin/autfilt.cc: Adjust.
	* tests/core/given.test: Adjust.
	* tests/python/given.ipynb: New file.
	* tests/Makefile.am: Add it.
	* doc/org/tut.org: Add it.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: relax using Minato

	* spot/twaalgos/given.cc (given_here): Use minato to relax.
	* tests/core/given.test: Add a test case from Yann.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: add a --given-fixpoint option

	* bin/autfilt.cc: Add the option.
	* spot/twaalgos/given.cc, spot/twaalgos/given.hh: Add a way
	to track changed automata.  Also make automata as stutter invariant
	in the STUTTER strategy.
	* tests/core/given.test: Test it.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: add a GIVEN_STUTTER strategy

	* bin/autfilt.cc, spot/twaalgos/given.cc, spot/twaalgos/given.hh:
	Add the GIVEN_STUTTER option.
	* tests/core/given.test: Test it.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: add the relax-based strategy

	* bin/autfilt.cc: Add the --given-strat option.
	* spot/twaalgos/given.cc, spot/twaalgos/given.hh: Add support for
	GIVEN_RELAX, and rename GIVEN_SQUASH into GIVEN_RESTRICT.  Also detect
	incompatible facts.
	* tests/core/given.test: Add more tests.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	given: preliminary implementation of given()

	* spot/twaalgos/given.cc, spot/twaalgos/given.hh: New files.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/impl.i: Add bindings.
	* bin/autfilt.cc: Add option --given-automaton, --given-formula.
	* bin/ltlfilt.cc (parse_formula_arg): Move ...
	* bin/common_finput.cc, bin/common_finput.hh (parse_formula_arg):
	... here.
	* tests/core/given.test: New file.
	* tests/Makefile.am (TESTS): Add it.

2025-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	apcollect: rework polarity collection

	The current implementation of collect_literals() and
	realizability_simplifier isn't very flexible.  The
	realizability_simplifier can only simplify one formula.  The set
	returned by collect_literals() requires additional processing to
	figure out which litteral appear with both polarity.

	* spot/tl/apcollect.hh,
	spot/tl/apcollect.cc (collect_aps_with_polarities): New function,
	that return a list of atomic propositions along with the polarities
	they can have.
	(realizability_simplifier_base): New class, that serves as base for
	realizability_simplifier for backward compatibility, but that can be
	used directly in order to process multiple formulas.
	(realizability_simplifier): Simplify using
	realizability_simplifier_base and collect_aps_with_polarities.
	* tests/core/ltlsynt.test: Adjust test case.

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

	bin: handle '--parity=X --colored-parity' like '--colored-parity=X'

	Fixes #602.

	* bin/common_post.cc (-P, -p): Do not overwrite an existing parity
	specification if none were given.
	* tests/core/parity2.test: Test this.

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

	sanity: improve bin.test

	* tests/sanity/bin.test: Add missing exit status on error,
	and report manpage and binaries missing from spot.spec.in.
	* spot.spec.in: Add ltlmix and ltlmix.1.
	* bin/ltlsynt.cc: Fix formating for --algo.

2025-03-07  Antoine Martin  <amartin@lrde.epita.fr>

	* bin/.gitignore: Add ltlmix to gitignore

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

	* spot/twaalgos/gtec/gtec.cc: Work around spurious warning.

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

	ltlfilt: add a --save-part-file option

	* bin/ltlfilt.cc: Add support for --save-part-file.
	* NEWS, doc/org/ltlfilt.org: Mention it.
	* tests/core/ltlfilt.test: Test it.

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

	ltlsynt: remove superfluous output options

	No point in having options such as --spin, --lbtt, --check, etc.
	Also --dot was documented twice...

	* bin/ltlsynt.cc (children): Remove aoutput_argp.
	(options): Add explicit support for -d, -H, -q.
	* bin/common_aoutput.cc, bin/common_aoutput.hh: Share the HOA help
	text.

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

	gnulib: fix argp --help formatting

	This is a patch that was sent by Simon Reinhardt to gnulib and has
	never been applied.  It fixes a several formatting issues in --help.
	https://lists.gnu.org/archive/html/bug-gnulib/2016-02/msg00013.html

	* lib/argp-fmtstream.c (__argp_fmtstream_update): Flush output as soon
	as possible.
	* lib/argp-fmtstream.h (struct argp_fmtstream): Member point_offs is
	no longer needed.
	* lib/argp-help.c (indent_to): Flush output to avoid a spurious
	newline before an overlong word.

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

	ltlsynt: fix a memory leak

	* bin/ltlsynt.cc: Declare the realizability_simplifier as a unique_ptr
	so that it gets deleted after use.
	* NEWS: Mention the bug.

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

	* spot/twaalgos/mealy_machine.hh: Typo in documentation.

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

	aiger: never use state names for encoding

	* spot/twaalgos/aiger.cc (mealy_machine_to_aig): Remove the code that
	attempted to convert state names to integer, throwing exceptions on
	failure.  That code was not exercised anywhere, but it caused failure
	in the implementation of an LTLf->AIG pipeline in which LTLf formulas
	that label states are preserved.

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

	Merge branch 'master' into next

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

	* configure.ac, NEWS: Bump version to 2.12.2.dev.

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

	release Spot 2.12.2

	* configure.ac, doc/org/setup.org: Bump version to 2.12.2.
	* bin/common_setup.cc, debian/copyright: Bump copyright year to 2025.
	* NEWS: Update.

2025-01-17  Philipp Schlehuber-Caissier  <philipp.schlehuber-caissier@telecom-sudparis.eu>

	Fix slight error in aiger

	The negation of global equivalences for outputs
	contained a slight error when the output corresponded
	to a negated gate.

	* spot/twaalgos/aiger.cc: Fix
	* tests/core/ltlsynt.test: Test

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

	python: improve ACD's CSS

	Some colleagues complained that the highlighting of edges and nodes
	in the ACD display where not very readable, especially when sharing
	screen during some video call.  This should improve it.

	* python/spot/__init__.py (acd): Fill the contents of the nodes when
	they are highlighted.  Add some glowing effect the the highlighted
	edges.
	* tests/python/zlktree.ipynb: Adjust.

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

	work around a change in python 3.13

	* python/spot/__init__.py: Unindent the docstring for
	formula.__format__.  Because Python 3.13 strips the indentation but
	previous version didn't, the following test case failed with Python
	3.13.
	* tests/python/formulas.ipynb: Adjust to unindented docstring.

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

	Fix LaTeX rendering of strong next

	Fix #597.

	* spot/tl/print.cc: Fix rendering of X[!].
	* doc/tl/spotltl.sty: Add a \StrongX definition.
	* tests/core/latex.test: Add a test case.
	* NEWS: Mention the issue.

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

	correct to_finite

	This fixes issue #596.

	* spot/twaalgos/remprop.cc: Rewrite main loop.
	* tests/core/ltlf.test: Add test case.
	* tests/python/game.py: Remove a test that appears
	to make incorrect assumptions about to_finite.
	* NEWS: Mention the bug.

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

	hierarchy: improve error message

	* spot/tl/hierarchy.cc (mp_class): Fix type of o so that it is
	displayed as an character in error messages.

2025-01-09  Philipp Schlehuber-Caissier  <philipp.schlehuber-caissier@telecom-sudparis.eu>

	Fix slight error in aiger

	The negation of global equivalences for outputs
	contained a slight error when the output corresponded
	to a negated gate.

	* spot/twaalgos/aiger.cc: Fix
	* tests/core/ltlsynt.test: Test

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

	work around a change in python 3.13

	* python/spot/__init__.py: Unindent the docstring for
	formula.__format__.  Because Python 3.13 strips the indentation but
	previous version didn't, the following test case failed with Python
	3.13.
	* tests/python/formulas.ipynb: Adjust to unindented docstring.

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

	Fix LaTeX rendering of strong next

	Fix #597.

	* spot/tl/print.cc: Fix rendering of X[!].
	* doc/tl/spotltl.sty: Add a \StrongX definition.
	* tests/core/latex.test: Add a test case.
	* NEWS: Mention the issue.

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

	correct to_finite

	This fixes issue #596.

	* spot/twaalgos/remprop.cc: Rewrite main loop.
	* tests/core/ltlf.test: Add test case.
	* tests/python/game.py: Remove a test that appears
	to make incorrect assumptions about to_finite.
	* NEWS: Mention the bug.

2024-10-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hierarchy: improve error message

	* spot/tl/hierarchy.cc (mp_class): Fix type of o so that it is
	displayed as an character in error messages.

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

	Merge branch 'master' into next

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

	bump version to 2.12.1.dev

	* NEWS, configure.ac: Here.

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

	release Spot 2.12.1

	* NEWS, configure.ac, doc/org/setup.org: Update.

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

	* .gitlab-ci.yml (publish-stable): Add scp for LRE's dload host.

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

	game: avoid a spurious g++14 warning

	* spot/twaalgos/game.cc, spot/twaalgos/game.hh (get_state_winners):
	Declare a non-const version as well to avoid a "possibly dangling
	reference" error in code show by tut40.org.

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

	fix spurious g++-14 warning

	* spot/twaalgos/mealy_machine.cc (mm_sat_prob_t<true>::get_sol): Here.

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

	ltlsynt: fix usage for --dot's argument

	* bin/ltlsynt.cc (dispatch_print_hoa): Pass the right argument to
	print_dot.
	* tests/core/ltlsynt.test: Test it.
	* NEWS: Mention the bug.

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

	* configure.ac: Typo.

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

	python: improve support of spot-extra, and recent swig

	I could not run "make check" in a copy of seminator 2.0 regenerated
	with swig 4.0, because of changes in the way Swig imports its shared
	libraries.

	* python/spot/__init__.py: If sys.path contains "/spot-extra"
	directory, add it to spot.__path__ as well.  This helps situations
	where a plugin use libtool and the development tree has the shared
	libraries in .../spot-extra/.libs/

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

	game: fix solving "parity min" games with multi-colored edges

	* spot/twaalgos/game.cc: If the original acceptance is "parity min",
	use min_set(), not max_set(), to read edge priorities.
	* tests/python/game.py: Add a test case.
	* NEWS: Mention the bug.

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

	randltl: fix generation without unary operators

	* spot/tl/randomltl.hh (has_unary_ops): New method.
	* spot/tl/randomltl.cc: Avoid creating subformulas of even size
	when we do not have unary operators.
	* tests/core/randpsl.test: Test it.
	* NEWS: Mention it.

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

	ltlgrind: improve error message when formulas are missing

	The error message, inherited from ltl2tgba, used to say "No formula to
	translate", but "translate" isn't appropriate here.

	* bin/common_finput.cc, bin/common_finput.hh (check_no_formula): Allow
	"translate" to be changed.
	* bin/ltlgrind.cc: Change it.
	* tests/core/ltlgrind.test: Test it.

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

	* doc/tl/tl.tex: Some typos.

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

	improve some comments

	* spot/twaalgos/complement.hh, spot/twaalgos/complement.cc: Here.

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

	* .gitlab-ci.yml (publish-stable): Add scp for LRE's dload host.

2024-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: rename pps-arbiter's APs

	* bin/genltl.cc, spot/gen/formulas.cc: Adjust the name of the AP
	produced by pps-arbiter.
	* NEWS: Mention the change.

2024-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlmix.org: Typos.

2024-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	implement maximum cardinality search

	* spot/twaalgos/mcs.cc, spot/twaalgos/mcs.hh: New files.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/impl.i: Include mcs.hh.
	* bin/autfilt.cc: Add --mcs option.
	* NEWS: Mention it.
	* doc/spot.bib: Add reference.
	* tests/core/mcs.test: New file.
	* tests/Makefile.am: Add it.

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

	defrag_states: allow a permutation of state numbers

	* spot/misc/permute.hh: New file.
	* spot/misc/Makefile.am: Add it.
	* spot/graph/graph.hh, spot/twa/twagraph.cc,
	spot/twaalgos/randomize.cc: Use the new permute_vector() function.
	* spot/twa/twagraph.hh: Update documentation.
	* NEWS: Update.

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

	tests: rewrite the syntimpl test

	* tests/core/syntimpl.cc: Rewrite to test multiple formulas at once,
	and test them with three different implication checks.
	* tests/core/syntimpl.test: Adjust the test to execute syntimpl only
	once.

2024-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	synthesis: fix handling of deadstates

	* spot/twaalgos/synthesis.cc: Remove a debuging print
	from the semisym code, and add an additional case
	in the fullysym code.
	* tests/core/ltlsynt.test: Add a some test case,
	and remove some bashism.

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

	* doc/org/ltlmix.org: Fix example.

2024-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: -q should also hide status and AIG output

	* bin/ltlsynt.cc: Honnor -q properly.
	* doc/org/ltlsynt.org, tests/core/ltlsynt.test: Adjust.
	* NEWS: Mention this bug.

2024-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: have --csv exclude the formula column by default

	* bin/ltlsynt.cc: Add the --csv-with-formula option.
	* doc/org/ltlsynt.org, tests/core/ltlsynt2.test, NEWS: Adjust.

2024-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: overhaul CSV output

	Previous output was not very usable in presence of decomposed
	specifications.  We now keep track of the number of parts, and also
	prefix the columns names with "max_" or "sum_" to indicate how their
	statistics are updated in presence of multiple part.  Other missing
	statistics, like the size of the translated automaton, or maximal
	number of colors seen in a game, have been added.

	* spot/twaalgos/synthesis.hh (bench_var): Rename, augment, and
	document each statistsic.
	* spot/twaalgos/mealy_machine.cc, spot/twaalgos/synthesis.cc,
	bin/ltlsynt.cc: Adjust to the new naming scheme.
	* doc/org/ltlsynt.org: Show a CSV file, and document its columns.
	* tests/core/ltlsynt-pgame.test, tests/core/ltlsynt2.test,
	tests/core/ltlsynt.test: Adjust test cases.
	* NEWS: Mention the backward incompatible change.

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

	ltlsynt: fix a few issues with --csv

	Some columns were superfluous, other had inconsistent names, and some
	times where not tracked.

	* spot/twaalgos/synthesis.cc: Improve tracking of times and verbose
	messages.
	* bin/ltlsynt.cc (print_csv): Adjust CSV columns.
	* tests/core/ltlsynt.test, tests/core/ltlsynt2.test,
	tests/core/ltlsynt-pgame.test: Adjust expected CSV and verbose
	messages.
	* doc/org/ltlsynt.org: Give some example.

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

	ltlsynt: implement --csv-without-formula

	* bin/ltlsynt.cc: Implement that new option.
	* tests/core/ltlsynt2.test: Test it.
	* NEWS: Mention the change.

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

	ltlsynt: save source filename with --csv

	* bin/ltlsynt.cc (print_csv): Make filename mandatory, and add a
	"was_game" argument.
	(process_formula, process_aut_file): Adjust calls.
	* tests/core/ltlsynt2.test: Adjust test cases.

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

	game: avoid a spurious g++14 warning

	* spot/twaalgos/game.cc, spot/twaalgos/game.hh (get_state_winners):
	Declare a non-const version as well to avoid a "possibly dangling
	reference" error in code show by tut40.org.

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

	ltlfilt, ltlsynt, ltlmix: add a --part-file option

	* bin/common_ioap.cc, bin/common_ioap.hh (read_part_file): New
	function.
	* bin/ltlfilt.cc, bin/ltlmix.cc, bin/ltlsynt.cc: Use it.
	* doc/org/ltlfilt.org, doc/org/ltlmix.org, doc/org/ltlsynt.org:
	Mention that new option, and improve the links to its description
	in ltlsynt.org.
	* NEWS: Mention the new option.
	* tests/core/ltlfilt.test, tests/core/ltlmix.test,
	tests/core/ltlsynt.test: Adjust test cases.

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

	fix spurious g++-14 warning

	* spot/twaalgos/mealy_machine.cc (mm_sat_prob_t<true>::get_sol): Here.

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

	ltlsynt: fix usage for --dot's argument

	* bin/ltlsynt.cc (dispatch_print_hoa): Pass the right argument to
	print_dot.
	* tests/core/ltlsynt.test: Test it.
	* NEWS: Mention the bug.

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

	* configure.ac: Typo.

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

	python: improve support of spot-extra, and recent swig

	I could not run "make check" in a copy of seminator 2.0 regenerated
	with swig 4.0, because of changes in the way Swig imports its shared
	libraries.

	* python/spot/__init__.py: If sys.path contains "/spot-extra"
	directory, add it to spot.__path__ as well.  This helps situations
	where a plugin use libtool and the development tree has the shared
	libraries in .../spot-extra/.libs/

2024-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	game: fix solving "parity min" games with multi-colored edges

	* spot/twaalgos/game.cc: If the original acceptance is "parity min",
	use min_set(), not max_set(), to read edge priorities.
	* tests/python/game.py: Add a test case.
	* NEWS: Mention the bug.

2024-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --track-formula option

	Fixes #591.

	* spot/twaalgos/matchstates.cc,
	spot/twaalgos/matchstates.hh (match_states_decorate): New function.
	* bin/autfilt.cc: Add a --track-formula option.
	* tests/core/trackf.test: New file.
	* tests/Makefile.am: Test it.
	* NEWS: Mention it.

2024-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twaalgos: add a match_states variant with a formula argument

	This is related to issue #591, reported by Blake C. Rawlings.

	* spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/ltl2tgba_fm.hh
	(ltl_to_tgba_fm): Add option to keep LTL labels.
	* spot/twaalgos/matchstates.cc, spot/twaalgos/matchstates.hh
	(match_states): Add variant with a formula as second argument.
	* tests/python/matchstates.py: Test it.
	* NEWS: Mention it.
	* THANKS: Add reporter.

2024-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twaalgos: introduce match_states(a,b)

	This is a useful part for issue #591.

	* spot/twaalgos/matchstates.cc, spot/twaalgos/matchstates.hh: New
	files.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/impl.i: Add python bindings.
	* tests/python/matchstates.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention this new function.

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

	* doc/org/ltlmix.org: Fix several typos.

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

	org: add example of ltlmix used on synthesis specifications

	* doc/org/ltlmix.org: Here.

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

	genltl: add --lily-patterns

	* spot/gen/formulas.cc, spot/gen/formulas.hh, bin/genltl.cc: Implement
	support for --lily-pattern.
	* doc/spot.bib, bin/man/genltl.x: Add references.
	* NEWS: Mention it.
	* tests/core/ltlsynt.test: Use these formulas.
	* tests/core/genltl.test: Adjust.

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

	ltlmix: add support for the I/O variants

	* bin/ltlmix.cc: Add options --ins, --outs, as well as the
	two-argument form of -A/-P.
	* bin/common_ioap.hh, bin/common_ioap.cc (is_output): New function.
	* spot/tl/apcollect.cc, spot/tl/apcollect.hh (create_atomic_prop_set):
	Allow the prefix string to be changed.
	* spot/tl/randomltl.cc, spot/tl/randomltl.hh: Add support for an I/O
	version with two set of atomic proposition, and a predicate to decide
	if the original proposition was input or output.
	* tests/core/ltlmix.test: More tests.

2024-08-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add support for --relabel=io, --ins, and --outs

	* bin/common_ioap.cc, bin/common_ioap.hh (relabel_io): New function.
	* bin/ltlfilt.cc: Implement the above options.
	* doc/org/ltlfilt.org, NEWS: Illustrate them.
	* tests/core/ltlfilt.test: Add some quick tests.

2024-08-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: extract In/Out AP processing in separate file

	We'd like to reuse the --ins/--outs matching in ltlfilt
	as well, so let's put that code in a common file.

	* bin/common_ioap.cc, bin/common_ioap.hh: New files.
	* bin/ltlsynt.cc: Extracted from here.
	* bin/Makefile.am: Add them.

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

	ltlmix: learn option -R for random conjuncts

	* bin/ltlmix.cc: Implement this option.
	* doc/org/ltlmix.org: Illustrate it.
	* tests/core/ltlmix.test: Add a test.

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

	bin: new ltlmix tool

	Fixes #400.

	* spot/tl/randomltl.cc, spot/tl/randomltl.hh: Adjust to accept
	a set of formula to replace the atomic propositions.
	* bin/ltlmix.cc: New file.
	* bin/Makefile.am: Add it.
	* bin/man/ltlmix.x: New file.
	* bin/man/Makefile.am: Add it.
	* doc/org/ltlmix.org: New file.
	* doc/Makefile.am: Add it.
	* bin/man/genltl.x, bin/man/randltl.x, bin/man/spot.x, bin/spot.cc,
	doc/org/arch.tex, doc/org/concepts.org, doc/org/tools.org, NEWS: Mention
	ltlmix.
	* tests/core/ltlmix.test: New file.
	* tests/Makefile.am: Add it.

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

	randltl: fix generation without unary operators

	* spot/tl/randomltl.hh (has_unary_ops): New method.
	* spot/tl/randomltl.cc: Avoid creating subformulas of even size
	when we do not have unary operators.
	* tests/core/randpsl.test: Test it.
	* NEWS: Mention it.

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

	ltlgrind: improve error message when formulas are missing

	The error message, inherited from ltl2tgba, used to say "No formula to
	translate", but "translate" isn't appropriate here.

	* bin/common_finput.cc, bin/common_finput.hh (check_no_formula): Allow
	"translate" to be changed.
	* bin/ltlgrind.cc: Change it.
	* tests/core/ltlgrind.test: Test it.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	synthesis: rewrite a C++20 construct into C++17

	It is illegal to capture the element of a structured binding
	in C++17, GCC 15 will complain about it.

	* spot/twaalgos/synthesis.cc: Move the illegal structured binding
	inside the lambda.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Some typos.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: add a missing trivial rewriting in SERE

	We should have [*0]|f ≡ f when f is a SERE that already accept the
	empty word.  Fixes issue #454.

	* spot/tl/formula.cc: Implement the rewriting.
	* tests/core/reduccmp.test: Add a test case.
	* doc/tl/tl.tex, NEWS: Document it.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add support for --to-delta2

	* bin/ltlfilt.cc: Implement this option.
	* tests/core/delta2.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention it.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: implement to_delta2()

	* spot/tl/delta2.cc, spot/tl/delta2.hh: New files.
	* spot/tl/Makefile.am: Add them.
	* python/spot/impl.i: Include delta2.hh.
	* tests/python/delta2.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the change.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: support --pi1 --sigma1 --delta1 --pi2 --sigma2

	* bin/ltlfilt.cc: Implement those option.
	* tests/core/hierarchy.test: Add a quick test.
	* NEWS: Mention it.

2024-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: track Δ₁, Σ₂, Π₂, and Δ₂ membership

	* spot/tl/formula.hh, spot/tl/formula.cc: Update the properties
	and track them.
	* tests/core/kind.test: Augment the test case.
	* doc/tl/tl.tex, doc/spot.bib, NEWS: Document these new classes.

2024-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: fix documentation of P and R classes

	* doc/tl/tl.tex: Remove four incorrect production rules in the grammar
	for φ_P and φ_R, and fix two.

2024-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postprocess: call restrict_dead_end_edges_here()

	Related to issue #587.

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Add
	support for option "rde".
	* bin/spot-x.cc, NEWS: Mention it.
	* tests/core/deadends.test, tests/core/ltl2tgba2.test,
	tests/python/atva16-fig2a.ipynb, tests/python/deadends.py: Adjust test
	cases to reflect the improvement.
	* tests/core/ltlsynt.test: Also adjust this test case, which is the
	only one worsened.  Some extra gates are generated when translating
	GFa<->GFb with --algo=ds or --algo=sd.  Issue #588 would be one way to
	fix that.

2024-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twaalgos: implement restrict_dead_end_edges_here()

	Discussed in issue #587.

	* spot/twaalgos/deadends.cc, spot/twaalgos/deadends.hh: New files.
	* spot/twaalgos/Makefile.am, python/spot/impl.i: Add them.
	* tests/core/deadends.test, tests/python/deadends.py: New files.
	* tests/Makefile.am: Add them.
	* spot/twa/acc.cc, spot/twa/acc.hh (keep_one_inf_per_branch): New
	method.
	* bin/autfilt.cc: Learn option --restrict-dead-end-edges.
	* NEWS: Mention it.

2024-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve some comments

	* spot/twaalgos/complement.hh, spot/twaalgos/complement.cc: Here.

2024-07-18  Philipp Schlehuber  <philipp@lrde.epita.fr>

	Introduce new ways to split an automaton

	The explicit way of splitting suffers if there are
	too many input APs, two new ways of splitting
	are introduced as well as a heuristic to chose
	between them.

	* NEWS: update
	* spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh: New fonctions
	* bin/ltlsynt.cc: Add corresponding option
	* tests/core/gamehoa.test,
	tests/core/ltlsynt.test,
	tests/python/_partitioned_relabel.ipynb,
	tests/python/_synthesis.ipynb,
	tests/python/game.py,
	tests/python/split.py,
	tests/python/synthesis.py: Adjusting and adding test

2024-07-18  Florian Renkin  <frenkin@lrde.epita.fr>

	reduce_mealy_here: do not reduce when size is 1

	* spot/twaalgos/mealy_machine.cc: here

2024-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around GCC bug 108860

	GCC 12/13/14 can emit spurious warnings for something
	as innocent as vec.insert(vec.begin(), 12)...
	Reported by Antoine Martin and Quentin Rataud.

	* m4/gccwarn.m4: Test the above code and disable GCC's
	-Wnull-dereference warning if necessary.

2024-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot.spec.in: Update URL and description.

2024-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: drop ipython3-notebook dependency

	* debian/control: Remove the ipython3-notebook alternate
	build-depends, as this package was removed from Debian in 2016.  Add
	gdb ad build-depends, in attempt to fix some OSB builds.

2024-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut25.org: Fix typos in the example.

2024-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.12.0.dev.

2024-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release spot 2.12

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.12.

2024-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: fix rounding issues

	Fixes #582.

	* spot/twaalgos/stats.cc: Add 0.5 to the result of bdd_satcountset()
	before truncating it.
	* NEWS: Mention the bug.

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

	pdegen & toparity: minor refactor

	* spot/twaalgos/degen.hh (is_partially_degeneralizable): Pass the
	forbid vector by reference, and document it.  I hope that not passing
	forbid by copy will get rid of a spurious "potential nullptr" warning
	by gcc on Arch Linux.
	* spot/twaalgos/degen.cc: Adjust, and refactor the code a bit.
	* spot/twaalgos/toparity.cc: Likewise.

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

	tl: new PSL trivial simplifications

	Always rewrite {[*]}[]->0 as 0, and {[*]}<>->1 = 1.  Fixes #572.

	* spot/tl/formula.cc: Implement them.
	* doc/tl/tl.tex, NEWS: Document them.
	* tests/core/equals.test: Test those.

2024-05-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/formulas.ipynb: Improve SONF example (fixes #578).

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

	python: workaround different help() output in Python 3.12

	Python 3.12 introduced some subtle changes in the way doc strings are
	displayed by help().  This was causing spurious errors in the
	following test.

	* tests/python/formulas.ipynb: Use print(x.__doc__) instead of
	help(x).

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

	python: use raw strings when appropriate

	We had some incorrectly escaped strings that are now causing
	SyntaxWarnings with Python 3.12

	* bin/options.py, python/spot/aux_.py, python/spot/ltsmin.i,
	python/spot/__init__.py: Here.
	* NEWS: Mention the fix.

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

	Upgrade detection of Python include path for Python 3.12

	Fixes #577.

	* m4/pypath.m4: Python 3.12 removed distutils, so use sysconfig
	instead.
	* NEWS: Mention the bug.

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

	implement BA acceptance set reduction and enlargement

	For issue #570.

	* spot/twaalgos/cleanacc.hh,
	spot/twaalgos/cleanacc.cc (reduce_buchi_acceptance_set_here,
	enlarge_buchi_acceptance_set_here): New functions.
	* bin/autfilt.cc: Add options --reduce-acceptance-set and
	--enlarge-acceptance-set.
	* tests/core/basetred.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention it.

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

	simulation: fix determinism check

	Commit bda40a5f introduced a subtle bug where nm_minato was being
	increased in more cases causing some non-deterministic automata to be
	incorrectly tagged as deterministic automata.

	Fixes issue #575, reported by Dávid Smolka.

	* spot/twaalgos/simulation.cc (create_edges): Do not increment
	nm_minato when dest is bddfalse.
	* tests/core/568.test: Add Dávid's first test-case.
	* tests/python/forq_contains.py: Add Dávid's second test-case.

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

	* NEWS: Fix some typos.

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

	* tests/sanity/style.test: Fix spurious failure.

2024-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	Rename split_independant_formulas

	split_independant_formulas is now split_independent_formulas

	* spot/twaalgos/synthesis.hh, spot/twaalgos/synthesis.cc: change name.
	* bin/ltlsynt.cc: update call
	* NEWS: Mention it.

2024-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	Rename minimize_obligation_garanteed_to_work

	minimize_obligation_garanteed_to_work is now
	minimize_obligation_guaranteed_to_work

	* spot/twaalgos/minimize.hh, spot/twaalgos/minimize.cc: change name.
	* spot/twaalgos/postproc.cc: update call
	* NEWS: Mention it.

2024-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	Fix typos in doc, comments and messages

	* bin/README, bin/common_conv.hh, bin/common_trans.cc,
	    bin/ltlsynt.cc, bin/spot-x.cc, spot/gen/automata.hh,
	    spot/graph/graph.hh, spot/ltsmin/ltsmin.hh,
	    spot/ltsmin/spins_interface.hh, spot/ltsmin/spins_kripke.hh,
	    spot/mc/bloemen.hh, spot/mc/bloemen_ec.hh, spot/mc/cndfs.hh,
	    spot/mc/deadlock.hh, spot/mc/intersect.hh, spot/mc/lpar13.hh,
	    spot/mc/mc_instanciator.hh, spot/misc/bareword.cc,
	    spot/misc/fixpool.hh, spot/misc/formater.hh, spot/misc/minato.hh,
	    spot/misc/satsolver.hh, spot/misc/timer.hh,
	    spot/parseaut/public.hh, spot/priv/partitioned_relabel.cc,
	    spot/priv/satcommon.hh, spot/ta/ta.hh, spot/ta/taexplicit.cc,
	    spot/ta/taproduct.hh, spot/ta/tgta.hh, spot/taalgos/reachiter.hh,
	    spot/taalgos/tgba2ta.hh, spot/tl/apcollect.cc,
	    spot/tl/apcollect.hh, spot/tl/formula.cc, spot/tl/parse.hh,
	    spot/tl/randomltl.hh, spot/tl/relabel.hh, spot/tl/simplify.cc,
	    spot/twa/acc.hh, spot/twa/bddprint.hh, spot/twa/formula2bdd.cc,
	    spot/twa/twa.hh, spot/twa/twagraph.cc, spot/twa/twagraph.hh,
	    spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh,
	    spot/twaalgos/alternation.hh,  spot/twaalgos/cleanacc.cc,
	    spot/twaalgos/cobuchi.cc, spot/twaalgos/contains.cc,
	    spot/twaalgos/couvreurnew.cc, spot/twaalgos/cycles.hh,
	    spot/twaalgos/degen.cc, spot/twaalgos/degen.hh,
	    spot/twaalgos/dot.hh, spot/twaalgos/dtbasat.cc,
	    spot/twaalgos/dtwasat.cc, spot/twaalgos/dtwasat.hh,
	    spot/twaalgos/dualize.cc, spot/twaalgos/emptiness.hh,
	    spot/twaalgos/emptiness_stats.hh, spot/twaalgos/game.cc,
	    spot/twaalgos/genem.hh, spot/twaalgos/hoa.hh,
	    spot/twaalgos/langmap.hh, spot/twaalgos/ltl2tgba_fm.hh,
	    spot/twaalgos/magic.cc, spot/twaalgos/magic.hh,
	    spot/twaalgos/mask.hh, spot/twaalgos/mealy_machine.cc,
	    spot/twaalgos/mealy_machine.hh,
	    spot/twaalgos/minimize.hh, spot/twaalgos/parity.cc,
	    spot/twaalgos/parity.hh, spot/twaalgos/postproc.cc,
	    spot/twaalgos/product.hh, spot/twaalgos/reachiter.hh,
	    spot/twaalgos/relabel.cc, spot/twaalgos/remfin.cc,
	    spot/twaalgos/remfin.hh, spot/twaalgos/sccfilter.cc,
	    spot/twaalgos/sccinfo.hh, spot/twaalgos/se05.cc,
	    spot/twaalgos/se05.hh, spot/twaalgos/simulation.hh,
	    spot/twaalgos/split.hh, spot/twaalgos/stats.hh,
	    spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh,
	    spot/twaalgos/tau03.hh, spot/twaalgos/tau03opt.hh,
	    spot/twaalgos/toparity.hh, spot/twaalgos/totgba.hh,
	    spot/twaalgos/translate.hh, spot/twaalgos/word.cc,
	    spot/twaalgos/word.hh, spot/twaalgos/zlktree.cc,
	    spot/twaalgos/zlktree.hh, spot/twacube/cube.hh,
	    spot/twacube/twacube.hh, tests/core/cube.cc,
	    tests/core/ltlsynt.test, tests/core/parity.cc,
	    tests/core/safra.cc, tests/core/twagraph.cc: here

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

	* .gitlab-ci.yml: Use CI_JOB_ID instead of CI_PIPELINE_ID.

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

	* spot/twaalgos/split.hh: Typo in comment.

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

	ltlsynt implement polarity and gequiv after decomposition too

	* bin/ltlsynt.cc: Also simplify subformulas using polarity and global
	equivalence.  Add support for --polarity=before-decompose and
	--global-equiv=before-decompose to restablish the previous behavior.
	* spot/tl/apcollect.hh,
	spot/tl/apcollect.cc (realizability_simplifier::merge_mapping): New
	method.
	* tests/core/ltlsynt.test: Add new test cases.

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

	man: fix several issues

	The \f(CW macro to switch to "constant-width" does not seem to
	honored when converting to html, and I've found some patch to
	groff removing its use from their own man page.
	https://lists.gnu.org/archive/html/groff-commit/2020-07/msg00015.html
	Lets use \fC instead, as it seems to produce some <tt> in HTML.

	Two manpages had URLs pointing to spot.lrde.epita.fr instead of
	spot.lre.epita.fr.

	Finally, spot-x.x had an incorrectly closed .EX block, that completly
	broke the HTML conversion.

	* bin/man/autcross.x, bin/man/ltl2tgba.x, bin/man/ltlcross.x,
	bin/man/spot-x.x, bin/man/spot.x: Fix the aforementioned issues.

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

	help2man: work around some utf8 issues

	help2man used characters in the range 0x80,...,0x84 to mark special
	sections/characters during its processing, but those bytes where also
	occurring in other utf-8 characters breaking the output.  For instance
	the character '₁' ( a subscript 1), is encoded as "0xE2 0x82 0x81" in
	utf-8.

	* tools/help2man: Tell perl that input and output should be assumed to
	be utf-8.  Also use "private-use codepoints" for those special
	characters to avoid any future conflict.

2024-04-03  pierreganty  <pierreganty@gmail.com>

	Small fixes in the man pages

	* bin/man/dstar2tgba.x, bin/man/spot-x.x: Typos.

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

	ltl2tgba_fm: simplify the ratexp_to_dfa interface

	* spot/twaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::succ): Rewrite using a
	vector of (label,dest) as return type.

2024-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	modernize some Python code

	Since we now require Python 3.6, we can use f-strings instead of
	format() to make the code more readable.

	* doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut21.org, doc/org/tut24.org, doc/org/tut90.org,
	python/spot/__init__.py, python/spot/jupyter.py, tests/python/acc.py,
	tests/python/acc_cond.ipynb, tests/python/complement_semidet.py,
	tests/python/decompose.ipynb, tests/python/formulas.ipynb,
	tests/python/highlighting.ipynb, tests/python/ipnbdoctest.py,
	tests/python/ltlf.py, tests/python/parity.ipynb,
	tests/python/product.ipynb, tests/python/relabel.py,
	tests/python/satmin.ipynb, tests/python/stutter-inv.ipynb,
	tests/python/twagraph-internals.ipynb, tests/python/zlktree.ipynb: Use
	f-strings.

2024-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	require python 3.6

	* HACKING, NEWS, README, doc/org/install.org: Update.
	* m4/pypath.m4, python/spot/__init__.py: Adjust requirements.
	* python/spot/ltsmin.i: Don't use capture_output, this is a 3.7
	option.

2024-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add option --separate-edges

	* bin/autfilt.cc: Implement it.
	* tests/core/split.test: Test it.
	* doc/org/tut25.org: Demonstrate it.
	* NEWS: Mention it.

2024-03-25  pierreganty  <pierreganty@gmail.com>

	* doc/org/tut25.org: Minor corrections.

2024-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: speedup on automata with many AP and few labels

	This uses the same trick as discussed in issue #566 and issue #568.

	* spot/twaalgos/determinize.cc (safra_support): Use a basis
	if it is smaller than 2^|support| for the current Safra state.
	* tests/core/568.test: Add some tests.
	* NEWS: Mention the optimization.

2024-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: heuristically use a separated-label approach to rebuild

	Closes issue #568.

	* spot/twaalgos/simulation.cc (direct_simulation::build_result):
	Implement an alternate loop based on edge_separator::basis to iterate
	over a signature to build results.
	* tests/core/568.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the optimization.

2024-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genaut: add two families of cyclic automata

	These are meant to test the optimization implemented in issue #568.

	* spot/gen/automata.hh, spot/gen/automata.cc, bin/genaut.cc: Add
	support for --cycle-log-nba and --cycle-onehot-nba.
	* tests/core/genaut.test: Add some tests.
	* tests/python/gen.ipynb: Illustrate them.
	* NEWS: Mention them.

2024-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize: t acceptance is compatible with wdba-minimization

	* spot/twaalgos/minimize.cc (minimize_obligation_garanteed_to_work):
	Skip some tests when the acceptance is "t".
	* tests/core/det.test: Adjust.

2024-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add option 'b' to build an alias-based basis for all labels

	Related to issue #563.

	* spot/twaalgos/hoa.hh (create_alias_basis): New function.
	* spot/twaalgos/hoa.cc (create_alias_basis): New function.
	(print_hoa): Add support for option 'b' and create_alias_basis
	in this case.
	* bin/common_aoutput.cc, NEWS: Document -Hb.
	* tests/core/readsave.test, tests/python/aliases.py: Add test cases.

2024-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: work around a Swig 4.2.1 bug

	Pierre Ganty wrote that he could not compile Spot with Swig 4.2.1
	anymore, and when I upgraded from 4.2.0 to 4.2.1 I could not either.

	It seems that declaring operator<< as friends in subclasses is
	confusing Swig 4.2.1.  See https://github.com/swig/swig/issues/2845

	* spot/twa/acc.cc, spot/twa/acc.hh: Declare operator<< for
	acc_cond::mark_t and acc_cond::acc_code outside the class, so that we
	do not need friend declarations.

2024-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add an example of conversion to BA format

	This script was first posted on https://github.com/adl/hoaf/issues/73

	* doc/org/tut25.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/tut.org, doc/org/tut21.org, NEWS: Link to it.
	* doc/org/init.el.in: Install *.py files.
	* doc/org/.gitignore: Add toba.py.

2024-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: improve tgba_powerset on small automata with large |AP|

	For issue #566.

	* spot/twaalgos/powerset.cc: Use the edge_separator on automata
	with |AP|>5 that have few distinct labels.
	* tests/core/566.test: Augment test-case.
	* NEWS: Update.

2024-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_alternation: use edge_separator

	* spot/twaalgos/split.cc,
	spot/twaalgos/split.hh (edge_separator::add_to_basis): Add a variant
	that is limited in the number of labels it adds.
	* spot/twaalgos/alternation.cc: Use it.  Also add
	a cache of separated edges, as in the split.

2024-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	split: add separate_edges() and a edge_separator class

	This generalizes (and replaces) the two-argument split that was
	introduced in c2832cabfc.

	* spot/twaalgos/split.cc, spot/twaalgos/split.hh (edge_separator): New
	class.
	(separate_edges): New function.
	(split_edges): Remove the two argument version.
	* spot/twaalgos/forq_contains.cc: Adjust to use the edge_separator
	class.
	* tests/python/splitedge.py: Adjust test case.
	* tests/python/split.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* NEWS: Mention it.

2024-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	split: factor the code common to both split_edges() versions

	* spot/twaalgos/split.cc: The two split_edges() versions only differ
	by the way they split a label.  Let's define all the rest of the
	algorithm in split_edges_aux().

2024-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix previous two patches

	make sure we don't split a label with a label that subsume it

	* spot/twaalgos/alternation.cc, spot/twaalgos/dualize.cc: Here.

2024-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	alternation: speed up remove_alternation when few labels are used

	Related to issue #566.

	* spot/twaalgos/alternation.cc (alternation_remover::run): Here.
	* tests/core/566.test: Augment test case.
	* NEWS: Mention the change.

2024-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dualize: improve performance on small automata with large |AP|

	For issue #566.

	* spot/twaalgos/dualize.cc (dualizer::copy_edges): Implement another
	loop to be used when the number of outgoing edges of a state is
	smaller than the number of AP.
	* tests/core/566.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the improvement.

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

	python: add bindings for BuDDy's minterms_of

	minterms_of was introduced in BuDDy with Spot 2.10, but
	wasn't properly binded in Python.

	* python/buddy.i: Add bindings.
	* tests/python/bdditer.py: Test them.

2024-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dualize: should not call cleanup_acceptance_here

	Based on a report by Emmanuel Filiot, who was surprized that dualizing
	Büchi did not always produce co-Büchi.

	* spot/twaalgos/dualize.cc: Remove the call to
	cleanup_acceptance_here.
	* spot/twaalgos/dualize.hh: Improve documentation.
	* NEWS: Mention the possible backward incompatible change.
	* tests/core/dualize.test, tests/python/dualize.py,
	tests/python/pdegen.py: Adjust test cases.
	* spot/twaalgos/complement.cc (complement): Call
	cleanup_acceptance_here when dualize() returns a smaller automaton.
	* THANKS: Add Emmanuel.

2024-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add intersection checks between words and automata

	Several people have asked for a way to check whether a word is
	accepted by an automaton, including at least Jonah Romero and Scott
	Buckley.  So it's time we have it.

	* spot/twa/twa.hh, spot/twa/twa.cc,
	spot/twaalgos/word.hh (intersects): Add the new variant.
	* spot/twa/fwd.hh: Forward declare twa_word, so that
	we can use it in twa.hh.
	* spot/twaalgos/forq_contains.cc: Use the new intersection check.
	* tests/python/word.ipynb, NEWS: Mention it.
	* THANKS: Add Scott Buckley.

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

	ltlsynt: fix suggested references

	* bin/man/ltlsynt.x: Add the Dissecting ltlsynt paper.
	* doc/org/citing.org: Put Adrien in italics.

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

	ltlsynt: fix the case where AP removal is disabled and decomp fails

	* bin/ltlsynt.cc: Correctly update the output variables in the case
	decomposition failed and AP removal is disabled.
	* tests/core/ltlsynt.test: Add a test case.

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

	ltlsynt: allow regular expressions in --ins/--outs

	* bin/ltlsynt.cc: Implement this.
	* doc/org/ltlsynt.org, NEWS: Adjust documentation.
	* tests/core/ltlsynt.test: Add test cases.

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

	style: relax the else's body check

	* tests/sanity/style.test: Skip the "else body should be on next line"
	check when else is followed by if.

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

	* bin/spot-x.cc: Fix some typos.

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

	sccinfo: fix documentation for split_on_sets

	* spot/twaalgos/sccinfo.hh (split_on_sets): Fix the documentation to
	match what the code does.  Reported by Pierre Ganty.

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

	python: render <svg> via _repr_html_

	Work around a recent decision in Jupyter Lab and Notebook to render
	<svg> is inline <img>, breaking tooltips or text selection.

	(Rerendering all notebooks was painful.)

	* NEWS: Mention the change.
	* python/spot/__init__.py: Add a _repr_html_ method to all
	classes that had a _repr_svg_.  It seems Jupyter will use
	_repr_html_ by default.
	* python/spot/jupyter.py: SVG replace the _repr_svg_ method
	by a _repr_html.
	* tests/python/_altscc.ipynb, tests/python/_autparserr.ipynb,
	tests/python/_aux.ipynb, tests/python/_mealy.ipynb,
	tests/python/_partitioned_relabel.ipynb,
	tests/python/_product_susp.ipynb, tests/python/_product_weak.ipynb,
	tests/python/_synthesis.ipynb, tests/python/aliases.ipynb,
	tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
	tests/python/atva16-fig2b.ipynb, tests/python/automata-io.ipynb,
	tests/python/automata.ipynb, tests/python/cav22-figs.ipynb,
	tests/python/contains.ipynb, tests/python/decompose.ipynb,
	tests/python/formulas.ipynb, tests/python/games.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
	tests/python/parity.ipynb, tests/python/product.ipynb,
	tests/python/randaut.ipynb, tests/python/satmin.ipynb,
	tests/python/stutter-inv.ipynb, tests/python/synthesis.ipynb,
	tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb,
	tests/python/word.ipynb, tests/python/zlktree.ipynb: Update all
	notebooks.

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

	org: fix many errors

	Most of those errors were pointed out by the language-check tool.
	However while fixing those I found a few other issues that I fixed.
	In particular I updated the bibliographic reference for ltlsynt,
	added some DOI links for some cited papers that had no link, and
	fixed the broken introduction of ltlgrind.

	* doc/org/autcross.org, doc/org/autfilt.org, doc/org/citing.org,
	doc/org/compile.org, doc/org/concepts.org, doc/org/csv.org,
	doc/org/dstar2tgba.org, doc/org/genaut.org, doc/org/hierarchy.org,
	doc/org/install.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
	doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltldo.org,
	doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/ltlsynt.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/tut01.org, doc/org/tut02.org,
	doc/org/tut03.org, doc/org/tut10.org, doc/org/tut11.org,
	doc/org/tut12.org, doc/org/tut20.org, doc/org/tut22.org,
	doc/org/tut24.org, doc/org/tut30.org, doc/org/tut40.org,
	doc/org/tut50.org, doc/org/tut51.org, doc/org/tut52.org,
	doc/org/tut90.org, doc/org/upgrade2.org: Fix errors.
	* bin/autfilt.cc, bin/common_aoutput.cc, bin/genaut.cc: Fix some
	typos in --help text that appeared in the above org files.

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

	more doc handling of prop_universal for fused initial states

	Fixes #560.

	* spot/parseaut/parseaut.yy: Add more comments about handling
	of prop_universal in present of multiple initial states.  It took
	me time to figure out that it was done correctly.  Also only
	reset prop_complete() in the case an initial state is reused.
	* tests/core/det.test: Add a test case for the deterministic property.
	* tests/python/parsetgba.py: Add tests for complete.
	* doc/org/hoa.org: Add more text about the effect of fusing initial
	states.
	* doc/org/concepts.org (properties): Replace "deterministic" by
	"universal".  The former was obsoleted in Spot 2.4.

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

	tl_simplifier: add more test cases

	Fixes #558 by just adding test cases showing there is no issue.

	* tests/core/reduccmp.test: Add test cases.

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

	* NEWS: Fix some typos.

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

	tl: fix detection of goto

	Fixes #559.

	* spot/tl/print.cc (strip_star_not): Only match a full star.
	* tests/core/sugar.test: Add test case.

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

	work around some Swig 4.2 change

	Several test cases started failing after updating to Swig 4.2 because
	the spot.ltsmin module and the spot.impl module were using different
	names for atomic_prop_set.  This seems to work around it.

	* python/spot/impl.i: Specify the full type for atomic_prop_set.

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

	fix some preprocessor directive

	Apparently using `#if defined(X) or defined(Y)` did not
	trouve the compilers, but Swig was confused by the "or".

	* spot/misc/common.hh, spot/tl/formula.hh: Use || instead.

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

	postproc: fix default for acd and interaction with colored

	* spot/twaalgos/postproc.hh (postprocess::acd_): Default to true.
	* spot/twaalgos/postproc.cc (postprocess::run): When acd is used
	to color an automaton, do not run scc_filter to remove color
	from transiant edges.
	* tests/python/acd.py: New file.
	* tests/Makefile.am: Add it.

2024-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: fix --global-equiv

	Fixes #557.

	* spot/tl/apcollect.cc (realizability_simplifier): When detecting
	global equivalence such as o1 := i2, the left is always an output, so
	it should never be marked as input.
	* tests/core/ltlsynt.test: Add test case.

2024-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_alternation: option to return nullptr if too many sets needed

	* spot/twaalgos/alternation.hh, spot/twaalgos/alternation.cc: Add the
	new options.
	* spot/twaalgos/complement.cc, spot/twaalgos/minimize.cc: Use it.
	* tests/core/optba.test: Add a test case from Yann.
	* NEWS: Mention those changes.

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

	bump copyright to 2024

	* bin/common_setup.cc, debian/copyright: Here.

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

	* spot/twaalgos/aiger.cc: Work around gcc snapshot diagnostics.

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

	* spot/bricks/brick-assert: include <cstdint>.

2023-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	strength: generalize is_safety_automaton to any type of automata

	Reported by Samuel Judson.

	* spot/twaalgos/strength.cc (is_safety_automaton): Reimplement it.
	* spot/twaalgos/strength.hh (is_safety_automaton): Update
	documentation.
	* tests/python/safety.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention this change.
	* THANKS: Add Samuel.

2023-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/hierarchy.cc: Typo in comment.

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

	python: add get_highlight_state and get_highlight_edge

	* python/spot/impl.i: Here.
	* tests/python/highlighting.ipynb: Test it.
	* NEWS: Mention it.

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

	twa: guard against highlighting of non-existing edges and states

	For issue #556, reported by Dávid Smolka.  Not sure if this is a
	complete fix yet, but that's at least part of the issue.

	* spot/twa/twagraph.cc (defrag_states): Skip those unexisting edges
	and states while remaping highlight-states and highlight-edges.
	* spot/parseaut/parseaut.yy: Likewise for dropped edges.
	* tests/python/parsetgba.py: Augment test case.

2023-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: fix issue #555 better

	Reported by Dávid Smolka.

	* spot/twa/twagraph.cc (defrag_states): Also ignore edges with erased
	source when updating highlight-edges.
	* tests/python/parsetgba.py: Add Dávid's test case.

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

	remove many useless includes

	Removal suggestions from clang-include-cleaner-17 applied manually.

	* spot/gen/automata.cc, spot/ltsmin/ltsmin.cc, spot/misc/bitvect.cc,
	spot/misc/intvcomp.cc, spot/misc/satsolver.cc, spot/misc/tmpfile.cc,
	spot/priv/trim.cc, spot/priv/weight.cc, spot/ta/taexplicit.cc,
	spot/ta/tgtaexplicit.cc, spot/ta/tgtaproduct.cc,
	spot/taalgos/emptinessta.cc, spot/taalgos/minimize.cc,
	spot/taalgos/reachiter.cc, spot/taalgos/statessetbuilder.cc,
	spot/taalgos/tgba2ta.cc, spot/tl/apcollect.cc, spot/tl/contain.cc,
	spot/tl/exclusive.cc, spot/tl/formula.cc, spot/tl/mark.cc,
	spot/tl/randomltl.cc, spot/tl/relabel.cc, spot/tl/remove_x.cc,
	spot/twa/acc.cc, spot/twa/bdddict.cc, spot/twa/taatgba.cc,
	spot/twa/twagraph.cc, spot/twaalgos/aiger.cc,
	spot/twaalgos/alternation.cc, spot/twaalgos/canonicalize.cc,
	spot/twaalgos/cobuchi.cc, spot/twaalgos/complement.cc,
	spot/twaalgos/compsusp.cc, spot/twaalgos/dbranch.cc,
	spot/twaalgos/degen.cc, spot/twaalgos/determinize.cc,
	spot/twaalgos/dot.cc, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/emptiness.cc,
	spot/twaalgos/forq_contains.cc, spot/twaalgos/game.cc,
	spot/twaalgos/genem.cc, spot/twaalgos/gv04.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/isunamb.cc, spot/twaalgos/isweakscc.cc,
	spot/twaalgos/lbtt.cc, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/mealy_machine.cc,
	spot/twaalgos/minimize.cc, spot/twaalgos/neverclaim.cc,
	spot/twaalgos/parity.cc, spot/twaalgos/powerset.cc,
	spot/twaalgos/product.cc, spot/twaalgos/randomgraph.cc,
	spot/twaalgos/randomize.cc, spot/twaalgos/relabel.cc,
	spot/twaalgos/remfin.cc, spot/twaalgos/remprop.cc,
	spot/twaalgos/sccinfo.cc, spot/twaalgos/se05.cc,
	spot/twaalgos/sepsets.cc, spot/twaalgos/simulation.cc,
	spot/twaalgos/split.cc, spot/twaalgos/strength.cc,
	spot/twaalgos/stutter.cc, spot/twaalgos/synthesis.cc,
	spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc,
	spot/twaalgos/translate.cc, spot/twacube/cube.cc: Remove useless
	includes.

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

	* HACKING: Mention bear, to build compile_commands.json.

2023-11-29  Florian Renkin  <frenkin@lrde.epita.fr>

	auts_to_aiger: Fix output name index

	* spot/twaalgos/aiger.cc: Correct the position of an output in
	  a realizability_simplifier.
	* tests/core/ltlsynt.test: Add test.

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

	work around some gcc 9.4 warnings

	* spot/twa/twagraph.cc, spot/twaalgos/split.cc: Here.

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

	hoa: do not output empty highlighting maps

	* spot/twaalgos/hoa.cc: Here.
	* tests/python/parsetgba.py: Test it.

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

	twagraph: fix highlight-edges in defrag_states

	Fixes #555 reported by Dávid Smolka.

	* spot/twa/twagraph.cc (defrag_states): Update highlight-edge.
	* spot/graph/graph.hh (defrag_states): Just point to
	twa_graph::defrag_states in a comment, because the latter relies
	on the implementation detail of graph::defrag_state.
	* tests/python/parsetgba.py: Add test case.
	* NEWS: Mention the bug.

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

	python: add easy ways to remove highlights

	Fixes #554, reported by Dávid Smolka.

	* python/spot/impl.i (highlight_edge, highlight_state): Add versions
	where the color is nullptr and map that to None.
	(remove_highlight_states, remove_highlight_edges): New function.
	* tests/python/highlighting.ipynb: Demonstrate those new methods.

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

	hoa: improve the diagnostic for unregistered propositions

	* spot/twaalgos/hoa.cc: Here.

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

	acc: improve the "too many acceptance sets used" message

	* spot/twa/acc.cc (report_too_many_sets): Mention --enable-max-sets
	and the email address for reporting problems.

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

	stength: fix detection of terminal automata

	Fixes issue #553.

	* spot/twaalgos/strength.cc (is_type_automaton): Make sure an
	accepting SCC is not followed by a rejecting one.
	(is_terminal_automaton): Mark the third-argument version deprecated.
	* spot/twaalgos/strength.hh: Adjust.
	* spot/twaalgos/couvreurnew.cc: Remove the inappropriate terminal
	optimization.
	* bin/ltlfilt.cc, spot/tl/hierarchy.cc, spot/twaalgos/gfguarantee.cc,
	tests/core/ikwiad.cc: Remove usage of the third argument of
	is_terminal_automaton.
	* tests/core/readsave.test, tests/core/strength.test: Adjust test
	cases.
	* NEWS: Mention the bug.

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

	Upgrade the Copyright strings to point to AUTHORS and drop years

	Fixes #539.

	* AUTHORS: Update by indicating the status of each contributor.
	* Makefile.am, bench/Makefile.am, bench/dtgbasat/Makefile.am,
	bench/dtgbasat/gen.py, bench/emptchk/Makefile.am,
	bench/emptchk/defs.in, bench/ltl2tgba/Makefile.am,
	bench/ltl2tgba/defs.in, bench/ltl2tgba/sum.py,
	bench/ltlclasses/Makefile.am, bench/ltlcounter/Makefile.am,
	bench/spin13/Makefile.am, bench/stutter/Makefile.am,
	bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc,
	bench/wdba/Makefile.am, bin/Makefile.am, bin/autcross.cc,
	bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
	bin/common_color.cc, bin/common_color.hh, bin/common_conv.cc,
	bin/common_conv.hh, bin/common_cout.cc, bin/common_cout.hh,
	bin/common_file.cc, bin/common_file.hh, bin/common_finput.cc,
	bin/common_finput.hh, bin/common_hoaread.cc, bin/common_hoaread.hh,
	bin/common_output.cc, bin/common_output.hh, bin/common_post.cc,
	bin/common_post.hh, bin/common_r.cc, bin/common_r.hh,
	bin/common_range.cc, bin/common_range.hh, bin/common_setup.cc,
	bin/common_setup.hh, bin/common_sys.hh, bin/common_trans.cc,
	bin/common_trans.hh, bin/dstar2tgba.cc, bin/genaut.cc, bin/genltl.cc,
	bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc,
	bin/ltlfilt.cc, bin/ltlgrind.cc, bin/ltlsynt.cc, bin/man/Makefile.am,
	bin/options.py, bin/randaut.cc, bin/randltl.cc, bin/spot-x.cc,
	bin/spot.cc, configure.ac, debian/copyright, doc/Makefile.am,
	doc/tl/Makefile.am, elisp/Makefile.am, python/Makefile.am,
	python/buddy.i, python/spot/__init__.py, python/spot/aux_.py,
	python/spot/gen.i, python/spot/impl.i, python/spot/jupyter.py,
	python/spot/ltsmin.i, spot/Makefile.am, spot/gen/Makefile.am,
	spot/gen/automata.cc, spot/gen/automata.hh, spot/gen/formulas.cc,
	spot/gen/formulas.hh, spot/graph/Makefile.am, spot/graph/graph.hh,
	spot/graph/ngraph.hh, spot/kripke/Makefile.am,
	spot/kripke/fairkripke.cc, spot/kripke/fairkripke.hh,
	spot/kripke/fwd.hh, spot/kripke/kripke.cc, spot/kripke/kripke.hh,
	spot/kripke/kripkegraph.hh, spot/ltsmin/Makefile.am,
	spot/ltsmin/ltsmin.cc, spot/ltsmin/ltsmin.hh,
	spot/ltsmin/spins_interface.cc, spot/ltsmin/spins_interface.hh,
	spot/ltsmin/spins_kripke.hh, spot/ltsmin/spins_kripke.hxx,
	spot/mc/Makefile.am, spot/mc/bloemen.hh, spot/mc/bloemen_ec.hh,
	spot/mc/cndfs.hh, spot/mc/deadlock.hh, spot/mc/intersect.hh,
	spot/mc/lpar13.hh, spot/mc/mc.hh, spot/mc/mc_instanciator.hh,
	spot/mc/unionfind.cc, spot/mc/unionfind.hh, spot/mc/utils.hh,
	spot/misc/Makefile.am, spot/misc/bareword.cc, spot/misc/bareword.hh,
	spot/misc/bddlt.hh, spot/misc/bitset.cc, spot/misc/bitset.hh,
	spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/misc/casts.hh,
	spot/misc/clz.hh, spot/misc/common.hh, spot/misc/escape.cc,
	spot/misc/escape.hh, spot/misc/fixpool.hh, spot/misc/formater.cc,
	spot/misc/formater.hh, spot/misc/hash.hh, spot/misc/hashfunc.hh,
	spot/misc/intvcmp2.cc, spot/misc/intvcmp2.hh, spot/misc/intvcomp.cc,
	spot/misc/intvcomp.hh, spot/misc/ltstr.hh, spot/misc/memusage.cc,
	spot/misc/memusage.hh, spot/misc/minato.cc, spot/misc/minato.hh,
	spot/misc/mspool.hh, spot/misc/optionmap.cc, spot/misc/optionmap.hh,
	spot/misc/random.cc, spot/misc/random.hh, spot/misc/satsolver.cc,
	spot/misc/satsolver.hh, spot/misc/timer.cc, spot/misc/timer.hh,
	spot/misc/tmpfile.cc, spot/misc/tmpfile.hh, spot/misc/trival.hh,
	spot/misc/version.cc, spot/misc/version.hh, spot/parseaut/Makefile.am,
	spot/parseaut/fmterror.cc, spot/parseaut/parseaut.yy,
	spot/parseaut/parsedecl.hh, spot/parseaut/public.hh,
	spot/parseaut/scanaut.ll, spot/parsetl/Makefile.am,
	spot/parsetl/fmterror.cc, spot/parsetl/parsedecl.hh,
	spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll,
	spot/priv/Makefile.am, spot/priv/accmap.hh, spot/priv/bddalloc.cc,
	spot/priv/bddalloc.hh, spot/priv/freelist.cc, spot/priv/freelist.hh,
	spot/priv/partitioned_relabel.cc, spot/priv/partitioned_relabel.hh,
	spot/priv/satcommon.cc, spot/priv/satcommon.hh, spot/priv/trim.cc,
	spot/priv/trim.hh, spot/priv/weight.cc, spot/priv/weight.hh,
	spot/ta/Makefile.am, spot/ta/ta.cc, spot/ta/ta.hh,
	spot/ta/taexplicit.cc, spot/ta/taexplicit.hh, spot/ta/taproduct.cc,
	spot/ta/taproduct.hh, spot/ta/tgta.hh, spot/ta/tgtaexplicit.cc,
	spot/ta/tgtaexplicit.hh, spot/ta/tgtaproduct.cc,
	spot/ta/tgtaproduct.hh, spot/taalgos/Makefile.am, spot/taalgos/dot.cc,
	spot/taalgos/dot.hh, spot/taalgos/emptinessta.cc,
	spot/taalgos/emptinessta.hh, spot/taalgos/minimize.cc,
	spot/taalgos/minimize.hh, spot/taalgos/reachiter.cc,
	spot/taalgos/reachiter.hh, spot/taalgos/statessetbuilder.cc,
	spot/taalgos/statessetbuilder.hh, spot/taalgos/stats.cc,
	spot/taalgos/stats.hh, spot/taalgos/tgba2ta.cc,
	spot/taalgos/tgba2ta.hh, spot/tl/Makefile.am, spot/tl/apcollect.cc,
	spot/tl/apcollect.hh, spot/tl/contain.cc, spot/tl/contain.hh,
	spot/tl/declenv.cc, spot/tl/declenv.hh, spot/tl/defaultenv.cc,
	spot/tl/defaultenv.hh, spot/tl/dot.cc, spot/tl/dot.hh,
	spot/tl/environment.hh, spot/tl/exclusive.cc, spot/tl/exclusive.hh,
	spot/tl/formula.cc, spot/tl/formula.hh, spot/tl/hierarchy.cc,
	spot/tl/hierarchy.hh, spot/tl/length.cc, spot/tl/length.hh,
	spot/tl/ltlf.cc, spot/tl/ltlf.hh, spot/tl/mark.cc, spot/tl/mark.hh,
	spot/tl/mutation.cc, spot/tl/mutation.hh, spot/tl/nenoform.cc,
	spot/tl/nenoform.hh, spot/tl/parse.hh, spot/tl/print.cc,
	spot/tl/print.hh, spot/tl/randomltl.cc, spot/tl/randomltl.hh,
	spot/tl/relabel.cc, spot/tl/relabel.hh, spot/tl/remove_x.cc,
	spot/tl/remove_x.hh, spot/tl/simplify.cc, spot/tl/simplify.hh,
	spot/tl/snf.cc, spot/tl/snf.hh, spot/tl/sonf.cc, spot/tl/sonf.hh,
	spot/tl/unabbrev.cc, spot/tl/unabbrev.hh, spot/twa/Makefile.am,
	spot/twa/acc.cc, spot/twa/acc.hh, spot/twa/bdddict.cc,
	spot/twa/bdddict.hh, spot/twa/bddprint.cc, spot/twa/bddprint.hh,
	spot/twa/formula2bdd.cc, spot/twa/formula2bdd.hh, spot/twa/fwd.hh,
	spot/twa/taatgba.cc, spot/twa/taatgba.hh, spot/twa/twa.cc,
	spot/twa/twa.hh, spot/twa/twagraph.cc, spot/twa/twagraph.hh,
	spot/twa/twaproduct.cc, spot/twa/twaproduct.hh,
	spot/twaalgos/Makefile.am, spot/twaalgos/aiger.cc,
	spot/twaalgos/aiger.hh, spot/twaalgos/alternation.cc,
	spot/twaalgos/alternation.hh, spot/twaalgos/are_isomorphic.cc,
	spot/twaalgos/are_isomorphic.hh, spot/twaalgos/bfssteps.cc,
	spot/twaalgos/bfssteps.hh, spot/twaalgos/canonicalize.cc,
	spot/twaalgos/canonicalize.hh, spot/twaalgos/cleanacc.cc,
	spot/twaalgos/cleanacc.hh, spot/twaalgos/cobuchi.cc,
	spot/twaalgos/cobuchi.hh, spot/twaalgos/complement.cc,
	spot/twaalgos/complement.hh, spot/twaalgos/complete.cc,
	spot/twaalgos/complete.hh, spot/twaalgos/compsusp.cc,
	spot/twaalgos/compsusp.hh, spot/twaalgos/contains.cc,
	spot/twaalgos/contains.hh, spot/twaalgos/copy.hh,
	spot/twaalgos/couvreurnew.cc, spot/twaalgos/couvreurnew.hh,
	spot/twaalgos/cycles.cc, spot/twaalgos/cycles.hh,
	spot/twaalgos/dbranch.cc, spot/twaalgos/dbranch.hh,
	spot/twaalgos/degen.cc, spot/twaalgos/degen.hh,
	spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh,
	spot/twaalgos/dot.cc, spot/twaalgos/dot.hh, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtbasat.hh, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/dtwasat.hh, spot/twaalgos/dualize.cc,
	spot/twaalgos/dualize.hh, spot/twaalgos/emptiness.cc,
	spot/twaalgos/emptiness.hh, spot/twaalgos/emptiness_stats.hh,
	spot/twaalgos/forq_contains.cc, spot/twaalgos/forq_contains.hh,
	spot/twaalgos/game.cc, spot/twaalgos/game.hh, spot/twaalgos/genem.cc,
	spot/twaalgos/genem.hh, spot/twaalgos/gfguarantee.cc,
	spot/twaalgos/gfguarantee.hh, spot/twaalgos/gtec/Makefile.am,
	spot/twaalgos/gtec/ce.cc, spot/twaalgos/gtec/ce.hh,
	spot/twaalgos/gtec/gtec.cc, spot/twaalgos/gtec/gtec.hh,
	spot/twaalgos/gtec/sccstack.cc, spot/twaalgos/gtec/sccstack.hh,
	spot/twaalgos/gtec/status.cc, spot/twaalgos/gtec/status.hh,
	spot/twaalgos/gv04.cc, spot/twaalgos/gv04.hh, spot/twaalgos/hoa.cc,
	spot/twaalgos/hoa.hh, spot/twaalgos/iscolored.cc,
	spot/twaalgos/iscolored.hh, spot/twaalgos/isdet.cc,
	spot/twaalgos/isdet.hh, spot/twaalgos/isunamb.cc,
	spot/twaalgos/isunamb.hh, spot/twaalgos/isweakscc.cc,
	spot/twaalgos/isweakscc.hh, spot/twaalgos/langmap.cc,
	spot/twaalgos/langmap.hh, spot/twaalgos/lbtt.cc,
	spot/twaalgos/lbtt.hh, spot/twaalgos/ltl2taa.cc,
	spot/twaalgos/ltl2taa.hh, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/magic.cc,
	spot/twaalgos/magic.hh, spot/twaalgos/mask.cc, spot/twaalgos/mask.hh,
	spot/twaalgos/mealy_machine.cc, spot/twaalgos/mealy_machine.hh,
	spot/twaalgos/minimize.cc, spot/twaalgos/minimize.hh,
	spot/twaalgos/ndfs_result.hxx, spot/twaalgos/neverclaim.cc,
	spot/twaalgos/neverclaim.hh, spot/twaalgos/parity.cc,
	spot/twaalgos/parity.hh, spot/twaalgos/postproc.cc,
	spot/twaalgos/postproc.hh, spot/twaalgos/powerset.cc,
	spot/twaalgos/powerset.hh, spot/twaalgos/product.cc,
	spot/twaalgos/product.hh, spot/twaalgos/randomgraph.cc,
	spot/twaalgos/randomgraph.hh, spot/twaalgos/randomize.cc,
	spot/twaalgos/randomize.hh, spot/twaalgos/reachiter.cc,
	spot/twaalgos/reachiter.hh, spot/twaalgos/relabel.cc,
	spot/twaalgos/relabel.hh, spot/twaalgos/remfin.cc,
	spot/twaalgos/remfin.hh, spot/twaalgos/remprop.cc,
	spot/twaalgos/remprop.hh, spot/twaalgos/sbacc.cc,
	spot/twaalgos/sbacc.hh, spot/twaalgos/sccfilter.cc,
	spot/twaalgos/sccfilter.hh, spot/twaalgos/sccinfo.cc,
	spot/twaalgos/sccinfo.hh, spot/twaalgos/se05.cc,
	spot/twaalgos/se05.hh, spot/twaalgos/sepsets.cc,
	spot/twaalgos/sepsets.hh, spot/twaalgos/simulation.cc,
	spot/twaalgos/simulation.hh, spot/twaalgos/split.cc,
	spot/twaalgos/split.hh, spot/twaalgos/stats.cc,
	spot/twaalgos/stats.hh, spot/twaalgos/strength.cc,
	spot/twaalgos/strength.hh, spot/twaalgos/stripacc.cc,
	spot/twaalgos/stripacc.hh, spot/twaalgos/stutter.cc,
	spot/twaalgos/stutter.hh, spot/twaalgos/sum.cc, spot/twaalgos/sum.hh,
	spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh,
	spot/twaalgos/tau03.cc, spot/twaalgos/tau03.hh,
	spot/twaalgos/tau03opt.cc, spot/twaalgos/tau03opt.hh,
	spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh,
	spot/twaalgos/totgba.cc, spot/twaalgos/totgba.hh,
	spot/twaalgos/toweak.cc, spot/twaalgos/toweak.hh,
	spot/twaalgos/translate.cc, spot/twaalgos/translate.hh,
	spot/twaalgos/word.cc, spot/twaalgos/word.hh,
	spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh,
	spot/twacube/Makefile.am, spot/twacube/cube.cc, spot/twacube/cube.hh,
	spot/twacube/fwd.hh, spot/twacube/twacube.cc, spot/twacube/twacube.hh,
	spot/twacube_algos/Makefile.am, spot/twacube_algos/convert.cc,
	spot/twacube_algos/convert.hh, tests/Makefile.am, tests/core/385.test,
	tests/core/500.test, tests/core/521.test, tests/core/522.test,
	tests/core/acc.cc, tests/core/acc.test, tests/core/acc2.test,
	tests/core/acc_word.test, tests/core/accsimpl.test,
	tests/core/alternating.test, tests/core/autcross.test,
	tests/core/autcross2.test, tests/core/autcross3.test,
	tests/core/autcross4.test, tests/core/autcross5.test,
	tests/core/babiak.test, tests/core/bare.test, tests/core/basimul.test,
	tests/core/bdd.test, tests/core/bdddict.cc, tests/core/bdddict.test,
	tests/core/bitvect.cc, tests/core/bitvect.test, tests/core/bricks.cc,
	tests/core/bricks.test, tests/core/checkpsl.cc, tests/core/checkta.cc,
	tests/core/complement.test, tests/core/complementation.test,
	tests/core/complete.test, tests/core/consterm.cc,
	tests/core/consterm.test, tests/core/cube.cc, tests/core/cube.test,
	tests/core/cycles.test, tests/core/dbacomp.test, tests/core/dca.test,
	tests/core/dca2.test, tests/core/defs.in, tests/core/degendet.test,
	tests/core/degenid.test, tests/core/degenlskip.test,
	tests/core/degenscc.test, tests/core/det.test, tests/core/dfs.test,
	tests/core/dnfstreett.test, tests/core/dot2tex.test,
	tests/core/dra2dba.test, tests/core/dstar.test,
	tests/core/dualize.test, tests/core/dupexp.test,
	tests/core/emptchk.cc, tests/core/emptchk.test,
	tests/core/emptchke.test, tests/core/emptchkr.test,
	tests/core/equals.test, tests/core/equalsf.cc,
	tests/core/eventuniv.test, tests/core/exclusive-ltl.test,
	tests/core/exclusive-tgba.test, tests/core/explpro2.test,
	tests/core/explpro3.test, tests/core/explpro4.test,
	tests/core/explprod.test, tests/core/explsum.test,
	tests/core/format.test, tests/core/full.test, tests/core/gamehoa.test,
	tests/core/genaut.test, tests/core/genltl.test,
	tests/core/gragsa.test, tests/core/graph.cc, tests/core/graph.test,
	tests/core/hierarchy.test, tests/core/highlightstate.test,
	tests/core/ikwiad.cc, tests/core/included.test,
	tests/core/intvcmp2.cc, tests/core/intvcomp.cc,
	tests/core/intvcomp.test, tests/core/isomorph.test,
	tests/core/isop.test, tests/core/kind.cc, tests/core/kind.test,
	tests/core/kripke.test, tests/core/kripkecat.cc,
	tests/core/latex.test, tests/core/lbt.test, tests/core/lbttparse.test,
	tests/core/length.cc, tests/core/length.test, tests/core/lenient.test,
	tests/core/ltl2dstar.test, tests/core/ltl2dstar2.test,
	tests/core/ltl2dstar3.test, tests/core/ltl2dstar4.test,
	tests/core/ltl2neverclaim-lbtt.test, tests/core/ltl2neverclaim.test,
	tests/core/ltl2ta.test, tests/core/ltl2ta2.test,
	tests/core/ltl2tgba.test, tests/core/ltl2tgba2.test,
	tests/core/ltl3ba.test, tests/core/ltl3dra.test,
	tests/core/ltlcounter.test, tests/core/ltlcross.test,
	tests/core/ltlcross2.test, tests/core/ltlcross3.test,
	tests/core/ltlcross4.test, tests/core/ltlcross5.test,
	tests/core/ltlcross6.test, tests/core/ltlcrossce.test,
	tests/core/ltlcrossce2.test, tests/core/ltlcrossgrind.test,
	tests/core/ltldo.test, tests/core/ltldo2.test, tests/core/ltlf.test,
	tests/core/ltlfilt.test, tests/core/ltlgrind.test,
	tests/core/ltlrel.cc, tests/core/ltlrel.test,
	tests/core/ltlsynt-pgame.test, tests/core/ltlsynt.test,
	tests/core/ltlsynt2.test, tests/core/lunabbrev.test,
	tests/core/maskacc.test, tests/core/maskkeep.test,
	tests/core/mempool.cc, tests/core/mempool.test, tests/core/minterm.cc,
	tests/core/minterm.test, tests/core/minusx.test,
	tests/core/monitor.test, tests/core/nenoform.test,
	tests/core/neverclaimread.test, tests/core/ngraph.cc,
	tests/core/ngraph.test, tests/core/nondet.test,
	tests/core/obligation.test, tests/core/optba.test,
	tests/core/parity.cc, tests/core/parity.test, tests/core/parity2.test,
	tests/core/parse.test, tests/core/parseaut.test,
	tests/core/parseerr.test, tests/core/pdegen.test,
	tests/core/pgsolver.test, tests/core/prodchain.test,
	tests/core/prodor.test, tests/core/rabin2parity.test,
	tests/core/rand.test, tests/core/randaut.test,
	tests/core/randomize.test, tests/core/randpsl.test,
	tests/core/randtgba.cc, tests/core/randtgba.test,
	tests/core/readltl.cc, tests/core/readsave.test, tests/core/reduc.cc,
	tests/core/reduc.test, tests/core/reduc0.test,
	tests/core/reduccmp.test, tests/core/reducpsl.test,
	tests/core/remfin.test, tests/core/remove_x.test,
	tests/core/remprop.test, tests/core/renault.test, tests/core/safra.cc,
	tests/core/safra.test, tests/core/satmin.test,
	tests/core/satmin2.test, tests/core/satmin3.test,
	tests/core/sbacc.test, tests/core/scc.test, tests/core/sccdot.test,
	tests/core/sccif.cc, tests/core/sccif.test, tests/core/sccsimpl.test,
	tests/core/semidet.test, tests/core/sepsets.test,
	tests/core/serial.test, tests/core/sim2.test, tests/core/sim3.test,
	tests/core/sonf.test, tests/core/split.test, tests/core/spotlbtt.test,
	tests/core/spotlbtt2.test, tests/core/streett.test,
	tests/core/strength.test, tests/core/stutter-ltl.test,
	tests/core/stutter-tgba.test, tests/core/sugar.test,
	tests/core/syfco.test, tests/core/syntimpl.cc,
	tests/core/syntimpl.test, tests/core/taatgba.cc,
	tests/core/taatgba.test, tests/core/tgbagraph.test,
	tests/core/tostring.cc, tests/core/tostring.test,
	tests/core/tripprod.test, tests/core/trival.cc,
	tests/core/trival.test, tests/core/tunabbrev.test,
	tests/core/tunenoform.test, tests/core/twacube.cc,
	tests/core/twacube.test, tests/core/twagraph.cc,
	tests/core/unabbrevwm.test, tests/core/unambig.test,
	tests/core/unambig2.test, tests/core/uniq.test, tests/core/utf8.test,
	tests/core/uwrm.test, tests/core/wdba.test, tests/core/wdba2.test,
	tests/ltsmin/check.test, tests/ltsmin/check2.test,
	tests/ltsmin/check3.test, tests/ltsmin/finite.test,
	tests/ltsmin/finite2.test, tests/ltsmin/finite3.test,
	tests/ltsmin/kripke.test, tests/ltsmin/modelcheck.cc,
	tests/ltsmin/testconvert.cc, tests/ltsmin/testconvert.test,
	tests/python/298.py, tests/python/341.py, tests/python/471.py,
	tests/python/acc.py, tests/python/accparse2.py, tests/python/aiger.py,
	tests/python/alarm.py, tests/python/aliases.py,
	tests/python/alternating.py, tests/python/bdddict.py,
	tests/python/bdditer.py, tests/python/bddnqueen.py,
	tests/python/bugdet.py, tests/python/complement_semidet.py,
	tests/python/dbranch.py, tests/python/declenv.py,
	tests/python/decompose_scc.py, tests/python/det.py,
	tests/python/dualize.py, tests/python/ecfalse.py,
	tests/python/except.py, tests/python/forq_contains.py,
	tests/python/game.py, tests/python/gen.py, tests/python/genem.py,
	tests/python/implies.py, tests/python/interdep.py,
	tests/python/intrun.py, tests/python/kripke.py,
	tests/python/langmap.py, tests/python/ltl2tgba.py,
	tests/python/ltl2tgba.test, tests/python/ltlf.py,
	tests/python/ltlparse.py, tests/python/ltlsimple.py,
	tests/python/mealy.py, tests/python/merge.py,
	tests/python/mergedge.py, tests/python/minato.py,
	tests/python/misc-ec.py, tests/python/optionmap.py,
	tests/python/origstate.py, tests/python/otfcrash.py,
	tests/python/parity.py, tests/python/parsetgba.py,
	tests/python/pdegen.py, tests/python/powerset.py,
	tests/python/prodexpt.py, tests/python/randgen.py,
	tests/python/relabel.py, tests/python/remfin.py,
	tests/python/removeap.py, tests/python/rs_like.py,
	tests/python/satmin.py, tests/python/sbacc.py,
	tests/python/sccfilter.py, tests/python/sccinfo.py,
	tests/python/sccsplit.py, tests/python/semidet.py,
	tests/python/setacc.py, tests/python/setxor.py,
	tests/python/simplacc.py, tests/python/simstate.py,
	tests/python/sonf.py, tests/python/split.py,
	tests/python/splitedge.py, tests/python/streett_totgba.py,
	tests/python/streett_totgba2.py, tests/python/stutter.py,
	tests/python/sum.py, tests/python/synthesis.py,
	tests/python/toparity.py, tests/python/toweak.py,
	tests/python/tra2tba.py, tests/python/trival.py,
	tests/python/twagraph.py, tests/python/zlktree.py, tests/run.in,
	tests/sanity/80columns.test, tests/sanity/bin.test,
	tests/sanity/getenv.test, tests/sanity/includes.test,
	tests/sanity/ipynb.pl, tests/sanity/namedprop.test,
	tests/sanity/private.test, tests/sanity/readme.pl,
	tests/sanity/style.test, tools/man2html.pl: Update all copyright
	headers.

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

	parity: don't change_parity to the same acceptance

	Follow up to #552.

	* spot/twaalgos/parity.cc (change_parity): Do not work if the output
	is supposed to have the same acceptance as the input and 0 or 1
	colors.

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

	never iterate on the edge_vector()

	This fixes #552, reported by Rüdiger and Ayrat.

	* tests/sanity/style.test: Warn aginst iterations on edge_vector.
	* spot/parseaut/parseaut.yy, spot/twaalgos/complete.cc,
	spot/twaalgos/parity.cc: Iterate over edges(), not edge_vector().
	* tests/core/ltlcross.test: Add a test case for #552.
	* NEWS: Mention the bug.

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

	translate: fix #551

	Reported by Yann Thierry-Mieg.

	* spot/twaalgos/translate.cc: Run scc_filter if relabel_here reduced
	the number of edges, because maybe we have more to remove.
	* tests/core/ltl2tgba2.test: Add test case.

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

	translate: fix relabel-overlap setting

	* spot/twaalgos/translate.cc: Adjust the default relabel-overlap value
	to match the doc.

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

	sccfilter: some inherently-weak automata should have t acceptance

	* spot/twaalgos/sccfilter.cc: If an inherently-weak automaton has
	no rejecting cycle, reduce its acceptance to t instead of Büchi.
	* spot/twa/acc.hh (operator==, operator<): Fix comparisons of
	true acceptances.
	* NEWS: Mention these two changes.
	* spot/twaalgos/sccfilter.hh: Update documentation.
	* spot/twaalgos/determinize.cc (tgba_determinize): The call
	to scc_filter assume that the input BA is never reduced to t
	acceptance.  Call scc_filter with an extra option to ensure that.
	* spot/twaalgos/postproc.cc (do_scc_filter): Adjust to add the
	extra option when we want to build Büchi or coBuchi.
	(ensure_ba): Don't mark trivial SCCs as accepting.
	* tests/core/complement.test, tests/core/dstar.test,
	tests/core/ltlsynt.test, tests/core/readsave.test,
	tests/core/wdba2.test, tests/python/_product_susp.ipynb,
	tests/python/automata-io.ipynb, tests/python/dualize.py,
	tests/python/highlighting.ipynb, tests/python/intrun.py,
	tests/python/setacc.py, tests/python/simstate.py,
	tests/python/stutter-inv.ipynb, tests/python/zlktree.py: Adjust test
	cases.

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

	autfilt: fix a typo in the --help output

	* bin/common_aoutput.cc: Here.
	* doc/org/autfilt.org: Adjust the documentation.

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

	ltsmin: make it easier to find the README

	Fixes #550, reported by Daniel Stan.

	* tests/ltsmin/README: Move...
	* README.ltsmin: ... here.
	* Makefile.am (EXTRA_DIST): Add README.ltsmin.
	* README: Mention README.ltsmin.
	* spot/ltsmin/spins_interface.cc: Mention README.ltsmin in the error
	message.
	* tests/ltsmin/check.test, tests/ltsmin/check3.test: Adjust reference
	to README.
	* NEWS: Mention this fix.
	* THANKS: Add Danial.

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

	* .gitlab-ci.yml (rpm-pkg): Start from the make-dist tarball.

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

	parseaut: allow false edges to not be dropped

	This is a followup to issue #548, which was caused by edges being
	dropped.  In that context dropping edge was not really desirable, so
	let's make this behavior configurable.

	* spot/parseaut/public.hh: Add a new option.
	* python/spot/__init__.py: Likewise.
	* spot/parseaut/parseaut.yy: Honor that option.
	* tests/python/parsetgba.py: Add a short test for it.
	* NEWS: Mention it.

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

	parseaut: update highlight-edges when edges are dropped/added

	This fixes #548, reported by Dávid Smolka.

	* spot/parseaut/parseaut.yy: Update the edge numbers in the
	highlight-edges property.
	* tests/core/highlightstate.test: Add test case.
	* NEWS: Mention the bug.

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

	gfguarante: update citation

	* spot/twaalgos/gfguarantee.hh: Properly cite the LICS'18 paper.
	* doc/spot.bib: Add the entry.

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

	gfguarantee: fix handling of true/false languages

	Fixes #546 (again).

	* spot/twaalgos/gfguarantee.cc (g_f_terminal_inplace): Detect
	true/false languages early, so that we do not tag them as
	non-inherently-weak.
	* tests/core/ltlcross.test: Improve test case.

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

	* tests/core/twacube.cc: Remove duplicate line.

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

	add test case for issue #546

	This, and the previous two patches, fixes issue #546.

	* tests/core/ltlcross.test: Add a test case.

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

	fix several algorithms that incorrectly preserved !weak

	This massive set of changes was triggered by issue #546.
	In addition to the better handling of !weak, this also adds some
	weak properties in a few places.

	* spot/twaalgos/product.cc (product_aux): Throw some exception
	if an automaton with t or f acceptance has the !weak property.  This
	is a cheap sanity check to help detect algorithms that incorrectly
	assumed !weak input would necessarily become !weak output.
	* spot/twaalgos/hoa.cc (print_hoa): Likewise, also do not assume
	that terminal implies very-weak.
	* spot/parseaut/parseaut.yy: Add several diagnostics for similar
	cases.  E.g., a one-state automaton cannot be declared as !very-weak.
	* tests/core/parseaut.test: Check those new diagnostics.
	* spot/twa/twa.cc (twa::intersecting_run): Temporary remove the weak
	property by setting it to maybe, not to false.
	* spot/twaalgos/minimize.cc, spot/twaalgos/parity.cc,
	spot/twaalgos/sccfilter.cc, spot/twaalgos/simulation.cc: Account for
	the fact that these algorithm may in fact improve the weakness.
	* spot/twaalgos/strength.cc: Only look at colors used by the
	acceptance condition when deciding weakness.
	* spot/twaalgos/synthesis.cc: Declare the strategy as weak.
	* bin/randaut.cc: Add weak to automata with t/f acceptance.
	* spot/kripke/kripke.hh: Make kripke structures as weak.
	* tests/core/acc_word.test, tests/core/alternating.test,
	tests/core/complement.test, tests/core/complete.test,
	tests/core/ltlsynt.test, tests/core/randomize.test,
	tests/core/readsave.test, tests/core/remfin.test,
	tests/core/sccsimpl.test, tests/core/strength.test,
	tests/core/wdba2.test, tests/ltsmin/kripke.test,
	tests/python/automata-io.ipynb, tests/python/automata.ipynb,
	tests/python/dbranch.py, tests/python/highlighting.ipynb,
	tests/python/kripke.py, tests/python/ltsmin-dve.ipynb,
	tests/python/mealy.py, tests/python/simstate.py: Adjust all these test
	cases.
	* NEWS: Mention the fixes.

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

	product_susp: fix handling of unsatisfiable/universal acceptances

	Part of issue #546 reported by Rüdiger Ehlers

	* spot/twaalgos/product.cc (product_susp): Fix detection and handling
	of unsatisfiable/universal acceptances.
	* tests/python/_product_susp.ipynb: Add test cases.

2023-11-08  Florian Renkin  <frenkin@lrde.epita.fr>

	Remove binary integer literals

	Remove this notation because Swig only supports it since version 4.0.0,
	whereas Spot requires a version greater than or equal to 3.0.2.

	* spot/tl/apcollect.hh: Here.

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

	powerset: speedup computation for singleton with single edge

	* spot/twaalgos/powerset.cc: Here.

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

	Fix warnings with GCC 7 on Centos 7

	* spot/twa/twagraph.cc: Mark two variables as unused.
	* spot/twaalgos/aiger.cc: Avoid spurious nullptr dereference warning,
	and mark more variable as unused.
	* spot/twaalgos/forq_contains.cc (word::operator==): Mark as
	maybe_unused.
	* bin/ltlsynt.cc, spot/twaalgos/relabel.cc,
	spot/twaalgos/mealy_machine.cc, spot/twaalgos/synthesis.cc,
	spot/twaalgos/zlktree.cc: Avoid unused variables warnings.
	* spot/twaalgos/toparity.cc: Remove uses of std::optional, they were
	not necessary, and they trigger spurious warnings in GCC 7.  Also
	work around a spurious "potential nullptr deref".
	* tests/core/twacube.cc: Fix another potential nullptr warning.
	* spot/twaalgos/simulation.cc: Work a around GCC 6/7 bug.

2023-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: ignore false edges and unreachable states

	* spot/twaalgos/sbacc.cc: Here.

2023-10-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce realizability_simplifier to share more of ltlsynt's code

	* spot/tl/apcollect.hh,
	spot/tl/apcollect.cc (realizability_simplifier): New class, built from
	code existing in ltlsynt, so that other tools may use this too.
	* bin/ltlsynt.cc: Use realizability_simplifier.
	* spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh: Adjust to use
	realizability_simplifier instead of relabeling_map.
	* NEWS: Mention the new class.

2023-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Add a centos7 build.

2023-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Activate Raspbian again.

2023-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: add option --global-equivalence

	Fixes issue #529.

	* spot/tl/apcollect.hh,
	spot/tl/apcollect.cc (collect_equivalent_literals): New function.
	* python/spot/impl.i: Adjust.
	* spot/tl/formula.hh,
	spot/tl/formula.cc (formula_ptr_less_than_bool_first): New comparison
	function.
	* spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc: Adjust to deal
	with equivalent assignments.
	* bin/ltlsynt.cc: Implement the new option.
	* tests/core/ltlsynt.test: Adjust test cases.

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

	sccinfo: implement PROCESS_UNREACHABLE_STATES

	This is actually used by next patch.

	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Here.
	* tests/python/sccinfo.py: Add a small test case.
	* NEWS: Mention it.

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

	ltlsynt: do a fixpoint around the polarity simplifications

	* bin/ltlsynt.cc: Here.
	* tests/core/ltlsynt.test: Adjust.

2023-09-26  Florian Renkin  <frenkin@lrde.epita.fr>

	notebooks: correction of typos

	* tests/python/_partitioned_relabel.ipynb,
	  tests/python/_product_weak.ipynb,
	  tests/python/acc_cond.ipynb,
	  tests/python/aliases.ipynb,
	  tests/python/automata.ipynb,
	  tests/python/cav22-figs.ipynb,
	  tests/python/contains.ipynb,
	  tests/python/decompose.ipynb,
	  tests/python/formulas.ipynb,
	  tests/python/games.ipynb,
	  tests/python/highlighting.ipynb,
	  tests/python/ltsmin-dve.ipynb,
	  tests/python/parity.ipynb,
	  tests/python/product.ipynb,
	  tests/python/satmin.ipynb,
	  tests/python/stutter-inv.ipynb,
	  tests/python/synthesis.ipynb,
	  tests/python/twagraph-internals.ipynb,
	  tests/python/word.ipynb,
	  tests/python/zlktree.ipynb: here

2023-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twagraph: fix merge_states() on automata without edges

	This corner case was simply causing segfaults.

	* tests/python/mergedge.py: Add a test case.
	* spot/twa/twagraph.cc (merge_states): Add special handling for
	the case where the automaton has no edges.

2023-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: detect APs with constant polarity

	This implements the first point of issue #529.

	* spot/tl/apcollect.cc, spot/tl/apcollect.hh (collect_litterals): New
	function.
	* bin/ltlsynt.cc: Implement the --polarity option, use
	collect_litterals() to simplify the specification, finally patch the
	game, Mealy, or Aiger output.
	* spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh: Take a
	relabeling_map has argument to specify extra APs.
	* tests/core/ltlsynt.test, tests/core/ltlsynt2.test: Adjust test
	cases.

2023-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/formula.hh: Typo in comment.

2023-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forq: remove the "same AP set" restriction

	* spot/twaalgos/forq_contains.cc: Remove the check.
	* tests/python/forq_contains.py: Add two test cases for this.

2023-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forq: remove the relevance test

	Looks like the comparison operator between std::set<std::pair<state,
	bool>> and std::set<state> had a few issue.  This is part of an
	optimization that Pierre Ganty prefers to see removed, so I'm just
	removing that code.

	For reference, changing the removed operator<= to the following
	also seem to fix all tests.

	  static bool operator<=(std::set<std::pair<state, bool>> const& f,
	                         state_set const& set)
	  {
	    auto first1 = set.begin(), last1 = set.end();
	    auto first2 = f.begin(), last2 = f.end();
	    for (; first2 != last2; ++first1)
	      if (first1 == last1 || first2->first < *first1)
	        {
	          return false;
	        }
	      else if (first2->first == *first1)
	        {
	          ++first2;
	          // Some states of f may appear twice because of the attached
	          // Boolean.
	          if (first2 != last2 && first2->first == *first1)
	            ++first2;
	        }
	    return true;
	  }

	* spot/twaalgos/forq_contains.cc: Remove relevance-based optimization.

2023-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forq: make it easier to select contains's version

	* spot/twaalgos/contains.hh, spot/twaalgos/contains.cc
	(containment_select_version): New function.
	(contains): Use it.
	* spot/twa/twa.cc (exclusive_word): Likewise.
	* bin/autfilt.cc (--included-in): Adjust to use forq depending
	on containement_select_version.
	* bin/man/spot-x.x: Adjust documentation of
	CONTAINMENT_SELECT_VERSION.
	* tests/core/included.test, tests/python/forq_contains.py: Add more
	tests.
	* NEWS: Mention the new feature.

2023-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forq: swap arguments of contains_forq

	* spot/twaalgos/forq_contains.hh,
	spot/twaalgos/forq_contains.cc (contains_forq): Swap arguments so
	they follow the same order as contains().
	* tests/python/forq_contains.py: Adjust.

2023-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forq: fix Buchi acceptance test

	* spot/twa/twa.cc: Here.
	* spot/twaalgos/forq_contains.cc: And there.  Also simplify the
	handling code by simply throwing the exception when the error is
	detected.

2023-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forq: fix bib entry and bind the doxygen doc to a group

	* doc/spot.bib: Reformat the FORQ reference in the style of the
	rest of the bibliographic file.
	* spot/twaalgos/forq_contains.hh: Adjust, and add missing \ingroup.

2023-09-13  Jonah Romero  <jonah.romero@imdea.org>

	add enviroment variables for FORQ algorithm

	* AUTHORS: added Jonah Romero
	* bin/man/spot-x.x: Added the enviroment variables,
	                    SPOT_EXCLUSIVE_WORD and SPOT_CONTAINMENT_CHECK
	* doc/spot.bib: Added paper citation for FORQ inclusion algorithm
	* spot/twa/twa.cc: Modified exclusive_word to also use FORQ
	* spot/twaalgos/contains.cc: Modified contains to also use FORQ

2023-09-13  Jonah Romero  <jonah.romero@imdea.org>

	implement a FORQ-based inclusion check for SBAs

	* spot/twaalgos/forq_contains.cc, spot/twaalgos/forq_contains.hh: New
	files.
	* spot/twaalgos/Makefile.am, python/spot/impl.i: Add them.
	* tests/python/forq_contains.py: New file.
	* tests/Makefile.am: Add it.

2023-09-13  Jonah Romero  <jonah.romero@imdea.org>

	split: add a new split_edge variant

	* spot/twaalgos/split.cc, spot/twaalgos/split.hh: Here.
	* tests/python/splitedge.py: New file.
	* tests/Makefile.am: Add it.

2023-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	replace sprintf by snprintf

	This was reported by Pierre Ganty, who said that sprintf is reported
	as deprecated on MacOS 13.5.2 (22G91).

	* spot/twa/acc.cc, spot/twaalgos/aiger.cc: Here.

2023-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel_bse: rework to simplify more patterns

	Rework the way we compute and use cut-points to catch more patterns we
	can rewrite.  Also Use BDDs to check if a Boolean sub-expression is
	false or true.   Fixes issue #540.

	* spot/tl/relabel.hh: Update documentation
	* spot/tl/relabel.cc (relabel_bse): Rework.
	* tests/core/ltlfilt.test: Add more test cases.
	* tests/python/_mealy.ipynb: Update.
	* NEWS: Mention the change.

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

	python: add bindings for set of unsigned int

	Requested by Marek Jankola.

	* python/spot/impl.i: Add bindings for std::set<unsigned>.
	* tests/python/powerset.py: New file.
	* tests/Makefile.am: Add it.
	* THANKS: Add Marek.

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

	* spot/twaalgos/aiger.hh: Add missing include.

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

	determinize: work around overflow in reachability matrix indices

	Fixes #541, reported by David Dokoupil.

	* spot/twaalgos/determinize.cc: Disable use_simulation when the input
	has more than 2^16 SCCs..  Also rework the reachability
	matrix to store only its lower half triangle.
	* spot/twaalgos/determinize.hh, NEWS: Mention the limitation of
	use_simulation.
	* THANKS: Add David.

2023-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: add a new relabel-overlap option

	Fixes issue #536.  Also a part of issue #500.

	* spot/twaalgos/translate.hh, spot/twaalgos/translate.cc: Implement
	this new option.
	* bin/spot-x.cc, NEWS: Mention it.
	* tests/core/ltl2tgba2.test: Add the test case from issue #536.

2023-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: introduce an overlapping relabeling version

	Related to issue #500 and issue #536.

	* spot/tl/relabel.hh (relabel_overlapping_bse): New function.
	* spot/tl/relabel.cc: Implement it.
	* bin/ltlfilt.cc: Add a --relabel-overlapping-bool option.
	* tests/core/ltlfilt.test: Test it.
	* NEWS: Mention it.

2023-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/sanity/style.test: Don't use egrep.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.11.6.dev.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.11.6

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

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	mention the bug fixed in BuDDy

	* NEWS: Explain the bug fixed in previous patch and reported in
	issue #535.
	* THANKS: Add Guillermo.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: temporary disable raspbian.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve coverage of LaTeX/utf8 printers for SERE

	* bin/common_output.cc, bin/common_output.hh,
	bin/randltl.cc: Adjust so that running "randltl -S" use
	the SERE flavor of the spot/latex/utf8 formula printers.
	* tests/core/latex.test, tests/core/utf8.test,
	tests/python/ltlparse.py: Add more test cases.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: cover more tmpfile failure when running as root

	* tests/core/ltlcross5.test: reorganize to test missing directory
	before permission issues, as the latter cannot be run as root.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: add some test to cover autcross' univ-edges removal

	* tests/core/ltl3ba.test: Here.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	aiger: order the inputs of binary AND gates

	* spot/twaalgos/aiger.cc: Here.
	* tests/core/ltlsynt.test: Adjust, and add test case for aiger=optim.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: remove some dead functions

	* spot/twa/acc.hh, spot/twa/acc.cc (has_parity_prefix,
	is_parity_max_equiv): Remove.
	* spot/twa/acc.hh, spot/twa/twagraph.cc,
	spot/twa/twagraph.hh (apply_permutation): Remove.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix handling for --output & --format with LTL outputs

	* bin/common_output.cc: Set the output stream for LTL formats.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Mention the svgo version we use.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around spurious GCC 13 warnings

	* spot/graph/graph.hh (new_univ_dests): Add an overload taking
	a temporary vector.
	* spot/twa/twagraph.cc (defrag_states): Use it.
	* tests/core/parity.cc: Remove some temporary variables.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: handle thousands of output files

	Fixes #534.  Test case is only on next branch.

	* bin/common_file.hh, bin/common_file.cc: Make it possible
	to reopen a closed file.
	* bin/common_output.cc, bin/common_aoutput.cc: Add a heuristic
	to decide when to close files.
	* NEWS: Mention the issue.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/ltlcross4.test: Work around recent Pandas change.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix spurious failure of ltlcross4.test

	Reported by Yuri Victorovich.

	* tests/core/ltlcross4.test: Drop the 'formula' column before
	computing aggregates.  It causes warnings in some Pandas versions, and
	errors in others.

2023-08-01  Florian Renkin  <frenkin@lrde.epita.fr>

	parity_type_to_parity: Add missing cases

	* spot/twaalgos/toparity.cc: Correct some cases where the solution was
	not detected.
	* tests/python/toparity.py: Update tests.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: work around incorrect warning from gcc

	* spot/misc/bitvect.hh: Don't free the old ptr if realloc() returns
	NULL, as this confuse GCC who warns that we are freeing something that
	has already been freed.   Instead, let the ~bitvect() destructor
	handle this.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: add missing build dependencies

	* debian/control: Add Build-Depends on graphviz, jupyter-nbconvert,
	doxygen.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	avoid a g++-12 warning about potential null pointer dereference

	* spot/twaalgos/determinize.cc (sorted_nodes): Rewrite to
	avoid reallocation of temporary vector.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around spurious g++-12 warnings

	* spot/twaalgos/ltl2tgba_fm.cc, spot/tl/formula.hh,
	spot/twaalgos/translate.cc: Add SPOT_ASSUME in various places to help
	g++.

2023-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	mention the bug fixed in BuDDy

	* NEWS: Explain the bug fixed in previous patch and reported in
	issue #535.
	* THANKS: Add Guillermo.

2023-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: temporary disable raspbian.

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

	improve coverage of LaTeX/utf8 printers for SERE

	* bin/common_output.cc, bin/common_output.hh,
	bin/randltl.cc: Adjust so that running "randltl -S" use
	the SERE flavor of the spot/latex/utf8 formula printers.
	* tests/core/latex.test, tests/core/utf8.test,
	tests/python/ltlparse.py: Add more test cases.

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

	bin: cover more tmpfile failure when running as root

	* tests/core/ltlcross5.test: reorganize to test missing directory
	before permission issues, as the latter cannot be run as root.

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

	tests: add some test to cover autcross' univ-edges removal

	* tests/core/ltl3ba.test: Here.

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

	aiger: order the inputs of binary AND gates

	* spot/twaalgos/aiger.cc: Here.
	* tests/core/ltlsynt.test: Adjust, and add test case for aiger=optim.

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

	acc: remove some dead functions

	* spot/twa/acc.hh, spot/twa/acc.cc (has_parity_prefix,
	is_parity_max_equiv): Remove.
	* spot/twa/acc.hh, spot/twa/twagraph.cc,
	spot/twa/twagraph.hh (apply_permutation): Remove.

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

	bin: fix handling of -o '>>-' in the close/reopen path

	* tests/core/serial.test: Add test case.
	* bin/common_file.cc: Fix it.

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

	bin: fix handling for --output & --format with LTL outputs

	* bin/common_output.cc: Set the output stream for LTL formats.
	* tests/core/serial.test: Add a test case about this issue that also
	improve the covering of the previous patch about saving file
	descriptors.

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

	* HACKING: Mention the svgo version we use.

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

	work around spurious GCC 13 warnings

	* spot/graph/graph.hh (new_univ_dests): Add an overload taking
	a temporary vector.
	* spot/twa/twagraph.cc (defrag_states): Use it.
	* tests/core/parity.cc: Remove some temporary variables.

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

	gen: generalize fin_unit to mafins()

	Based on work with Jan Strejček.

	* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::mafins,
	acc_cond::acc_code::mafins): New methods.
	(fin_unit_one_split, fin_unit_one_split_improved): Use mafins()
	instead on fin_unit().
	* spot/twaalgos/genem.cc: Use mafins() instead on fin_unit().

2023-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: handle thousands of output files

	Fixes #534.

	* bin/common_file.hh, bin/common_file.cc: Make it possible
	to reopen a closed file.
	* bin/common_output.cc, bin/common_aoutput.cc: Add a heuristic
	to decide when to close files.
	* tests/core/serial.test: Add a test case.
	* NEWS: Mention the issue.

2023-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/ltlcross4.test: Work around recent Pandas change.

2023-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: allow %l to be used to print serial numbers

	* NEWS: Mention it.
	* bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
	bin/common_output.cc, bin/common_output.hh, bin/dstar2tgba.cc,
	bin/genaut.cc, bin/genltl.cc, bin/ltl2tgba.cc, bin/ltldo.cc,
	bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randaut.cc, bin/randltl.cc:
	Implement it.
	* doc/org/oaut.org: Add a short example.
	* tests/core/serial.test: New file.
	* tests/Makefile.am: Add it.

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

	fix spurious failure of ltlcross4.test

	Reported by Yuri Victorovich.

	* tests/core/ltlcross4.test: Drop the 'formula' column before
	computing aggregates.  It causes warnings in some Pandas versions, and
	errors in others.

2023-05-24  Florian Renkin  <frenkin@lrde.epita.fr>

	parity_type_to_parity: Add missing cases

	* spot/twaalgos/toparity.cc: Correct some cases where the solution was
	not detected.
	* tests/python/toparity.py: Update tests.

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

	bitvect: work around incorrect warning from gcc

	* spot/misc/bitvect.hh: Don't free the old ptr if realloc() returns
	NULL, as this confuse GCC who warns that we are freeing something that
	has already been freed.   Instead, let the ~bitvect() destructor
	handle this.

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

	genem: Add yet another version of the algorithm

	* spot/twa/acc.hh, spot/twa/acc.cc (fin_unit_one_split_improved): New
	function.
	* python/spot/impl.i: Add bindings for fin_unit_one_split_improved.
	* spot/twaalgos/genem.cc: Add the spot212 version.
	* tests/python/genem.py: Test it.

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

	debian: add missing build dependencies

	* debian/control: Add Build-Depends on graphviz, jupyter-nbconvert,
	doxygen.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.11.5.dev.

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

	release Spot 2.11.5

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

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

	org: replace version references with org-babel blocks

	This way we have fewer lines to edit multiple when making releases.

	* doc/org/index.org, doc/org/init.el.in, doc/org/install.org,
	doc/org/setup.org, doc/org/tools.org: Use org-babel instead of macros
	for release version and links.

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

	powerset: fix segfault when the initial state is a sink

	Reported by Raven Beutner.

	* spot/twaalgos/minimize.cc: Improve comment.
	* spot/twaalgos/powerset.cc: Fix handling of an initial state that
	is also a sink.
	* tests/core/wdba2.test: Add test case.
	* NEWS: Mention the bug.

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

	twa_run: let as_twa work on the result of intersecting_run

	Reported by Philipp Schlehuber-Caissier.

	* spot/twaalgos/emptiness.cc (as_twa): Simplify considerably.  Don't
	try to replay the run, and don't merge identical states.
	* spot/twaalgos/word.hh, spot/twaalgos/emptiness.hh: Improve
	documentation.
	* tests/python/intrun.py: Add a test case.
	* NEWS: Mention the bug.

2023-04-19  Philipp Schlehuber-Caissier  <philipp.schlehuber@epita.frr>

	Fix parity solver if edgevector is not contiguous

	Validity of strategies was tested relying on
	num_edges() which might be smaller than the edge_number

	* spot/twaalgos/game.cc: Fix here
	* tests/python/game.py: Test here

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

	correctly fails if emacs needed and missing

	Fixes #528.

	* configure.ac: Define EMACS using tools/missing.
	* NEWS: Mention the bug.

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

	fix spurious test-case failure when Python is not installed

	Fixes #530.

	* tests/core/ltlsynt2.test: Skip when PYTHON is empty.
	* NEWS: Mention the fix.

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

	* doc/tl/tl.tex: Typo in firstmatch semantics.

2023-04-19  Philipp Schlehuber  <philipp.schlehuber@epita.fr>

	Ignore ltargz.m4

	* .gitignore: Ignore it
	* m4/ltargz.m4: Remove it

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

	org: fix rendering of R examples for recent ESS/Org

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Newer ESS version
	need to be taught to use default-directory instead of the project
	directory.
	* doc/org/ltlcross.org: Use "result file" to render the output.

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

	* doc/org/tut03.org: Typos.

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

	org: do not require org-install

	org-install has been obsolete for a long time, and has been removed
	from Org 9.6.

	* doc/org/init.el.in: Remove org-install.

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

	org: replace version references with org-babel blocks

	This way we have fewer lines to edit multiple when making releases.

	* doc/org/index.org, doc/org/init.el.in, doc/org/install.org,
	doc/org/setup.org, doc/org/tools.org: Use org-babel instead of macros
	for release version and links.

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

	powerset: fix segfault when the initial state is a sink

	Reported by Raven Beutner.

	* spot/twaalgos/minimize.cc: Improve comment.
	* spot/twaalgos/powerset.cc: Fix handling of an initial state that
	is also a sink.
	* tests/core/wdba2.test: Add test case.
	* NEWS: Mention the bug.

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

	twa_run: let as_twa work on the result of intersecting_run

	Reported by Philipp Schlehuber-Caissier.

	* spot/twaalgos/emptiness.cc (as_twa): Simplify considerably.  Don't
	try to replay the run, and don't merge identical states.
	* spot/twaalgos/word.hh, spot/twaalgos/emptiness.hh: Improve
	documentation.
	* tests/python/intrun.py: Add a test case.
	* NEWS: Mention the bug.

2023-03-31  Philipp Schlehuber-Caissier  <philipp.schlehuber@epita.frr>

	Fix parity solver if edgevector is not contiguous

	Validity of strategies was tested relying on
	num_edges() which might be smaller than the edge_number

	* spot/twaalgos/game.cc: Fix here
	* tests/python/game.py: Test here

2023-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	correctly fails if emacs needed and missing

	Fixes #528.

	* configure.ac: Define EMACS using tools/missing.
	* NEWS: Mention the bug.

2023-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix spurious test-case failure when Python is not installed

	Fixes #530.

	* tests/core/ltlsynt2.test: Skip when PYTHON is empty.
	* NEWS: Mention the fix.

2023-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Typo in firstmatch semantics.

2023-03-23  Philipp Schlehuber  <philipp.schlehuber@epita.fr>

	Ignore ltargz.m4

	* .gitignore: Ignore it
	* m4/ltargz.m4: Remove it

2023-03-23  Philipp Schlehuber  <philipp.schlehuber@epita.fr>

	Adding option to solve parity games globally

	Parity games have been solved semi-locally so far.
	We deduced a strategy for the reachable part of the arena
	This lead to some inconsistencies when not all state were
	rachable.
	Now you can chose to solve parity games truely globally.

	* spot/twaalgos/game.cc, spot/twaalgos/game.hh: Here
	* tests/python/games.ipynb: Test

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

	org: fix rendering of R examples for recent ESS/Org

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Newer ESS version
	need to be taught to use default-directory instead of the project
	directory.
	* doc/org/ltlcross.org: Use "result file" to render the output.

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

	* doc/org/tut03.org: Typos.

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

	bdd_to_formula: add CNF variant

	* spot/twa/formula2bdd.hh,
	spot/twa/formula2bdd.cc (bdd_to_cnf_formula): New function.
	* python/spot/__init__.py: Add a default dictionary for convenience.
	* tests/python/bdditer.py: Add test cases.
	* NEWS: Mention it.

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

	* NEWS: Remove duplicate entries.

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

	org: do not require org-install

	org-install has been obsolete for a long time, and has been removed
	from Org 9.6.

	* doc/org/init.el.in: Remove org-install.

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

	Merge branch 'master' into next

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

	Bump version to 2.11.4.dev

	* NEWS, configure.ac: Here.

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

	Release spot 2.11.4

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

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

	to_finit: fix issue #526

	* spot/twaalgos/remprop.cc: Use bdd_restrict instead of bdd_exists.
	* tests/core/ltlf.test: Add test case.
	* NEWS: Mention the bug.

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

	to_finit: fix issue #526

	* spot/twaalgos/remprop.cc: Use bdd_restrict instead of bdd_exists.
	* tests/core/ltlf.test: Add test case.
	* NEWS: Mention the bug.

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

	dbranch: fix handling of state-based acceptance

	Fixes issue #525.

	* spot/twaalgos/dbranch.hh, NEWS: Document.
	* spot/twaalgos/dbranch.cc: Detect cases where the acceptance should
	be changed from state-based to transition-based.
	* tests/python/dbranch.py: Add a test case.

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

	dbranch: fix handling of state-based acceptance

	Fixes issue #525.

	* spot/twaalgos/dbranch.hh, NEWS: Document.
	* spot/twaalgos/dbranch.cc: Detect cases where the acceptance should
	be changed from state-based to transition-based.
	* tests/python/dbranch.py: Add a test case.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around gcc-snapshot warnings about dangling references

	* spot/twaalgos/game.hh, spot/twaalgos/game.cc (get_state_players,
	get_strategy, get_state_winners): Take argument by reference, not
	copy.
	* spot/twaalgos/synthesis.cc, spot/twaalgos/mealy_machine.cc: Replace
	auto by actual type for readability.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Use pipeline id to name volumes.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix number conversion routines on 32bit

	On 32bit archetectures, long int = int the current check for detecting
	values that overflow int will fail.  Conversion routings should check
	errno.

	* bin/common_conv.cc, bin/common_range.cc: Here.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: allow --highlight-word to work on Fin acceptance

	Fixes #523.

	* bin/autfilt.cc: Remove the restriction.
	* tests/core/acc_word.test: Add test case.
	* NEWS: Mention the fix.

2023-01-31  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: typo in doc

	* bin/ltlsynt.cc: here

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: update copyright year and laboratory name

	* bin/common_setup.cc: Here.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	robin_hood: update to version version 3.11.5

	* spot/priv/robin_hood.hh: Update.
	* spot/priv/Makefile.am: Patch ROBIN_HOOD_IS_TRIVIALLY_COPYABLE to
	work around an issue with clang on Arch linux.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dbranch: fix handling of states without successors

	Fixes #524, reported by Rüdiger Ehlers.

	* spot/twaalgos/dbranch.cc: When merging an edge going to state
	without successors simply delete it.
	* bin/spot-x.cc: Typo in documentation.
	* tests/core/ltlcross.test: Add a test case.
	* NEWS: Mention the bug.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more code smells

	* bin/common_file.cc, bin/common_file.hh, bin/common_finput.cc,
	bin/common_finput.hh, bin/common_output.cc, bin/common_setup.cc,
	bin/common_setup.hh, bin/common_trans.cc, bin/common_trans.hh,
	bin/dstar2tgba.cc, bin/genaut.cc, bin/genltl.cc, bin/ltl2tgba.cc,
	bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc,
	bin/ltlsynt.cc, bin/randltl.cc: Fix minor code issues reported by
	sonarcloud.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: detect overflows in conversion functions

	* bin/common_conv.cc (to_int, to_unsigned): Here.
	* bin/common_range.cc (parse_range): And there.
	* tests/core/ltlgrind.test, tests/core/genaut.test,
	tests/core/randaut.test: Add test cases.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some code smells reported by sonarcloud

	* bench/dtgbasat/gen.py, bin/autcross.cc, bin/autfilt.cc,
	bin/common_aoutput.cc, bin/common_aoutput.hh: Various cleanups.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/game.cc: Fix incorrect std::forward.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify several comparison operators

	* spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/simulation.cc: Simplify, as reported by sonarcloud.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/spot.css: Do not define background twice.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix merging of initial states in state-based automata

	Fixes #522 reported by Raven Beutner.

	* spot/parseaut/parseaut.yy: Make sure all edges leaving
	the initial state have the same color.
	* THANKS: Add Raven.
	* NEWS: Mention the bug.
	* tests/core/522.test: New file.
	* tests/Makefile.am: Add it.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acd: rewrite Python wrapper without jQuery

	* python/spot/__init__.py (acd): Rewrite javascript so that it does
	not use jQuery, to make it easier to use in jupyterlab, or with
	nbconvert.
	* tests/python/zlktree.ipynb: Adjust.
	* NEWS: Mention this.

2023-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around gcc-snapshot warnings about dangling references

	* spot/twaalgos/game.hh, spot/twaalgos/game.cc (get_state_players,
	get_strategy, get_state_winners): Take argument by reference, not
	copy.
	* spot/twaalgos/synthesis.cc, spot/twaalgos/mealy_machine.cc: Replace
	auto by actual type for readability.

2023-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Use pipeline id to name volumes.

2023-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix number conversion routines on 32bit

	On 32bit archetectures, long int = int the current check for detecting
	values that overflow int will fail.  Conversion routings should check
	errno.

	* bin/common_conv.cc, bin/common_range.cc: Here.

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

	autfilt: allow --highlight-word to work on Fin acceptance

	Fixes #523.

	* bin/autfilt.cc: Remove the restriction.
	* tests/core/acc_word.test: Add test case.
	* NEWS: Mention the fix.

2023-01-23  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: typo in doc

	* bin/ltlsynt.cc: here

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

	bin: update copyright year and laboratory name

	* bin/common_setup.cc: Here.

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

	robin_hood: update to version version 3.11.5

	* spot/priv/robin_hood.hh: Update.
	* spot/priv/Makefile.am: Patch ROBIN_HOOD_IS_TRIVIALLY_COPYABLE to
	work around an issue with clang on Arch linux.

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

	dbranch: fix handling of states without successors

	Fixes #524, reported by Rüdiger Ehlers.

	* spot/twaalgos/dbranch.cc: When merging an edge going to state
	without successors simply delete it.
	* bin/spot-x.cc: Typo in documentation.
	* tests/core/ltlcross.test: Add a test case.
	* NEWS: Mention the bug.

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

	more code smells

	* bin/common_file.cc, bin/common_file.hh, bin/common_finput.cc,
	bin/common_finput.hh, bin/common_output.cc, bin/common_setup.cc,
	bin/common_setup.hh, bin/common_trans.cc, bin/common_trans.hh,
	bin/dstar2tgba.cc, bin/genaut.cc, bin/genltl.cc, bin/ltl2tgba.cc,
	bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc,
	bin/ltlsynt.cc, bin/randltl.cc: Fix minor code issues reported by
	sonarcloud.

2023-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: detect overflows in conversion functions

	* bin/common_conv.cc (to_int, to_unsigned): Here.
	* bin/common_range.cc (parse_range): And there.
	* tests/core/ltlgrind.test, tests/core/genaut.test,
	tests/core/randaut.test: Add test cases.

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

	fix some code smells reported by sonarcloud

	* bench/dtgbasat/gen.py, bin/autcross.cc, bin/autfilt.cc,
	bin/common_aoutput.cc, bin/common_aoutput.hh: Various cleanups.

2023-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/game.cc: Fix incorrect std::forward.

2023-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify several comparison operators

	* spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/simulation.cc: Simplify, as reported by sonarcloud.

2023-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/spot.css: Do not define background twice.

2023-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: better merge of multiple initial states

	If an initial states without incoming transition has to be merged into
	another one, its outgoing edges can be reused by just changing their
	source.

	* spot/parseaut/parseaut.yy (fix_initial_state): Implement this here.
	* tests/core/522.test: Add more tests.
	* tests/core/readsave.test: Adjust one expected output.
	* doc/org/hoa.org: Mention the completeness change.
	* NEWS: Mention the new feature.

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

	fix merging of initial states in state-based automata

	Fixes #522 reported by Raven Beutner.

	* spot/parseaut/parseaut.yy: Make sure all edges leaving
	the initial state have the same color.
	* THANKS: Add Raven.
	* NEWS: Mention the bug.
	* tests/core/522.test: New file.
	* tests/Makefile.am: Add it.

2022-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	avoid a g++-12 warning about potential null pointer dereference

	* spot/twaalgos/determinize.cc (sorted_nodes): Rewrite to
	avoid reallocation of temporary vector.

2022-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	priv: remove unused allocator.hh

	* spot/priv/allocator.hh: Delete.
	* spot/priv/Makefile.am, tests/core/mempool.cc: Adjust.

2022-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acd: rewrite Python wrapper without jQuery

	* python/spot/__init__.py (acd): Rewrite javascript so that it does
	not use jQuery, to make it easier to use in jupyterlab, or with
	nbconvert.
	* tests/python/zlktree.ipynb: Adjust.
	* NEWS: Mention this.

2022-12-09  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	lazy eval for sat mealy minimization

	Evaluate incomp of player conditions only if necessary

	* spot/twaalgos/mealy_machine.cc: Here

2022-12-09  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Using partitioned_relabel_here

	Put the new function to use in order to speed up
	mealy machine minimization

	* spot/twaalgos/mealy_machine.cc: Here
	* spot/twaalgos/synthesis.cc
	, spot/twaalgos/synthesis.hh: Helper function to relabel games
	* tests/python/_mealy.ipynb
	, tests/python/except.py
	, tests/python/_partitioned_relabel.ipynb: Adapt/expand tests

2022-12-09  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	introduce partitioned_relabel_here

	Function taking an automaton and trying to relabel
	it by partitioning the old conditions and encode the
	different subsets of the partition with new variables

	* spot/priv/Makefile.am: Add
	* spot/priv/partitioned_relabel.hh
	, spot/priv/partitioned_relabel.cc: try_partition_me,
	computes the partition of a given vector of bdds
	* spot/twaalgos/relabel.hh
	, spot/twaalgos/relabel.cc: Here. Adapt also relabel()
	to cope with the different type of relabeling_maps
	* tests/python/_partitioned_relabel.ipynb
	, tests/python/except.py: Test and Usage
	* tests/Makefile.am: Add test

2022-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2022-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.11.3.dev.

2022-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.11.3

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.11.3.

2022-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around spurious g++-12 warnings

	* spot/twaalgos/ltl2tgba_fm.cc, spot/tl/formula.hh,
	spot/twaalgos/translate.cc: Add SPOT_ASSUME in various places to help
	g++.

2022-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: new trivial simplifications

	Add the following rules:
	  - f|[+] = [+] if f rejects [*0]
	  - f|[*] = [*] if f accepts [*0]
	  - f&&[+] = f if f rejects [*0]
	  - b:b[*i..j] = b[*max(i,1)..j]
	  - b[*i..j]:b[*k..l] = b[*max(i,1)+max(k,1)-1,1), j+l-1]

	* spot/tl/formula.cc: Implement the new rules.
	* doc/tl/tl.tex: Document them.
	* tests/core/equals.test: Test them.
	* NEWS: Add them

2022-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: introduce one_plus(), and saturate predefined formulas

	* spot/tl/formula.hh, spot/tl/formula.cc (one_plus): New.
	(fnode): Add a saturated argument.
	(tt_, ff_, eword_, one_plus, one_star): Create saturated node.
	(destroy): Do not check for id() < 3.

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

	* NEWS: Typos.

2022-12-06  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	game: fix appending strategies bug

	When calling solve_parity_game() multiple times on the same
	automaton the strategies are appended one after the other.
	Reported by Dávid Smolka.

	* NEWS: Mention the bug.
	* spot/twaalgos/game.cc: Fix it.
	* tests/python/game.py: Test it.
	* THANKS: Add Dávid.

2022-12-06  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	mealy: fix incorrect assertion

	* spot/twaalgos/mealy_machine.cc (minimize_mealy): Do not compare
	result to the original unsplit machine without splitting it first.
	* tests/python/mealy.py: Add a test case.

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

	getopt: do not include sys/cdefs.h to please Alpine Linux

	* m4/getopt.m4: Pretend sys/cdefs.h is missing, so that Alpine linux
	does not output a warning which we would turn into an error.

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

	autfilt: print match count even on parse errors

	* bin/autfilt.cc: If -c is used, print the match_count even
	in present of parse errors.
	* tests/core/readsave.test: Adjust.
	* NEWS: Mention the bug.

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

	parseaut: diagnose states that are unused and undefined

	Reported by Pierre Ganty.

	* spot/parseaut/parseaut.yy: Add diagnostics.
	* tests/core/parseaut.test: Adjust expected output, and add a test
	case.
	* NEWS: Mention the bug.

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

	configure: --with-pythondir should also override pyexecdir

	Fixes #512.

	* configure.ac: Here.
	* NEWS: Mention the bug.

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

	ltl_to_tgba_fm: fix a memory leak on abort

	This issue surfaced in twacube.test after the previous patches.

	* spot/twaalgos/ltl2tgba_fm.cc: Release the formula namer on abort.
	* NEWS: Mention the bug.

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

	translate, simplify: limit containment checks of n-ary operators

	Fixes #521.

	* spot/tl/simplify.cc, spot/tl/simplify.hh,
	spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Add an option
	to limit automata-based implication checks of n-ary operators when too
	many operands are used.  Defaults to 16.
	* bin/spot-x.cc, NEWS, doc/tl/tl.tex: Document it.
	* tests/core/bdd.test: Disable the limit for this test.

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

	simplify: set exprop=false during containment checks

	For issue #521, reported by Jacopo Binchi.

	* spot/tl/simplify.cc: Here.
	* tests/core/521.test: New test case.
	* tests/Makefile.am: Add it.
	* NEWS: Mention it.
	* THANKS: Add Jacopo Binchi.

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

	misc Doxygen fixes

	* spot/misc/satsolver.hh, spot/tl/formula.hh, spot/twaalgos/hoa.hh,
	spot/twaalgos/synthesis.hh, spot/twaalgos/zlktree.hh,
	spot/twacube_algos/convert.hh: Typos in Doxygen comments.

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

	* debian/copyright: Fix download URL.

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

	adjust to Swig 4.1.0

	* python/spot/__init__.py: Add flatnested versions of some static
	methods.
	* spot/twa/acc.hh: Hide && version of & and |, causing trouble
	to swig.
	* tests/python/_synthesis.ipynb, tests/python/synthesis.ipynb:
	Upgrade expected type names.
	* tests/python/ipnbdoctest.py: Adjust for difference between 4.0 and
	4.1.

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

	* tests/sanity/style.test: Fix recent grep warnings.

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

	mealy: improve error reporting

	* spot/twaalgos/mealy_machine.cc: Add more exceptions.
	* tests/python/except.py: Test them.

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

	fix namespace for exception errors

	* spot/priv/satcommon.cc, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtwasat.cc: When setting exception on std::ofstream, use
	ofstream::failbit and ofstream::badbit instead of ifstream::failbit
	and ifstream::badbit.

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

	Bump version to 2.11.2.dev

	* NEWS, configure.ac: Here.

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

	Release Spot 2.11.2

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.11.2.

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

	do not use id for animating the logo

	because we remove ids using svgo...

	* doc/org/spot2.svg, doc/org/spot.css: Animate the verison using a
	class.

2022-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	declare all argp_program_doc as static

	* bench/stutter/stutter_invariance_formulas.cc, bin/autcross.cc,
	bin/autfilt.cc, bin/dstar2tgba.cc, bin/genaut.cc, bin/genltl.cc,
	bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc,
	bin/ltlfilt.cc, bin/ltlsynt.cc, bin/randaut.cc, bin/randltl.cc,
	bin/spot-x.cc, bin/spot.cc, tests/ltsmin/modelcheck.cc: Here.

2022-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel_here: make sure free_bddpair is called

	* spot/twaalgos/relabel.cc (relabel_here): This function has multiple
	exit paths, and none of them were calling bdd_freepair.  Use a
	unique_ptr to ensure that.

2022-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use bdd_restrict more

	Doing so reduced the number of GC passes tested in bdd.test, which is
	good.

	* spot/twaalgos/ltl2tgba_fm.cc: Simplify minato loops with
	bdd_restrict.
	* spot/twaalgos/synthesis.cc (split_2step): Use bdd_restrict instead
	of bdd_appex.
	* tests/core/bdd.test, tests/core/ltlf.test: Adjust test cases.

2022-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: add options to count unreachable states and transitions

	Based on a request from Pierre Ganty.

	* spot/twaalgos/stats.cc, spot/twaalgos/stats.hh,
	bin/common_aoutput.cc, bin/common_aoutput.hh: Implement those
	options.
	* tests/core/format.test: Add test case.
	* doc/org/autfilt.org: Update doc.
	* NEWS: Mention them.

2022-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/common_aoutput.cc: Missing space in doc string.

2022-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add a .mailmap for git

	* .mailmap: New file, to fix email inconsistencies.

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

	reduce_parity: expose the internal vectors of colors

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Add a
	reduce_parity_data class for access to the vectors of colors
	computed by reduce_parity.
	* python/spot/impl.i: Add bindings for std::vector<int>.

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

	reduce_parity: add layered option

	* spot/twaalgos/parity.cc: Implement it.
	* spot/twaalgos/parity.hh, NEWS: Document it.
	* tests/python/parity.ipynb: Demonstrate it.  This is the only test so
	far, but more uses are coming.

2022-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (debian-unstable-gcc-coverage): Disable devel mode.

2022-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: fix handling of concat and fusion

	* spot/tl/relabel.cc (formula_to_fgraph): Do not assume that n-ary
	operators are Boolean operators.
	* tests/python/relabel.py: Add a test case found while discussing
	some expression with Antoine Martin.
	* NEWS: Mention it.

2022-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/init.el.in: Typo in comment.

2022-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add news entry for previous fix.

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

	substitute @LIBSPOT_PTHREAD@ in spot/libspot.pc

	Fixes #520, reported by Fangyi Zhou.

	* spot/Makefile.am (libspot.pc): Substitute @LIBSPOT_PTHREAD@.
	* THANKS: Add Fangyi Zhou.

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

	* .gitlab-ci.yml: Fail if coverage goes below 90.7%.

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

	org: work around newer org-mode not displaying SVG as <object>

	* doc/org/init.el.in (spot-svg-output-as-object): New function.

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

	fix some typos

	* spot/graph/graph.hh, spot/ltsmin/spins_kripke.hxx,
	spot/mc/bloemen.hh, spot/mc/lpar13.hh, spot/twaalgos/determinize.cc:
	Here.

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

	replace bdd_relprod by bdd_restrict

	* spot/twaalgos/alternation.cc, spot/twaalgos/dualize.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/toweak.cc: Here.

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

	* NEWS, configure.ac: Bump version to 2.11.1.dev.

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

	Release Spot 2.11.1

	* NEWS, configure.ac, doc/org/setup.org: Update.

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

	CI: fix upload of stable Debian packages for amd64

	This prevented the Spot website to regenerate.
	Should fix #516 once we release 2.11.1.

	* .gitlab-ci.yml (publish-stable): Upload changes for amd64 and i386,
	not just the later.

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

	org: mention "make check" and the new GPG key

	Fixes #515.

	* doc/org/install.org: Here.

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

	hoa: add missing include

	Fixes #515, reported by Yuri Victorovich.

	* spot/twaalgos/hoa.hh: Include <unordered_map>.

2022-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.11.0.dev.

2022-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.11

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

2022-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (publish-unstable): Publish both amd64 and i386.

2022-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	CI: work around GIT_STRATEGY=none not cleaning the build dir

	* .gitlab-ci.yml (publish-rpm, publish-stable, publish-unstable):
	Use the latest files and clean things up after publication.

2022-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/Makefile.am (.ipynb.html): Use classic template.

2022-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix previous patch

	this patch failed on i386 and on Raspberry.

	* spot/twaalgos/translate.cc: Clear.
	* spot/twaalgos/postproc.cc: Call reduce_parity_here
	in more cases.

2022-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate, postproc: improve parity output

	* spot/twaalgos/translate.cc: When producing Parity output, split LTL
	as we do in the Generic case.
	* spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Use
	acd_transform() and add an "acd" option to disable this.
	* bin/spot-x.cc, NEWS: Document this.
	* tests/core/genltl.test, tests/core/minusx.test,
	tests/core/parity2.test: Adjust test cases for improved outputs.

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

	Update troubleshouting instruction for Python bindings

	For issue #512

	* README: Update instructions.
	* configure.ac: Add some code to warn if Python files will be
	installed in a place that is not searched up by default.  Add
	--with-pythondir support.
	* NEWS: Mention --with-pythondir.

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

	toparity: cover more options

	* tests/python/toparity.py: Augment test cases.

2022-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emptinesscheck: improve coverage of CVWY90 and SE05

	* tests/core/randtgba.cc: Test the ar:form_stack variants.

2022-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .dir-locals.el (bug-reference-bug-regexp): Fix first group.

2022-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add test for previous decomposition patch

	* tests/core/ltlsynt.test: Here.

2022-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ipnbdoctest.py: Also retry if Kernel does not respond.

2022-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (debian-gcc-snapshot): Build from tarball.

2022-10-03  Florian Renkin  <frenkin@lrde.epita.fr>

	dot: fix 'g' with a Mealy machine

	* spot/twaalgos/dot.cc: here
	* tests/python/mealy.py: add test

2022-10-03  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis: Fix for implication decomposition

	* spot/twaalgos/synthesis.cc: here

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

	test: fix running on python test in OpenBSD

	* tests/run.in: Add LD_LIBRARY_PATH.

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

	revert c45ff0c94 and add test case showing why

	* bin/ltlsynt.cc: Revert c45ff0c94.  Also fix documentation of exit
	status.
	* tests/core/ltlsynt2.test: New file.
	* tests/Makefile.am: Add it.

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

	update gitlab references

	As LRDE is being renamed LRE, gitlab is one of the first URL to
	migrate.  The old URL is still supported, but we want to only use the
	new one eventually.

	* .dir-locals.el, .gitlab-ci.yml, HACKING, NEWS, doc/org/concepts.org,
	doc/org/install.org, doc/org/setup.org, elisp/Makefile.am,
	elisp/hoa-mode.el, tests/ltsmin/README: Update to the new gitlab URL.

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

	* doc/tl/tl.tex: Fix a couple of typos detected by ispell.

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

	translate: add a branch-post option

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Here.
	* NEWS, bin/spot-x.cc: Mention it.
	* tests/core/genltl.test: Test it.

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

	genltl: introduce --eil-gsi

	Based on a mail from Edmond Irani Liu.  The test case also serves for
	the previous patch.

	* bin/genltl.cc, spot/gen/formulas.cc, spot/gen/formulas.hh: Add it.
	* NEWS: Mention it.
	* tests/core/genltl.test: Test it.

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

	introduce delay_branching_here

	This is motivated by an example sent by Edmond Irani Liu,
	that will be tested in next patch.

	* spot/twaalgos/dbranch.cc, spot/twaalgos/dbranch.hh: New files.
	* python/spot/impl.i, spot/twaalgos/Makefile.am: Add them.
	* spot/twaalgos/translate.cc: Call delay_branching_here
	unconditionally.
	* spot/twa/twagraph.cc (defrag_states): Do not assume
	that games are alternating.
	* tests/core/genltl.test: Adjust expected numbers.
	* tests/python/dbranch.py: New file.
	* tests/Makefile.am: Add it.

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

	simplify some uses of minato_isop

	Typically intead of doing

	    minato_isop isop(rel & letter);
	    while (bdd cube = isop.next()) {
	       bdd res = bdd_exists(cube, ap)
	       ...
	    }

	do

	    minato_isop isop(bdd_relprod(rel, letter, ap);
	    while (bdd res = isop.next()) {
	       ...
	    }

	this way the existential quantification is done once at the same time
	of the conjunction, and isop has fewer variable to work with.

	* spot/twaalgos/alternation.cc, spot/twaalgos/dualize.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/toweak.cc: Here.

2022-09-21  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	fix: ltlsynt --tlsf does not propagate name to csv

	* bin/ltlsynt.cc: Here

2022-09-21  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Improving minimize_mealy benchmarking

	* python/spot/__init__.py: Adding helper function for
	inline plot of csv
	*spot/twaalgos/mealy_machine.cc, spot/twaalgos/mealy_machine.hh:
	Main changes
	* tests/python/_mealy.ipynb: Update
	* tests/python/ipnbdoctest.py: Ignore timing table
	* tests/python/synthesis.ipynb: Update

2022-09-21  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Improve aiger INF encoding

	the encoding cna be simplified to produce less gates
	when high or low is True.

	* spot/twaalgos/aiger.cc: Here
	* tests/python/_synthesis.ipynb: Test

2022-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: add options --dot and --hide-status

	* bin/ltlsynt.cc: Implement these options.
	* bin/common_aoutput.hh, bin/common_aoutput.cc (automaton_format_opt):
	Make extern.
	* NEWS: Mention the new options.
	* doc/org/ltlsynt.org: Use dot output in documentation.
	* tests/core/ltlsynt.test: Quick test of the new options.

2022-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: fix documentation of --aiger option

	* bin/ltlsynt.cc: Here.

2022-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: introduce -x merge-states-min

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Introduce a
	merge-states-min option.
	* bin/spot-x.cc: Document it.
	* spot/gen/automata.cc, spot/gen/automata.hh, bin/genaut.cc: Add
	option to generate cyclist test cases.
	* NEWS: Document the above.
	* tests/core/included.test: Add test cases that used to be too slow.

2022-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org (T-based vs. S-based acceptance): Adjust example.

2022-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: learn to work on generalized-Co-Büchi as well

	* spot/twaalgos/degen.hh, spot/twaalgos/degen.cc: Adjust
	degeneralize() and degeneralize_tba() to work on generalized-co-Büchi.
	* NEWS: Mention this.
	* spot/twaalgos/cobuchi.hh, spot/twaalgos/cobuchi.cc (to_nca): Use
	degeneralization on generalized-co-Büchi.
	* spot/twaalgos/postproc.cc: Use degeneralization for generalized
	co-Büchi as well.
	* bin/autfilt.cc: Improve chain products of co-Büchi automata by using
	generalization if too many colors are needed.
	* tests/core/prodchain.test, tests/python/pdegen.py: Add test cases.

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

	add the TACAS'22 reference

	* doc/org/citing.org, doc/spot.bib: There.

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

	product: Büchi|Büchi=Büchi, CoBüchi&CoBüchi=CoBüchi

	Improve the construction of the above constructions, saving colors.

	* spot/twaalgos/product.cc: Here.
	* spot/twaalgos/product.hh, NEWS: Mention it.
	* tests/core/prodchain.test, tests/core/prodor.test,
	tests/python/_product_weak.ipynb: Adjust.

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

	we want the tarball we distribute to be built on Debian unstable

	See issue #512.

	* .gitlab-ci.yml (make-dist): New build.
	(debian-unstable-gcc-pypy, arch-gcc-glibcxxdebug, mingw-shared,
	mingw-static, publish-stable): Depend upon make-dist.

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

	* .gitlab-ci.yml (debian-unstable-gcc-coverage): Export coverage.css.

2022-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Use gcovr and produce an XML report for gitlab.

2022-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twagraph.cc (merge_states): Some cleanup and simplifications.

2022-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not use a global variable to define the number of available threads

	* python/spot/impl.i: Make parallel_policy implicitly contractible.
	* spot/graph/graph.hh (sort_edges_srcfirst_): Pass a parallel_policy
	explicitly.
	* spot/twa/twagraph.hh, spot/twa/twagraph.cc (merge_states): Likewise.
	* spot/misc/common.cc: Remove file.
	* spot/misc/common.hh (set_nthreads, get_nthreads): Remove, and
	replace with...
	(parallel_policy): ... this.
	* spot/misc/Makefile.am, tests/python/mergedge.py, NEWS: Adjust.

2022-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/spot.bib: Add entries for last two tool papers.

2022-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Mention the CAV'22 paper

	* doc/org/citing.org: Here.
	* doc/org/spot.css: Add support for "begin_note...end_note".

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

	mealy: cleanup the doxygen documentation

	* spot/twaalgos/mealy_machine.hh: Create a new "Mealy" section for
	all these function, and fix some doc strings.

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

	mealy: make output_assignment the default for reduce_mealy

	* spot/twaalgos/mealy_machine.hh: Here. Also cite the FORTE paper.
	* doc/spot.bib (renkin.22.forte): New entry.

2022-08-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut10.org: Use the same formula in C++ as in Python and sh.

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

	rename pg_print() as print_pg() and add it to to_str()

	* NEWS: Mention those change.
	* spot/twaalgos/game.hh (print_pg): New function.
	(pg_print): Mark as deprecated.
	* spot/twaalgos/game.cc (pg_print): Redirect to print_pg().
	(print_pg): Update to output state names.
	* python/spot/__init__.py: Teach to_str() about print_pg().
	* bin/ltlsynt.cc: Adjust to call print_pg().
	* tests/python/games.ipynb: Add an example.
	* tests/core/ltlsynt.test: Adjust to remove the "INIT" note.

2022-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/hoa.cc: Typo in error message.

2022-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: Add support for PGSolver's format

	* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll: Add rules for
	PGSolver's format.
	* spot/parseaut/public.hh: PGAME is a new type of output.
	* tests/core/pgsolver.test: New file.
	* tests/Makefile.am: Add it.
	* tests/python/games.ipynb: More exemples.
	* NEWS: Mention the new feature.

2022-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	test: ignore OpenBSD's "Terminated" messages

	For #501.

	* tests/core/autcross4.test: Here.

2022-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: add figures from CAV'22 paper

	* tests/python/cav22-figs.ipynb: New file.
	* doc/org/tut.org, tests/Makefile.am: Add it.

2022-07-07  Antoine Martin  <amartin@lrde.epita.fr>

	Trigger archival services on new release

	* .gitlab-ci.yml: curl Software Heritage and Internet Archive endpoints
	to trigger archival on push to stable

2022-07-07  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Rewrite the function and add new transformations

	* spot/twaalgos/synthesis.cc: Now needs to call reduce_parity.
	* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh: here.
	* spot/twaalgos/zlktree.hh: make zielonka_node public
	* tests/core/ltlsynt.test, tests/python/games.ipynb,
	  tests/python/synthesis.ipynb, tests/python/toparity.py:
	  update tests

2022-07-07  Florian Renkin  <frenkin@lrde.epita.fr>

	Add a procedure that detects if an automaton is parity-type

	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: add detection
	  of edges that are in at least one accepting cycle.
	* spot/twaalgos/toparity.cc,
	  spot/twaalgos/toparity.hh: add parity_type_to_parity and
	  buchi_type_to_buchi.

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

	rpm: omit *.la files

	* spot.spec.in: It seems RedHat does not distribute *.la files anymore.

2022-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bloemen: simplify style

	Fixes #510.

	* spot/mc/bloemen_ec.hh: Here.

2022-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bloemen: fix a unused variable warning

	As discussed in #510.

	* spot/mc/bloemen_ec.hh: Here.

2022-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/mc/cndfs.hh: Fix a unused variable warning in NDEBUG.

2022-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: work around a warning on red hat

	When n is an int, doing "new formula[n];" gives us "warning: argument 1
	value '18446744073709551615' exceeds maximum object size
	9223372036854775807" on Red Hat.

	* spot/gen/formulas.cc (pps_arbiter): Pass n as unsigned.  Also
	fix some determinism in the strict variant.

2022-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	utf8: Update to match current version

	* utf8/LICENSE, utf8/utf8/cpp11.h, utf8/utf8/cpp17.h: New files.
	* Makefile.am: Distribute them.
	* utf8/README.md, utf8/utf8/checked.h, utf8/utf8/core.h,
	utf8/utf8/unchecked.h: Update to the current version of utfcpp.
	* README: Add a link to the upstream github.

2022-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/mealy_machine.cc (is_complete_): Define in debug only.

2022-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around GCC bug 106159

	* m4/gccwarn.m4: Add an example of multiple inheritance of virtual
	classes to trigger to new -Woverloaded-virtual warning on the
	destructor.

2022-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: install the environ module

	This should fix compilation on OSX, as reported by Yann Thierry-Mieg.

	* m4/environ.m4: New file.
	* m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.
	* bin/common_trans.cc [HAVE_SPAWN_H]: Do not define environ.

2022-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/degen.cc (propagate_marks_here): Cleanup previous patch.

2022-06-29  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	propagate_marks_here can break state-acc prop

	* spot/twaalgos/degen.cc: Fix
	* tests/python/pdegen.py: Test

2022-06-29  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Adept ltlsynt pgame to new solver

	* bin/ltlsynt.cc: Remove change/colorize_parity, check alternating

2022-06-27  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Use new zielonka for synthesis

	Remove all now unnecessary colorize_parity and
	change_parity calls.

	* spot/twaalgos/synthesis.cc: Change here
	* spot/twaalgos/game.cc: Adjust pg-print
	* tests/core/ltlsynt.test,
	  tests/python/_mealy.ipynb,
	  tests/python/games.ipynb,
	  tests/python/synthesis.ipynb,
	  tests/python/synthesis.py: Adjust tests

2022-06-27  philipp  <philipp@lrde.epita.fr>

	Modifying Zielonka

	* spot/twaalgos/game.cc: solve_parity_game now works for any of
	the four parity types and partially colored graphs.
	 Also removing unnescessary steps from Zielonka.
	h: Update
	* tests/python/game.py: Update and additional tests
	* tests/python/except.py: Remove outdated exception

2022-06-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: quote identifiers containing a minus

	* spot/twaalgos/dot.cc: Quote identifiers containing a minus.
	* tests/core/alternating.test: Add test case.
	* NEWS: Mention the bug.

2022-06-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: fix creation of universal edge

	* spot/graph/graph.hh: Use a temporary array to store the destination
	vector if the passed range belong to the dests_ vector.  Otherwise the
	passed begin/end risk being invalidated when dests_ is reallocated.
	* NEWS: Mention the bug.

2022-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	contains: generalize second argument to a twa

	This was triggered by a question from Pierre Ganty on the mailing
	list.

	* spot/twaalgos/contains.hh, spot/twaalgos/contains.cc (contains):
	Generalize second argument to const_twa_ptr instead of
	const_twa_graph_ptr.
	* NEWS: Mention this.
	* tests/python/ltsmin-pml.ipynb: Show that it work.
	* THANKS: Mention Pierre.

2022-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: add --from-pgame option to read parity games

	* bin/common_file.cc, bin/common_file.hh (output_file): Add a
	force_append option.
	* bin/ltlsynt.cc: Implement the --from-pgame option, and
	fix suppot for --csv when multiple inputs are processed.
	* NEWS: Mention the new option.
	* tests/core/syfco.test: Add a test case.
	* tests/core/ltlsynt-pgame.test: New file.
	* tests/Makefile.am: Add it.

2022-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: support multiple --tlsf options

	* bin/common_finput.cc, bin/common_finput.hh: Add support for
	process_tlsf_file.
	* bin/ltlsynt.cc: Implement it.
	* tests/core/syfco.test: Adjust test case.

2022-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: separate process_file() for aut and ltl

	* bin/common_finput.cc, bin/common_finput.hh,
	bin/common_hoaread.hh (process_file): Split into...
	(process_ltl_file, process_aut_filt): ... these, as we will need both
	in ltlsynt.

2022-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: workaround test not failing if the Spot support more colors

	* configure.ac (MAX_ACCSETS): Add AC_SUBST.
	* tests/run.in: Define MAX_ACCSETS.
	* tests/core/prodchain.test: Test MAX_ACCSETS.

2022-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a --enable-pthread option to activate experimental threading code

	* NEWS, README, doc/org/compile.org: Mention the option and
	its effect on compilation requirements.
	* configure.ac: Add the --enable-pthread option, and ENABLE_PTHREAD
	macro.
	* doc/org/g++wrap.in, spot/Makefile.am, spot/libspot.pc.in: Compile
	with -pthread conditionally.
	* spot/graph/graph.hh, spot/twa/twagraph.cc: Adjust the code to not
	use thread-local variables, and let the pthread code be optional.
	* .gitlab-ci.yml: Activate --enable-pthread in two configurations.

2022-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add a newer version of the generic emptiness check

	As discussed with Jan Strejček.

	* spot/twa/acc.cc, spot/twa/acc.hh (fin_unit_one_split): New function.
	(fin_one_extract): Return the simplified acceptance condition as an
	optimization.
	* python/spot/impl.i: Bind this new function.
	* tests/python/acc.py: New file, to test it.
	* tests/Makefile.am: Add acc.py.
	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Implement the
	spot211 variant of the emptiness check.
	* tests/python/genem.py: Test it.
	* tests/python/acc_cond.ipynb: Adjust test for fin_one_extract.

2022-05-31  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis: Deletion of an incorrect case in the bypass

	With a formula like G(b1) & (GFi <-> GF(b1)), a direct strategy was
	created while it is unrealizable.

	* spot/twaalgos/synthesis.cc: here.
	* tests/core/ltlsynt.test: add tests

2022-05-24  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Introduce a faster merge_states

	merge_states is now hash-based, uses the new edge-sorting with
	src first and can be executed in parallel.

	* spot/twa/twagraph.cc: Here
	* tests/python/mergedge.py: Test

2022-05-24  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Add a new function to sort edges

	sort_edge_srcfirst_ will sort the edge with respect
	to the src state, then sort each sub list with respect
	to the given predicate, possibly in parallel.

	* spot/graph/graph.hh: Here

2022-05-24  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Introducing a global variable to define the number of threads

	* NEWS: Announce
	* spot/Makefile.am: Add pthread to use threads
	* spot/misc/common.cc,
	  spot/misc/common.hh: Add variable + getter/setter
	* spot/misc/Makefile.am: Add common.cc

2022-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: use a cache in the construction of zielonka_tree

	This largely speeds up the computation for conditions
	like "Rabin n" sharing a lot of subtrees.

	Also implement options to stop the construction if the shape is wrong.

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: Implement the
	cache and the options.
	* tests/python/zlktree.ipynb, tests/python/zlktree.py: New tests.

2022-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: do not force Büchi on universal automata

	* spot/twaalgos/complete.hh: Adjust documentation.
	* spot/twaalgos/complete.cc: If the acceptance condition is a
	tautology, delay the forcing of Büchi acceptance until we are sure it
	is needed.
	* NEWS: Mention the change.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

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

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.10.6

	* NEWS, configure.ac, doc/org/setup.org: Set version to 2.10.6.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more noexcept to pleace GCC

	* spot/bricks/brick-hashset (Row): Add noexcept.
	* bin/autcross.cc (out_statistics): Likewise.
	* bin/ltlcross.cc (statistics): Likewise.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	GCC 12 warns too much about <regex>

	See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562

	* m4/gccwarn.m4: Compile a small regex and add
	-Wno-maybe-uninitialized if needed.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around spurious gcc 12 "potentially null dereference"

	The issue seems to be inside std::vector's copy constructor, but it
	highlighted places in Spot were we could avoid this copy.

	* spot/twaalgos/ltl2taa.cc: Avoid some copies of std::vector<formula>.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a clang++15 warning

	* spot/parseaut/parseaut.yy: Move the try-block inside the code of the
	constructors, so that they can refer to non-static members.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix warnings from clang-15

	* spot/twa/acc.cc (acc_cond::acc_code::symmetries): Fix weird loop.
	* spot/twaalgos/aiger.cc (aig::circ_step): Replace & by &&.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/bdddict.hh (bdd_info): Add noexcept, suggested by gcc 12.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: reset column specification between files

	* bin/common_finput.cc (job_processor::process_file): Reset
	col_to_read.
	* tests/core/ltlfilt.test: Test it.
	* NEWS: Mention the bug.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix compilation on MacOS X

	Patch by Shachar Itzhaky.

	* spot/parseaut/scanaut.ll, spot/parsetl/scantl.ll: Include
	libc-config.h instead of config.h.
	* NEWS: Mention the fix.
	* THANKS: Add Shachar.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twagraph: improve copy of kripke_graph

	Fix #505, Reported by Edmond Irani Liu.

	* spot/twa/twagraph.cc (copy): Deal with kripke_graph in a better way.
	* spot/twaalgos/hoa.cc: Do not force the use of named-states since
	when the input is a kripke_graph.
	* tests/python/kripke.py: Adjust test cases.
	* NEWS: Mention the change.
	* THANKS: Add Edmund.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: remove a superfluous diagnostic on some erroneous input

	* tests/core/neverclaimread.test: Adjust and remove FIXME.
	* spot/parsetl/parsetl.yy (try_recursive_parse): Return false
	on empty string.

2022-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix link to parity game example

	Reported by Florian Renkin.

	* doc/org/index.org: Here.

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

	more noexcept to pleace GCC

	* spot/bricks/brick-hashset (Row): Add noexcept.
	* bin/autcross.cc (out_statistics): Likewise.
	* bin/ltlcross.cc (statistics): Likewise.

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

	GCC 12 warns too much about <regex>

	See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105562

	* m4/gccwarn.m4: Compile a small regex and add
	-Wno-maybe-uninitialized if needed.

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

	work around spurious gcc 12 "potentially null dereference"

	The issue seems to be inside std::vector's copy constructor, but it
	highlighted places in Spot were we could avoid this copy.

	* spot/twaalgos/ltl2taa.cc: Avoid some copies of std::vector<formula>.

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

	Fix a clang++15 warning

	* spot/parseaut/parseaut.yy: Move the try-block inside the code of the
	constructors, so that they can refer to non-static members.

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

	fix warnings from clang-15

	* spot/twa/acc.cc (acc_cond::acc_code::symmetries): Fix weird loop.
	* spot/twaalgos/aiger.cc (aig::circ_step): Replace & by &&.

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

	* spot/twa/bdddict.hh (bdd_info): Add noexcept, suggested by gcc 12.

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

	bin: reset column specification between files

	* bin/common_finput.cc (job_processor::process_file): Reset
	col_to_read.
	* tests/core/ltlfilt.test: Test it.
	* NEWS: Mention the bug.

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

	bin: introduce a non-binary job_type

	This will later help improve the handling of different input types of
	ltlsynt.

	* bin/common_finput.hh (job_type): New enum.
	(job::type): Use it.
	* bin/autcross.cc, bin/autfilt.cc, bin/common_finput.cc,
	bin/dstar2tgba.cc, bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc,
	bin/ltldo.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/ltlsynt.cc: Adjust
	to use the job_type enum instead of a boolean.

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

	Fix compilation on MacOS X

	Patch by Shachar Itzhaky.

	* spot/parseaut/scanaut.ll, spot/parsetl/scantl.ll: Include
	libc-config.h instead of config.h.
	* NEWS: Mention the fix.
	* THANKS: Add Shachar.

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

	twagraph: improve copy of kripke_graph

	Fix #505, Reported by Edmond Irani Liu.

	* spot/twa/twagraph.cc (copy): Deal with kripke_graph in a better way.
	* spot/twaalgos/hoa.cc: Do not force the use of named-states since
	when the input is a kripke_graph.
	* tests/python/kripke.py: Adjust test cases.
	* NEWS: Mention the change.
	* THANKS: Add Edmund.

2022-05-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: remove a superfluous diagnostic on some erroneous input

	* tests/core/neverclaimread.test: Adjust and remove FIXME.
	* spot/parsetl/parsetl.yy (try_recursive_parse): Return false
	on empty string.

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

	Fix link to parity game example

	Reported by Florian Renkin.

	* doc/org/index.org: Here.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.10.5.dev.

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

	Release Spot 2.10.5

	* NEWS, configure.ac, doc/org/setup.org: Update.

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

	update NEWS for upcoming release

	* NEWS: Here.

2022-05-02  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: don't solve games when we want to display them

	* bin/ltlsynt.cc: here

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

	debian: simplify LTO configuration to work around newer libtool

	Libtool 2.4.7 breaks if AR_FLAGS contains a space. See
	https://lists.gnu.org/archive/html/bug-libtool/2022-03/msg00009.html

	* debian/rules: Use gcc-{nm,ar,ranlib} so we do not have to pass
	the plugin explicitly.

2022-05-02  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Correct bug in zielonka

	Optimization in Zielonka failed
	under certain circumstances
	todo: Devise a specialized test
	for direct attr computation

	* spot/twaalgos/game.cc: Correction
	* tests/python/game.py: Test

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

	* doc/org/tut40.org: Clarify, as suggested by a CAV'22 reviewer.

2022-05-02  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: don't fail if --outs or --ins is set to empty

	* bin/ltlsynt.cc: here
	* tests/core/ltlsynt.test: add tests

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

	* spot/twaalgos/gfguarantee.hh: Typos in comments.

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

	graph: fix invalid read

	Reported by Florian Renkin.

	* spot/graph/graph.hh (sort_edges_of): Fix invalid read when sorting a
	state without successor.  Seen on core/tgbagraph.test.

2022-05-02  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: typo in help

	* bin/ltlsynt.cc: here

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

	fix typos and make formula_from_bdd more usable in Python

	* python/spot/impl.i (formula_from_bdd): Instantiate for twa_graph.
	* spot/twa/twa.hh (register_aps_from_dict): Typo in exception.
	* tests/python/except.py: More tests for the above.
	* tests/python/bdddict.py: Typo in comment.

2022-05-02  Antoine Martin  <amartin@lrde.epita.fr>

	tests: don't wipe python environment

	* tests/run.in: keep original PYTHONPATH contents
	* NEWS: mention the bug

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

	tests: avoid seq

	Partial fix for #501.

	* tests/core/prodchain.test: Hardcode the seq output.
	* tests/core/bricks.test: Use $AWK instead of seq.
	* tests/core/defs.in: Define $AWK.
	* NEWS: Mention the bug.

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

	* .gitlab-ci.yml (alpine-gcc): Fix path for logs.

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

	work around an issue in Flex 2.6.4

	The fallback definition of SIZE_MAX supplied by flex was not
	preprocessor friendly and prevented robin_hood.hh from doing "#if
	SIZE_MAX == UINT64_MAX", as observed by Marc Espie on OpenBSD.

	* spot/parseaut/scanaut.ll, spot/parsetl/scantl.ll: Define
	__STDC_VERSION__ just so that the code generated by Flex
	include <inttypes.h>.
	* NEWS: Mention the bug.
	* THANKS: Add Marc.

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

	reduce_parity: fix to work on automata with deleted edges

	* spot/twaalgos/parity.cc (reduce_parity): Use the
	size of the edge vector to initialize piprime1 and piprime2,
	not the number of edges.
	* tests/python/parity.py: Add test case, based on a report
	by Yann Thierry-Mieg.

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

	remove uses of unary_function and binary_function

	These were deprecated in C++11, and are supposed to be removed from
	C++17, however gcc-snapshot just started warning about those.

	* spot/misc/bddlt.hh, spot/misc/hash.hh, spot/misc/ltstr.hh,
	spot/twa/taatgba.hh, spot/twaalgos/ltl2tgba_fm.cc: Here.

2022-04-25  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: display the number of subformulas

	* bin/ltlsynt.cc: here
	* tests/core/ltlsynt.test: ajust tests

2022-04-25  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: don't solve games when we want to display them

	* bin/ltlsynt.cc: here

2022-04-25  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: display ACD instead of LAR when needed

	* spot/twaalgos/synthesis.cc: here
	* tests/core/ltlsynt.test: add test

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

	ltlsynt: implement --tlsf to call syfco automatically

	Fixes #473.

	* NEWS, doc/org/ltlsynt.org: Mention it.
	* bin/common_trans.cc, bin/common_trans.hh (read_stdout_of_command):
	New function.
	* bin/ltlsynt.cc: Implement the --tlsf option.
	* tests/core/syfco.test: New file.
	* tests/Makefile.am: Add it.

2022-04-07  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	+ud option of mealy_machine_to_aig received wrong value

	Also aiger received a tracing option for
	debugging

	* spot/twaalgos/aiger.cc: Here
	* tests/core/ltlsynt.test: Test

2022-04-07  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Propagate colors in split_2step

	Reduce the amount of uncolored transitions
	after split_2step by trying to color the env transitions.
	This is currently only supported for parity like
	acceptance conditions.

	* spot/twaalgos/game.cc: Determinizatio of "colored"
	game can created trivial self-loops. Fix them
	* spot/twaalgos/synthesis.cc: Here
	* tests/core/ltlsynt.test,
	tests/python/_synthesis.ipynb,
	tests/python/games.ipynb,
	tests/python/synthesis.ipynb,
	tests/python/synthesis.py: New and adjusted tests

2022-04-07  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Update merge_states

	Current implementation of merge_states fails
	on certain self-loops.
	Updated implementation to take them into
	account and use a hashbased implementation
	to speed up calculations.
	Moreover, merge_states() is now aware
	of "state-player", just like defrag_states_

	* spot/twa/twagraph.cc: Here
	* spot/twaalgos/game.cc: Fix odd cycle for sink
	* spot/twaalgos/synthesis.cc: Adapt split_det pipeline
	* tests/python/_synthesis.ipynb: Tests

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

	autcross: implement --language-complemented

	Suggested by Ondřej Lengál.  Fixes #504.

	* bin/autcross.cc: Implement the --language-complemented option.
	* NEWS, doc/org/autcross.org: Document it.
	* tests/core/autcross.test: Test it.
	* THANKS: Add Ondřej.

2022-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: simplify LTO configuration to work around newer libtool

	Libtool 2.4.7 breaks if AR_FLAGS contains a space. See
	https://lists.gnu.org/archive/html/bug-libtool/2022-03/msg00009.html

	* debian/rules: Use gcc-{nm,ar,ranlib} so we do not have to pass
	the plugin explicitly.

2022-03-29  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Correct bug in zielonka

	Optimization in Zielonka failed
	under certain circumstances
	todo: Devise a specialized test
	for direct attr computation

	* spot/twaalgos/game.cc: Correction
	* tests/python/game.py: Test

2022-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: speedup parsing of n-ary operators with many operands

	Issue #500, reported by Yann Thierry-Mieg.

	* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Use variant
	to store a new pnode objects that delays the construction of n-ary
	operators.
	* spot/parsetl/Makefile.am: Do not distribute stack.hh anymore.
	* spot/tl/formula.cc: Fix detection of overflow in Star and FStar.
	* HACKING: Update Bison requirements to 3.3.
	* tests/core/500.test: New test case.
	* tests/Makefile.am: Add it.
	* tests/core/ltl2tgba2.test, tests/core/ltlsynt.test,
	tests/core/tostring.test: Adjust to new expected order.
	* NEWS: Mention the change.

2022-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut40.org: Clarify, as suggested by a CAV'22 reviewer.

2022-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: create a "bypass" option

	* bin/ltlsynt.cc: here.
	* tests/core/ltlsynt.test: add tests

2022-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: generalization of the bypass

	* spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh: generalize the
	  bypass and avoid to construct a strategy when we want realizability.
	* bin/ltlsynt.cc: adapt for realizability
	* tests/core/ltlsynt.test: update tests

2022-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	option_map: Don't report unused options if option_map is not used

	* spot/misc/optionmap.cc, spot/misc/optionmap.hh: here.

2022-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: add --algo=acd

	* bin/ltlsynt.cc: Add "acd" to the list of possible paritization
			  algorithms used by ltlsynt
	* spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh: Add
		ACD as paritisation algorithm
	* tests/core/ltlsynt.test: add tests

2022-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis.ipynb: remove useless import

	* tests/python/synthesis.ipynb: here.

2022-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: don't fail if --outs or --ins is set to empty

	* bin/ltlsynt.cc: here
	* tests/core/ltlsynt.test: add tests

2022-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/gfguarantee.hh: Typos in comments.

2022-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: fix invalid read

	Reported by Florian Renkin.

	* spot/graph/graph.hh (sort_edges_of): Fix invalid read when sorting a
	state without successor.  Seen on core/tgbagraph.test.

2022-03-21  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Removing eeroneaus test

	* tests/python/except.py: Here

2022-03-18  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Introduce simplify_mealy

	Convenience function dispatching to
	minimize_mealy and reduce_mealy.
	Change tests accordingly

	* spot/twaalgos/mealy_machine.cc,
	  spot/twaalgos/mealy_machine.hh: Here
	* bin/ltlsynt.cc: Use simplify
	* spot/twaalgos/synthesis.cc,
	  spot/twaalgos/synthesis.hh: Remove
	 minimization, Update options
	* tests/core/ltlsynt.test,
	  tests/python/synthesis.ipynb,
	  tests/python/_synthesis.ipynb: Adapt

2022-03-18  Philipp Schlehuber-Caissier  <philipp@lrde.epita.fr>

	Introduce mealy_prod

	Product between mealy machines
	with propagation of synthesis outputs
	and additional assertions.
	Currently it only supports input complete machines

	* spot/twaalgos/mealy_machine.cc,
	  spot/twaalgos/mealy_machine.hh: Here
	* bin/ltlsynt.cc: Use
	* tests/python/except.py,
	  tests/python/synthesis.ipynb: Test

2022-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix mempool test to use __has_include

	This follows 6b88d6f35b2e.

	* tests/core/mempool.cc: Use __has_include too.

2022-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	synthesis: fix suboptimal colorization after LAR

	* spot/twaalgos/synthesis.cc (ltl_to_game): In LAR and LAR_OLD mode,
	for max odd and colorize the game after the split, not before.  The
	previous code used to colorize twice, and could waste up to 4 colors
	in the process.
	* tests/core/ltlsynt.test, tests/python/_mealy.ipynb,
	tests/python/games.ipynb, tests/python/synthesis.ipynb,
	tests/python/synthesis.py: Adjust all test cases to reflect the fact
	that the game uses fewer colors.

2022-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	optionmap: set_if_unset and simplifications

	* spot/misc/optionmap.hh (set_if_unset): New method.
	* spot/misc/optionmap.cc (set_if_unset, set, set_str): Implement
	set_if_unset, and simplify set and set_str to not perform two lookups.
	* spot/twaalgos/synthesis.cc (create_translator): Use set_if_unset
	to simplify the code.

2022-03-17  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis.ipynb: correct typos

	* tests/python/synthesis.ipynb: here

2022-03-15  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: typo in help

	* bin/ltlsynt.cc: here

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

	fix typos and make formula_from_bdd more usable in Python

	* python/spot/impl.i (formula_from_bdd): Instantiate for twa_graph.
	* spot/twa/twa.hh (register_aps_from_dict): Typo in exception.
	* tests/python/except.py: More tests for the above.
	* tests/python/bdddict.py: Typo in comment.

2022-03-10  Antoine Martin  <amartin@lrde.epita.fr>

	tests: don't wipe python environment

	* tests/run.in: keep original PYTHONPATH contents
	* NEWS: mention the bug

2022-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: replace all "assert" by unittest assertions

	If the assert fails because of a comparison, it is useful that the
	test suite log contains a comparison of these values.
	unittest.assertEqual() and friends do that for us.

	* HACKING: Add a section about Python tests.
	* tests/sanity/style.test: Forbid the use of "assert" in
	Python tests.
	* tests/python/298.py, tests/python/341.py, tests/python/471.py,
	tests/python/accparse2.py, tests/python/aiger.py,
	tests/python/aliases.py, tests/python/alternating.py,
	tests/python/bdddict.py, tests/python/bdditer.py,
	tests/python/bugdet.py, tests/python/complement_semidet.py,
	tests/python/declenv.py, tests/python/decompose_scc.py,
	tests/python/det.py, tests/python/dualize.py, tests/python/ecfalse.py,
	tests/python/except.py, tests/python/game.py, tests/python/gen.py,
	tests/python/genem.py, tests/python/implies.py,
	tests/python/intrun.py, tests/python/kripke.py,
	tests/python/langmap.py, tests/python/ltl2tgba.py,
	tests/python/ltlf.py, tests/python/ltlparse.py,
	tests/python/ltlsimple.py, tests/python/mealy.py,
	tests/python/merge.py, tests/python/mergedge.py,
	tests/python/misc-ec.py, tests/python/optionmap.py,
	tests/python/origstate.py, tests/python/otfcrash.py,
	tests/python/parity.py, tests/python/parsetgba.py,
	tests/python/pdegen.py, tests/python/prodexpt.py,
	tests/python/randgen.py, tests/python/relabel.py,
	tests/python/remfin.py, tests/python/removeap.py,
	tests/python/rs_like.py, tests/python/satmin.py,
	tests/python/sbacc.py, tests/python/sccfilter.py,
	tests/python/sccinfo.py, tests/python/sccsplit.py,
	tests/python/semidet.py, tests/python/setacc.py,
	tests/python/setxor.py, tests/python/simplacc.py,
	tests/python/simstate.py, tests/python/sonf.py, tests/python/split.py,
	tests/python/streett_totgba.py, tests/python/streett_totgba2.py,
	tests/python/stutter.py, tests/python/sum.py,
	tests/python/synthesis.py, tests/python/toparity.py,
	tests/python/toweak.py, tests/python/tra2tba.py,
	tests/python/trival.py, tests/python/twagraph.py,
	tests/python/zlktree.py: Replace all occurrences of "assert" by calls
	to unittest.TestCase methods.

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

	tests: avoid seq

	Partial fix for #501.

	* tests/core/prodchain.test: Hardcode the seq output.
	* tests/core/bricks.test: Use $AWK instead of seq.
	* tests/core/defs.in: Define $AWK.
	* NEWS: Mention the bug.

2022-03-04  Antoine Martin  <amartin@lrde.epita.fr>

	ltlfilt: add --sonf and --sonf-aps flags

	* bin/ltlfilt.cc: Here.
	* NEWS: Mention new ltlfilt flags.
	* tests/Makefile.am, tests/core/sonf.test: Test these flags.

2022-03-04  Antoine Martin  <amartin@lrde.epita.fr>

	tl: implement suffix operator normal form

	* spot/tl/Makefile.am: New sonf files
	* spot/tl/sonf.cc, spot/tl/sonf.hh: Here.
	* python/spot/impl.i: include sonf.hh header
	* doc/spot.bib: add entry for the SONF paper
	* tests/Makefile.am: new python tests
	* tests/python/formulas.ipynb: show sample usage
	* tests/python/sonf.py: test automata equivalence before/after SONF
	* NEWS: mention the change

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

	* .gitlab-ci.yml (alpine-gcc): Fix path for logs.

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

	configure: remove some header checks

	do them using C++17's __has_include instead

	* configure.ac: Do not check for sys/times.h,
	valgrind/memcheck.h, and spawn.h.
	* bin/common_trans.cc, spot/misc/fixpool.hh, spot/misc/mspool.hh,
	spot/misc/timer.hh: Adjust to use __has_include instead.

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

	work around an issue in Flex 2.6.4

	The fallback definition of SIZE_MAX supplied by flex was not
	preprocessor friendly and prevented robin_hood.hh from doing "#if
	SIZE_MAX == UINT64_MAX", as observed by Marc Espie on OpenBSD.

	* spot/parseaut/scanaut.ll, spot/parsetl/scantl.ll: Define
	__STDC_VERSION__ just so that the code generated by Flex
	include <inttypes.h>.
	* NEWS: Mention the bug.
	* THANKS: Add Marc.

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

	reduce_parity: fix to work on automata with deleted edges

	* spot/twaalgos/parity.cc (reduce_parity): Use the
	size of the edge vector to initialize piprime1 and piprime2,
	not the number of edges.
	* tests/python/parity.py: Add test case, based on a report
	by Yann Thierry-Mieg.

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

	remove uses of unary_function and binary_function

	These were deprecated in C++11, and are supposed to be removed from
	C++17, however gcc-snapshot just started warning about those.

	* spot/misc/bddlt.hh, spot/misc/hash.hh, spot/misc/ltstr.hh,
	spot/twa/taatgba.hh, spot/twaalgos/ltl2tgba_fm.cc: Here.

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

	improve support for LTLf semantics

	* spot/twaalgos/remprop.cc, spot/twaalgos/remprop.hh (to_finite): New
	function.
	* bin/autfilt.cc (--to-finite): Add it.
	* doc/org/tut12.org: Update to use it.
	* spot/twa/twagraph.cc (purge_dead_states): Also remove false edges.
	* spot/parseaut/parseaut.yy: Do not ignore false self-loops, and
	add false self-loop on accepting states without successors.
	* NEWS: List the above changes.
	* tests/core/ltlf.test: New file.
	* tests/Makefile.am: Add it.
	* tests/core/complete.test: Adjust expected output.

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

	dot: Add option @ to support aliases

	Fixes #497.

	* spot/twaalgos/dot.cc: Implement this option.
	* tests/core/ltl2tgba.test, tests/core/randaut.test: @ is
	now a valid option for --dot, use something else.
	* tests/python/aliases.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* doc/org/hoa.org: Mention aliases.
	* NEWS: Mention this new feature.

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

	hoa: extract the alias formating code for reuse

	* spot/twaalgos/hoa.hh (hoa_alias_formater): New class.
	* spot/twaalgos/hoa.cc: Implement hoa_alias_formater using the code
	that was previously in metadata::encode_label, and use it in place.

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

	autfilt: add --aliases=drop|keep option

	* bin/autfilt.cc: Here.
	* spot/twaalgos/hoa.cc, spot/twaalgos/hoa.hh: Fix the prototype
	of set_aliases so that it is usable.
	* tests/core/dualize.test: Add a simple test case.
	* NEWS: Mention the new option.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.10.4.dev.

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

	Release Spot 2.10.4

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.10.4.

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

	python: fix a memory leak in all added __iter__ methods

	Reported by Yechuan Xia

	* python/spot/impl.i: Add %newobject to all __iter__ methods.
	* NEWS: Mention the list of affected methods.
	* THANKS: Update.

2022-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix a memory leak in all added __iter__ methods

	Reported by Yechuan Xia

	* python/spot/impl.i: Add %newobject to all __iter__ methods.
	* NEWS: Mention the list of affected methods.
	* THANKS: Update.

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

	hoa: better support for aliases on output

	Part of issue #497.

	* doc/org/concepts.org: Declare a new "aliases" named property.
	* spot/parseaut/parseaut.yy: Fill the aliases named property.
	* spot/twa/twa.cc (copy_named_properties_of): Copy it.
	* spot/twaalgos/hoa.cc: Use "aliases" while encoding BDDs for
	output.
	* spot/twaalgos/hoa.hh: Add helper function to set/get aliases.
	* python/spot/impl.i: Create a type for aliases.
	* tests/core/parseaut.test: Adjust test case.
	* tests/python/aliases.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention this change.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.10.3.dev.

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

	Release Spot 2.10.3

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

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

	* NEWS: Prepare for next release.

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

	allow RPM build failure until we can fix it

	The current building issue is a docker issue unrelated to Spot,
	so it should not prevent us from doing a release.

	* .gitlab-ci.yml (rpm-pkg): Allow failure.

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

	org: install from GNU

	Fixes #496.

	* doc/org/init.el.in: Install org-mode from GNU ELPA.

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

	* doc/org/tut40.org: Finish a sentence.

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

	bib: more references

	* doc/spot.bib (blahoudek.16.atva, degiacomo.13.ijcai): New entries.
	* spot/tl/ltlf.hh, spot/twaalgos/complement.hh: Use them.

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

	sccinfo: fix accepting run computation

	* spot/twaalgos/sccinfo.cc (scc_info::get_accepting_run): Ignore edges
	whose colors are not part of the colors gathered in the SCC up to
	deciding acceptance.
	* tests/python/genem.py: New test case, reported by Clément Tamines.
	* THANKS: Add him.
	* NEWS: Mention the bug.

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

	dot: improve output to work around GraphViz bug

	The related GraphViz issue is
	https://gitlab.com/graphviz/graphviz/-/issues/2179

	* spot/twaalgos/dot.cc: Avoid initial newline in title.
	* NEWS: Mention the bug.
	* tests/core/det.test, tests/core/dstar.test,
	tests/core/neverclaimread.test, tests/python/automata-io.ipynb: Adjust
	test cases.

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

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

2022-01-14  philipp  <philipp@lrde.epita.fr>

	Fixes #495

	Monitors can now be split AND completed at the same time.
	Split can be called on games without providing
	"synthesis-outputs" - relying on named prop.

	* spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh: Here

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

	complement: fix a regression with 2.9.8

	Reported by Reuben Rowe.

	* spot/twaalgos/complement.cc (complement): Remove the hard-coded
	simul=0 option on automata with >32 states.  In 2.10 simul=0 now
	implies det-simul=0, causing the regression, and most importantly it
	is not needed anymore, because we have other threashold like simul-max
	and simul-trans-pruning in place.
	* tests/core/complement.test: Add Reuben's automaton as test case.
	* NEWS: Mention the fix.

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

	sbacc: remove spurious initial state in some output

	This fixes #492, based on a report from Jérôme Dubois.

	* spot/twaalgos/sbacc.cc: If the initial state is in a rejecting
	component, start with an initial state whose colors are unsat_mark.
	* tests/core/sbacc.test: Add test case.
	* tests/python/pdegen.py: Adjust it.

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

	* tests/python/word.ipynb: Typo.

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

	tl: fix first_match definition

	* doc/tl/tl.tex: Here.

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

	org: update mailman urls

	* doc/org/index.org, tests/python/bdditer.py: Here.

2022-01-14  philipp  <philipp@lrde.epita.fr>

	Fixing state reorder bug for mealy minimization

	Isomorph but different machines were created
	depending on ARM vs Intel

	* spot/twaalgos/mealy_machine.cc: Fix here

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

	* NEWS, configure.ac: Bump version to 2.10.2.dev.

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

	allow RPM build failure until we can fix it

	The current building issue is a docker issue unrelated to Spot,
	so it should not prevent us from doing a release.

	* .gitlab-ci.yml (rpm-pkg): Allow failure.

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

	org: install from GNU

	Fixes #496.

	* doc/org/init.el.in: Install org-mode from GNU ELPA.

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

	* doc/org/tut40.org: Finish a sentence.

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

	bib: more references

	* doc/spot.bib (blahoudek.16.atva, degiacomo.13.ijcai): New entries.
	* spot/tl/ltlf.hh, spot/twaalgos/complement.hh: Use them.

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

	sccinfo: fix accepting run computation

	* spot/twaalgos/sccinfo.cc (scc_info::get_accepting_run): Ignore edges
	whose colors are not part of the colors gathered in the SCC up to
	deciding acceptance.
	* tests/python/genem.py: New test case, reported by Clément Tamines.
	* THANKS: Add him.
	* NEWS: Mention the bug.

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

	dot: improve output to work around GraphViz bug

	The related GraphViz issue is
	https://gitlab.com/graphviz/graphviz/-/issues/2179

	* spot/twaalgos/dot.cc: Avoid initial newline in title.
	* NEWS: Mention the bug.
	* tests/core/det.test, tests/core/dstar.test,
	tests/core/neverclaimread.test, tests/python/automata-io.ipynb: Adjust
	test cases.

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

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

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

	hoa: add support for controllable-AP

	* doc/spot.bib (perez.19.hoa): New entry.
	* spot/parseaut/public.hh: Mention it.
	* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll: Learn to parse
	the controllable-AP header.
	* spot/twaalgos/hoa.cc: Print it.
	* tests/core/ltlsynt.test, tests/core/parseaut.test,
	tests/core/readsave.test, tests/python/_synthesis.ipynb,
	tests/python/except.py, tests/python/games.ipynb,
	tests/python/mealy.py, tests/python/synthesis.py: Adjust or augment
	test cases.

2022-01-07  philipp  <philipp@lrde.epita.fr>

	Fixes #495

	Monitors can now be split AND completed at the same time.
	Split can be called on games without providing
	"synthesis-outputs" - relying on named prop.

	* spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh: Here
	* tests/python/_synthesis.ipynb: Testing

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

	introduce the original-classes named property

	* doc/org/concepts.org, NEWS: Document it.
	* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh,
	spot/twaalgos/sbacc.cc, spot/twaalgos/sbacc.hh: Use it.
	* spot/twa/twagraph.cc: Update it on defrag.
	* spot/twa/twa.cc (copy_named_properties_of): Copy it.
	* tests/python/det.py: New file.
	* tests/Makefile.am: Add it.
	* python/spot/impl.i (get_original_states, get_original_classes): New
	methods, to help with the tests.

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

	complement: fix a regression with 2.9.8

	Reported by Reuben Rowe.

	* spot/twaalgos/complement.cc (complement): Remove the hard-coded
	simul=0 option on automata with >32 states.  In 2.10 simul=0 now
	implies det-simul=0, causing the regression, and most importantly it
	is not needed anymore, because we have other threashold like simul-max
	and simul-trans-pruning in place.
	* tests/core/complement.test: Add Reuben's automaton as test case.
	* NEWS: Mention the fix.

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

	sbacc: remove spurious initial state in some output

	This fixes #492, based on a report from Jérôme Dubois.

	* spot/twaalgos/sbacc.cc: If the initial state is in a rejecting
	component, start with an initial state whose colors are unsat_mark.
	* tests/core/sbacc.test: Add test case.
	* tests/python/pdegen.py: Adjust it.

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

	* tests/python/word.ipynb: Typo.

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

	tl: fix first_match definition

	* doc/tl/tl.tex: Here.

2021-12-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update mailman urls

	* doc/org/index.org, tests/python/bdditer.py: Here.

2021-12-10  philipp  <philipp@lrde.epita.fr>

	Fixing state reorder bug for mealy minimization

	Isomorph but different machines were created
	depending on ARM vs Intel

	* spot/twaalgos/mealy_machine.cc: Fix here
	* tests/python/_synthesis.ipynb: Test here

2021-12-10  Philipp Schlehuber  <philipp@lrde.epita.fr>

	Adapt ltlsynt

	Using the new flexibility for solving and converting
	of mealy machines and aiger circuits

	* bin/ltlsynt.cc: here

2021-12-10  Philipp Schlehuber  <philipp@lrde.epita.fr>

	Making solved game to mealy more flexible

	* spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh: Solved game to mealy
	now also supports the other mealy formats
	* tests/python/_synthesis.ipynb: Test
	* tests/Makefile.am: Test

2021-12-10  Philipp Schlehuber  <philipp@lrde.epita.fr>

	aiger accepts splitted mealy machines

	* spot/twaalgos/aiger.cc,
	  spot/twaalgos/aiger.hh: Here
	* tests/python/synthesis.ipynb: Tests

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

	* spot/parsetl/scantl.ll: Avoid strtoul for short delays.

2021-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.10.2.dev.

2021-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.10.2

	* NEWS, configure.ac, doc/org/setup.org: Set version to 2.10.2.

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

	formula: is_literal should be const

	Reported by Ayrat Khalimov.

	* spot/tl/formula.hh (is_literal): Mark as const.

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

	catch overflow in SVA delays during parsing

	* spot/parsetl/scantl.ll: Diagnose delays (##n) larger than
	unbounded().  Remove all checks for delays with 1 or 2 characters.
	* tests/core/parseerr.test: Add a test case.
	* NEWS: Mention this fix.

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

	* doc/org/install.org: Stable Debian packages are for Bullseye.

2021-11-22  Jérôme Dubois  <jdubois@lrde.epita.fr>

	build: fix multiple Clang13 warnings

	* spot/kripke/kripkegraph.hh, spot/misc/hash.hh, spot/twa/taatgba.cc,
	  spot/twa/twagraph.hh, tests/core/ngraph.cc: Replace subtraction of
	  pointeur minus nullptr by an explicit cast to size_t.
	* spot/twa/acc.hh: Add explicit default copy assignment operator for
	  rs_pair.

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

	sched_getcpu() and pthread_setaffinity_np() are non-portable

	Reported by Yuri Victorovich, on FreeBSD.

	* configure.ac: Test for them.
	* spot/mc/mc_instanciator.hh: Only use them if they are present.
	* NEWS: Mention the fix.

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

	twagraph: remove bddfalse edges in purge_dead_states

	* spot/twa/twagraph.cc (purge_dead_states): Be bddfalse-aware!
	* spot/twa/twagraph.hh, NEWS: Document this.
	* tests/python/alternating.py, tests/python/twagraph.py: Add some
	test cases.

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

	* NEWS, configure.ac: Bump version to 2.10.1.dev.

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

	Release Spot 2.10.1

	* NEWS, configure.ac, doc/org/setup.org: Update for release.

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

	sbacc: define original-states

	* spot/twaalgos/sbacc.cc (sbacc): Define the original-states
	property on the created automaton.
	* spot/twaalgos/sbacc.hh: Improve documentation.
	* tests/python/sbacc.py: Update test cases.

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

	formula: catch min/max overflows at construction

	For issue #485.

	* spot/tl/formula.cc, spot/tl/formula.hh: Catch min/max overflow
	when the operators are constructed.  Also disable travial
	simplification rules that would create such overflow.
	For instance x[*200][*2] will not become x[*400] anymore.
	* python/spot/impl.i: Catch std::overflow_error.
	* tests/core/equals.test, tests/python/except.py: Add test cases.

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

	fix some unused variable warning in mingw

	* spot/twaalgos/mealy_machine.cc (is_split_mealy_specialization): Hide
	spl in NDEBUG.
	* spot/twaalgos/synthesis.cc (apply_strategy): sp is not always used.

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

	tl: diagnose repetitions that do not fit in uint_8

	For issue #485.

	* spot/parsetl/parsetl.yy: Add a diagnostic.
	* tests/core/parseerr.test: Test it.

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

	fix configure --help

	Fixes #488.

	* configure.ac: Fix --enable-doxygen's help text, and add
	one for --enable-warnings.

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

	tests: add missing dependency on libbddx in ltsmin tests

	* tests/Makefile.am (ltsmin_modelcheck_LDADD,
	ltsmin_testconvert_LDADD): Add libbddx as a dependecy.

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

	Work around issue with inttypes.h macros

	* python/Makefile.am: Define __STDC_FORMAT_MACROS.

2021-11-16  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt.cc: Correct help

	* bin/ltlsynt.cc: Change "sd" to "lar" as default algorithm in the doc.

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

	* doc/org/compile.org: Fix instructions to uses -std=c++17.

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

	Python 3.5 is now needed

	* NEWS, README, HACKING, doc/org/install.org, m4/pypath.m4: Adjust.

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

	* spot/bricks/brick-hash: Add missing include.

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

	ltsmin-pml: work around newer jupyter versions

	Newer Jupyter version are able to capture the system's stdout and
	stderr to display it in the notebook.  This is done asynchronously,
	with a thread polling those file descriptor.  While this will help us
	debug (finaly we can see the tracing code we put in C++) this causes
	two issues for testing.  One is the asynchronous behaviour, which
	makes it very hard to reproduce notebooks.  The second issue is that
	older version of Jupyter used to hide some of the prints from the
	notebook, so it is hard to accommodate both.

	In the case of the ltsmin-pml notebook, loading the PML file from
	a filename used to trigger a compilation silently (with output on the
	console, but not in the notebook).  The newer version had the output
	of that compilation spread into two cells.

	* python/spot/ltsmin.i: Work around the issue by triggering the
	compilation from Python, and capturing its output explicitly, so it
	work with all Jupyter versions.  Also adjust to use the more recent
	and simpler subprocess.run() interface, available since Python 3.5.
	* tests/python/ltsmin-pml.ipynb: Adjust expected output.
	* tests/python/ipnbdoctest.py (canonicalize): Adjust patterns.

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

	* doc/org/index.org: Fix link to zlktree.html.

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

	* NEWS, configure.ac: Bump version to 2.10.0.dev.

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

	Release Spot 2.10

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

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

	* doc/Makefile.am (svgo): preserve the IDs in oaut-dot4.svg.

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

	* doc/org/index.org: Advertise more features.

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

	* tests/python/split.py: Simplify.

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

	synthesis: minor typos

	* spot/twaalgos/game.cc, spot/twaalgos/mealy_machine.cc,
	spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh: Here.

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

	python: fix support for std::vector<const_twa_graph_ptr>

	* spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc: Fix prototypes, as
	well as several error messages.
	* python/spot/impl.i: Implement an ad-hoc conversion for
	std::vector<const_twa_graph_ptr>.
	* tests/python/synthesis.ipynb: Use it to simplify the example.
	Adjust some comments.

2021-11-10  philipp  <philipp@lrde.epita.fr>

	Renaming and clean up

	"Strategy" was used for mealy machines and game strategies a like.
	Introduced the notion of mealy machine in three different flavors:
	mealy machine: twa_graph with synthesis-outputs
	separated mealy machine: mealy machine and all transitions
	have conditions of the form (bdd over inputs)&(bdd over outputs)
	split mealy machine: mealy machine that alternates between
	env and player states. Needs state-players

	* bin/ltlsynt.cc: renaming
	* python/spot/impl.i: Add vector for const_twa_graph_ptr
	* spot/twaalgos/aiger.cc,
	spot/twaalgos/aiger.hh: Adapting functions
	* spot/twaalgos/mealy_machine.cc,
	spot/twaalgos/mealy_machine.hh: Add test functions and
	propagate properties correctly. Adjust for names
	* spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh: Removing unnecessary functions
	and adapt to new names
	* tests/python/aiger.py,
	tests/python/_mealy.ipynb,
	tests/python/mealy.py,
	tests/python/synthesis.ipynb: Adjust

2021-11-10  philipp  <philipp@lrde.epita.fr>

	Use generic split after obtaining direct strategy

	* bin/ltlsynt.cc: Here

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

	zlktree: fix colored output of acd_transform_sbacc()

	* spot/twaalgos/zlktree.cc (acd_transform_sbacc): Fix the
	acceptance condition when colored is true.
	* tests/python/zlktree.py: Add test case.

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

	* tests/python/streett_totgba.py: Remove superfluous comment.

2021-11-06  Florian Renkin  <frenkin@lrde.epita.fr>

	Notebooks: correct typos

	* tests/python/acc_cond.ipynb, tests/python/contains.ipynb,
	tests/python/decompose.ipynb, tests/python/games.ipynb,
	tests/python/randltl.ipynb, tests/python/synthesis.ipynb,
	tests/python/testingaut.ipynb: here.

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

	* doc/spot.bib: Add entries for multi-core emptiness-checks.

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

	tl: fix AST rendering of Star/FStar nodes

	* spot/tl/dot.cc: Show the min/max argument for Star/FStar nodes.
	* tests/python/formulas.ipynb: Adjust test.

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

	* spot/twaalgos/ltl2tgba_fm.cc: Update some comments.

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

	* NEWS: Some cleanup, in preparation for the release.

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

	bin: use regexes to detect shorthands, and add support for owl-21.0

	Fixes #480.

	* bin/common_trans.cc (shorthands_ltl, shorthands_autproc): Write
	those lists using regexes.  Add entries for Owl 21.0.
	(show_shorthands, tool_spec): Adjust to use those regexes.
	* doc/org/autcross.org, doc/org/ltlcross.org, doc/org/ltldo.org:
	Update the list of shorthands.
	* tests/core/ltldo.test: Add a couple of tests.
	* NEWS: Mention this new feature.

2021-11-04  Florian Renkin  <frenkin@lrde.epita.fr>

	Synthesis decomposition: Add a new rewriting and tests

	* spot/twaalgos/synthesis.cc: add a new rewriting rule
	* tests/core/ltlsynt.test: test rewritings

2021-11-04  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: correct verbose when --aiger is used

	* bin/ltlsynt.cc: here
	* tests/core/ltlsynt.test: add test

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

	aiger: improve parse errors and test them

	* spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh (parse_aag_impl_): Do
	not display source filename in user facing errors.  Use GNU-style
	"file:line: " prefixes for locations.  Adjust all sscanf() calls
	to check for ignored trailing data.  Add some missing checks about the
	order of input and output names, checks that output names do no
	intersect input names.  Fix incorrect line number for unexpected
	input variable number, and avoid using std::stoi as that throws
	an std::invalid_argument on parse error.
	* tests/python/aiger.py: Add test cases for each error message.

2021-11-03  Florian Renkin  <frenkin@lrde.epita.fr>

	Aiger parser: correct input and output names

	* spot/twaalgos/aiger.cc: here.
	* tests/python/aiger.py: add tests
	* tests/python/synthesis.ipynb: correct notebook

2021-11-02  Florian Renkin  <frenkin@lrde.epita.fr>

	Synthesis: rewrite bypass

	* spot/twaalgos/synthesis.cc: here
	* spot/twaalgos/synthesis.hh: introduce a realizability_code
	* bin/ltlsynt.cc, spot/twaalgos/aiger.cc: use this enum
	* tests/core/ltlsynt.test: update tests

2021-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_dot: improve aiger rendering

	* spot/twaalgos/dot.cc: Improve the aiger printer by using a more
	traditional dot syntax, indenting the output, adding some hard-coded
	colors, fixing a bug in the negation of latch inputs, and rotating the
	triangles for horizontal output.
	* tests/python/synthesis.ipynb: Adjust expected output, and add
	an example of horizontal layout.

2021-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_dot: improve the rendering of Mealy machines

	* spot/twaalgos/dot.cc (print_dot): Add some detection of Mealy
	machines, and some code to render its I/O in a <table>.
	* tests/python/synthesis.ipynb: Adjust expected output.
	* tests/python/_mealy.ipynb: New file.
	* tests/Makefile.am: Add python/_mealy.ipynb.
	* NEWS: Mention the new feature.

2021-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: make sure swig also work with --disable-dependency-tracking

	Fixes #482, reported by Antoine Martin.

	* python/Makefile.am: Do not pass -MF to Swig when AMDEP is false.

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

	ltlsynt: fix a bug in split_2step_fast_here

	* spot/twaalgos/synthesis.cc (split_2step_fast_here::get_ps): Fix the
	state number recorded in the map.
	* tests/core/ltlsynt.test: Add test case.

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

	synthesis: simplify split_2step_fast_here

	* spot/twaalgos/synthesis.cc (split_2step_fast_here): Do not use
	a temporary vector to iterate over the original edges.

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

	ltlsynt: improve error message in case of missing --ins and --outs

	* bin/ltlsynt.cc: Here.
	* tests/core/ltlsynt.test: Test the error.

2021-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	synthesis: rename create_game() to ltl_to_game()

	* bin/ltlsynt.cc, spot/twaalgos/aiger.hh, spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh, tests/python/synthesis.ipynb,
	tests/python/synthesis.py: Here.

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

	ltlsynt: replace some leftover throw by error()

	* bin/ltlsynt.cc (solve_formula): Report errors with error().

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

	ltlsynt: fix --help output for common Input options

	* bin/common_finput.cc (argp): Declare all options in section 1.

2021-10-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: report AP missing from --ins and --outs

	* bin/ltlsynt.cc (process_formula): Add a check.
	* tests/core/ltlsynt.test: Add test case.

2021-10-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: --ins is optional but not its argument

	Fixes #481, reported by Michaël Cadilhac.

	* bin/ltlsynt.cc (argp_option): Remove erroneous OPTION_ARG_OPTIONAL.
	* tests/core/ltlsynt.test: Add test case.

2021-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	aiger: fix forcing of input properties

	* spot/twaalgos/aiger.cc: Here.
	* tests/python/synthesis.ipynb: Adjust.

2021-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: fix handling of automata with false acceptance

	Reported by Florian.

	* spot/twaalgos/zlktree.cc (zielonka_tree_transform, acd_transform):
	Here.
	* tests/python/zlktree.py: Add test cases.

2021-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move parts of games.ipynb into synthesis.ipynb

	* tests/python/synthesis.ipynb: New file, with bits removed from...
	* tests/python/games.ipynb: ... here.
	* tests/Makefile.am: Add synthesis.ipynb.
	* NEWS, doc/org/tut.org: Mention the new notebook.

2021-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	game: teach solve_game to use solve_safety_game

	* spot/twaalgos/game.cc, spot/twaalgos/game.hh: Here.
	* doc/org/tut40.org: Adjust example.

2021-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename game_info to synthesis_info; move it with the synthesis code

	* spot/twaalgos/game.cc, spot/twaalgos/game.hh (game_info): Move...
	* spot/twaalgos/synthesis.cc,
	spot/twaalgos/synthesis.hh (synthesis_info): ... here, because this
	structure contains only synthesis stuff.  Also rename "solver" to
	"algo" to match the ltlsynt option.
	(solve_game): Move the two argument version of this function here,
	since that's the only game-related generic function that use
	synthesis_info.
	* bin/ltlsynt.cc, tests/core/ltlsynt.test, tests/python/games.ipynb,
	tests/python/synthesis.py, NEWS: Adjust all uses and mentions.

2021-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: replace -x minimization-lvl=N by --simplify

	* bin/ltlsynt.cc: Implement the new option, and make it default
	to bisimulation with output assignment (a.k.a. bwoa).
	* NEWS, bin/spot-x.cc, doc/org/ltlsynt.org: Update the documentation.
	* spot/twaalgos/game.hh: Make bwoa the default.
	* tests/core/ltlsynt.test: Add and adjust test cases.
	* tests/python/games.ipynb: Adjust.

2021-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: replace -x specification-decomposition by --decompose

	* bin/ltlsynt.cc: Implement the option, and enable it by default.
	* doc/org/ltlsynt.org, doc/org/ltlsynt.tex, bin/spot-x.cc, NEWS:
	Document it.
	* tests/core/ltlsynt.test: Adjust test cases.

2021-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut.org: Fix a title.

2021-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	games, synthetis: improve Doxygen

	* spot/twaalgos/game.hh, spot/twaalgos/synthesis.hh,
	spot/twaalgos/aiger.hh: Declare new Doxygen groups for games and
	synthesis.
	* doc/spot.bib: Cleanup.

2021-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/ltlsynt.test: Test --aiger without option.

2021-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	aiger: fix some typos and inconsistencies

	* spot/twaalgos/aiger.hh: Fix errors in documentation.
	* spot/twaalgos/aiger.cc: Adjust text of exception.

2021-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: improve documentation

	This addresses a few points from #479.

	* doc/org/ltlsynt.tex: New file.
	* doc/Makefile.am: Add it.
	* doc/org/ltlsynt.org: Show the architecture, and mention more
	options.
	* bin/spot-x.cc: Document ltlsynt's -x options.
	* bin/ltlsynt.cc: Fix default value of --aiger, and typo in its
	documentation.

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

	tests: work around to compiler warnings

	* tests/core/cube.cc, tests/core/twagraph.cc: Fix warning about
	unused variable in absence of assert().

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

	simplify: fix some discrepancies between Intel and ARM

	* spot/tl/simplify.cc (tl_simplifier_cache::as_bdd): Fix the order in
	which as_bdd() is called recursively in binary nodes, do not let the
	choice to the compiler.
	* tests/core/ltlsynt.test: Adjust expected output.

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

	ltlsynt: deduce --outs from --ins or vice-versa

	* bin/ltlsynt.cc: Implement it.
	* NEWS, doc/org/ltlsynt.org: Document it.
	* tests/core/ltlsynt.test: Test it.

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

	acd: do not recompute identical subtrees

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh (acd::build_):
	When processing a node identical to a node previously seen, simply
	copy the children of that other node, and share its vectors.

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

	zlktree: simplify heuristic computation

	* spot/twaalgos/zlktree.cc: Here.
	* spot/twaalgos/zlktree.hh: Add a way to remove an option.

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

	org: cleanup tut40

	* doc/org/tut40.org: Add more explanations and some cleanup.
	* python/spot/__init__.py (set_state_players, get_state_winners,
	get_state_players, set_state_player, get_state_winner,
	get_state_player, get_strategy): Add these methods to the twa_graph
	class for convenience.
	* NEWS, doc/org/tut.org: Mention tut40.org.

2021-10-01  Jerome Dubois  <jdubois@lrde.epita.fr>

	org: Add a pratical example for games

	* doc/org/tut40.org: Add a documentation on how to use games in a
	pratical case. In this example, we compute simulation using
	games. Fixes #445.
	* doc/Makefile.am: Add tut40.org.

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

	dtwasat: various fixes

	* spot/twaalgos/dtwasat.cc: Do not return a transition-based automaton
	when state-based output is requested.
	* tests/python/satmin.ipynb, spot/twaalgos/dtbasat.hh: Fix some typos.
	* tests/python/satmin.py: Add test cases.
	* NEWS: Mention the bugs.

2021-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acd: add ORDER_HEURISTIC for state-based ACD-transform

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: Add the
	acd_options::ORDER_HEURISTIC and use it by default in
	acd_transform_sbacc().
	* spot/misc/bitvect.hh (bitvect::count, bitvect::add_common): New
	methods.
	* tests/python/zlktree.ipynb: Adjust examples and discuss this
	heuristic.

2021-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acd: add support for state-based output

	* spot/twaalgos/zlktree.hh, spot/twaalgos/zlktree.cc (acd::node_level,
	acd::state_step, acd_transform_sbacc): New public functions.
	* tests/python/zlktree.ipynb, tests/python/zlktree.py: More tests.
	* NEWS: Typo.

2021-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acd: fix typeness checks, and add options for those

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: Here.
	* tests/python/zlktree.ipynb, tests/python/zlktree.py: Add tests
	and examples.

2021-09-22  Philipp Schlehuber  <philipp@lrde.epita.fr>

	Remove do_simplify opt from split_2step

	Removing this option to guarante that all arenas
	are alternating

	* spot/twaalgos/synthesis.hh: Here
	* spot/twaalgos/synthesis.cc: Here
	* spot/twaalgos/mealy_machine.cc: API change
	* tests/python/aiger.py: API change
	* tests/python/mealy.py: API change
	* tests/python/split.py: API change

2021-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twagraph.cc: Fixes #478.

2021-09-21  Philipp  <philipp@lrde.epita.fr>

	Updated News

	* NEWS: Here

2021-09-17  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis: aps_of uses a local cache

	* spot/twaalgos/synthesis.cc: here.

2021-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: fix syntax error handling

	Fixes #477.

	* bin/common_finput.cc (job_processor::process_string): Fix return
	value.
	* bin/ltlsynt.cc: Fix handling of syntax errors.  While we are here,
	make sure game_info is destroyed before Spot's globals.
	* tests/core/ltlsynt.test: Add a test case.

2021-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	build: fix multiple GCC warnings

	These occur when Spot is compiled with --enable-optimizations and
	--disable-assert.

	* spot/mc/unionfind.cc, spot/twaalgos/mealy_machine.cc,
	spot/twaalgos/aiger.cc: Work around warnings about variables that are
	only used in assert.
	* spot/misc/common.hh [NDEBUG] (SPOT_ASSUME): Do not define
	as assert() when it is disabled.
	* spot/twaalgos/alternation.cc: Use insert instead of emplace
	to work around a spurious possible nullptr dereference.
	* spot/twaalgos/ltl2taa.cc, spot/twaalgos/ndfs_result.hxx,
	spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc:
	Work around spurious possible nullptr dereference.
	* spot/twaalgos/sbacc.cc: Work around spurious "maybe uninitialized"
	warning.

2021-09-16  Philipp Schlehuber  <philipp@lrde.epita.fr>

	Improving handling of unused proposition for aig

	By default only propositions appearing in the strategy are
	treated. By handing over propositions explicitly one
	can force their appearance in the aig circuit.

	* spot/twaalgos/aiger.cc: Here
	* spot/twaalgos/aiger.hh: New doc
	* tests/python/games.ipynb: New test

2021-09-16  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis: fix decomposition

	It is wrong to decompose an implication that is not at the top of
	the formula.

	* spot/twaalgos/synthesis.cc: don't always split implication

2021-09-16  Florian Renkin  <frenkin@lrde.epita.fr>

	synthesis: Fix segfault when there is no output

	* spot/twaalgos/synthesis.cc: here
	* tests/python/synthesis.py: create a test
	* tests/Makefile.am: add synthesis.py to the tests

2021-09-16  Florian Renkin  <frenkin@lrde.epita.fr>

	Aiger: Add a way to evaluate an input sequence (Python)

	Add a method to the class aig (Python) that produces a sequence of
	outputs for a given sequence of inputs.

	* python/spot/__init__.py: here

2021-09-16  Florian Renkin  <frenkin@lrde.epita.fr>

	Typos

	* bin/ltlsynt.cc, spot/twaalgos/game.hh,
	spot/twaalgos/synthesis.cc: here

2021-09-16  philipp  <philipp@lrde.epita.fr>

	ltlsynt rewrite

	Introducing the new game interface
	to ltlsynt.
	ltlsynt now also uses direct strategy deduction
	and formula decomposition.

	* bin/ltlsynt.cc: Here
	* spot/twaalgos/aiger.cc
	, spot/twaalgos/aiger.hh: Use strategy_like
	* spot/twaalgos/game.hh: Minor adaption
	* spot/twaalgos/mealy_machine.cc: Use new interface
	* spot/twaalgos/synthesis.cc
	, spot/twaalgos/synthesis.hh: Spezialised split
	* tests/core/ltlsynt.test
	, tests/python/games.ipynb: Adapting

2021-09-16  philipp  <philipp@lrde.epita.fr>

	Use new minterm enumeration in split_2step

	Also remove self-loop for sink and make it work for any
	acceptance condition.

	* spot/twaalgos/synthesis.cc: Here
	* tests/core/ltlsynt.test: Adjust tests
	* tests/python/split.py: Adjust tests

2021-09-16  Florian Renkin  <frenkin@lrde.epita.fr>

	Introducing formula split

	Split a LTL formula to a set of formula that don't share
	output proposition. It allows to create multiple
	strategies in ltlsynt.

	* spot/twaalgos/synthesis.cc,
	  spot/twaalgos/synthesis.hh: here
	* doc/spot.bib: Add reference

2021-09-16  philipp  <philipp@lrde.epita.fr>

	New game api

	Introduce a new, uniform way to create and solve
	games.
	Games can now be created directly from specification
	using creat_game, uniformly solved using
	solve_game and transformed into a strategy
	using create_strategy.
	Strategy are mealy machines, which can be minimized.

	* bin/ltlsynt.cc: Minor adaption
	* spot/twaalgos/game.cc: solve_game, setters and getters
	for named properties
	* spot/twaalgos/game.hh: Here too
	* spot/twaalgos/mealy_machine.cc: Minor adaption
	* spot/twaalgos/synthesis.cc: create_game, create_strategy and
	minimize_strategy
	* spot/twaalgos/synthesis.hh: Here too
	* tests/core/ltlsynt.test: Adapting
	* tests/python/aiger.py
	, tests/python/games.ipynb
	, tests/python/mealy.py
	, tests/python/parity.py
	, tests/python/split.py: Adapting

2021-09-16  philipp  <philipp@lrde.epita.fr>

	Adding selective edge sorting and state merging

	The merging is (possibly) more expensive but also
	merges more states when applied to all states.

	* spot/graph/graph.hh: edge sorting
	* spot/twa/twagraph.cc,
	spot/twa/twagraph.hh: selective state merging
	* tests/core/twagraph.cc: Adjusting tests

2021-09-16  philipp  <philipp@lrde.epita.fr>

	Adding dot suppport for aiger class

	* spot/twaalgos/aiger.cc: Useless assert
	* spot/twaalgos/dot.hh,
	spot/twaalgos/dot.cc: aig to dot
	* python/spot/__init__.py: Adapting
	* tests/python/games.ipynb: Additional tests

2021-09-16  philipp  <philipp@lrde.epita.fr>

	Making aiger a class

	Aiger circuits noew have their own class.
	Monitors can be translated to and obtained
	from aiger circuits.
	Moreover a step by step evaluation method
	is provided.

	* spot/twaalgos/aiger.hh,
	spot/twaalgos/aiger.cc: Here
	* bin/ltlsynt.cc: Adopt new modes
	* tests/core/ltlsynt.test: Adapt tests
	* python/spot/impl.i: Add python support
	* tests/Makefile.am,
	tests/python/aiger.py: New test cases

2021-09-16  philipp  <philipp@lrde.epita.fr>

	Adding bdd_is_cube for python

	* python/buddy.i: Here

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

	robin_hood: Update to version 3.11.3

	The only difference with upstream is that we keep std::malloc() as
	malloc() to avoid issues with gnulib that sometimes redefine malloc to
	rpl_malloc with a macro without defining std::rpl_malloc.

	* spot/priv/robin_hood.hh, debian/copyright: Update.
	* spot/priv/Makefile.am (update): Rename std::malloc to malloc.

2021-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: convert short numbers without strtoul()

	* spot/parseaut/scanaut.ll: One or two digits numbers can be safely
	converted to integer without risking overflow, so do that without
	calling strtoul().  This simple change halves the number of calls
	to strtoul() on the example automaton of issue #476.

2021-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: replace std::map by robin_hood::unordered_flat_map

	This improves the parsing performance a bit more.

	* spot/parseaut/parsedecl.hh, spot/parseaut/parseaut.yy: Here.
	* tests/sanity/style.test: Handle parsedecl.hh as a private header.

2021-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: improve parsing of HOA labels

	On a debug build with the automaton from #476, the gain seems to be
	about 33% of the parsing time.

	* spot/parseaut/parseaut.yy, spot/parseaut/parsedecl.hh,
	spot/parseaut/scanaut.ll: Share a hash map of string->BDD
	between the scanner and parser so that [labels] can be looked
	up by the scanner if they have already been parsed once.
	* NEWS: Mention it.

2021-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: implement the logic from the future journal version of ATVA19

	This version of the generic emptiness-check, using smart selection and
	extraction of the Fin (implemented here via fin_one_extract), was
	suggested by Jan Strejček on 2020-06-26.

	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Add the spot210
	variant.  Also use it for the ACD use-case.
	* spot/twaalgos/zlktree.cc (zielonka_tree): Also use the same logic
	here.
	* tests/python/genem.py: Test the new version as well.

2021-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: introduce fin_one_extract()

	* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::fin_one_extract,
	acc_code::acc_cond::fin_one_extract): New methods.
	* python/spot/impl.i: Add support for the return type.
	* tests/python/acc_cond.ipynb: Test them.

2021-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: replace std::vector<bool> by bitvect in ACD

	On the example from previous patch, the number of instruction fetches
	goes from 18490399159 down to 18248898077.

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh (acd): Use
	bitvect instead of std::vector<bool> in nodes.  This make is easier to
	update an edge of a bitvector shared by multiple nodes set after
	pruning non-maximal sets from an SCC.  Also compute the set of states
	hit by the edges at the very end, once all nodes are known.
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh,
	spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Adjust to work with
	bitvect as filter.

2021-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: speedup the construction of ACD nodes

	This uses the foreach_set_index() method introduced in the previous
	patch to speed up the copy bitvectors in ACD nodes, as pointed in
	issue #476.

	Running
	PREFIXCMD='valgrind --tool=callgrind' ./run python3 -c \
	"import spot; spot.acd_transform(spot.automaton('syntcomp_91.hoa'))"
	went from 65139436227 instruction fetches down to 18490399159.

	* spot/twaalgos/zlktree.cc (acd::build_): Use foreach_set_index().

2021-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: add a foreach_set_index(callback) function

	Related to #476, where that is needed.

	* spot/misc/bitvect.hh: Here.
	* tests/core/bitvect.cc, tests/core/bitvect.test: Add some tests.

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

	zlktree: add a cheap unit-propagation

	If the top-level has top unit-Inf, propagate it.  This was suggested
	by Jan Strejček yesterday.

	* spot/twaalgos/zlktree.cc (max_models): Here.

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

	acc: introduce inf_unit()

	* spot/twa/acc.cc, spot/twa/acc.hh: Here.
	* tests/python/setacc.py: Test it.

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

	zlktree: fix a bug

	Reported by Florian.

	* spot/twaalgos/zlktree.cc: Handle the case where the condition does
	not cover all colors.
	* tests/python/zlktree.py: New file.
	* tests/Makefile.am: Add it.

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

	* tests/python/zlktree.ipynb: Fix the steps through the example.

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

	acd: remove redundant nodes

	Reported by Florian Renkin.

	* spot/twaalgos/zlktree.cc (acd::_build): Use a sorted list to remove
	redundant children, has done in zielonka_tree.
	* tests/python/zlktree.ipynb: Add Florian's test case.
	* tests/python/toparity.py: Adjust, and revert some tests
	uncommented by mistake in a previous patch.

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

	build: use 'jupyter nbconvert' instead of 'ipython nbconvert'

	The latter is deprecatd.

	* configure.ac: Check for jupyter.
	* tests/Makefile.am: Adjust.
	* HACKING: Mention we need jupyter.

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

	* tests/Makefile.am: Fix location of zlktree.ipynb.

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

	zlktree: cleanup the interface, and add interactive ACD

	* tests/python/_zlktree.ipynb: Remove and replace by...
	* tests/python/zlktree.ipynb: ... this more documented notebook.
	* tests/Makefile.am: Adjust.
	* doc/org/tut.org, NEWS: Mention zlktree.ipynb.
	* spot/twaalgos/zlktree.hh, spot/twaalgos/zlktree.cc,
	python/spot/__init__.py: Cleanup interface, and add support for
	interactive display.

2021-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/oaut.org (dot2tex): Acknowledge the 2.11 release.

2021-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add an option to output id= attributes

	This will be handy latter to develop widgets with interactive
	highlighting of automata.

	* spot/twaalgos/dot.cc: Implement it.
	* bin/common_aoutput.cc, NEWS, doc/org/oaut.org,
	doc/org/spot.css: Document it.
	* tests/core/alternating.test, tests/core/readsave.test,
	tests/core/sccdot.test: Test it.

2021-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (mingw-shared, mingw-static): Build from a tarball.

2021-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: fix a gcc-snapshot warning

	* tests/core/ikwiad.cc: replace dynamic_pointer_cast by a
	static_pointer_cast to get rid of a possible nullptr warning.

2021-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: work around issue #474

	* tests/python/_autparserr.ipynb: Redirect stderr to /dev/null
	for some commands.

2021-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: remimplement zielonka_tree without BDDs

	* spot/twaalgos/zlktree.cc (zielonka_tree): Find the models using a
	recursive procedure on the acceptance condition, without conversion to
	BDD.
	* tests/python/_zlktree.ipynb: Adjust to a different order of nodes.

2021-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	style: better support if statement with initializer

	* tests/sanity/style.test: Here.

2021-08-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: share bitvectors in ACD

	Improve the memory usage of the acd class by sharing state-vectors and
	edges-vectors.

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: Share the
	vectors during the construction, and adjust the dot output to take
	this into account.

2021-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: implement ACD and its transform

	A quick and dirty implementation of the Alternating Cycle
	Decomposition of the casares.21.icalp paper.

	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh
	(maximal_accepting_loops_for_scc): New function.
	* spot/twaalgos/sccinfo.cc,
	spot/twaalgos/sccinfo.hh (scc_and_mark_filter): Add a possibility to
	specify a mask of transition to filter.
	* spot/twaalgos/zlktree.hh, spot/twaalgos/zlktree.cc (acd): New class.
	(acd_transform): New function.
	* python/spot/__init__.py: Add SVG rendering for acd.
	* tests/python/_zlktree.ipynb: Play with acd and acd_transform.
	* tests/python/toparity.py: Add more tests to compare the
	sizes of acd_transform and to_parity.
	* NEWS: Mention this new feature.

2021-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	zlktree: add a paritization based on zielonka trees

	* spot/twaalgos/zlktree.hh,
	spot/twaalgos/zlktree.cc (zielonka_tree_transform): New function.
	* tests/python/_zlktree.ipynb: Test it on three examples.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.9.8.dev

	* NEWS, configure.ac: Here.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.9.8

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.9.8.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update for 2.9.8.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: fix intersecting_run on weak automata

	Fixes #471, reported by Cambridge Yang.

	* spot/twa/twa.cc (intersecting_run): Disable the product
	optimization for weak automata.
	* tests/python/471.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_run: reduce now diagnoses rejecting runs

	Part of #471.

	* spot/twaalgos/emptiness.cc: Throw an exception if
	the cycle is rejecting.
	* spot/twaalgos/emptiness.hh: Document this behavior.
	* tests/python/except.py: Test it.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a gcc-snapshot -Wnoexcept diagnostic

	* spot/misc/hash.hh (ptr_hash): Add noexcept on constructor to please
	gcc-snapshot.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitset: fix implementation of operator-()

	This fixes #469.

	* spot/misc/bitset.hh (bitset::operator-): Rewrite.
	I cannot follow the logic of the old implementation.
	* tests/python/setacc.py: Add a test case, inspired from #469.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: we have a conda-forge package

	* doc/org/install.org: Add conda instructions.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around a null pointer dereference error

	This fixes #462.

	* spot/twaalgos/gfguarantee.cc (do_g_f_terminal_inplace): Replace the
	redirect_src vector by a unique_ptr<unsigned[]>.  Not only does this
	remove the false positive diagnostic, but it also removes the unneeded
	default initialization of the elements of that vector.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: fix a typo in the --help text

	* bin/ltlfilt.cc: Here.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos: coma -> comma

	* ChangeLog.1, tests/core/autcross3.test, tests/core/ltl3ba.test,
	tests/core/ltl3dra.test, tests/core/ltlcross3.test,
	tests/core/ltlsynt.test, tests/sanity/style.test: Here.

2021-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/graph/graph.hh (chain_edges_): Typo in doc.

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

	mealy: work around spurious nullptr warning

	* spot/twaalgos/mealy_machine.cc (mm_sat_prob_t<true>::get_sol): Call
	SPOT_ASSUME to hint that res.data() is not null.

2021-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use bdd_have_common_assignment in more places

	* spot/twaalgos/gfguarantee.cc, spot/twaalgos/isdet.cc: Use it.

2021-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust for BuDDy change

	* spot/twaalgos/mealy_machine.cc, python/buddy.i: Rename
	bdd_has_common_assignement to bdd_have_common_assignment.

2021-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce a zielonka_tree class

	* spot/twaalgos/zlktree.cc, spot/twaalgos/zlktree.hh: New files.
	* spot/twaalgos/Makefile.am: Add them.
	* tests/python/_zlktree.ipynb: New file.
	* tests/Makefile.am: Add it.
	* python/spot/__init__.py, python/spot/impl.i: Add bindings for it.
	* doc/spot.bib (casares.21.icalp): New entry.
	* NEWS: Mention this.

2021-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: make the to_bdd() method public

	* spot/twa/acc.cc, spot/twa/acc.hh (acc_code::to_bdd): New method
	that calls the private to_bdd_rec() function.

2021-07-29  philipp  <philipp@lrde.epita.fr>

	Improving efficiency of unsplit_2step

	* spot/twaalgos/synthesis.cc: Here

2021-07-29  Florian Renkin  <frenkin@lrde.epita.fr>

	Adding signature based minimization of mealy machines

	* spot/twaalgos/mealy_machine.cc: Here
	* tests/python/mealy.py: Adding tests

2021-07-29  philipp  <philipp@lrde.epita.fr>

	Improving hash performance for pairs of integral types

	* spot/misc/hash.hh: Here

2021-07-29  philipp  <philipp@lrde.epita.fr>

	Adding sat-based minimization for mealy machines

	* spot/twaalgos/mealy_machine.hh,
	spot/twaalgos/mealy_machine.cc: Here
	* spot/twaalgos/Makefile.am: Here
	* tests/python/mealy.py: Added tests
	* tests/Makefile.am: Adding mealy.py
	* python/spot/impl.i: Here

2021-07-27  philipp  <philipp@lrde.epita.fr>

	Add setter and getter for synthesis-outputs

	* spot/twaalgos/game.cc, spot/twaalgos/game.hh: Here

2021-07-27  philipp  <philipp@lrde.epita.fr>

	Adding bdd_has_common_assignement

	* python/buddy.i: Here

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

	mc: add missing <atomic> includes

	* spot/mc/lpar13.hh, spot/mc/mc_instanciator.hh: Here.

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

	merge_states: don't call defrag_states if unnecessary

	* spot/twa/twagraph.cc (merge_states): Return the number
	of removed states, and use that to decide if defrag_states
	is needed.
	* spot/twa/twagraph.hh, NEWS: Document that.
	* tests/core/tgbagraph.test, tests/core/twagraph.cc: Adjust test case.

2021-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: make sere twa::acc() survives its automaton

	Fixes #468.

	* python/spot/__init__.py: Add wrapper around twa::acc() and
	twa::get_acceptance() to store the automaton into the acceptance
	proxy, therefore ensuring that the automaton survives that proxy.
	* tests/python/setacc.py: Test it.

2021-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: work around swig-3 calling the wrong make_twa_graph copy

	* spot/twa/twagraph.cc (copy): Redirect to the faster make_twa_graph
	when possible.

2021-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: implement a copy_named_properties_of() method

	It was noted in #470 that make_twa_graph did not copy named
	properties.  Let's fix that.

	* spot/twa/twa.hh, spot/twa/twa.cc (copy_named_properties_of): New
	method.
	* spot/twa/twagraph.hh (make_twa_graph): Add an extra argument to
	call copy_named_properties_of() optionally.
	* python/spot/__init__.py (twa_graph.__copy__): Use it.
	* tests/python/twagraph.py: Test that.
	* tests/sanity/namedprop.test: Ensure copy_named_properties_of copies
	all known named properties.

2021-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: implement twa_graph.__copy__

	Fixes #470, suggested by Cambridge Yang.

	* python/spot/__init__.py (twa_graph.__copy__): Call make_twa_graph.
	* tests/python/twagraph.py: Test it.
	* NEWS: Mention it.

2021-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: fix intersecting_run on weak automata

	Fixes #471, reported by Cambridge Yang.

	* spot/twa/twa.cc (intersecting_run): Disable the product
	optimization for weak automata.
	* tests/python/471.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

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

	twa_run: reduce now diagnoses rejecting runs

	Part of #471.

	* spot/twaalgos/emptiness.cc: Throw an exception if
	the cycle is rejecting.
	* spot/twaalgos/emptiness.hh: Document this behavior.
	* tests/python/except.py: Test it.

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

	* spot.spec.in: Adjust names of Python libs.

2021-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a gcc-snapshot -Wnoexcept diagnostic

	* spot/misc/hash.hh (ptr_hash): Add noexcept on constructor to please
	gcc-snapshot.

2021-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	have a CI build with PyPy

	This fixes #467.

	* .gitlab-ci.yml (debian-unstable-gcc-pypy): New Build.

2021-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/bitset.hh (operator-=): Simplify sightly.

2021-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitset: fix implementation of operator-()

	This fixes #469.

	* spot/misc/bitset.hh (bitset::operator-): Rewrite.
	I cannot follow the logic of the old implementation.
	* tests/python/setacc.py: Add a test case, inspired from #469.

2021-06-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust some python tests to work with PyPy

	Part of #467.

	* tests/python/bdddict.py, tests/python/ltl2tgba.py,
	tests/python/ltlparse.py, tests/python/ltlsimple.py,
	tests/python/sccinfo.py, tests/python/simstate.py,
	tests/python/split.py, tests/python/tra2tba.py: Adjust to
	deal with a non-refcounted Python implementation.

2021-06-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve PyPy support by following PEP 3149

	This implement the suggestion is issue #467 but the test suite is
	still not completely passing with pypy3.

	* m4/pypath.m4: Detect the suffix for extensions.
	* python/Makefile.am: Use it.
	* tests/run.in: Recognize pypy3 as a Python version.

2021-06-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: we have a conda-forge package.

	* doc/org/install.org: Add conda instructions.

2021-06-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around a null pointer dereference error

	This fixes #462.

	* spot/twaalgos/gfguarantee.cc (do_g_f_terminal_inplace): Replace the
	redirect_src vector by a unique_ptr<unsigned[]>.  Not only does this
	remove the false positive diagnostic, but it also removes the unneeded
	default initialization of the elements of that vector.

2021-06-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use <cassert> and not <assert.h> in C++

	* spot/mc/unionfind.cc, spot/twacube/cube.cc,
	spot/twacube_algos/convert.cc: Includes code.
	* tests/sanity/style.test: Add a test for this.

2021-06-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twacube_algos/convert.cc: Avoid unnecessary std::function.

2021-06-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* README: Update documentation for --enable-c++20.

2021-06-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some typos in the spot-x man page

	* bin/spot-x.cc: Here.

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

	ltlfilt: fix a typo in the --help text

	* bin/ltlfilt.cc: Here.

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

	typos: coma -> comma

	* ChangeLog.1, tests/core/autcross3.test, tests/core/ltl3ba.test,
	tests/core/ltl3dra.test, tests/core/ltlcross3.test,
	tests/core/ltlsynt.test, tests/sanity/style.test: Here.

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

	* spot/misc/bddlt.hh: Use bdd_stable_cmp, just added to BuDDy.

2021-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	merge_states: fix segfault reported by Philipp

	* spot/twa/twagraph.cc: Here.
	* tests/python/mergedge.py: Add test case.

2021-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	merge_states: include sorting and detection of identical self-loops

	* spot/twa/twagraph.cc: Implement it.
	* spot/twa/twagraph.hh, NEWS: Document it.
	* tests/python/mergedge.py: Test it.
	* tests/core/ltlsynt.test, tests/python/games.ipynb: Adjust expectations.

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

	* spot/graph/graph.hh (chain_edges_): Typo in doc.

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

	Merge branch 'master' into next

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

	Bump version to 2.9.7.dev

	* NEWS, configure.ac: Here.

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

	Release Spot 2.9.7

	* NEWS, configure.ac, doc/org/setup.org: Update for 2.9.7.

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

	org: add missing :exports results :results silent

	* doc/org/ltlfilt.org, doc/org/tut30.org, doc/org/tut31.org: Hide rm
	invocations used for cleanup.

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

	improve documentation for -x sat-minimize

	* bin/man/spot-x.x, bin/spot-x.cc: Improve documentation of SAT-based
	minimization.  It was still referring to TGBA although it works for
	TwA.
	* spot/twaalgos/postproc.cc: Typo.

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

	* spot/twa/twagraph.cc (remove_unused_ap): Remove unused variable.

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

	* doc/tl/tl.tex: Typo reported by Florian.

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

	autfilt: fix incorrect diagnostic

	* bin/autfilt.cc (OPT_KEEP_STATES): Mention the correct option.
	* tests/core/maskkeep.test: Test for it.
	* NEWS: Mention the bug.

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

	twagraph: improve doc

	Based on report by Michaël Cadilhac.

	* spot/graph/graph.hh, spot/twa/twagraph.hh (defrag_state): Clarify
	that only unreachable states are meant to be removed.
	* spot/twa/twagraph.hh (merge_edges): Typo in comment.  Fixes #457.
	* THANKS: Add Michaël.

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

	work around a GraphViz 2.60.0 bug

	* spot/twa/twagraph.cc (dump_storage_as_dot): Prefer \n over a plain
	new line to work around GraphViz issue 1931, which was causing
	twagraph-internals.ipynb to fail in our test suite.

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

	fix eventual/universal properties for ->/<->/xor

	* spot/tl/formula.cc: Correctly set eventual and universal properties
	for ->, <->, and xor.  This wasn't really relevant before, but there
	are now situation where those are not rewritten.
	* tests/core/kind.test: Adjust expected output.
	* tests/core/ltl2tgba2.test: New test case, reported by Florian
	Renkin.
	* NEWS: Mention the bug.

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

	merge_edge: clarify documentation

	Reported by Florian Renkin.

	* spot/graph/graph.hh, spot/twa/twagraph.hh (merge_edge): Document
	that it is expected that state i can only be renamed as j if j≤i.

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

	* doc/org/setup.org: Fix last release date.

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

	org: add missing :exports results :results silent

	* doc/org/ltlfilt.org, doc/org/tut30.org, doc/org/tut31.org: Hide rm
	invocations used for cleanup.

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

	postproc: introduce dba-simul, and have simul=0 disable all *-simul

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement the
	dba-simul option, and disable ba-simul, dba-simul, dpa-simul,
	det-simul when simul=0.
	* bin/ltlsynt.cc: Adjust.
	* bin/spot-x.cc: Document dba-simul and adjust other variables.
	* tests/core/minusx.test: Add some test.

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

	remove a useless test

	We have enough outputs checked verbatim everywhere so that testing
	that three execution of a single command return the same output is now
	a waste of time.

	* tests/core/simdet.test: Remove.
	* tests/Makefile.am: Adjust.

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

	postproc: add support for -x dpa-simul and simul-trans-pruning

	Also have simul-max default to 4096 instead of 512, because it's
	really simul-trans-pruning that is very slow and need to be limited.

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh,
	spot/twaalgos/simulation.cc, spot/twaalgos/simulation.hh,
	spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh:
	Implement the above options.
	* bin/spot-x.cc, NEWS: Document them.
	* tests/core/ltlsynt.test, tests/core/minusx.test,
	tests/core/sim3.test: Add some test cases.

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

	simulation: fix merging transiant SCCs

	This fixes #452, and also fix a bug related to transiant SCCs
	incorrectly merged in cosimulation: the source of the edges was
	updated without fixing the chaining of the edges.

	* spot/twaalgos/simulation.cc: Fix all the above.
	* tests/python/simstate.py: Add test case from issue #452.
	* tests/core/det.test, tests/core/ltlsynt.test,
	tests/core/satmin.test: Lower expected sizes.
	* tests/python/decompose.ipynb: Adjust for changed order.

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

	improve documentation for -x sat-minimize

	* bin/man/spot-x.x, bin/spot-x.cc: Improve documentation of SAT-based
	minimization.  It was still referring to TGBA although it works for
	TwA.
	* spot/twaalgos/postproc.cc: Typo.

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

	parse_aut: add support for #line

	Fixes issue #232.

	* spot/parseaut/parseaut.yy, spot/parseaut/public.hh,
	spot/parseaut/scanaut.ll: Add support for #line.
	* tests/core/parseaut.test: Test it.
	* NEWS: Mention it.

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

	python: add binding for spot::twa::prop_set

	Fix #453.

	* python/spot/impl.i: Here.
	* NEWS: Mention them.
	* tests/python/twagraph.py: Test them.

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

	* .gitlab-ci.yml (before_script): Ignore a missing */cpuset.cpus.

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

	* spot/twa/twagraph.cc (remove_unused_ap): Remove unused variable.

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

	replace bdd_satoneset(x,y,bddtrue) loops by minterms_of(x,y)

	Because the loops iterate in the opposite order, multiple
	test cases need to be adjusted.

	* spot/taalgos/tgba2ta.cc, spot/twaalgos/alternation.cc,
	spot/twaalgos/dualize.cc, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/stutter.cc,
	spot/twaalgos/toweak.cc: Replace loops based on
	bdd_satonest(x,y,bddtrue) by loops based on minterms_of(x,y).
	* tests/core/degenscc.test, tests/core/dualize.test,
	tests/core/genltl.test, tests/core/readsave.test,
	tests/python/alternation.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/decompose_scc.py,
	tests/python/dualize.py, tests/python/sccinfo.py,
	tests/python/simstate.py, tests/python/testingaut.ipynb,
	tests/python/word.ipynb: Adjust expected test cases.  The
	only regression is in genltl.test, but the worsened case
	should eventually be fixed as discussed in issue #425 anyway.

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

	replace bdd_satoneset(x,y,bddfalse) loops by minterms_of(x,y)

	This replaces loops of the form

	   while (all != bddfalse) {
	      bdd one = bdd_satoneset(all, sup, bddfalse);
	      all -= one;
	      // ... use one ...
	   }

	by the more efficient

	   for (bdd one: minterms_of(all, sub))
	      // ... use one ...

	This patch only focues on loops where the third
	argument of bdd_satoneset is bddfalse.

	* spot/twaalgos/cobuchi.cc, spot/twaalgos/complement.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/powerset.cc: Improve bdd_satoneset()-based loops.
	*

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

	split_edges: actually use the cache, and minterms_of()

	* spot/twaalgos/split.cc (split_edges): Fix some typos, reported by
	Philipp, that were causing the cache not to be used.  Speed up using
	minterms_of().

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

	test minterms_of enumerator

	* tests/core/minterm.cc, tests/core/minterm.test: New files.
	* tests/core/.gitignore, tests/Makefile.am: Add them.

2021-03-29  Jerome Dubois  <jdubois@lrde.epita.fr>

	split: Improve performance of split_edges()

	* spot/twaalgos/split.cc: Add cache to avoid
	  computing multiple split on the same condition.

2021-03-29  Jerome Dubois  <jdubois@lrde.epita.fr>

	postproc: Add the new simulation in do_simul()

	* spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Add the new simulation
	  in do_simul().
	* bin/man/spot-x.x, bin/spot-x.cc: Add documentation for
	  SPOT_SIMULATION_REDUCTION environnement variable and the simul-method
	  fine tunning option.
	* NEWS: Mention the changes.

2021-03-29  Jerome Dubois  <jdubois@lrde.epita.fr>

	simulation: Add simulation based reduction

	* spot/twaalgos/simulation.hh, spot/twaalgos/simulation.cc: Add
	  reduce_direct_sim(), reduce_direct_cosim() and
	  reduce_direct_iterated() wich reduce an automaton using simulation.
	  This functions wrap the class direct_sim wich compute simulation
	  with a new method.
	* doc/spot.bib: Add ref.
	* tests/python/simstate.py: Add tests for the new simulation.

2021-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bricks: fix the test-suite

	Fixes #446 using a fix from Étienne Renault.

	* tests/core/bricks.cc: Pass the hash table by reference while
	instantiating the threads.

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

	* doc/tl/tl.tex: Typo reported by Florian.

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

	twagraph: new kill_state method

	This proceeds from a discussion with Michaël Cadilhac.
	http://lists.lrde.epita.fr/pipermail/spot/2021q1/000356.html

	* bin/autfilt.cc (--kill-states): New option.
	* NEWS: Mention those.
	* spot/twa/twagraph.hh, spot/twa/twagraph.cc: Add a kill_state()
	method.
	* tests/core/maskkeep.test: Test it.

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

	autfilt: fix incorrect diagnostic

	* bin/autfilt.cc (OPT_KEEP_STATES): Mention the correct option.
	* tests/core/maskkeep.test: Test for it.
	* NEWS: Mention the bug.

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

	defrag_states: do not take the argument by rvalue ref

	Reported by Michaël Cadilhac.

	* spot/graph/graph.hh, spot/twa/twagraph.hh: Take the renaming vector
	by reference, not rvalue reference.  Document that
	twa_graph::defrag_states may modify the vector.  Keep a deprecated
	version of the old prototype just in case.  While there, also hide
	this method from Swig.
	* spot/twa/twagraph.cc: Simplify all calls to defrag_states().
	* NEWS: Mention the change.

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

	twagraph: improve doc

	Based on report by Michaël Cadilhac.

	* spot/graph/graph.hh, spot/twa/twagraph.hh (defrag_state): Clarify
	that only unreachable states are meant to be removed.
	* spot/twa/twagraph.hh (merge_edges): Typo in comment.  Fixes #454.
	* THANKS: Add Michaël.

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

	work around a GraphViz 2.60.0 bug

	* spot/twa/twagraph.cc (dump_storage_as_dot): Prefer \n over a plain
	new line to work around GraphViz issue 1931, which was causing
	twagraph-internals.ipynb to fail in our test suite.

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

	fix eventual/universal properties for ->/<->/xor

	* spot/tl/formula.cc: Correctly set eventual and universal properties
	for ->, <->, and xor.  This wasn't really relevant before, but there
	are now situation where those are not rewritten.
	* tests/core/kind.test: Adjust expected output.
	* tests/core/ltl2tgba2.test: New test case, reported by Florian
	Renkin.
	* NEWS: Mention the bug.

2021-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: speed up some -G -D cases

	When gf-guarentee works and produce a deterministic automaton, use it
	right away without comparing it with the automaton produced by the
	regular translation.  This used to be the case for all -D scenarios
	except -G -D.

	Reported by Florian Renkin.

	* spot/twaalgos/translate.cc: Use the result of
	gf_guarantee_to_ba_maybe() or fg_safety_to_dca_maybe() whenever -D is
	used.
	* spot/twaalgos/postproc.cc: Call remove_unused_ap() in finalize(), to
	iron out some slight output differences.
	* tests/core/ltl2tgba2.test, tests/python/toparity.py: Lower expected
	results in the test cases.
	* tests/python/automata.ipynb, tests/core/prodor.test: Adjust to new
	order.

2021-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	merge_edge: clarify documentation

	Reported by Florian Renkin.

	* spot/graph/graph.hh, spot/twa/twagraph.hh (merge_edge): Document
	that it is expected that state i can only be renamed as j if j≤i.

2021-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: swap the two passes of merge_edges()

	This improves the determinism in a few cases.

	* spot/twa/twagraph.cc (merge_edges): Encapsulate the two
	passes into lambdas so that they are very easy to swap.
	* spot/twa/twagraph.hh (merge_edges): Adjust documentation.
	* tests/python/mergedge.py: Add test case.
	* tests/core/alternating.test, tests/python/alternation.ipynb:
	Determinism was improved.
	* tests/core/parity2.test, tests/core/readsave.test,
	tests/core/sbacc.test, tests/python/_product_susp.ipynb,
	tests/python/atva16-fig2a.ipynb, tests/python/decompose.ipynb,
	tests/python/highlighting.ipynb, tests/python/satmin.ipynb,
	tests/python/simstate.py: Adjust expected order of edges.
	* NEWS: Mention the change.

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

	* doc/org/setup.org: Fix last release date.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.9.6.dev.

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

	Release Spot 2.9.6

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.9.6.

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

	* NEWS: Update for recent changes.

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

	* .gitlab-ci.yml (alpine-gcc): Do not run both check and distcheck.

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

	gfguarantee: fix automaton modification during iteration

	Fixes #449.

	* spot/twaalgos/gfguarantee.cc (do_g_f_terminal_inplace): Save
	edge additions to perform them after the loop.  Otherwise,
	reallocating the edge buffer might break the iteration.

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

	python: fix incorrect assertions on temporary objects

	* tests/python/stutter.py: Do not call acc() on a temporary
	object, and fix the last two asserts.

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

	* tests/python/ipnbdoctest.py: Work around failures on Fedora.

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

	patch gnulib to accomodate autoconf 2.70

	Upgrading gnulib turned to be too difficult, so this only includes
	updates to m4 files necessary to please Autoconf 2.70.

	For issue #447.

	* m4/extensions.m4, m4/malloc.m4, m4/std-gnu11.m4: Cherry-pick
	from today's gnulib version.

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

	update obsolete autoconf constructs

	Part of #447.

	* configure.ac, m4/debug.m4, m4/devel.m4, m4/gccoptim.m4,
	m4/ndebug.m4: Replace AC_ERROR and AC_HELP_STRING by
	by AC_MSG_ERROR and AS_HELP_STRING.

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

	require Autoconf 2.69 for building from git

	Part of issue #447.

	Autoconf 2.69 was released in 2012, so it now widely available.  The
	recent release of 2.70 is obsoleting some constructs, so it will be
	easier on us if we do not have too many versions to support.

	* HACKING, configure.ac: Require Autoconf 2.69.

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

	* doc/org/oaut.org: Fix two broken displays of results.

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

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

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

	* lib/.gitignore: More files to ignore.

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

	* doc/org/install.org: apt-key is deprecated in Bullseye.

2021-01-18  Florian Renkin  <frenkin@lrde.epita.fr>

	translate: Correct the choice of the automaton with the fewest colors

	* spot/twaalgos/translate.cc: here

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

	determinize: do not copy the "incomplete" property

	Mentioned in issue #298.

	* spot/twaalgos/determinize.cc: Do not copy prop_complete of
	the input if it is false.
	* NEWS: Mention the bug.

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

	propagate: fix constness of scc_info argument

	* spot/twaalgos/degen.cc,
	spot/twaalgos/degen.hh (propagate_marks_vector, propagate_marks_here):
	Take the scc_info* argument as const.

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

	* NEWS: Typo.

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

	debian: do not install README in both spot and spot-doc

	* debian/spot-doc.docs: Delete this file.
	* Makefile.am: Adjust.

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

	* .gitlab-ci.yml: Remove reference to registry.lrde.epita.fr.

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

	debian: use -flto=jobserver.

	* debian/rules: Adjust to use the jobserver, don't pass 'u' to ar.

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

	debian: upgrade dh-compat and standards versions

	* debian/compat, debian/control: Upgrade dh compat from 9 to 12.
	* debian/rules: Upgrade standards from 3.9.6 to to 4.5.1.

2021-01-18  Jerome Dubois  <jdubois@lrde.epita.fr>

	* spot/twa/twagraph: Fix undefined behavior.

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

	simulation: remove unnecessary iteration

	This fixes #442.

	* spot/twaalgos/simulation.cc (iterated_simulations_): Initialize next
	so that we can exit after the first iteration if no change was made.
	* NEWS: Mention the bug.

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

	twagraph: fix merge_edges() ignoring the first edge

	This fixes #441, reported by Jérôme Dubois.

	* tests/python/mergedge.py: New file.
	* tests/Makefile.am: Add it.
	* spot/twa/twagraph.cc (merge_edges): Fix initialization of second
	loop.
	* NEWS: Mention the bug.

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

	* .gitlab-ci.yml (alpine-gcc): Do not run both check and distcheck.

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

	gfguarantee: fix automaton modification during iteration

	Fixes #449.

	* spot/twaalgos/gfguarantee.cc (do_g_f_terminal_inplace): Save
	edge additions to perform them after the loop.  Otherwise,
	reallocating the edge buffer might break the iteration.

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

	python: fix incorrect assertions on temporary objects

	* tests/python/stutter.py: Do not call acc() on a temporary
	object, and fix the last two asserts.

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

	gen, bitset: use clz() to simplify

	Fixes #448.

	* spot/gen/automata.cc (ulog2): Here.
	* spot/misc/bitset.hh: And there.

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

	clz: inline the implementation

	__builtin_clz() can be implemented with two x86 instructions, so we
	don't want to hide it behind a function call.

	* spot/misc/clz.cc: Delete the implementation.
	* spot/misc/Makefile.am: Delete clz.cc.
	* spot/misc/clz.hh: Make the implementation public.

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

	* tests/python/ipnbdoctest.py: Work around failures on Fedora.

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

	* .gitlab-ci.yml (before_script): Debug parallelization settings.

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

	patch gnulib to accomodate autoconf 2.70

	Upgrading gnulib turned to be too difficult, so this only includes
	updates to m4 files necessary to please Autoconf 2.70.

	For issue #447.

	* m4/extensions.m4, m4/malloc.m4, m4/std-gnu11.m4: Cherry-pick
	from today's gnulib version.

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

	update obsolete autoconf constructs

	Part of #447.

	* configure.ac, m4/debug.m4, m4/devel.m4, m4/gccoptim.m4,
	m4/ndebug.m4: Replace AC_ERROR and AC_HELP_STRING by
	by AC_MSG_ERROR and AS_HELP_STRING.

2021-01-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	require Autoconf 2.69 for building from git

	Part of issue #447.

	Autoconf 2.69 was released in 2012, so it now widely available.  The
	recent release of 2.70 is obsoleting some constructs, so it will be
	easier on us if we do not have too many versions to support.

	* HACKING, configure.ac: Require Autoconf 2.69.

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

	* debian/copyright: Add missing licenses for m4/ files.

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

	fix compilation of core/bricks with clang++10

	* configure.ac: Call CHECK_ATOMIC after setting the C++ options.
	This is probably not necessary, but it makes more sense.
	* m4/l_atomic.m4: Augment the test body with a scenario
	that actually requires -latomic.

2021-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/oaut.org: Fix two broken displays of results.

2021-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

2021-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* lib/.gitignore: More files to ignore.

2021-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/install.org: apt-key is deprecated in Bullseye.

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

	bin: add support for -b/--buchi

	* bin/common_post.cc, bin/randaut.cc: Implement -b/--buchi.
	Also add --sba as alias for -B, and --gba as alias for --tgba.
	* NEWS: Document those changes.
	* doc/org/ltl2tgba.org, doc/org/oaut.org: Adjust documentation.
	* tests/core/ltl2tgba2.test, tests/core/ltlcross2.test,
	tests/core/randaut.test: Add more tests.
	* tests/core/sbacc.test: --sbacc cannot be abbreviated as --sba
	anymore.

2020-12-16  Florian Renkin  <frenkin@lrde.epita.fr>

	translate: Correct the choice of the automaton with the fewest colors

	* spot/twaalgos/translate.cc: here

2020-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: do not copy the "incomplete" property

	Mentioned in issue #298.

	* spot/twaalgos/determinize.cc: Do not copy prop_complete of
	the input if it is false.
	* tests/python/298.py: Test it.
	* NEWS: Mention the bug.

2020-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: don't emit colors for temporary braces

	Related to issue #298.

	* spot/twaalgos/determinize.cc: Recognize braces that are temporary
	to avoid emitting colors when they become empty.
	* tests/python/298.py: New file, showing a reduction of colors.
	* tests/Makefile.am: Add it.
	* tests/core/ltlsynt.test: Adjust expected output (now smaller).
	* tests/core/genltl.test: Adjust one expected output (now larger).
	* NEWS: Mention the issue.

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

	translate: add support for -x exprop

	This helped confirming a behavior observed in #298.

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Add support
	for -x exprop.
	* bin/spot-x.cc, NEWS: Document it.
	* tests/core/ltl2tgba2.test: Test it.

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

	propagate: fix constness of scc_info argument

	* spot/twaalgos/degen.cc,
	spot/twaalgos/degen.hh (propagate_marks_vector, propagate_marks_here):
	Take the scc_info* argument as const.

2020-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	game: rewrite, document, and rename solve_reachability_game

	* spot/twaalgos/game.hh, spot/twaalgos/game.cc: Rename
	solve_reachability_game() as solve_safety_game(), rewrite it (the old
	implementation incorrectly marked dead states as winning for their
	owner).
	* tests/python/paritygame.ipynb: Rename as...
	* tests/python/games.ipynb: ... this, and illustrate
	solve_safety_game().
	* tests/Makefile.am, NEWS, doc/org/tut.org: Adjust.
	* tests/python/except.py: Add more tests.

2020-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move game.cc from misc/ to twaalgos/

	* spot/misc/game.cc, spot/misc/game.hh: Move...
	* spot/twaalgos/game.cc, spot/twaalgos/game.hh: ... here.
	* bin/ltlsynt.cc, python/spot/impl.i, spot/misc/Makefile.am,
	spot/twaalgos/Makefile.am: Adjust.

2020-12-09  Jerome Dubois  <jdubois@lrde.epita.fr>

	game: add solve_reachability_game

	* spot/misc/game.cc, spot/misc/game.hh: Add solve_reachability_game.

2020-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_wdba: improve handling of terminal automata

	Part of #444.

	* spot/twaalgos/minimize.cc (minimize_wdba): Terminal automata do not
	need a product to decide which states are accepting in the DBA.  This
	is faster, and also determinize more formulas of #443.
	* tests/core/ltl2tgba2.test: Adjust the expected iteration where
	determinization will be aborted.

2020-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: deal with accepting sinks more effectively

	Part of #444.

	* spot/twaalgos/powerset.cc, spot/twaalgos/powerset.hh: Implement
	accepting sink handling.
	* spot/twaalgos/minimize.cc (minimize_wdba): Pass sinks to
	tgba_powerset.
	* spot/misc/bitvect.hh: Add an interesects method.
	* tests/core/ltl2tgba2.test: More tests.
	* NEWS: Mention this new feature.

2020-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix ignored aborter in WDBA-minimization

	Fixes #443, reported by Roei Nahum.  (However the fix
	only works for the development version, where wdba-det-max
	was introduced to work around that kind of problem.)

	* spot/twaalgos/minimize.cc: Avoid aborter being implicitly
	converted to Boolean.
	* tests/core/ltl2tgba2.test: Add test case.
	* THANKS: Add Roei Nahum.

2020-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

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

	debian: do not install README in both spot and spot-doc

	* debian/spot-doc.docs: Delete this file.
	* Makefile.am: Adjust.

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

	* .gitlab-ci.yml: Remove reference to registry.lrde.epita.fr.

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

	debian: use -flto=jobserver.

	* debian/rules: Adjust to use the jobserver, don't pass 'u' to ar,
	and fix typo introduced by fe694e2ba.

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

	debian: upgrade dh-compat and standards versions

	* debian/compat, debian/control: Upgrade dh compat from 9 to 12.
	* debian/rules: Upgrade standards from 3.9.6 to to 4.5.1.

2020-11-24  Jerome Dubois  <jdubois@lrde.epita.fr>

	* spot/twa/twagraph: Fix undefined behavior.

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

	simulation: remove unnecessary iteration

	This fixes #442.

	* spot/twaalgos/simulation.cc (iterated_simulations_): Initialize next
	so that we can exit after the first iteration if no change was made.
	* NEWS: Mention the bug.

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

	twagraph: fix merge_edges() ignoring the first edge

	This fixes #441, reported by Jérôme Dubois.

	* tests/python/mergedge.py: New file.
	* tests/Makefile.am: Add it.
	* spot/twa/twagraph.cc (merge_edges): Fix initialization of second
	loop.
	* NEWS: Mention the bug.

2020-11-23  Antoine Martin  <amartin@lrde.epita.fr>

	timer: use monotonic clock and accumulate walltime

	Fixes #439

	* spot/misc/timer.hh: here

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version.

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

	Release Spot 2.9.5

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

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

	* NEWS: Update for recent fixes.

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

	python: rename aux.py to aux_.py

	Fixes #437, reporeted by Yann Thierry-Mieg.

	* python/spot/aux.py: Rename as...
	* python/spot/aux_.py: ... this.
	* python/spot/__init__.py, python/Makefile.am: Adjust.
	* NEWS: Mention the change.

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

	python: rename aux.py to aux_.py

	Fixes #437, reporeted by Yann Thierry-Mieg.

	* python/spot/aux.py: Rename as...
	* python/spot/aux_.py: ... this.
	* python/spot/__init__.py, python/Makefile.am: Adjust.
	* NEWS: Mention the change.

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

	ltlsmin: fix incorrect check for dlsym error

	Fix #435 reported by Yann Thierry-Mieg.

	* spot/ltsmin/ltsmin.cc (sym): Fix incorrect check introduced
	by dc4a477172.

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

	org: work around ESS issue 1052

	This was causing all our build to fail.

	* doc/org/init.el.in: Here.

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

	org: various improvements

	* doc/org/spot.css: Improve style and responsiveness.
	* doc/org/oaut.org, doc/org/ioltl.org: Fix some ugly outputs.

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

	org: fix local export

	* doc/org/.dir-locals.el.in: Remove incorrect quote.

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

	tests: do not override DYLD_LIBRARY_PATH

	* tests/run.in: Here.

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

	tests: fix import of libspotgen on Darwin

	Fixes #426, reported by Étienne Renault.

	* tests/run.in: Augment modpath.

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

	Update HACKING

	Fixes #427 and #429.

	* HACKING: Mention dot2tex and update Flex.

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

	tests: fix non-portable use of sed

	Fixes #428, reported by Etienne Renault.

	* tests/core/genltl.test: Do use \? with sed.

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

	tests: use $PERL instead of perl

	* tests/core/ltl2tgba2.test, tests/core/ltldo.test,
	tests/core/ltlfilt.test, tests/core/neverclaimread.test,
	tests/core/parseaut.test, tests/sanity/bin.test: Here.

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

	tests: replace non-portable use of sed by $PERL

	This fixes one failure reported in #428 by Étienne Renault.

	* tests/core/lbt.test: Here.
	* tests/run.in: Export PERL.

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

	minimize_wdba: avoid memory leak

	* spot/twaalgos/minimize.cc: Do not look the final/non_final hash
	table when determinization is aborted.

2020-11-08  Jerome Dubois  <jdubois@lrde.epita.fr>

	* AUTHORS: Add myself.

2020-11-08  Jerome Dubois  <jdubois@lrde.epita.fr>

	python: add check for panda

	* tests/python/ipnbdoctest.py: Skip test if panda is not installed.

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

	* .gitlab-ci.yml: Fix images names.

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

	i386 Debian builds need x86 builders

	* .gitlab-ci.yml: split the amd64/i386 debian builds so we can tag the
	latter with x86.

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

	org: greatly reduce the size of satmin.svg

	* doc/org/satmin.tex: Use a plain background color instead of some
	hashed lines pattern.  This reduces the size of the resulting SVG
	file from 1.9MB to 50kB after minification.
	* doc/org/satmin.org: Adjust to mention autfilt.

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

	minify SVG images if possible

	Fixes #422.

	* HACKING: mention svgo
	* doc/Makefile.am (dist-hook, stamp): Run svgo on produced SVGs.

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

	ltlsmin: fix incorrect check for dlsym error

	Fix #435 reported by Yann Thierry-Mieg.

	* spot/ltsmin/spins_interface.cc (sym): Fix incorrect check introduced
	by dc4a477172.

2020-10-09  Etienne Renault  <renault@lrde.epita.fr>

	revert a7842ac for building static modelcheck

	* configure.ac, tests/Makefile.am: Here.

2020-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: work around ESS issue 1052

	This was causing all our build to fail.

	* doc/org/init.el.in: Here.

2020-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postprocess, translate: add support for Büchi (not state-based)

	spot/twaalgos/postproc.hh: Introduce options Buchi and
	GeneralizedBuchi.  The latter is similar to TGBA but the former differs
	from BA in that it does not imply state-based acceptance, since that
	can be specified separately.  Also all other acceptance types are not
	abbreviated, so those new names make more sense.
	* NEWS: Mention that.
	* spot/twaalgos/postproc.cc, spot/twaalgos/translate.cc: Adjust
	to support Buchi and GeneralizedBuchi without breaking BA and TGBA.
	* bin/autfilt.cc, bin/common_aoutput.cc, bin/common_post.cc,
	bin/ltl2tgta.cc, doc/org/tut10.org, doc/org/tut12.org,
	doc/org/tut30.org, python/spot/__init__.py,
	tests/python/automata.ipynb, tests/python/langmap.py,
	tests/python/misc-ec.py, tests/python/satmin.ipynb,
	tests/python/satmin.py, tests/python/toweak.py: Use the new names.
	* tests/Makefile.am: Add missing langmap.py.

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

	org: various improvements

	* doc/org/spot.css: Improve style and responsiveness.
	* doc/org/oaut.org, doc/org/ioltl.org: Fix some ugly outputs.

2020-09-24  philipp  <philipp@lrde.epita.fr>

	Improving split and reorganizing

	* spot/twaalgos/synthesis.cc, spot/twaalgos/synthesis.hh: New files
	regrouping the functionnalities split and apply_strategy for synthesis
	* python/spot/impl.i, spot/twaalgos/Makefile.am: Add them.
	* spot/twaalgos/split.cc, spot/twaalgos/split.hh: No longer contains
	the splits necessary for for synthesis, moved to
	spot/twaalgos/synthesis.cc, spot/twaalgos/split.hh Split is now faster
	and reduces the number of intermediate states, reducing the overall
	size of the arena
	* spot/misc/game.cc, spot/misc/game.hh: Renaming propagate_players to
	alternate_players.
	* tests/core/ltlsynt.test, tests/python/split.py: Update tests.
	* bin/ltlsynt.cc: Adjust to new split. Swap order of split and
	to_parity for lar.

2020-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	game: mention Oink

	* doc/spot.bib (vandijk.18.tacas): New entry.
	* spot/misc/game.hh (solve_parity_game): Mention it.

2020-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	game: let highlight_strategy work for non-parity games

	This is required by an upcoming patch by Jérôme, solving reachability
	games.

	* spot/misc/game.cc (highlight_strategy): Do not require parity
	acceptance.

2020-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	game: fix handling of useless SCCs

	This is a bug I introduced while merging Philipp's patch.

	* spot/misc/game.cc (parity_game::solve): Set the strategy for player
	0 in useless SCCs.
	(parity_game::fix_scc): Do not use sub_game_ to detect edges exiting
	the SCC.
	* tests/python/game.py: New file.
	* tests/Makefile.am: Add it.

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

	org: fix local export

	* doc/org/.dir-locals.el.in: Remove incorrect quote.

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

	tests: do not override DYLD_LIBRARY_PATH

	* tests/run.in: Here.

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

	tests: fix import of libspotgen on Darwin

	Fixes #426, reported by Étienne Renault.

	* tests/run.in: Augment modpath.

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

	Update HACKING

	Fixes #427 and #429.

	* HACKING: Mention dot2tex and update Flex.

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

	tests: fix non-portable use of sed

	Fixes #428, reported by Etienne Renault.

	* tests/core/genltl.test: Do use \? with sed.

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

	tests: use $PERL instead of perl

	* tests/core/ltl2tgba2.test, tests/core/ltldo.test,
	tests/core/ltlfilt.test, tests/core/neverclaimread.test,
	tests/core/parseaut.test, tests/sanity/bin.test: Here.

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

	tests: replace non-portable use of sed by $PERL

	This fixes one failure reported in #428 by Étienne Renault.

	* tests/core/lbt.test: Here.
	* tests/run.in: Export PERL.

2020-09-22  philipp  <philipp@lrde.epita.fr>

	game: reimplement parity game solving

	* spot/misc/game.cc, spot/misc/game.hh: More efficient implementation
	of Zielonka's algorithm to solve parity games.  Now supports SCC
	decomposition and efficient handling of certain special cases.
	* doc/org/concepts.org: Document "strategy" and "state-winner"
	properties.
	* bin/ltlsynt.cc, tests/python/paritygame.ipynb: Adjust.
	* tests/core/ltlsynt.test: Add more tests.

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

	* spot/misc/common.hh: Require C++17 and simplify some macros.

2020-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Philipp.

2020-09-19  philipp  <philipp@lrde.epita.fr>

	game: reimplement print_aiger

	* spot/twaalgos/aiger.cc, spot/twaalgos/aiger.hh: Reimplement
	print_aiger for speed gain, also heuristics to minimize the number
	of gates as well as different encoding types have been added.
	* bin/ltlsynt.cc: Make the new options for print-aiger available.
	* tests/core/ltlsynt.test: Adjust tests.

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

	translator: add tls-max-states option

	This restricts the time spent in translating sub-formulas for
	implication tests by limiting the associated automata to 64 states by
	default.  Doing so this does worsen any test case, and actually remove
	all calls the BuDDy's GC in bdd.test.

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh,
	spot/tl/simplify.cc, spot/tl/simplify.hh, spot/tl/contain.hh,
	spot/tl/contain.cc, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/ltl2tgba_fm.hh: Add support for the option or
	its constraint via an output_aborter.
	* bin/spot-x.cc, NEWS: Document it.
	* tests/core/bdd.test: Adjust and augment test case.

2020-09-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: reduce automata width to prevent overflows with Jupyter

	* python/spot/__init__.py (setup): Reduce the default maximal width of
	automata so that Jupyter output does not add an horizontal scroll bar
	for a few pixels.
	* tests/python/automata-io.ipynb: Adjust.

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

	postproc: add simul-max and wdba-det-max options

	* NEWS, bin/spot-x.cc: Document them.
	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement
	them.
	* tests/python/stutter-inv.ipynb: Adjust result.
	* tests/core/minusx.test: Add test case.

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

	minimize_wdba: avoid memory leak

	* spot/twaalgos/minimize.cc: Do not look the final/non_final hash
	table when determinization is aborted.

2020-09-16  Jerome Dubois  <jdubois@lrde.epita.fr>

	* AUTHORS: Add myself.

2020-09-16  Jerome Dubois  <jdubois@lrde.epita.fr>

	python: add check for panda

	* tests/python/ipnbdoctest.py: Skip test if panda is not installed.

2020-09-16  Jerome Dubois  <jdubois@lrde.epita.fr>

	game: Add set_state_player() and get_state_player()

	Fixes #424.

	* python/spot/impl.i: Add implicit convertion for vector<bool>.
	* spot/misc/game.cc, spot/misc/game.hh: Add set_state_player()
	  and get_state_player().
	* tests/python/parity.py: Test them.

2020-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Fix images names.

2020-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	i386 Debian builds need x86 builders

	* .gitlab-ci.yml: split the amd64/i386 debian builds so we can tag the
	latter with x86.

2020-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: greatly reduce the size of satmin.svg

	* doc/org/satmin.tex: Use a plain background color instead of some
	hashed lines pattern.  This reduces the size of the resulting SVG
	file from 1.9MB to 50kB after minification.
	* doc/org/satmin.org: Adjust to mention autfilt.

2020-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minify SVG images if possible

	Fixes #422.

	* HACKING: mention svgo
	* doc/Makefile.am (dist-hook, stamp): Run svgo on produced SVGs.

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

	python: add some parity-game bindings

	* python/spot/impl.i: Process game.hh.
	* spot/misc/game.cc, spot/misc/game.hh: Make the output of
	parity_game_solve() a solved_game object for easier manipulation in
	Python.
	* bin/ltlsynt.cc: Adjust usage.
	* tests/python/paritygame.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* NEWS: Mention these bindings.

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

	game: make a propagate_players() function public

	* bin/ltlsynt.cc (complete_env): Replace this function by...
	* spot/misc/game.hh, spot/misc/game.cc (propagate_players): ... this
	new one, hiding the "state-player" business from ltlsynt.  Also do not
	create a sink states unless necessary.
	* tests/core/ltlsynt.test: Adjust expected number of states.

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

	dot: add support for two-player games

	* spot/twaalgos/dot.cc: Honor the "state-player" property and draw
	player 1 states using diamonds.
	* doc/org/hoa.org: Show an example.
	* tests/core/gamehoa.test: Make sure diamond is output.
	* NEWS: Mention this.

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

	extend HOA I/O to preserve the state-player property

	* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll,
	spot/twaalgos/hoa.cc: Add input and output support.
	* doc/org/hoa.org: Document the HOA extension.
	* bin/ltlsynt.cc: Add a --print-game-hoa option to
	produce such format.
	* tests/core/gamehoa.test: New file to test this.
	* tests/Makefile.am: Add it.
	* NEWS: Mention this new feature.

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

	game: git rid of the parity_game class

	This class was a simple wrapper on top of twa_graph_ptr, but it's
	easier to simply use a twa_graph_ptr with a "state-player" property
	instead, this way we will be able to modify the automata I/O routines
	to support games directly.

	* spot/misc/game.cc, spot/misc/game.hh: Rewrite the solver and
	pg_printer interface.
	* bin/ltlsynt.cc: Adjust.
	* NEWS: Mention this change.
	* doc/org/concepts.org: Mention the state-player property.

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

	* doc/org/spot.css: Remove margin-bottom from pre.example.

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

	* doc/org/spot.css: Remove margin-bottom from pre.example.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.9.4.dev.

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

	Release Spot 2.9.4

	* NEWS, configure.ac, doc/org/setup.org: Bump to version 2.9.4.

2020-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Update docker images, for buildenv#1.

2020-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Update docker images, for buildenv#1.

2020-09-02  Florian Renkin  <frenkin@lrde.epita.fr>

	Fix typo

	* NEWS, spot/graph/graph.hh: here.

2020-09-02  Florian Renkin  <frenkin@lrde.epita.fr>

	configure.ac: Correct warning message

	configure.ac used unintialized variable when he printed message
	for enable-max-accsets

	* configure.ac: here.

2020-09-01  Florian Renkin  <frenkin@lrde.epita.fr>

	Fix typo

	* NEWS, spot/graph/graph.hh: here.

2020-09-01  Florian Renkin  <frenkin@lrde.epita.fr>

	configure.ac: Correct warning message

	configure.ac used unintialized variable when he printed message
	for enable-max-accsets

	* configure.ac: here.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minato: use bdd_ite()

	* spot/misc/minato.cc: Use bdd_ite() to exercise one of the function
	rewritten in the next patch, and also because that is supposedly
	faster.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ioltl.org: Document prefix operators.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	help2man: allow line breaks in long lists of options

	* tools/help2man: Add \: after | when listing optional arguments.
	This should fix a lintian warning about unbreakable long line.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/rules (fix-js): Adjust to newer MathJax URL.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_parity: minor fixes

	* spot/twaalgos/toparity.cc: Do not call prpagate_marks_here twice if
	the automaton was not degeneralized.
	* spot/twaalgos/toparity.hh: Typo in comment.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/satsolver.hh: Typo in comment.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	argp: fix handling of very long options in --help

	* lib/argp-help.c (hol_entry_help): Handle cases with option
	description is larger than RMARGIN.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/copyright: Replace MIT by Expat.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: improve css

	* doc/org/spot.css: Display input and output closer and separate them
	with dash.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ipnbdoctest.py: Ignore matplotlib font cache messages.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/toparity.hh: Improve documentation.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix shadow of hierarchy figure

	* doc/org/hierarchy.tex: Draw the shadow manually, so that it is part
	of the bounding box when we extract the SVG.

2020-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: fix handling of keep_top_xor

	Under that option, !(a ^ b) was converted
	to (!a <=> !b) instead of simply (a <=> b).

	* spot/tl/simplify.cc (equiv_or_xor): Improve
	rewriting.
	* tests/core/ltl2tgba2.test, tests/python/simstate.py: Adjust test
	cases.

2020-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ioltl.org: Document prefix operators.

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

	help2man: allow line breaks in long lists of options

	* tools/help2man: Add \: after | when listing optional arguments.
	This should fix a lintian warning about unbreakable long line.

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

	* debian/rules (fix-js): Adjust to newer MathJax URL.

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

	to_parity: minor fixes

	* spot/twaalgos/toparity.cc: Do not call prpagate_marks_here twice if
	the automaton was not degeneralized.
	* spot/twaalgos/toparity.hh: Typo in comment.

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

	simplify_acceptance: generalize the complementary mark rewriting

	Fixes #403.

	* spot/twaalgos/cleanacc.cc (simplify_complementary_marks_here):
	Assume that two colors are complementary in a broad sense, i.e., on is
	present if (but not only if) the other is missing before applying
	those rewritings.  Technically, this is usually not necessary, because
	the changes done in #418 will cause such "covering-the-full-automaton"
	pair of colors to be disjoint so complementary in a strict sense.  It
	might make a difference (this is not tested) in presence of reused
	colors which #418 cannot remove.  In any case, it's simply less code
	to implement the broad sense.
	* tests/python/toparity.py: Add test case from #403, which is
	reduced to two states with recent optimizations.

2020-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve acceptance simplifications using useless colors

	This fixes issue #418.

	* spot/twa/acc.cc,
	spot/twa/acc.hh (acc_cond::acc_code::useless_colors_patterns): New
	method to detect patterns of colors allowing other colors to be added
	or removed at will.
	* spot/twaalgos/cleanacc.cc (simplify_acceptance_here): Use the above
	patterns to remove some useless colors from transitions and hope that
	this can help simplify the acceptance condition.
	* spot/twaalgos/degen.cc (propagate_marks_vector): Use the pattern to
	add more colors.
	* tests/core/ltl2tgba2.test: Add the test case from issue #418.
	* tests/core/ltl2dstar4.test, tests/core/satmin3.test,
	tests/core/sccdot.test, tests/core/sim3.test,
	tests/python/automata.ipynb, tests/python/decompose.ipynb,
	tests/python/merge.py, tests/python/pdegen.py, tests/python/remfin.py,
	tests/python/toparity.py, tests/python/tra2tba.py: Adjust all test
	cases.
	* NEWS: Mention this new feature.

2020-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/satsolver.hh: Typo in comment.

2020-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cleanacc: merge algorithms dealing with included and identical sets

	* spot/twaalgos/cleanacc.cc (merge_identical_marks_here, merge_mark,
	included_marks): Fuse these into ...
	(simplify_included_marks_here): ... this new function.
	* NEWS: Mention the fix of issue #406.

2020-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	argp: fix handling of very long options in --help

	* lib/argp-help.c (hol_entry_help): Handle cases with option
	description is larger than RMARGIN.

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

	* debian/copyright: Fix bricks' license, and replace MIT by Expat.

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

	doc: improve css

	* doc/org/spot.css: Display input and output closer and separate them
	with dash.

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

	tra_to_tba: finish 05e6e0885

	* spot/twaalgos/remfin.cc: Actually use propmarks.
	* tests/core/det.test, tests/core/remfin.test,
	tests/python/automata.ipynb, tests/python/remfin.py,
	tests/python/tra2tba.py: Adjust test cases.

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

	* tests/python/ipnbdoctest.py: Ignore matplotlib font cache messages.

2020-07-25  Florian Renkin  <frenkin@lrde.epita.fr>

	simplify_acceptance: Use color inclusions to simplify a condition

	This fixes #406.

	* spot/twaalgos/cleanacc.cc: Add the simplification.
	* tests/core/remfin.test, tests/python/automata.ipynb,
	tests/python/remfin.py: Update tests.
	* tests/python/simplacc.py: Update and add tests.

2020-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tra_to_tba: remove more useless edges

	* spot/twaalgos/remfin.cc (tra_to_tba): Implement the same
	optimization has in the generic remove_fin transformation.
	* tests/python/tra2tba.py: Adjust.

2020-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/toparity.hh: Improve documentation.

2020-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: ignore more useless transitions

	Do not clone transitions that are necessarily part of on accepting
	cycle in the main copy of the automaton.

	* spot/twaalgos/remfin.cc: Use propagate_marks_vector to ignore more
	edges.
	* tests/core/remfin.test, tests/python/remfin.py,
	tests/python/automata.ipynb: Adjust.
	* tests/sanity/style.test: Do not choke on C++17 if statements with
	initializer.

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

	org: fix shadow of hierarchy figure

	* doc/org/hierarchy.tex: Draw the shadow manually, so that it is part
	of the bounding box when we extract the SVG.

2020-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: add a quick syntactic simplification before relabeling

	This fixes #412.

	* spot/twaalgos/translate.cc: Add the quick syntactic simplification.
	* spot/twaalgos/relabel.cc: Do not register old unused APs.
	* tests/core/ltl2tgba2.test: Add test case.
	* tests/core/bdd.test, tests/python/automata.ipynb: Adjust.
	* NEWS: Mention this.

2020-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: fix handling of keep_top_xor

	Under that option, !(a ^ b) was converted
	to (!a <=> !b) instead of simply (a <=> b).

	* spot/tl/simplify.cc (equiv_or_xor): Improve
	rewriting.
	* tests/core/ltl2tgba2.test, tests/python/simstate.py: Adjust test
	cases.

2020-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2020-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac, NEWS: Bump version to 2.9.3.dev.

2020-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.9.3

	* configure.ac, NEWS, doc/org/setup.org: Set version to 2.9.3.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: run a spell checker on the documentation

	* doc/org/autcross.org, doc/org/autfilt.org, doc/org/citing.org,
	doc/org/compile.org, doc/org/concepts.org, doc/org/csv.org,
	doc/org/dstar2tgba.org, doc/org/genaut.org, doc/org/genltl.org,
	doc/org/hierarchy.org, doc/org/hoa.org, doc/org/index.org,
	doc/org/install.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org,
	doc/org/ltlcross.org, doc/org/ltlfilt.org, doc/org/ltlgrind.org,
	doc/org/ltlsynt.org, doc/org/oaut.org, doc/org/randaut.org,
	doc/org/randltl.org, doc/org/satmin.org, doc/org/tut.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
	doc/org/tut12.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut23.org, doc/org/tut24.org,
	doc/org/tut30.org, doc/org/tut31.org, doc/org/tut50.org,
	doc/org/tut51.org, doc/org/tut52.org, doc/org/tut90.org,
	doc/org/upgrade2.org: Run ispell-buffer on all these.
	* bin/autfilt.cc, python/spot/__init__.py: Fix typos in
	help texts noticed while spell-checking the org files.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix python execution with in-tree source and Swig4

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Set the
	SPOT_UNINSTALLED envvar, as we already do in the test suite.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: completely fix #420

	Reported by Salomon Sickert.

	* bin/ltlcross.cc: Also call determinize_unknown_acceptance() for
	positive automata.
	* tests/core/ltlcross3.test: Add another test case.
	* NEWS: Mention the fix.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: run a spell checker on the documentation

	* doc/org/autcross.org, doc/org/autfilt.org, doc/org/citing.org,
	doc/org/compile.org, doc/org/concepts.org, doc/org/csv.org,
	doc/org/dstar2tgba.org, doc/org/genaut.org, doc/org/genltl.org,
	doc/org/hierarchy.org, doc/org/hoa.org, doc/org/index.org,
	doc/org/install.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org,
	doc/org/ltlcross.org, doc/org/ltlfilt.org, doc/org/ltlgrind.org,
	doc/org/ltlsynt.org, doc/org/oaut.org, doc/org/randaut.org,
	doc/org/randltl.org, doc/org/satmin.org, doc/org/tut.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
	doc/org/tut12.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut23.org, doc/org/tut24.org,
	doc/org/tut30.org, doc/org/tut31.org, doc/org/tut50.org,
	doc/org/tut51.org, doc/org/tut52.org, doc/org/tut90.org,
	doc/org/upgrade2.org: Run ispell-buffer on all these.
	* bin/autfilt.cc, python/spot/__init__.py: Fix typos in
	help texts noticed while spell-checking the org files.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix python execution with in-tree source and Swig4

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Set the
	SPOT_UNINSTALLED envvar, as we already do in the test suite.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: completely fix #420

	Reported by Salomon Sickert.

	* bin/ltlcross.cc: Also call determinize_unknown_acceptance() for
	positive automata.
	* tests/core/ltlcross3.test: Add another test case.
	* NEWS: Mention the fix.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.9.2.dev.

2020-07-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.9.2

	* configure.ac, NEWS, doc/org/setup.org: Set version to 2.9.2.

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

	ltlcross: fix cross-checks for automata using Fin acceptance

	Fixes #420 reported by Salomon Sickert.

	* bin/ltlcross.cc: Call determine_unknown_acceptance().
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Document
	that one_accepting_scc()==-1 can mean "don't know", and update
	determine_unknown_acceptance() to set one_acc_scc_.
	* tests/core/ltlcross3.test: Add test case.
	* NEWS: Mention the fixes.

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

	C++20: fix warnings reported by g++ 10.1

	* spot/tl/formula.hh (formula::operator bool): Mark as noexcept.
	* bin/common_trans.hh, bin/common_trans.cc: Use std::atomic instead of
	volatile.

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

	* doc/org/setup.org: Fix release date.

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

	ltlcross: fix cross-checks for automata using Fin acceptance

	Fixes #420 reported by Salomon Sickert.

	* bin/ltlcross.cc: Call determine_unknown_acceptance().
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Document
	that one_accepting_scc()==-1 can mean "don't know", and update
	determine_unknown_acceptance() to set one_acc_scc_.
	* tests/core/ltlcross3.test: Add test case.
	* NEWS: Mention the fixes.

2020-07-17  Etienne Renault  <renault@lrde.epita.fr>

	Fixes #419

	* configure.ac: Here.

2020-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: make operator bool explicit

	* spot/tl/formula.hh (formula::operator bool): Make it explicit.  When
	compiling in C++20 mode with g++ 10.1, this bool operator was used
	instead of the comparison operators while looking up a
	std::pair<formula,formula> in a hash map, causing many test suite
	failures.  This problem does not occur with clang++ 10.0, so it
	might just be a bug in g++ 10.1.  But having explicit operator bool
	is good practice anyway.

2020-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	C++20: work around g++ 10.1 bug #95242

	With GCC 10.1 all comparisons that default to the <=> C++20 comparison
	operator emit a spurious zero-as-null-pointer-constant warning, which
	is an error in our configuration.  This is due to an implementation
	choice in the libstdc++ library, so it also causes warning from
	clang++ 10.0 when using the same libstdc++ library.  A fix for GCC
	PR95242 was committed in g++ (not in libstdc++), so while g++ 10.2
	might be fixed, clang++ will need a similar fix.

	I've seen those failures on Arch linux with gcc 10.1.0-2 and clang
	10.0.0-3.  On Debian sid, g++ 10.1.0-4 seems to already include the
	fix.

	* m4/gccwarn.m4: Include a string comparison in the test code so that
	-Wzero-as-null-pointer-constant is not enabled if it would produce
	warnings on such statements.

2020-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	C++20: fix warnings reported by g++ 10.1

	* spot/tl/formula.hh (formula::operator bool): Mark as noexcept.
	* bin/common_trans.hh, bin/common_trans.cc: Use std::atomic instead of
	volatile.

2020-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	build in C++17 mode by default

	* configure.ac: Activate C++17, and replace --enable-c++17 by
	--enable-c++20.
	* NEWS: Mention the news.
	* .gitlab-ci.yml: Use C++20 for the former C++17 builds.
	* HACKING, README, doc/org/compile.org, doc/org/concepts.org,
	doc/org/index.org, doc/org/install.org, doc/org/tut.org,
	doc/org/upgrade2.org, spot/misc/escape.hh: Adjust mentions
	of C++14.

2020-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/setup.org: Fix release date.

2020-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2020-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.9.1.dev.

2020-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.9.1

	* configure.ac, NEWS, doc/org/setup.org: Set version to 2.9.1.

2020-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: simplify, thanks to previous patch

	* spot/twaalgos/remfin.cc: Get rid of for_each_edge since edges_of()
	and inner_edges_of() are now honoring the filters.

2020-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: honor filters in edges_of() and inner_edges_of()

	* spot/twaalgos/sccinfo.hh: Honor filters in edges_of() and
	inner_edges_of().
	* tests/core/sccif.test: Adjust expected output.
	* NEWS: Mention the bug.

2020-07-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: diagnose complementations requiring too many colors

	Fixes #411 reported by Frantiček Blahoudek.

	* bin/ltlcross.cc: Catch the issue.
	* tests/core/ltlcross6.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention it.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	run: fix reduce on automata with Fin

	Reported by Florian Renkin.

	* spot/twaalgos/emptiness.cc (reduce): If the automaton uses Fin
	acceptance, check the reduced cycle and revert to the original cycle
	if necessary.
	* tests/python/intrun.py: New file.
	* tests/Makefile.am: Add it.
	* spot/twaalgos/emptiness.hh: Improve documentation.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: replace one recursive call by a loop

	* spot/twaalgos/genem.cc: In the spot29 implementation for the generic
	case, when Fin(fo)=true and Fin(fo)=false have to be tested
	separately, the second test can be done by a loop instead of a
	recursion, to avoid unnecessary processing of the acceptance
	condition.  Suggested by Jan Strejček.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	address a new g++-10 warnings

	* spot/twa/twa.hh (set_named_prop): Declare the lambda as noexcept.
	* spot/twaalgos/couvreurnew.cc (acss_states): Likewise.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	swig: search for swig4.0

	* configure.ac: Use swig4.0 when available.
	* HACKING: Update.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: improve error messages

	Use ltldo:... instead of error:... and warning:... and also improve
	the diagnostic displayed after a translation failure to mention the
	tool and formula.

	Incidentally, this fixes a spurious test case failure observed by
	Philipp Schlehuber on CentOS7.7 where glibc 2.17 is installed.  With
	this system, when posix_spawn() starts a binary that does not exist,
	it returns success and let the child die with exit code 127.  On more
	recent glibc, posix_spawn() manages to return execve()'s errno, as if
	the child had not been created.  We handle those two different ways to
	fail, but before this patch one used to print "error:..." and the
	other "ltldo:...".

	* bin/ltldo.cc: Display the program_name in error message.  Display
	the command name and formula on translation failure.
	* tests/core/ltldo.test: Adjust test case.
	* NEWS: Mention the fix.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/sanity/80columns.test: Force LC_ALL.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: fix doc

	* spot/twaalgos/sccinfo.hh (scc_info_options::NONE): Fix doxygen doc.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: get rid of set_num_sets_()

	* spot/twa/twa.hh (set_num_sets_): Remove, and adjust all uses.
	This fixes #414.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: use wdba-minimize=2 and ba-simul=0

	* bin/ltlsynt.cc: Here.
	* tests/core/ltlsynt.test: Add extra test case.
	* NEWS: Mention ltlsynt -x and related defaults.

2020-07-13  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Change default options

	* bin/ltlsynt.cc: Change default options.
	* tests/core/ltlsynt.test: Add test.

2020-07-13  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Add more elements in csv

	* bin/ltlsynt.cc: Add the number of states of the dpa
	and of the parity game in the csv.

2020-07-13  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Add -x option for translation

	* bin/ltlsynt.cc: ltlsynt can use extra options for translator.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around diagnostic changes in Bison 3.6

	Bison <3.6 used to complain about "$undefined", while Bison >=3.6 now
	write "invalid token".

	* tests/core/parseaut.test, tests/core/parseerr.test,
	tests/core/sugar.test: Adjust expected diagnostics to match Bison pre
	and post 3.6.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: add --algo=ps

	* bin/ltlsynt.cc: Implement this.
	* tests/core/ltlsynt.test: Add a test case.
	* NEWS: Mention it.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify_acc: perform unit-propagation earlier

	Closes #405.   This shows no difference on the test suite,
	but that is thanks to the previous patch: without it, an
	example in automata.ipynb would have an extra edge.

	* spot/twaalgos/cleanacc.cc (simplify_acceptance): Call
	unit_propagation() before simplify_complementary_marks_here() and
	fuse_marks_here(), because that is simpler to perform.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: do not clone transitions that are accepting in main

	* spot/twaalgos/remfin.cc (default_strategy): Detect transitions
	from the main copy that are completely accepting and that do not
	need to be repeated in the clones.
	* tests/python/remfin.py: Add a test case.
	* tests/core/ltl2dstar4.test: Improve expected results.
	* NEWS: Mention the change.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve fuse_marks_here by detecting more patterns

	This remove some restrictions that prevented fuse_marks_here from
	simplifying certain patterns, as noted in the first comment of
	issue #405.

	* spot/twaalgos/cleanacc.cc (find_interm_rec, find_fusable): Remove
	some unnecessary restrictions to singleton marks, and replace the hack
	put one non-singleton mark at the beginning of the singleton list by a
	sort.
	* tests/python/simplacc.py: Add two test cases.
	* tests/python/automata.ipynb, tests/core/remfin.test: Improve
	expected results.
	* NEWS: Mention the bug.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fixpool: allocate a new chunk on creation

	Allocate the first chunk when the fixpool is created.  This avoid a
	undefined behavior reported in issue #413 without requiring an extra
	comparison in allocate().

	* spot/misc/fixpool.hh, spot/misc/fixpool.cc (new_chunk_): New method
	extracted from allocate().  Use it in the constructor as well.
	* NEWS: Mention the bug.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: option to wdba-minimize only when sure

	Fixes #15.

	* spot/twaalgos/minimize.hh, spot/twaalgos/minimize.cc
	(minimize_obligation_garanteed_to_work): New function.
	* spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Use it if
	wdba-minimize=1.  Handle new default for wdba-minimize.
	* NEWS, bin/spot-x.cc: Document those changes.
	* tests/core/ltl2tgba2.test: Add some test cases.
	* tests/core/genltl.test: Improve expected results.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Remove extra newlines (fixes #410).

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: speed up the computation of transitions

	Juraj Major reported a case with 32 APs where ltlcross would take
	forever to gather statistics.  It turns out that for each edge,
	twa_sub_statistics was enumerating all compatible assignments of 32
	APs.  This uses bdd_satcountset() instead, and also store the result
	in a long long to avoid overflows.

	* spot/twaalgos/stats.cc (twa_sub_statistics): Improve the code for
	counting transitions.
	* bin/common_aoutput.hh, bin/ltlcross.cc, spot/twaalgos/stats.hh:
	Store transition counts are long long.
	* tests/core/readsave.test: Add test case.
	* NEWS: Mention the bug.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: make sure the previous Xor optimization actually works

	* spot/tl/simplify.hh, spot/tl/simplify.cc,
	spot/twaalgos/translate.cc: Update the tl_simplification
	options after all preferences have been given.
	* bin/ltlsynt.cc: Display the size of the translation output.
	* tests/core/ltlsynt.test: Add test case.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: improve handling of Xor and Equiv at top-level for -G -D

	* spot/tl/formula.hh: Add variant of formula::is that support 4
	arguments.
	* spot/tl/simplify.hh, spot/tl/simplify.cc: Add option keep_top_xor
	to preserve Xor and Equiv at the top-level.
	* spot/twaalgos/translate.cc: Adjust ltl-split to deal with Xor and
	Equiv for the -D -G case.
	* NEWS: Mention that.
	* tests/core/ltl2tgba2.test: Add test case.
	* tests/python/simstate.py: Adjust expected result.

2020-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: add product_xor() and product_xnor()

	* spot/twaalgos/product.cc, spot/twaalgos/product.hh: Add those
	functions.
	* tests/python/_product_weak.ipynb, tests/python/except.py: Test them.
	* NEWS: Mention them.

2020-07-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	run: fix reduce on automata with Fin

	Reported by Florian Renkin.

	* spot/twaalgos/emptiness.cc (reduce): If the automaton uses Fin
	acceptance, check the reduced cycle and revert to the original cycle
	if necessary.
	* tests/python/intrun.py: New file.
	* tests/Makefile.am: Add it.
	* spot/twaalgos/emptiness.hh: Improve documentation.

2020-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: replace one recursive call by a loop

	* spot/twaalgos/genem.cc: In the spot29 implementation for the generic
	case, when Fin(fo)=true and Fin(fo)=false have to be tested
	separately, the second test can be done by a loop instead of a
	recursion, to avoid unnecessary processing of the acceptance
	condition.  Suggested by Jan Strejček.

2020-06-11  Etienne Renault  <renault@lrde.epita.fr>

	bricks: rework tests

	On some architectures this test fails due to several
	reasons:
	    - missing headers
	    - use of valueAt instead of count in ConCS. Indeed,
	    valueAt acts similarly to count but avoids some validity
	    check that are required when the hashmap is growing.

	This patch also:
	     - removes inaccurate comments from bricks.test.
	     - test more features for hashset.

	* spot/bricks/brick-hashset,
	tests/core/bricks.cc,
	tests/core/bricks.test: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	HACKING: precisions for debugging under MacOS

	* HACKING: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	HACKING: rename src to spot

	* HACKING: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	cube: prefer value_initialization

	* spot/twacube/cube.cc: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	lpar13: avoid leak when counterexample detected

	* spot/mc/lpar13.hh: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	bloemen_ec: avoid leak when counterexample detected

	* spot/mc/bloemen_ec.hh: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	sanity: fixes #417

	* tests/sanity/style.test: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	bricks: include tests in test-suite

	* tests/Makefile.am,
	tests/core/bricks.cc,
	tests/core/bricks.test: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	bricks: details version and modifications

	* README, spot/bricks/README: Here.

2020-06-10  Etienne Renault  <renault@lrde.epita.fr>

	modelchek: add more tests

	* tests/ltsmin/check.test,
	tests/ltsmin/finite.test: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: adjust default value for deadlock

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: do not load twice model

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	lpar13: call finalize even when empty product

	* spot/mc/lpar13.hh: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: fix incorrect return value without --csv

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	mc: fixes #416

	* spot/mc/bloemen_ec.hh: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	twacube: cleanup API

	* spot/twacube/twacube.cc,
	spot/twacube/twacube.hh: Here.

2020-06-09  Etienne Renault  <renault@lrde.epita.fr>

	cube: more tests

	* tests/core/cube.cc, tests/core/cube.test: Here.

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

	address a new g++-10 warnings

	* spot/twa/twa.hh (set_named_prop): Declare the lambda as noexcept.
	* spot/twaalgos/couvreurnew.cc (acss_states): Likewise.

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

	swig: search for swig4.0

	* configure.ac: Use swig4.0 when available.
	* HACKING: Update.

2020-06-08  Etienne Renault  <renault@lrde.epita.fr>

	rpm: fixes commit 3acf2ca6

	* spot.spec.in, spot/Makefile.am: Here.

2020-06-04  Etienne Renault  <renault@lrde.epita.fr>

	HACKING: swig-python is required for MacOS

	* HACKING: Here.

2020-06-04  Etienne Renault  <renault@lrde.epita.fr>

	rpm: add unpackaged files

	* spot.spec.in: Here.

2020-06-04  Etienne Renault  <renault@lrde.epita.fr>

	debian: remove useless directive

	* debian/libspot-dev.install: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: fix typo

	* spot/twacube/twacube.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	are_equivalent: remove redundant code

	* spot/twacube_algos/convert.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube_to_twa: allows use of existing BDD_dict

	* spot/twacube_algos/convert.cc,
	spot/twacube_algos/convert.hh: Here.
	* tests/core/twacube.cc: Test it.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	cube: incorrect use of reverse_binder in are_equivalent

	Thanks to A. Martin for reporting this.

	* spot/twacube_algos/convert.cc,
	tests/core/twacube.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	atomic: check if -latomic is required for std::atomic

	* configure.ac,
	m4/l_atomic.m4,
	python/Makefile.am,
	tests/Makefile.am: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	NEWS: mention cube-based transformations

	* NEWS: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	raspbian: add missing library

	* tests/Makefile.am,
	python/Makefile.am: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: ignore thread affinity

	* tests/ltsmin/check.test,
	tests/ltsmin/testconvert.test: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: add missing library

	* tests/Makefile.am: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: remove old FIXME

	*  spot/mc/mc_instanciator.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: do not mix static and SPOT_API

	* spot/mc/mc_instanciator.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	kripke: add missing SPOT_API

	* spot/kripke/kripke.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: concept-like check for mc_algorithms

	* spot/mc/mc_instanciator.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: fix erroneous translation

	* spot/twacube_algos/convert.cc,
	tests/core/twacube.test: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube_algos: add support for are_equivalent

	* spot/twacube_algos/convert.cc,
	spot/twacube_algos/convert.hh,
	tests/core/twacube.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	sanity: please 80 columns

	* spot/ltsmin/spins_kripke.hh,
	spot/twacube/twacube.cc,
	spot/twacube_algos/convert.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: correct SPOT_API

	* spot/mc/mc.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: more relevant information for --csv

	* tests/ltsmin/check.test,
	tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: keep information about the finisher

	* spot/mc/bloemen.hh,
	spot/mc/bloemen_ec.hh,
	spot/mc/cndfs.hh,
	spot/mc/deadlock.hh,
	spot/mc/lpar13.hh,
	spot/mc/mc.hh,
	spot/mc/mc_instanciator.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	check: update with new modelcheck options/output

	* tests/ltsmin/check.test: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: add missing --kripke option

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: please include.test

	* spot/mc/bloemen.hh,
	spot/mc/bloemen_ec.hh,
	spot/mc/deadlock.hh,
	spot/mc/lpar13.hh,
	spot/mc/mc.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: rework and test conversion into twa

	* spot/mc/Makefile.am,
	spot/mc/reachability.hh,
	spot/mc/utils.hh,
	tests/Makefile.am,
	tests/ltsmin/.gitignore,
	tests/ltsmin/testconvert.cc,
	tests/ltsmin/testconvert.test: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: rework product_to_twa

	* spot/mc/utils.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: merge deadlock and reachabilty algorithms

	* spot/mc/deadlock.hh,
	spot/mc/mc.hh,
	spot/mc/mc_instanciator.hh,
	tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: formula can be nullptr

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	cube: rename get_ap into ap

	* spot/kripke/kripke.hh,
	spot/ltsmin/spins_kripke.hh,
	spot/ltsmin/spins_kripke.hxx,
	spot/mc/mc_instanciator.hh,
	spot/mc/utils.hh,
	spot/twacube/twacube.cc,
	spot/twacube/twacube.hh,
	spot/twacube_algos/convert.cc,
	tests/core/twacube.cc,
	tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: clarify method name

	* spot/mc/bloemen.hh,
	spot/mc/bloemen_ec.hh,
	spot/mc/cndfs.hh,
	spot/mc/deadlock.hh,
	spot/mc/lpar13.hh,
	spot/mc/mc_instanciator.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: rename ec_renault13lpar into lpar13

	* spot/mc/ec.hh: Rename to ...
	* spot/mc/lpar13.hh: ... this.
	* spot/mc/Makefile.am,
	spot/mc/mc_instanciator.hh,
	tests/ltsmin/modelcheck.cc: Here

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	kripke: please style.test

	* spot/kripke/kripke.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: refactor parallel algorithms

	* spot/mc/Makefile.am,
	spot/mc/bloemen.hh,
	spot/mc/bloemen_ec.hh,
	spot/mc/cndfs.hh,
	spot/mc/deadlock.hh,
	spot/mc/ec.hh,
	spot/mc/intersect.hh,
	spot/mc/mc.hh,
	spot/mc/mc_instanciator.hh,
	spot/mc/utils.hh,
	tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: check nullptr during conversion

	* spot/twacube_algos/convert.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	Fixup: missing dependency bloemen

	* spot/mc/Makefile.am: here.

2020-06-03  Antoine Martin  <antoine97.martin@gmail.com>

	twacube: mark get_initial method as const

	* spot/twacube/twacube.hh,spot/twacube/twacube.cc: Here.

2020-06-03  Antoine Martin  <antoine97.martin@gmail.com>

	twacube: mark succ() as const

	* spot/twacube/twacube.hh: Here.

2020-06-03  Antoine Martin  <antoine97.martin@gmail.com>

	twacube: add num_states and num_edges

	* spot/twacube/twacube.hh: Here.

2020-06-03  Antoine Martin  <antoine97.martin@gmail.com>

	twacube: mark get_ap method as const

	* spot/twacube/twacube.hh,spot/twacube/twacube.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	kripkecube: modernize is_a_kripkecube_ptr

	* spot/kripke/kripke.hh,
	spot/ltsmin/spins_kripke.hh,
	spot/mc/bloemen.hh,
	spot/mc/bloemen_ec.hh,
	spot/mc/cndfs.hh,
	spot/mc/deadlock.hh,
	spot/mc/intersect.hh,
	spot/mc/reachability.hh,
	tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: prefer '\n' for std::cerr

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: fix bug in swarming for large formulae

	This bug is similar to the one described in  commit
	d956fdc385b4dd9a5c5b3a63a0de80a09eb8e40d.

	* spot/twacube/twacube.hh: Here.

2020-06-03  Antoine Martin  <amartin@lrde.epita.fr>

	mc: implement CNDFS

	* spot/mc/Makefile.am: add cndfs.hh
	* spot/mc/cndfs.hh, spot/mc/mc.hh: implementation here
	* tests/ltsmin/check.test: test CNDFS
	* tests/ltsmin/modelcheck.cc: add CNDFS option

2020-06-03  Antoine Martin  <amartin@lrde.epita.fr>

	mc: bloemen emptiness check

	* spot/mc/bloemen_ec.hh,
	spot/mc/mc.hh,
	tests/ltsmin/check.test,
	tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: rework spins_interface

	* spot/ltsmin/ltsmin.cc,
	spot/ltsmin/spins_interface.cc,
	spot/ltsmin/spins_interface.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltdl: should not appear in public headers

	* spot/ltsmin/Makefile.am,
	spot/ltsmin/spins_interface.hh,
	spot/ltsmin/spins_interface.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	prefer -pthread to -lpthread

	* configure.ac,
	spot/ltsmin/Makefile.am,
	tests/Makefile.am: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	please gcc snapshot

	* spot/bricks/brick-assert,
	spot/bricks/brick-bitlevel,
	spot/bricks/brick-shmem,
	spot/bricks/brick-types,
	spot/mc/bloemen.hh,
	spot/mc/ec.hh,
	spot/mc/intersect.hh,
	tests/core/bricks.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: fix erroneous report in deadlock

	* tests/ltsmin/modelcheck.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: fix deadlock according to new bricks

	* spot/mc/deadlock.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: update excluding C++17 features

	* spot/bricks/brick-assert,
	spot/bricks/brick-bitlevel,
	spot/bricks/brick-hashset,
	spot/bricks/brick-shmem: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: use default/deleted

	* spot/twacube/cube.cc,
	spot/twacube/cube.hh,
	spot/twacube/twacube.cc,
	spot/twacube/twacube.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	spins_kripke: rewrite, clean and document

	Some parts of the kripke were confusing, lacked
	of documentation or could be factorized. This patch
	cleans all of this.

	* spot/ltsmin/spins_kripke.hh,
	spot/ltsmin/spins_kripke.hxx: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: remove useless code

	* spot/ltsmin/spins_kripke.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	swarming: bug fix

	This is an important bug fix. When swarming
	is activated, some multiplication is performed
	to find a successor. This multiplication could,
	eventually, overflow... Using larger types solves
	the problem.

	* spot/ltsmin/spins_kripke.hh,
	spot/ltsmin/spins_kripke.hxx: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	misc: add clz wrapper for builtin

	* spot/bricks/brick-bitlevel, spot/misc/Makefile.am,
	spot/misc/bitset.hh, spot/misc/clz.cc,
	spot/misc/clz.hh, spot/misc/fixpool.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: move into spot directory

	* bricks/brick-assert, bricks/brick-bitlevel,
	bricks/brick-hash, bricks/brick-hashset,
	bricks/brick-shmem, bricks/brick-types: Rename as .. .
	* spot/bricks/brick-assert, spot/bricks/brick-bitlevel,
	spot/bricks/brick-hash, spot/bricks/brick-hashset,
	spot/bricks/brick-shmem, spot/bricks/brick-types: ... this
	* Makefile.am, README, debian/copyright,
	debian/libspot-dev.install, m4/bricks.m4,
	spot/Makefile.am, spot/ltsmin/spins_kripke.hh,
	spot/ltsmin/spins_kripke.hxx, spot/mc/bloemen.hh
	spot/mc/deadlock.hh, tests/Makefile.am,
	tests/core/bricks.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	fixpool: remove useless clz encapsulation

	* spot/misc/fixpool.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bloemen: fix memory leaks

	* spot/mc/bloemen.hh, spot/mc/mc.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	deadlock: fix memory leak

	Do not forget to recycle iterator, otherwise the todo
	stack will be trashed without cleaning iterators.

	* spot/mc/deadlock.hh: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	fixpool: propose alternative policy

	In 3fe74f1c, fixed_size_pool was changed in order to
	help memcheck to detect "potential" memory leaks. In a
	multithreaded context, this could raise false alarm. To
	solve this, we proprose 2 policies for the pool, one with
	the check and one without.

	* spot/misc/fixpool.cc: deleted ...
	* spot/ltsmin/ltsmin.cc, spot/ltsmin/spins_kripke.hh,
	spot/mc/deadlock.hh, spot/misc/Makefile.am,
	spot/misc/fixpool.cc, spot/misc/fixpool.hh,
	spot/priv/allocator.hh, spot/ta/tgtaproduct.cc,
	spot/ta/tgtaproduct.hh, spot/twa/twaproduct.cc,
	spot/twa/twaproduct.hh, tests/core/mempool.cc: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: fix dot output in tests

	* tests/core/twacube.test: Here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: conversions now report about the options

	* tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: 'mark_t' is deprecated

	* spot/mc/ec.hh, spot/mc/intersect.hh,
	tests/core/twacube.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bloemen: avoid tail-recursive calls

	* spot/mc/bloemen.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bloemen: PPOPP'16 is buggy

	In PPOPP'16, the algorithm does not unlock
	roots. This could lead to deadlock between
	threads.

	* spot/mc/bloemen.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: capture exceptions by const reference

	* tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: fix call to print_dot according to default arguments

	* tests/core/twacube.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: update output and documentation

	Fixes #330.

	* tests/ltsmin/README,
	tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: please Werror=noexcept

	* spot/mc/intersect.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: include missing config.h

	* spot/mc/unionfind.cc,
	spot/twacube/cube.cc,
	spot/twacube/twacube.cc,
	spot/twacube_algos/convert.cc,
	tests/core/bricks.cc,
	tests/core/cube.cc,
	tests/core/twacube.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	debian: fix corrupted profile info

	* debian/rules: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: please modelcheck interface

	* tests/ltsmin/finite3.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: recycle iterators in bloemen

	* spot/mc/bloemen.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: add tests for parallel algorithms

	* tests/ltsmin/check.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: bloemen count unique states

	* spot/mc/bloemen.hh, tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: update tests

	* tests/ltsmin/check.test,
	tests/ltsmin/check2.test,
	tests/ltsmin/check3.test,
	tests/ltsmin/finite2.test,
	tests/ltsmin/finite3.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: please sanity.test

	* spot/mc/bloemen.hh, spot/mc/mc.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: parallel version of bloemen

	* spot/mc/bloemen.hh,
	tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: sequential version of Bloemen

	* spot/mc/Makefile.am, spot/mc/bloemen.hh,
	spot/mc/mc.hh, tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mc: add swarmed deadlock-detection

	* spot/mc/Makefile.am, spot/mc/deadlock.hh,
	spot/mc/mc.hh, tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: move modelchek in mc directory

	* spot/ltsmin/ltsmin.cc, spot/ltsmin/ltsmin.hh,
	spot/mc/Makefile.am, tests/ltsmin/modelcheck.cc,
	spot/mc/mc.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: remove shared table at model level

	Experiments shows  that this table slows down algorithms
	since the management is also tracked at higher lever by
	algorithms

	* spot/ltsmin/spins_kripke.hh,
	spot/ltsmin/spins_kripke.hxx: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: please gcc catch-value errors

	* tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	tests: add pthread library

	* tests/Makefile.am: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: please private.test

	* spot/ltsmin/Makefile.am, spot/ltsmin/spins_interface.hh: here.
	* spot/ltsmin/spins_interface.cc: delete.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	kripke: avoir internal compiler error

	gcc snapshot yield internal compiler error: tree check: accessed elt 2
	of tree_vec with 1 elts in tsubst, at cp/pt.c:13693

	* spot/kripke/kripke.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: please gcc null-dereference

	* spot/twacube/twacube.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: move useless unsigned int to unsigned

	* spot/twacube/twacube.cc,
	spot/twacube/twacube.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: more documentation

	* spot/twacube/twacube.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	Fix typo

	* spot/mc/ec.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: remove ltdl from public headers

	* spot/ltsmin/Makefile.am,
	spot/ltsmin/spins_interface.cc,
	spot/ltsmin/spins_interface.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: please gcc error=noexcept option

	* bricks/brick-shmem: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: gcc-7 doesn't align variables up to a maximum of 16 bytes

	* bricks/brick-shmem: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: please gcc-4.8 for auto specifier

	* bricks/brick-hashset: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: fix call to destructor

	* spot/ltsmin/spins_kripke.hxx: here

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: do not take iterators by copy

	* spot/ltsmin/spins_kripke.hxx: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: placement new requires placement delete

	This commit fixes a bug that (randomly) occurs when
	calling destructor of kripkecube.

	*  spot/ltsmin/spins_kripke.hxx: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: please gcc Werror=noexcept option

	* bricks/brick-shmem: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: please gcc Wmacro-redefined option

	* bricks/brick-assert: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	includes: must not check *.hxx

	* tests/sanity/includes.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: extract kripkecube to ease manipulation

	* spot/ltsmin/Makefile.am,
	spot/ltsmin/ltsmin.cc,
	spot/ltsmin/ltsmin.hh
	spot/ltsmin/spins_kripke.hh,
	spot/ltsmin/spins_kripke.hxx: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: extract spins interface

	* spot/ltsmin/Makefile.am, spot/ltsmin/ltsmin.cc,
	spot/ltsmin/ltsmin.hh,
	spot/ltsmin/spins_interface.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: simplify iterator

	* spot/ltsmin/ltsmin.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	brick: please gcc pedantic option

	* bricks/brick-assert: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	mark_t::operator bool() is now explicit

	Follows up cf5d2c2b.

	* spot/mc/ec.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: update usage of brick-hashset

	From a discussion with Petr Rockai: "the possibly non-intuitive bit
	that you probably didn't notice is that the hashset is supposed to be
	passed to each thread by value. The copy semantics of the entire
	hashset are that of a shared pointer: multiple copies share the same
	underlying data. Each thread *must* have its own private copy of the
	hashset object (there are bits of state that each thread needs for
	bookkeeping and those must not be shared)."

	*  spot/ltsmin/ltsmin.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: update

	* bricks/brick-hashset: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: please pedantic option for gcc

	* bricks/brick-bitlevel: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	please pedantic option for gcc

	* spot/kripke/kripke.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: add support for gcc prior to 4.9

	* bricks/brick-bitlevel, bricks/brick-hashset,
	bricks/brick-shmem, bricks/brick-types: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: adapt with the new bricks

	* bricks/brick-hash, tests/core/bricks.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: update and move to c++14

	* Makefile.am, bricks/brick-assert,
	bricks/brick-assert.h, spot/ltsmin/ltsmin.cc,
	spot/mc/ec.hh: here.

	* bricks/brick-bitlevel.h, bricks/brick-hash.h,
	bricks/brick-hashset.h, bricks/brick-shmem.h,
	bricks/brick-types.h: Rename as ...
	* bricks/brick-bitlevel, bricks/brick-hash,
	bricks/brick-hashset, bricks/brick-shmem,
	bricks/brick-types: ... these

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	reachability: improve support for callbacks

	* spot/mc/reachability.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	swarming: add support everywhere

	Swarming implies that a single instance of the kripke
	structure (or product) will be explored by diffrent threads
	with their own exploration order. Most of the modification
	aims to have a thread safe kripke structure.

	* spot/kripke/kripke.hh, spot/ltsmin/ltsmin.cc,
	spot/ltsmin/ltsmin.hh, spot/mc/ec.hh,
	spot/mc/intersect.hh, spot/mc/reachability.hh,
	spot/misc/hash.hh, spot/twacube/twacube.hh,
	tests/core/twacube.test, tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: propagate use of SPOT_FALLTHROUGH

	* bricks/brick-hash.h, bricks/brick-hashset.h: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	Use SPOT_ASSERT() instead of assert() in public headers

	* spot/mc/ec.hh, spot/mc/intersect.hh,
	spot/mc/reachability.hh, spot/mc/utils.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: add missing override

	* bricks/brick-assert.h, bricks/brick-hashset.h,
	bricks/brick-shmem.h: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	Twacube must share the order of atomic propositions

	* spot/ltsmin/ltsmin.cc, spot/ltsmin/ltsmin.hh,
	tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: support for csv extraction

	* tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	timer: support for walltime

	* spot/misc/timer.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	Promote use of shared_ptr

	* spot/kripke/kripke.hh, spot/ltsmin/ltsmin.cc,
	spot/ltsmin/ltsmin.hh, spot/mc/ec.hh, spot/mc/intersect.hh,
	spot/mc/utils.hh, spot/twacube/Makefile.am,
	spot/twacube/fwd.hh, spot/twacube/twacube.hh,
	spot/twacube_algos/convert.cc, spot/twacube_algos/convert.hh,
	tests/core/twacube.cc, tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	swig: prefer typedef to using

	According to swig3.0. the 'using' keyword
	in type aliasing is not fully supported yet.

	* spot/ltsmin/ltsmin.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: support for twacube

	* spot/ltsmin/ltsmin.cc, spot/ltsmin/ltsmin.hh,
	tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	intersect: statistic provided using an object

	* spot/mc/ec.hh, spot/mc/intersect.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	convert: simplify interfaces

	* spot/twacube_algos/convert.cc, spot/twacube_algos/convert.hh,
	tests/core/twacube.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	twacube: atomic propositions are now passed by copy

	Passing atomic propositions by reference allows to
	save very little memory so it doesn't worth complexifying
	memory management.

	* spot/twacube/twacube.cc, spot/twacube/twacube.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: ATOMIC_FLAG_INIT initialization

	From the working draft: "The macro ATOMIC_FLAG_INIT shall be defined
	in such a way that it can be used to initialize an object of type
	atomic_flag to the clear state. The macro can be used in the form:
	atomic_flag guard = ATOMIC_FLAG_INIT; It is unspecified whether the
	macro can be used in other initialization contexts."

	* bricks/brick-shmem.h: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	sanity: replace tabulars by spaces

	* spot/ltsmin/ltsmin.cc,
	spot/mc/ec.hh, spot/mc/intersect.hh,
	spot/mc/reachability.hh, spot/mc/unionfind.cc,
	spot/mc/utils.hh, spot/twacube/cube.cc,
	spot/twacube/twacube.cc,
	spot/twacube/twacube.hh,
	spot/twacube_algos/convert.cc,
	spot/twacube_algos/convert.hh,
	tests/core/bricks.cc,
	tests/core/cube.cc,
	tests/core/twacube.cc,
	tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: use FastConcurrent map

	* spot/ltsmin/ltsmin.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: fix clang warnings

	* bricks/brick-hash.h, bricks/brick-shmem.h: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	bricks: add bricks for concurrent hashmap

	* Makefile.am, README, bricks/brick-assert.h,
	bricks/brick-bitlevel.h, bricks/brick-hash.h,
	bricks/brick-hashset.h, bricks/brick-shmem.h,
	bricks/brick-types.h, configure.ac,
	debian/copyright, debian/libspot-dev.install,
	m4/bricks.m4, tests/Makefile.am,
	tests/core/.gitignore, tests/core/bricks.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	modelcheck: rewrite and use argp

	* tests/Makefile.am, tests/ltsmin/check.test,
	tests/ltsmin/finite.test, tests/ltsmin/finite2.test,
	tests/ltsmin/kripke.test, tests/ltsmin/modelcheck.cc: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: prodcuce kripkecube

	Warning! this patch introduces redundancy (or difference)
	between wether you ask for a kripkecube or a kripke.

	* spot/ltsmin/ltsmin.cc, spot/ltsmin/ltsmin.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	convert: kripke and product towards twa

	* spot/mc/Makefile.am, spot/mc/utils.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	ec: Renault et al LPAR'13 emptiness check

	In order to reuse the computation of the
	intersection between kripke and twa efficiently,
	we use template inheritance through the
	"mixin templates" technique.

	* spot/Makefile.am, spot/mc/Makefile.am,
	spot/mc/ec.hh, spot/mc/unionfind.cc,
	spot/mc/unionfind.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	intersection: for kripke and twacube

	* spot/mc/Makefile.am, spot/mc/intersect.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	reachability: sequential reachability for kripkecube

	* README, configure.ac, spot/mc/Makefile.am,
	spot/mc/reachability.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	kripke: define kripkecube structure

	* spot/kripke/kripke.hh: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	convert: twacube to twa translation

	* spot/twacube_algos/convert.cc, spot/twacube_algos/convert.hh,
	tests/core/twacube.cc, tests/core/twacube.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	convert: twa to twacube translation

	* spot/twacube/Makefile.am, spot/twacube/twacube.cc,
	spot/twacube/twacube.hh, spot/twacube_algos/convert.cc,
	spot/twacube_algos/convert.hh, tests/Makefile.am,
	tests/core/.gitignore, tests/core/twacube.cc,
	tests/core/twacube.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	convert: BDD to cube conversions

	* README, configure.ac, spot/Makefile.am,
	spot/twacube_algos/Makefile.am, spot/twacube_algos/convert.cc
	spot/twacube_algos/convert.hh, tests/core/cube.cc,
	tests/core/cube.test: here.

2020-06-03  Etienne Renault  <renault@lrde.epita.fr>

	Introduce cube data structure

	* README, configure.ac, spot/Makefile.am,
	spot/twacube/Makefile.am, spot/twacube/cube.cc,
	spot/twacube/cube.hh, tests/Makefile.am,
	tests/core/.gitignore, tests/core/cube.cc,
	tests/core/cube.test: here.

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

	ltldo: improve error messages

	Use ltldo:... instead of error:... and warning:... and also improve
	the diagnostic displayed after a translation failure to mention the
	tool and formula.

	Incidentally, this fixes a spurious test case failure observed by
	Philipp Schlehuber on CentOS7.7 where glibc 2.17 is installed.  With
	this system, when posix_spawn() starts a binary that does not exist,
	it returns success and let the child die with exit code 127.  On more
	recent glibc, posix_spawn() manages to return execve()'s errno, as if
	the child had not been created.  We handle those two different ways to
	fail, but before this patch one used to print "error:..." and the
	other "ltldo:...".

	* bin/ltldo.cc: Display the program_name in error message.  Display
	the command name and formula on translation failure.
	* tests/core/ltldo.test: Adjust test case.
	* NEWS: Mention the fix.

2020-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/sanity/80columns.test: Force LC_ALL.

2020-05-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: fix doc

	* spot/twaalgos/sccinfo.hh (scc_info_options::NONE): Fix doxygen doc.

2020-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: get rid of set_num_sets_()

	* spot/twa/twa.hh (set_num_sets_): Remove, and adjust all uses.
	This fixes #414.

2020-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: use wdba-minimize=2 and ba-simul=0

	* bin/ltlsynt.cc: Here.
	* tests/core/ltlsynt.test: Add extra test case.
	* NEWS: Mention ltlsynt -x and related defaults.

2020-05-24  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Change default options

	* bin/ltlsynt.cc: Change default options.
	* tests/core/ltlsynt.test: Add test.

2020-05-24  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Add more elements in csv

	* bin/ltlsynt.cc: Add the number of states of the dpa
	and of the parity game in the csv.

2020-05-24  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Add -x option for translation

	* bin/ltlsynt.cc: ltlsynt can use extra options for translator.

2020-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around diagnostic changes in Bison 3.6

	Bison <3.6 used to complain about "$undefined", while Bison >=3.6 now
	write "invalid token".

	* tests/core/parseaut.test, tests/core/parseerr.test,
	tests/core/sugar.test: Adjust expected diagnostics to match Bison pre
	and post 3.6.

2020-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: add --algo=ps

	* bin/ltlsynt.cc: Implement this.
	* tests/core/ltlsynt.test: Add a test case.
	* NEWS: Mention it.

2020-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify_acc: perform unit-propagation earlier

	Closes #405.   This shows no difference on the test suite,
	but that is thanks to the previous patch: without it, an
	example in automata.ipynb would have an extra edge.

	* spot/twaalgos/cleanacc.cc (simplify_acceptance): Call
	unit_propagation() before simplify_complementary_marks_here() and
	fuse_marks_here(), because that is simpler to perform.

2020-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: do not clone transitions that are accepting in main

	* spot/twaalgos/remfin.cc (default_strategy): Detect transitions
	from the main copy that are completely accepting and that do not
	need to be repeated in the clones.
	* tests/python/remfin.py: Add a test case.
	* tests/core/ltl2dstar4.test: Improve expected results.
	* NEWS: Mention the change.

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

	improve fuse_marks_here by detecting more patterns

	This remove some restrictions that prevented fuse_marks_here from
	simplifying certain patterns, as noted in the first comment of
	issue #405.

	* spot/twaalgos/cleanacc.cc (find_interm_rec, find_fusable): Remove
	some unnecessary restrictions to singleton marks, and replace the hack
	put one non-singleton mark at the beginning of the singleton list by a
	sort.
	* tests/python/simplacc.py: Add two test cases.
	* tests/python/automata.ipynb, tests/core/remfin.test: Improve
	expected results.
	* NEWS: Mention the bug.

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

	fixpool: allocate a new chunk on creation

	Allocate the first chunk when the fixpool is created.  This avoid a
	undefined behavior reported in issue #413 without requiring an extra
	comparison in allocate().

	* spot/misc/fixpool.hh, spot/misc/fixpool.cc (new_chunk_): New method
	extracted from allocate().  Use it in the constructor as well.
	* NEWS: Mention the bug.

2020-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: option to wdba-minimize only when sure

	Fixes #15.

	* spot/twaalgos/minimize.hh, spot/twaalgos/minimize.cc
	(minimize_obligation_garanteed_to_work): New function.
	* spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Use it if
	wdba-minimize=1.  Handle new default for wdba-minimize.
	* NEWS, bin/spot-x.cc: Document those changes.
	* tests/core/ltl2tgba2.test: Add some test cases.
	* tests/core/genltl.test: Improve expected results.

2020-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Remove extra newlines (fixes #410).

2020-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: speed up the computation of transitions

	Juraj Major reported a case with 32 APs where ltlcross would take
	forever to gather statistics.  It turns out that for each edge,
	twa_sub_statistics was enumerating all compatible assignments of 32
	APs.  This uses bdd_satcountset() instead, and also store the result
	in a long long to avoid overflows.

	* spot/twaalgos/stats.cc (twa_sub_statistics): Improve the code for
	counting transitions.
	* bin/common_aoutput.hh, bin/ltlcross.cc, spot/twaalgos/stats.hh:
	Store transition counts are long long.
	* tests/core/readsave.test: Add test case.
	* NEWS: Mention the bug.

2020-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: make sure the previous Xor optimization actually works

	* spot/tl/simplify.hh, spot/tl/simplify.cc,
	spot/twaalgos/translate.cc: Update the tl_simplification
	options after all preferences have been given.
	* bin/ltlsynt.cc: Display the size of the translation output.
	* tests/core/ltlsynt.test: Add test case.

2020-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: improve handling of Xor and Equiv at top-level for -G -D

	* spot/tl/formula.hh: Add variant of formula::is that support 4
	arguments.
	* spot/tl/simplify.hh, spot/tl/simplify.cc: Add option keep_top_xor
	to preserve Xor and Equiv at the top-level.
	* spot/twaalgos/translate.cc: Adjust ltl-split to deal with Xor and
	Equiv for the -D -G case.
	* NEWS: Mention that.
	* tests/core/ltl2tgba2.test: Add test case.
	* tests/python/simstate.py: Adjust expected result.

2020-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: add product_xor() and product_xnor()

	* spot/twaalgos/product.cc, spot/twaalgos/product.hh: Add those
	functions.
	* tests/python/_product_weak.ipynb, tests/python/except.py: Test them.
	* NEWS: Mention them.

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

	* NEWS, configure.ac: Bump version to 2.9.0.dev.

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

	release Spot 2.9

	* configure.ac, doc/org/setup.org, NEWS: Set version to 2.9.

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

	* doc/org/oaut.org: Refresh some examples; remove unecessary output.

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

	ltlsynt: add a --csv=FILENAME option

	* bin/ltlsynt.cc: Add a --csv option to record the
	duration of the various phases.
	* tests/core/ltlsynt.test: Test the new option.
	* NEWS: Mention it.

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

	dot: fix #393

	* spot/twaalgos/dot.cc: Add support for option 'E', and default to
	rectangle nodes for large labels.
	* bin/common_aoutput.cc, NEWS: Document it.
	* tests/core/alternating.test, tests/core/dstar.test,
	tests/core/readsave.test, tests/core/sccdot.test,
	tests/core/tgbagraph.test, tests/python/_product_weak.ipynb,
	tests/python/alternation.ipynb, tests/python/atva16-fig2b.ipynb,
	tests/python/automata.ipynb, tests/python/decompose.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
	tests/python/parity.ipynb, tests/python/pdegen.py,
	tests/python/satmin.ipynb, tests/python/stutter-inv.ipynb: Adjust all
	test cases.

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

	dot: fix #392

	* spot/twaalgos/dot.cc: Add tooltips to "..." states and edges.
	* tests/core/readsave.test: Test this.
	* tests/python/highlighting.ipynb: Adjust.

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

	postproc: fix issue #402

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh,
	spot/twaalgos/translate.cc: Introduce a gen-reduce-parity option and
	use it on sub-automata built by ltl-split.
	* bin/spot-x.cc: Document it.
	* tests/core/ltl2tgba2.test: Add test case reported by Juraj Major.

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

	ltlsynt: fix lar.old implementation

	* bin/ltlsynt.cc: Make sure to_parity_old() receive a deterministic
	automaton, for correctness.   Also call reduce_parity() afterward,
	to match what was done in 2.8.7.
	* tests/core/ltlsynt.test: Include lar.old in the comparison of all
	results to make sure it give the same result as the other 3
	algorithms.

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

	ltlsynt: add option to call to_parity_old

	* bin/ltlsynt.cc: Add support for --algo=lar.old
	* NEWS: Mention it.

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

	* .gitlab-ci.yml (raspbian): Add /wip/ exception.

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

	avoid mark_t::count() when possible

	count() may be implemented using a loop, so using it touch
	check count() == 1 or count() > 1 is not advisable.

	* spot/twa/acc.hh (mark_t::is_singleton, mark_t::has_many): Introduce
	these two methods to replace count()==1 and count()>1
	* spot/twa/acc.cc, spot/twaalgos/cleanacc.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/iscolored.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/toparity.cc: Adjust usage.

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

	cleanacc: keep acceptance order when removing complementary colors

	* spot/twaalgos/cleanacc.cc (remove_compl_rec): Rewrite to preserve
	the original order of the acceptance condition while rewriting it.
	* tests/core/sccdot.test, tests/python/merge.py,
	tests/python/simplacc.py, tests/python/toparity.py: Adjust test cases.

2020-04-18  Florian Renkin  <frenkin@lrde.epita.fr>

	unit_propagation: Correct result when multiple colors are possible

	* spot/twa/acc.cc: Here.
	* tests/core/acc.cc, tests/core/acc.test, tests/core/remfin.test:
	Update tests.

2020-04-18  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Correct the colors when we have parity pref. + true_clean

	* spot/twaalgos/toparity.cc: Don't use the same color for every edges
	when the condition is "true" or "false" after parity prefix.

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

	python: fix to_parity default option handling

	* python/spot/__init__.py (to_options): Do not have options
	explicitely default to to_parity_options(), because that would be
	instantiated only once.

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

	to_parity: only call reduce_parity() when prefix_parity is enabled

	Calling reduce_parity() in to_parity() is confusing, because then
	running to_parity() on one SCC does not necessarily produce the same
	output as running to_parity() on the entire automaton.  However it is
	necessary for the implementation of parity_prefix.  As a compromise,
	disable reduce_parity() when parity_prefix is disabled, this way we
	can use that to demonstrate how the algorithm works.

	* spot/twaalgos/toparity.hh, spot/twaalgos/toparity.cc: Do not
	call reduce_parity() when parity_prefix is disabled.
	* tests/python/toparity.py: Adjust.

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

	simplify_acc: loop over the simplifications

	* spot/twaalgos/cleanacc.cc (simplify_acceptance_here): Run the
	simplifications in a loop until the condition does not change anymore.
	* tests/python/simplacc.py, tests/core/accsimpl.test,
	tests/core/remfin.test, tests/python/merge.py,
	tests/python/simplacc.py, tests/python/toparity.py: Update expected
	results.
	* tests/python/automata.ipynb: Update the failing example to a more
	interesting one, matching the one in doc/org/autfilt.org.

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

	simplify_acc: fix an infinite loop

	* spot/twaalgos/cleanacc.cc (fuse_mark_here): Fix incorrect cancelling
	of n-ary subterms, causing an invalid acceptance condition, and then
	an infinite loop.
	* tests/python/simplacc.py: Add test case.

2020-04-17  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Correct the expected number of states

	* tests/python/toparity.py: here.

2020-04-17  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Add an option to force degeneralization

	* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh:
	Don't try to run the algorithm without degeneralization
	with the option force_degen.

2020-04-17  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Remove merge_states

	* spot/twaalgos/toparity.cc: Remove merge_states.
	* tests/python/automata.ipynb, tests/python/toparity.py: Update tests.

2020-04-17  Florian Renkin  <frenkin@lrde.epita.fr>

	unit_propagation: Add a test with multiple unit clauses

	* tests/core/acc.cc, tests/core/acc.test: here.

2020-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	unit_propagation: Correct a problem with multiple marks

	* spot/twa/acc.cc: Don't create a conjunction of Inf with multiple marks
	in unit_propagation.

2020-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Use merge_states

	* spot/twaalgos/toparity.cc: Use merge_states at the end
	of to_parity.
	* tests/python/toparity.py: Update tests.

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

	toparity: false transitions are not a problem anymore

	* spot/twaalgos/toparity.cc: Do not remove false transitions.
	* tests/python/toparity.py: Add a test case with false transitions.

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

	update gnulib to 47bf2cf3184027c1eb9c1dfeea5c5b8b2d69710d

	* lib/dosname.h, lib/glthread/lock.c, lib/glthread/lock.h,
	lib/glthread/threadlib.c, lib/windows-mutex.c, lib/windows-mutex.h,
	lib/windows-once.c, lib/windows-once.h, lib/windows-recmutex.c,
	lib/windows-recmutex.h, lib/windows-rwlock.c, lib/windows-rwlock.h,
	m4/host-cpu-c-abi.m4, m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4,
	m4/lock.m4, m4/longlong.m4, m4/pthread_rwlock_rdlock.m4,
	tools/config.rpath: Delete.
	* lib/alloca.in.h, lib/argmatch.c, lib/argmatch.h, lib/arg-nonnull.h,
	lib/argp-ba.c, lib/argp-eexst.c, lib/argp-fmtstream.c,
	lib/argp-fmtstream.h, lib/argp-fs-xinl.c, lib/argp.h, 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/asnprintf.c, lib/basename-lgpl.c,
	lib/c-ctype.h, lib/c++defs.h, lib/cdefs.h, lib/closeout.c,
	lib/closeout.h, lib/close-stream.c, lib/c-strcasecmp.c,
	lib/c-strcaseeq.h, lib/c-strcase.h, lib/c-strncasecmp.c,
	lib/dirname.h, lib/dirname-lgpl.c, lib/errno.in.h, lib/error.c,
	lib/error.h, lib/exitfail.c, lib/exitfail.h, lib/fcntl.in.h,
	lib/filename.h, lib/float.c, lib/float+.h, lib/float.in.h,
	lib/fpending.c, lib/fpending.h, lib/getopt1.c, lib/getopt.c,
	lib/getopt-cdefs.in.h, lib/getopt-core.h, lib/getopt-ext.h,
	lib/getopt.in.h, lib/getopt_int.h, lib/getopt-pfx-core.h,
	lib/getopt-pfx-ext.h, lib/getprogname.c, lib/getprogname.h,
	lib/gettext.h, lib/gettimeofday.c, lib/hard-locale.c,
	lib/hard-locale.h, lib/intprops.h, lib/isatty.c, lib/itold.c,
	lib/libc-config.h, lib/limits.in.h, lib/localcharset.c,
	lib/localcharset.h, lib/localtime-buffer.c, lib/localtime-buffer.h,
	lib/lstat.c, lib/Makefile.am, lib/malloca.c, lib/malloca.h,
	lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c,
	lib/memchr.valgrind, lib/mempcpy.c, lib/minmax.h, lib/mkdir.c,
	lib/mkstemp.c, lib/mkstemps.c, lib/msvc-inval.c, lib/msvc-inval.h,
	lib/msvc-nothrow.c, lib/msvc-nothrow.h, lib/_Noreturn.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/quotearg.c, lib/quotearg.h, lib/quote.h,
	lib/rawmemchr.c, lib/rawmemchr.valgrind, lib/secure_getenv.c,
	lib/size_max.h, lib/sleep.c, lib/stat.c, lib/stat-time.h,
	lib/stat-w32.c, lib/stat-w32.h, lib/stdalign.in.h, lib/stdbool.in.h,
	lib/stddef.in.h, lib/stdint.in.h, lib/stdio-impl.h, lib/stdio.in.h,
	lib/stdlib.in.h, lib/stpcpy.c, lib/strcasecmp.c, lib/strchrnul.c,
	lib/strchrnul.valgrind, lib/streq.h, lib/strerror.c,
	lib/strerror-override.c, lib/strerror-override.h, lib/string.in.h,
	lib/strings.in.h, lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c,
	lib/strnlen.c, lib/strverscmp.c, lib/sysexits.in.h, lib/sys_stat.in.h,
	lib/sys_time.in.h, lib/sys_types.in.h, lib/sys_wait.in.h,
	lib/tempname.c, lib/tempname.h, lib/time.in.h, lib/unistd.in.h,
	lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h, lib/vsnprintf.c,
	lib/warn-on-use.h, lib/wchar.in.h, lib/wctype.in.h,
	lib/windows-initguard.h, lib/xalloc-die.c, lib/xalloc.h,
	lib/xalloc-oversized.h, lib/xmalloc.c, lib/xsize.h, m4/00gnulib.m4,
	m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4, m4/codeset.m4,
	m4/dirname.m4, m4/double-slash-root.m4, m4/eealloc.m4, m4/errno_h.m4,
	m4/error.m4, m4/exponentd.m4, m4/extensions.m4, m4/extern-inline.m4,
	m4/fcntl_h.m4, m4/fcntl-o.m4, m4/float_h.m4, m4/fpending.m4,
	m4/getopt.m4, m4/getprogname.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/__inline.m4, m4/intmax_t.m4,
	m4/inttypes_h.m4, m4/isatty.m4, m4/largefile.m4, m4/limits-h.m4,
	m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4,
	m4/localtime-buffer.m4, m4/lstat.m4, m4/malloca.m4, m4/malloc.m4,
	m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4, m4/mbstate_t.m4,
	m4/memchr.m4, m4/mempcpy.m4, m4/minmax.m4, m4/mkdir.m4, m4/mkstemp.m4,
	m4/mkstemps.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/quotearg.m4, m4/quote.m4, m4/rawmemchr.m4,
	m4/secure_getenv.m4, m4/size_max.m4, m4/sleep.m4, m4/ssize_t.m4,
	m4/stat.m4, m4/stat-time.m4, m4/stdalign.m4, m4/stdbool.m4,
	m4/stddef_h.m4, m4/std-gnu11.m4, m4/stdint_h.m4, m4/stdint.m4,
	m4/stdio_h.m4, m4/stdlib_h.m4, m4/stpcpy.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/strverscmp.m4, m4/sysexits.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/tempname.m4, m4/threadlib.m4,
	m4/time_h.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/wctype_h.m4,
	m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4: Update.
	* lib/inttypes.in.h, lib/lc-charset-dispatch.c,
	lib/lc-charset-dispatch.h, lib/locale.in.h, lib/mbrtowc-impl.h,
	lib/mbrtowc-impl-utf8.h, lib/mbtowc-lock.c, lib/mbtowc-lock.h,
	lib/setlocale-lock.c, lib/setlocale_null.c, lib/setlocale_null.h,
	m4/inttypes.m4, m4/locale_h.m4, m4/setlocale_null.m4,
	m4/visibility.m4, m4/zzgnulib.m4: New files.

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

	acc: make sure unit_propagate preserve the number of sets

	* spot/twa/acc.hh: Here.
	* tests/core/accsimpl.test, tests/core/ltl2tgba2.test: Add test cases.

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

	work around Doxygen limitation

	* spot/twa/twa.hh: Undocument the deprecated version of
	intersecting_run() to avoid an issue with Doxygen.  Reported by Juraj
	Major.

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

	autcross: typo in --help

	* bin/autcross.cc: Fix typo in description of --save-bogus.
	Reported by Juraj Major.

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

	org: more examples for autfilt

	* doc/org/autfilt.org: Add examples for --simplify-acc and --parity.

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

	* spot/twaalgos/postproc.cc: Improve to_parity() call.

2020-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Correct error with automata without transition

	* spot/twaalgos/toparity.cc: Check that an automaton is not
	just a useless SCC.

2020-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	unit_propagation: Correct a segfault when we have true in the condition

	* spot/twa/acc.cc: Check if we have a "true" condition
	in unit_propagation.

2020-04-16  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Correct order function

	* spot/twaalgos/toparity.cc: Use a strict
	comparison in group_to_vector.
	* spot/twa/acc.cc: Use a strict comparison
	in is_parity_max_equiv.

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

	Fix glibcxxdebug build not using --enable-glibcxx-debug

	* .gitlab-ci.yml (arch-gcc-glibcxxdebug): Pass configure flags to
	distcheck.

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

	fix invalid iterator handling, reported by -D_GLIBCXX_DEBUG

	* spot/tl/unabbrev.cc, spot/twa/twagraph.cc,
	spot/twaalgos/complement.cc: Here.  All of these caused
	test suite failure with -D_GLIBCXX_DEBUG.

2020-04-14  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Improve change_transitions_destination and add doc

	* spot/twaalgos/toparity.cc: Cancel a change of 0ba10976 and
	add documentation to some functions.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	to_parity: Improve to_parity and update tests

	* spot/twaalgos/toparity.cc: Use a better search of the
	transitions when we search compatible states.
	* spot/twaalgos/toparity.hh: Use less that 80 columns.
	* tests/python/merge.py, tests/python/toparity.py: Update tests.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	Move several functions from acc.hh to acc.h

	* spot/twa/acc.hh: Remove colors_inf_conj and colors_fin_disj
	(unused) and moved get_alone_mark (now find_unit_clause),
	propagate_fin_inf (now unit_propagation) and has_parity_prefix
	to acc.cc.
	* spot/twa/acc.cc: Use a new implementation of unit_propagation
	and find_unit_clause.
	* spot/twaalgos/cleanacc.cc: Use the new name of
	propagate_fin_inf.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	Impove simplify_acceptance

	* spot/twaalgos/cleanacc.cc: Use cleanup_acceptance if
	propagate_fin_inf was useful.
	* spot/twa/acc.hh: Avoid to reverse the order of the condition in
	propagate_fin_inf.
	* tests/core/accsimpl.test, tests/core/remfin.test,
	tests/python/merge.py, tests/python/automata.ipynb: Update tests.
	* tests/python/toparity.py: Update tests and add tests to check the
	number of states.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	Correct an issue in toparity with parity prefix

	* spot/twaalgos/toparity.cc: Use a lower value in the parity
	prefix vector to avoid the creation of unwanted {0} marks.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	* spot/twaalgos/toparity.hh: Add documentation for toparity options.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	Remove redundant Fin and Inf with simplify_acceptance

	* spot/twa/acc.hh: Add simplification like
	Fin(0)|(Inf(0) & Fin(1)) to Fin(0)|Fin(1).
	* spot/twaalgos/cleanacc.cc: Use this simplification.

2020-04-12  Florian Renkin  <frenkin@lrde.epita.fr>

	toparity: Search a compatible state at the end of the algo

	* spot/twaalgos/toparity.cc: Search existing state at
	the end of the algorihm.
	* spot/twaalgos/toparity.hh: Update documentation.

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

	relabel_bse: improve handling of n-ary operators

	* spot/tl/relabel.cc: Here.
	* tests/core/ltlrel.test: Add test cases, and update existing ones.
	* NEWS: Mention it.

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

	relabel_bse: fix incorrect detection of common APs

	Based on a report by Jean Kreber.

	* spot/tl/relabel.cc (cut_points): Really connect children of Boolean
	operators using undirected edges, not directed ones.
	* tests/core/ltlrel.test: Add test cases.
	* NEWS: Mention the bug.

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

	ignore false edges in emptiness checks and scc_info

	Based on reports by Florian Renkin and Jens Kreber.

	* spot/twaalgos/bfssteps.cc, spot/twaalgos/couvreurnew.cc,
	spot/twaalgos/gtec/gtec.cc, spot/twaalgos/gv04.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/sccinfo.cc
	spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc: Ignore bddfalse edges.
	* spot/twaalgos/gtec/gtec.hh: Remove debugging function.
	* tests/core/neverclaimread.test: Adjust.
	* tests/python/ecfalse.py: New test file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

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

	relabel: generalize 9365f8de1 to remove more false edges

	* spot/twaalgos/relabel.cc: Detect false edges as they are created,
	even as the result of multiple renamings.
	* tests/core/ltl2tgba2.test: More test cases, reported by Jens Kreber.
	* NEWS: Mention the bug.
	* THANKS: Add Jens.

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

	remove is_alternating() methods

	Those were deprecated more than 3 years ago.

	* spot/graph/graph.hh, spot/twa/twagraph.hh: Here.
	* NEWS: Mention the change.

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

	toparity: take a const_twa_graph_ptr as input

	* spot/twaalgos/toparity.hh (to_parity): Take a const TWA as input, as
	in Spot 2.8.
	* spot/twaalgos/toparity.cc: Adjust.

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

	toparity: rename iar_old()/iar_maybe_old() to iar()/iar_maybe()

	* spot/twaalgos/toparity.hh, spot/twaalgos/toparity.cc: Use the
	original names, to minimize differences with spot 2.8.  Deprecate
	them.
	* tests/python/except.py: Adjust.
	* NEWS: Mention the change.

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

	to_parity: improve remove_false_transitions

	* spot/twaalgos/toparity.hh (remove_false_transitions): Keep it
	private.
	* spot/twaalgos/toparity.cc (remove_false_transitions): Do not clone
	automata without false transitions, simplify the loops, and preserve
	all properties.

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

	python: simplify to_parity() interface

	* python/spot/__init__.py (to_parity): Iterate over the attributes
	of spot.to_parity_options instead of naming each option explicitely,
	also accept a to_parity_options() instance as argument.
	* tests/python/toparity.py: Add tests for both styles of calls, and
	reduce the number of random tests to lower the run time of this test.

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

	to_parity: improve doc, and rename car_option into to_parity_options

	* spot/twaalgos/toparity.hh: Improve doc, and rename car_option into
	to_parity_options.
	* doc/spot.bib: Add one reference.
	* python/spot/__init__.py, spot/twaalgos/toparity.cc,
	tests/python/toparity.py: Adjust.

2020-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo in date for 2.8.7.

2020-03-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Remove mention of car().

2020-03-24  Florian Renkin  <frenkin@lrde.epita.fr>

	Adapt ltlsynt to the new version of to_parity

	* bin/ltlsynt.cc: Use colorize_parity_here() but remove
	 reduce_parity_here() already used in the new version of
	 to_parity().

2020-03-24  Florian Renkin  <frenkin@lrde.epita.fr>

	Remove useless comments in toparity

	* spot/twaalgos/toparity.cc: Remove useless comments.

2020-03-24  Florian Renkin  <frenkin@lrde.epita.fr>

	Moved IAR and the new version of to_parity in toparity.cc

	* python/spot/__init__.py: Use keyword arguments in to_parity()
	* python/spot/impl.i: remove useless includes.
	* spot/twaalgos/car.cc, spot/twaalgos/car.hh,
	spot/twaalgos/rabin2parity.cc, spot/twaalgos/rabin2parity.hh,
	tests/Makefile.am, spot/twaalgos/Makefile.am:
	content moved to toparity.
	* spot/twaalgos/postproc.cc: Use the new version of to_parity in
	postprocessor::run.
	* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh: Add the
	content of rabin2parity and car.
	* tests/python/car.py, tests/python/toparity.py: Moved all tests
	from car.py to toparity.py.
	* tests/python/except.py: Change iar() to iar_old().

2020-03-24  Florian Renkin  <frenkin@lrde.epita.fr>

	Add several options to CAR

	* spot/twa/acc.hh: Remove useless comment.
	* spot/twaalgos/car.cc: Rewrite the implementation to try
	  multiple algorithms and choose the best, add the possibility
	  to force the order of the colors/pairs in LAR and use
	  propagate_marks_here.
	* spot/twaalgos/car.hh, tests/python/car.py: Create a new system of
	  options for CAR.
	* spot/twaalgos/degen.cc, spot/twaalgos/degen.hh: Add the possibility
	  to forbid some marks in is_partially_degeneralizable.

2020-03-22  Florian Renkin  <frenkin@lrde.epita.fr>

	ltlsynt: Correct segfault with ds algorithm and verbose

	* bin/ltlsynt.cc: Use initialized DPA when printing when
	 we use DET_SPLIT and verbose.

2020-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2020-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.8.7.dev.

2020-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.8.7

	* NEWS, configure.ac, doc/org/setup.org: Update.

2020-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: detect write errors for --save-bogus and --grind

	* bin/ltlcross.cc: Explicitly close those files to check for
	error conditions.
	* NEWS: Mention it.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: fix sl, sl2 to never accept on added self-loop

	Fixes #401, reported by Victor Khomenko.

	* spot/twaalgos/stutter.cc (sl, sl2): If {} is accepting, upgrade the
	acceptance condition.
	* tests/python/stutter.py: Add test cases.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: fix generation of self-loop accepting runs

	Reported by Juraj Major.

	* spot/twaalgos/sccinfo.cc (scc_info::get_accepting_run): Do not
	assume TRACK_STATES is enabled.
	* tests/core/autcross5.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix -u

	Fixes #399.

	* bin/autfilt.cc: Fix it.
	* tests/core/isomorph.test: Add test case.
	* NEWS: Mention the issue.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: fix handling of operand with false acceptance

	* NEWS: Mention the issue.
	* spot/twaalgos/product.cc: Fix it.
	* tests/python/prodexpt.py: Test it.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix some typos

	* doc/org/tut12.org: Here.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: fix suboptimal selection of Fin to remove

	* spot/twaalgos/genem.cc: If a disjunct has no unit-Fin to remove the
	code should select any Fin occuring in the disjunct, but it was
	selecting any Fin occuring in the acceptance condition (made of
	disjuncts) instead.  This could potentially double the number of
	recursive calls.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: fix sl, sl2 to never accept on added self-loop

	Fixes #401, reported by Victor Khomenko.

	* spot/twaalgos/stutter.cc (sl, sl2): If {} is accepting, upgrade the
	acceptance condition.
	* tests/core/stutter-tgba.test, tests/python/stutter.py: Add test cases.

2020-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: fix generation of self-loop accepting runs

	Reported by Juraj Major.

	* spot/twaalgos/sccinfo.cc (scc_info::get_accepting_run): Do not
	assume TRACK_STATES is enabled.
	* tests/core/autcross5.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

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

	* NEWS: Typos.

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

	ltlcross --save-inclusion-products: name the saved automata

	* bin/ltlcross.cc: Name saved automata for easier tracking.

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

	autfilt: fix -u

	Fixes #399.

	* bin/autfilt.cc: Fix it.
	* tests/core/isomorph.test: Add test case.
	* NEWS: Mention the issue.

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

	ltlfilt, autfilt: add support for --nth

	* bin/autfilt.cc, bin/ltlfilt.cc: Implement it.
	* NEWS: Mention it.
	* tests/core/genaut.test, tests/core/genltl.test: Add test cases.

2020-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: do not use remove_fin anymore

	* bin/ltlcross.cc: Since is_empty() now works with arbitrary
	acceptance conditions, calling remove_fin() is not necessary anymore.
	* tests/core/ltlcrossce.test: Adjust.
	* NEWS: Mention the change.

2020-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: detect write errors for --save-bogus, --grind, etc

	* bin/ltlcross.cc: Explicitly close those file to check for
	error conditions.
	* tests/core/full.test: Add one test.

2020-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add option --save-inclusion-products

	* NEWS: Mention it.
	* bin/ltlcross.cc: Implement it.
	* tests/core/ltlcross3.test: Test it.

2020-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: fix handling of operand with false acceptance

	* NEWS: Mention the issue.
	* spot/twaalgos/product.cc: Fix it.
	* tests/python/prodexpt.py: Test it.

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

	genem: improve the worst case

	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Improve the worst
	case by not recurring twice into each disjunct individually.  Keep
	the previous two implementation available and add a function
	generic_emptiness_check_select_version() so we can benchmark the
	difference.
	* tests/python/genem.py: Test the three versions.

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

	org: fix some typos

	* doc/org/tut12.org: Here.

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

	genem: fix suboptimal selection of Fin to remove

	* spot/twaalgos/genem.cc: If a disjunct has no unit-Fin to remove the
	code should select any Fin occuring in the disjunct, but it was
	selecting any Fin occuring in the acceptance condition (made of
	disjuncts) instead.  This could potentially double the number of
	recursive calls.

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

	* HACKING: Update various bits.

2020-02-26  Florian Renkin  <frenkin@lrde.epita.fr>

	CAR: Correct the value of the max color of the acceptance condition

	* spot/twaalgos/car.cc: Update the max_color in apply_to_Buchi.
	* tests/python/car.py: Add some tests that showed this issue.

2020-02-26  Florian Renkin  <frenkin@lrde.epita.fr>

	Check that every color appears once in is_parity_max_equiv

	* spot/twa/acc.cc: Now suppose that a condition cannot contain
	the same mark twice to be parity equivalent.

2020-02-26  Florian Renkin  <frenkin@lrde.epita.fr>

	Correct CAR when we use apply_to_Buchi

	* spot/twaalgos/car.cc: Correct the colors producted in apply_to_Buchi.

2020-02-26  Florian Renkin  <frenkin@lrde.epita.fr>

	Add mores cases in car.py

	* tests/python/car.py: Add more combinaisons of options
	when testing CAR.

2020-02-26  Florian Renkin  <frenkin@lrde.epita.fr>

	fixup! IAR: Correct parity prefix

	* spot/twaalgos/car.cc: Reduce the number of colors used by parity
	prefix and check that it uses parity colors in apply_to_Buchi.

2020-02-26  Florian Renkin  <frenkin@lrde.epita.fr>

	IAR: Use less colors with parity prefix and check that use parity colors

	* spot/twaalgos/car.cc: Don't reserve colors when parity prefix is used
	but the condition has no parity prefix and use colors of prefix in
	apply_to_Buchi.

2020-02-24  Florian Renkin  <frenkin@lrde.epita.fr>

	* AUTHORS: Add myself.

2020-02-24  Florian Renkin  <frenkin@lrde.epita.fr>

	CAR: new algorithm for paritizing

	* NEWS: Mention it.
	* spot/twaalgos/car.cc, spot/twaalgos/car.hh, tests/python/car.py:
	New files.
	* spot/twaalgos/Makefile.am, tests/Makefile.am: Add them.
	* python/spot/impl.i: Include CAR.
	* spot/twa/acc.cc, spot/twa/acc.hh, spot/twa/twagraph.cc,
	spot/twa/twagraph.hh: Add supporting methods.

2020-02-24  Florian Renkin  <frenkin@lrde.epita.fr>

	IAR: Add pretty print option and better lookup of existing states

	* spot/twaalgos/rabin2parity.cc, spot/twaalgos/rabin2parity.hh: here.

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

	simplify_acceptance: fix erroneous simplification

	Reported by Florian Renkin.

	* spot/twaalgos/cleanacc.cc: Do not rewrite
	...Fin(0)&(Fin(1)|(Fin(3)&Inf(4)))... as Fin(0)&f when it appears that
	{1,3} cannot receive {0}, because {1} is used elsewhere in the
	acceptance.
	* tests/python/simplacc.py: Add test case.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.8.6.dev.

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

	Release Spot 2.8.6

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

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

	doc: add DOIs to most citations

	* doc/spot.bib: Here.
	* doc/tl/tl.tex: Fix a citation.

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

	* tests/run.in: reset some envvars to avoid spurious failures.

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

	tgba_determinize: improve citations in doc

	* doc/spot.bib (klein.07.ciaa, redziejowski.12.fi): Add two entries.
	* spot/twaalgos/determinize.hh: Use them.

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

	update citations of generic emptiness-check

	* doc/org/citing.org, doc/spot.bib: Here.

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

	fix is_generalized_rabin() and is_generalized_streett()

	* spot/twa/acc.cc: Fix detection of single-pairs gen-Rabin and
	gen-Streett.
	* tests/core/randaut.test: Add test case.
	* NEWS: Mention this issue.

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

	relabel: do not create automata with false labels

	* spot/twaalgos/relabel.cc: Remove false transitions if
	some of the propositions are equivalent to true or false.
	* NEWS: Mention the bug.
	* tests/core/ltl2tgba2.test: Test it.

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

	_postproc_translate_options: fix syntax error

	* python/spot/__init__.py: Here.
	* tests/python/except.py: Add test.
	* NEWS: Mention the issue.

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

	fix degeneralize_tba after accepting transition

	* spot/twaalgos/degen.cc (degeneralize_tba): Here.
	* tests/python/simstate.py: Adjust expected values.
	* NEWS: Mention the bug.

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

	* doc/org/concepts.org: Typo.

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

	ipnbdoctest: attempt to restart when the kernel dies

	* tests/python/ipnbdoctest.py: Catch kernel deaths, wait a random
	number of seconds, and try again up to three times.

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

	doc: add DOIs to most citations

	* doc/spot.bib: Here.
	* doc/tl/tl.tex: Fix a citation.

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

	pdegen: fix another original-states related issue

	* spot/twaalgos/degen.cc (keep_bottommost_copies): Fix intialisation
	of bottommost_occurence.
	* tests/python/pdegen.py: Add test case sent by Florian Renkin.

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

	pdegen: fix the place with original-states are composed

	doing it too early breaks the "redirect all-accepting transitions"
	optimization

	* spot/twaalgos/degen.cc: move the original-states composition
	code.
	* tests/python/pdegen.py: Add test-case from Florian Renkin.

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

	* tests/run.in: reset some envvars to avoid spurious failures.

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

	tgba_determinize: improve citations in doc

	* doc/spot.bib (klein.07.ciaa, redziejowski.12.fi): Add two entries.
	* spot/twaalgos/determinize.hh: Use them.

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

	update citations of generic emptiness-check

	* doc/org/citing.org, doc/spot.bib: Here.

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

	autfilt add support for --partial-degeneralize

	* bin/autfilt.cc: Add a --partial-degeneralize option.
	* NEWS: Mention it.
	* spot/twaalgos/degen.cc: Do not restrict partial_degeneralize() to
	deterministic automata.
	* spot/twaalgos/degen.hh: Adjust documentation.
	* tests/core/pdegen.test: New test case.
	* tests/Makefile.am: Add it.
	* tests/python/pdegen.py: Adjust.

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

	fix is_generalized_rabin() and is_generalized_streett()

	* spot/twa/acc.cc: Fix detection of single-pairs gen-Rabin and
	gen-Streett.
	* tests/core/randaut.test: Add test case.
	* NEWS: Mention this issue.

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

	degen: always compose original-states with the input

	* spot/twaalgos/degen.cc (degeneralize, partial_degeneralize): Here.
	* spot/twaalgos/degen.hh: Mention it.

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

	partial_degeneralize: force purge_unreachable in some corner case

	* spot/twaalgos/degen.cc: If an all-accepting transition has been
	redirected, we need to force purge_unreachable_state() to be called,
	otherwise we may have unreachable states.
	* tests/python/pdegen.py: Add test case.

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

	relabel: do not create automata with false labels

	* spot/twaalgos/relabel.cc: Remove false transitions if
	some of the propositions are equivalent to true or false.
	* NEWS: Mention the bug.
	* tests/core/ltl2tgba2.test: Test it.

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

	_postproc_translate_options: fix syntax error

	* python/spot/__init__.py: Here.
	* tests/python/except.py: Add test.
	* NEWS: Mention the issue.

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

	partial_degeneralize: handle original-state correctly

	Reported by Florian Renkin

	* spot/twaalgos/degen.cc (partial_degeneralize): Update
	original-state when partial_degeneralize is executed more
	than once in a loop.
	* tests/python/pdegen.py: Add test case.

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

	rabin_to_buchi_if_realizable: new function

	* spot/twaalgos/remfin.cc, spot/twaalgos/remfin.hh: Implement it.
	* tests/python/tra2tba.py: Test it.
	* NEWS: Mention it.

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

	partial_degeneralize: add a version that takes no "todegen" argument

	* spot/twaalgos/degen.cc,
	spot/twaalgos/degen.hh (is_partially_degeneralizable): New function.
	(partial_degeneralize): New version without todegen argument.
	* tests/python/pdegen.py: Add test cases.

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

	partial_degeneralization: generalize to terms that contain todegen

	* spot/twaalgos/degen.cc: Implement this.
	* tests/python/pdegen.py: Add tests.

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

	fix degeneralize_tba after accepting transition

	* spot/twaalgos/degen.cc (degeneralize_tba): Here.
	* tests/python/pdegen.py, tests/python/simstate.py: Adjust expected
	values.
	* NEWS: Mention the bug.

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

	partial_degeneralize: a support for disjunction of Fin

	* spot/twaalgos/degen.cc, spot/twaalgos/degen.hh: Implement this.
	Also throw a runtime error in case were todegen does not match any
	subformula.
	* tests/python/pdegen.py: Add tests.

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

	improve partial_degeneralize() on several cases

	On these 4 cases, added to pdegen.py, and supplied by Florian Renkin,
	partial_degeneralize() is now at least as good as degeneralize_tba(),
	and sometimes better.  This is achieved as follows: (1) a
	propagate_marks procedure is introduced to propagate marks as far as
	possible on the automaton (e.g., common outgoing marks can be push
	onto the incoming transitions and vice-versa), (2) the
	degeneralization order is compute dynamically, and (3) whenever and
	fully-accepting transition is taken in the original automaton, the
	destination level is chosen to be the highest existing level.

	* spot/twaalgos/degen.cc,
	spot/twaalgos/degen.hh (propagate_marks_vector, propagate_marks_here):
	New functions.
	(partial_degeneralize): Improve, as described above.
	* tests/python/pdegen.py: Add test cases.

2020-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org: Typo.

2020-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Inf(i)|Inf(j) -> Inf(k) and  Fin(i)&Fin(j) -> Fin(k)

	Implement those rules in simplify_acceptance_here().

	* NEWS: Mention the change.
	* spot/twa/acc.cc,
	spot/twa/acc.hh (acc_cond::acc_code::used_once_sets): New method.
	* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh:
	Implement the above rule.
	* tests/core/remfin.test: Adjust expected results.
	* tests/python/simplacc.py: New file.
	* tests/Makefile.am: Add it.

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

	ipnbdoctest: attempt to restart when the kernel dies

	* tests/python/ipnbdoctest.py: Catch kernel deaths, wait a random
	number of seconds, and try again up to three times.

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

	ltlcross: display short names when supplied

	Suggested by František Blahoudek.

	* bin/ltlcross.cc: Implement this.
	* NEWS, doc/org/ltlcross.org: Document it.
	* tests/core/ltlcross4.test: Test it.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.8.5.dev.

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

	Release Spot 2.8.5

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

2020-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ipnbdoctest: attempt to deal with buildfarm timeouts

	* tests/python/ipnbdoctest.py: Use shorter timeouts, and flush the
	shell messages without expecting them.

2020-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ipnbdoctest: attempt to deal with buildfarm timeouts

	* tests/python/ipnbdoctest.py: Use shorter timeouts, and flush the
	shell messages without expecting them.

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

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

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

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

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

	twagraph: merge_edge() can determinize automata

	Reported by František Blahoudek.

	* spot/twa/twagraph.cc: Reset prop_universal() if edges are merged in
	a non-deterministic automaton.
	* tests/core/det.test: Add test case.
	* NEWS: Mention the issue.

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

	ltl2tgba, ltldo: fix location of --negate in --help output

	* bin/common_finput.cc, bin/ltl2tgba.cc, bin/ltldo.cc: Make sure
	--negate is listed along with input options.

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

	fix ltl2tgba -B not always returning Inf(0)

	Reported by František Blahoudek.

	* spot/twaalgos/postproc.cc: Turn "t" into "Inf(0)" for BA.
	* tests/core/ltl2tgba.test: Add test case.
	* NEWS: Mention the bug.

2019-12-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tmpfile: improve error message

	* spot/misc/tmpfile.cc: Display strerror(errno) plus some suggestions
	that depend on the error.  Based on a report from Shengping Shaw.
	* THANKS: Add reporter.
	* tests/core/ltlcross5.test: New file.
	* tests/Makefile.am: Add it.

2019-12-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/emptiness.cc: Fix another gcc-snapshot warning.

2019-12-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/compsusp.cc: Fix a warning from gcc-snapshot.

2019-12-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twagraph: merge_edge() can determinize automata

	Reported by František Blahoudek.

	* spot/twa/twagraph.cc: Reset prop_universal() if edges are merged in
	a non-deterministic automaton.
	* tests/core/det.test: Add test case.
	* NEWS: Mention the issue.

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

	ltl2tgba, ltldo: fix location of --negate in --help output

	* bin/common_finput.cc, bin/ltl2tgba.cc, bin/ltldo.cc: Make sure
	--negate is listed along with input options.

2019-12-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix ltl2tgba -B not always returning Inf(0)

	Reported by František Blahoudek.

	* spot/twaalgos/postproc.cc: Turn "t" into "Inf(0)" for BA.
	* tests/core/ltl2tgba.test: Add test case.
	* NEWS: Mention the bug.

2019-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tmpfile: improve error message

	* spot/misc/tmpfile.cc: Display strerror(errno) plus some suggestions
	that depend on the error.  Based on a report from Shengping Shaw.
	* THANKS: Add reporter.
	* tests/core/ltlcross5.test: New file.
	* tests/Makefile.am: Add it.

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

	* spot/twaalgos/emptiness.cc: Fix another gcc-snapshot warning.

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

	* spot/twaalgos/compsusp.cc: Fix a warning from gcc-snapshot.

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

	new partial_degeneralize() algorithm

	* spot/twaalgos/degen.hh, spot/twaalgos/degen.cc: Implement it.
	* tests/python/pdegen.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the new function.

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.8.4.dev.

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.8.4

	* NEWS, configure.ac, doc/org/setup.org: Set version to 2.8.4.

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix documentation of --trust-hoa

	* bin/common_hoaread.cc: Here.  Reported by Juraj Major.

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: fix tra_to_tba

	This fixes a complementation bug reported by Juraj Major and Tereza
	Šťastná.

	* spot/twaalgos/remfin.cc (is_scc_tba_type): Fix the condition for
	handling Fin-alone pairs.
	* tests/core/complement.test: Add Juraj & Tereza's test case.
	* NEWS: Mention it.

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: define our own SVG DisplayObject

	This is to workaround differences in minidom's pretty-printing that
	occurred between Python 3.7 and 3.8.

	* python/spot/jupyter.py (SVG): New class.
	* python/spot/__init__.py: Use it.
	* tests/python/_altscc.ipynb, tests/python/alternation.ipynb,
	tests/python/automata.ipynb, tests/python/formulas.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
	tests/python/product.ipynb, tests/python/randaut.ipynb,
	tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb,
	tests/python/word.ipynb: Adjust.

2019-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve architecture diagram

	* doc/org/arch.tex: Improve diagram, add links and online services.
	* doc/org/concepts.org: Update text.

2019-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: simplify tra_to_tba using generic emptiness check

	* spot/twaalgos/remfin.cc (tra_to_tba): Remove the SCC-emptiness
	check that was done by creating a temporary automaton.  Use the
	scc_info::check_scc_emptiness() function instead.
	* spot/twaalgos/sccinfo.cc,
	spot/twaalgos/sccinfo.hh (scc_info::check_scc_emptiness): Mark
	this function as const.
	(scc_and_mark_filter): Make sure we only combine with a lower filter
	of the same type.
	* spot/twaalgos/genem.cc: Remove one stray debugging statement.
	* tests/python/genem.py: Remove a duplicate test.

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

	bin: fix documentation of --trust-hoa

	* bin/common_hoaread.cc: Here.  Reported by Juraj Major.

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

	remfin: fix tra_to_tba

	This fixes a complementation bug reported by Juraj Major and Tereza
	Šťastná.

	* spot/twaalgos/remfin.cc (is_scc_tba_type): Fix the condition for
	handling Fin-alone pairs.
	* tests/core/complement.test: Add Juraj & Tereza's test case.
	* NEWS: Mention it.

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

	python: define our own SVG DisplayObject

	This is to workaround differences in minidom's pretty-printing that
	occurred between Python 3.7 and 3.8.

	* python/spot/jupyter.py (SVG): New class.
	* python/spot/__init__.py: Use it.
	* tests/python/_altscc.ipynb, tests/python/alternation.ipynb,
	tests/python/automata.ipynb, tests/python/formulas.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
	tests/python/product.ipynb, tests/python/randaut.ipynb,
	tests/python/testingaut.ipynb, tests/python/twagraph-internals.ipynb,
	tests/python/word.ipynb: Adjust.

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

	add a --check=stutter-sensitive-example option

	* spot/twaalgos/stutter.cc,
	spot/twaalgos/stutter.hh (check_stutter_invariance): Add a
	find_counterexamples argument.
	* spot/twaalgos/hoa.cc: Output accepted-word and rejected-word examples.
	* bin/common_aoutput.cc: Handle --check=stutter-sensitive-example.
	* NEWS: Mention it.
	* tests/core/stutter-tgba.test: Test it.
	* doc/org/concepts.org, doc/org/hoa.org: Document accepted-word and
	rejected-word named properties.
	* bin/man/spot-x.x: Mention that --check=stutter-sensitive-example
	ignores SPOT_STUTTER_CHECK.

2019-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve architecture diagram

	* doc/org/arch.tex: Improve diagram, add links and online services.
	* doc/org/concepts.org: Update text.

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

	Merge branch 'master' into next

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

	* NEWS, configure.ac: Bump version to 2.8.3.dev.

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

	release Spot 2.8.3

	* NEWS, configure.ac, doc/org/setup.org: Set version to 2.8.3.

2019-10-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/simplify.cc: Use robin_hood hashing.

2019-10-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	contain: some micro-optimizations

	* spot/tl/contain.cc, spot/tl/contain.hh: Use a pimp idiom to hide the
	hash tables, use robin_hood hash, and strip common Xs to save some
	cache lookups.
	* spot/tl/simplify.cc: Adjust to change of #include in contain.hh.

2019-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/ltl2tgba_fm.cc: Various micro-optimizations.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around recent GraphViz bug in SVG scaling

	See https://gitlab.com/graphviz/graphviz/issues/1605.

	* python/spot/aux.py (str_to_svg): Invert the scale parameters
	if they are both greater than one.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: improve diagnostics for algorithms that use too many colors

	* spot/twa/acc.hh (acc_cond::mark_t): Diagnose mark_t with set numbers
	that are too larges.
	* tests/python/except.py: Adjust.
	* tests/core/acc.cc: Remove most of asserts, as those can be disabled,
	and adjust expected exception.

2019-10-28  Etienne Renault  <renault@lrde.epita.fr>

	core: random_shuffle is deprecated and not portable

	* tests/core/parity.cc: Here.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	trim: avoid the soon-to-be-deprecated std::ptr_fun

	Reported by Etienne Renault.

	* spot/priv/trim.cc: Simplify with a lambda.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/ltlsynt.cc: Typo.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	"import spot.foo" may now load "spot-extra/foo.py"

	This is needed for tcltl.

	* python/spot/__init__.py: Alter __path__ to add any spot-extra/
	directory we find.
	* NEWS: Mention this.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: remove workaround for swig 2.0.2

	* python/spot/gen.i, python/spot/impl.i, python/spot/ltsmin.i: Here.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Fix many typos.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/control (libspotgen0): Fix leading spaces in description.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: use local version of require.js

	* debian/control (spot-doc): Depends on libjs-requirejs.
	* debian/rules (fix-js): Replace uses.

2019-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: remove -flo workaround

	* debian/rules: Here.

2019-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/copyright: Add license for robin_hood.hh.

2019-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around recent GraphViz bug in SVG scaling

	See https://gitlab.com/graphviz/graphviz/issues/1605.

	* python/spot/aux.py (str_to_svg): Invert the scale parameters
	if they are both greater than one.

2019-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: improve diagnostics for algorithms that use too many colors

	* spot/twa/acc.hh (acc_cond::mark_t): Diagnose mark_t with set numbers
	that are too larges.
	* tests/python/except.py: Adjust.
	* tests/core/acc.cc: Remove most of asserts, as those can be disabled,
	and adjust expected exception.

2019-10-17  Etienne Renault  <renault@lrde.epita.fr>

	core: random_shuffle is deprecated and not portable

	* tests/core/parity.cc: Here.

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

	trim: avoid the soon-to-be-deprecated std::ptr_fun

	Reported by Etienne Renault.

	* spot/priv/trim.cc: Simplify with a lambda.

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

	formula: avoid id clash for atomic propositions

	This corrects a bug that has never been observed yet, has it would
	require more than UINT_MAX formulas allocations.

	* spot/tl/formula.cc, spot/tl/formula.hh: Bump the formula ID in the
	unlikely case a new atomic proposition would receive the same id as a
	previous one.

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

	* spot/twaalgos/rabin2parity.cc: Minor simplification.

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

	determinize: various micro optimizations

	* spot/twaalgos/determinize.cc: Implement various micro
	optimizations.  Use robin-hood hashing in a few places.
	* spot/priv/robin_hood.hh: New file.
	* spot/priv/Makefile.am: Add it.
	* tests/sanity/80columns.test, tests/sanity/includes.test,
	tests/sanity/style.test: Adjust to skip robin_hood.hh.

2019-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* elisp/hoa-mode.el: Update from upstream.

2019-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve readability of parity(false, true, 5)

	* spot/twa/acc.hh: Introduce parity_min_odd(n) and friends.
	* spot/twaalgos/determinize.cc, spot/twaalgos/rabin2parity.cc,
	spot/twaalgos/toparity.cc: Use them.
	* tests/python/parity.py: Call each function exhaustively.
	* NEWS: Mention the new functions.

2019-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve to_parity() LAR implementation using SCCs

	* spot/twaalgos/toparity.cc (lar_generator): Use scc_info to reset
	permutations of edges leaving SCCs.
	* tests/python/toparity.py: Add a test case.

2019-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/ltlsynt.cc: Typo.

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

	"import spot.foo" may now load "spot-extra/foo.py"

	This is needed for tcltl.

	* python/spot/__init__.py: Alter __path__ to add any spot-extra/
	directory we find.
	* NEWS: Mention this.

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

	python: remove workaround for swig 2.0.2

	* python/spot/gen.i, python/spot/impl.i, python/spot/ltsmin.i: Here.

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

	* NEWS: Fix many typos.

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

	* debian/control (libspotgen0): Fix leading spaces in description.

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

	debian: use local version of require.js

	* debian/control (spot-doc): Depends on libjs-requirejs.
	* debian/rules (fix-js): Replace uses.

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

	debian: remove -flo workaround

	* debian/rules: Here.

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

	Merge branch 'master' into next

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

	Bump version to 2.8.2.dev

	* NEWS, configure.ac: Here.

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

	Release Spot 2.8.2

	* NEWS, configure.ac, doc/org/setup.org: Update version to 2.8.2.

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

	* .gitlab-ci.yml (raspbian): Restrict to branches.

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

	* tests/python/_product_weak.ipynb: Work around jupyter timeouts.

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

	* .gitlab-ci.yml (arch-gcc-glibcxxdebug): Do not call env.

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

	* .gitlab-ci.yml (arch-gcc-glibcxxdebug): Do not call env.

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

	* doc/org/index.org: Clarify license implications.

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

	aiger: simplify output code, and fix some function call order

	* spot/twaalgos/aiger.cc: Simplify some bit operatitions.  Force the
	ordering of operations in aig_and, that was causing a test case to
	fail on ARM, and greatly simplify the code and data structures used in
	remove_unused().
	* tests/core/ltlsynt.test: Adjust expected output.

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

	bin: handle any exception before returning from parse_opt()

	On some architectures (e.g., ARM, or even some -flto setups on Intel)
	C++ exceptions to not traverse the C functions.  So even if the C++
	main() has a try/catch, it will not catch the exception thrown by C++
	code called from the argp module (which is compiled in C).

	* bin/common_setup.cc, bin/common_setup.hh: Define some macros
	and function to factorize exception handling.
	* bin/autcross.cc, bin/autfilt.cc, bin/common_aoutput.cc,
	bin/common_color.cc, bin/common_finput.cc, bin/common_hoaread.cc,
	bin/common_output.cc, bin/common_post.cc, bin/common_trans.cc,
	bin/dstar2tgba.cc, bin/genaut.cc, bin/genltl.cc, bin/ltl2tgba.cc,
	bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc,
	bin/ltlgrind.cc, bin/ltlsynt.cc, bin/randaut.cc, bin/randltl.cc:
	Protect all parse_opt() functions, even those where there is currently
	no exception risk.

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

	fix ARM builds

	* spot/misc/bitvect.hh (bitvect_array::at): Fix pointer cast.
	* spot/twa/bddprint.cc: Adjust to use signed char* explicitly.
	* spot/twaalgos/gtec/gtec.hh: Work around GCC bug #90309.
	* .gitlab-ci.yml: Add raspbian build.

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

	* doc/org/index.org: Clarify license implications.

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

	aiger: simplify output code, and fix some function call order

	* spot/twaalgos/aiger.cc: Simplify some bit operatitions.  Force the
	ordering of operations in aig_and, that was causing a test case to
	fail on ARM, and greatly simplify the code and data structures used in
	remove_unused().
	* tests/core/ltlsynt.test: Adjust expected output.

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

	bin: handle any exception before returning from parse_opt()

	On some architectures (e.g., ARM, or even some -flto setups on Intel)
	C++ exceptions to not traverse the C functions.  So even if the C++
	main() has a try/catch, it will not catch the exception thrown by C++
	code called from the argp module (which is compiled in C).

	* bin/common_setup.cc, bin/common_setup.hh: Define some macros
	and function to factorize exception handling.
	* bin/autcross.cc, bin/autfilt.cc, bin/common_aoutput.cc,
	bin/common_color.cc, bin/common_finput.cc, bin/common_hoaread.cc,
	bin/common_output.cc, bin/common_post.cc, bin/common_trans.cc,
	bin/dstar2tgba.cc, bin/genaut.cc, bin/genltl.cc, bin/ltl2tgba.cc,
	bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc,
	bin/ltlgrind.cc, bin/ltlsynt.cc, bin/randaut.cc, bin/randltl.cc:
	Protect all parse_opt() functions, even those where there is currently
	no exception risk.

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

	fix ARM builds

	* spot/misc/bitvect.hh (bitvect_array::at): Fix pointer cast.
	* spot/twa/bddprint.cc: Adjust to use signed char* explicitly.
	* spot/twaalgos/gtec/gtec.hh: Work around GCC bug #90309.
	* .gitlab-ci.yml: Add raspbian build.

2019-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tut12: mention X[!]

	* doc/org/tut12.org (Final notes): Here.

2019-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Mention X(0)=0.

2019-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	from-ltlf: never output strong_X

	* spot/tl/ltlf.cc: Here.
	* tests/core/ltlfilt.test: Adjust test case.

2019-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/init.el.in: Work around obsolete ELPA signatures.

2019-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba, ltldo: add a --negate option

	Suggested by Victor Khomenko.

	* bin/ltl2tgba.cc, bin/ltldo.cc: Implement it.
	* doc/org/hierarchy.org: Use it.
	* tests/core/ltldo2.test: Test it.
	* bin/common_output.cc: Typo.
	* NEWS: Mention the new option.

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

	* doc/org/init.el.in: Work around obsolete ELPA signatures.

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

	ltl2tgba, ltldo: add a --negate option

	Suggested by Victor Khomenko.

	* bin/ltl2tgba.cc, bin/ltldo.cc: Implement it.
	* doc/org/hierarchy.org: Use it.
	* tests/core/ltldo2.test: Test it.
	* bin/common_output.cc: Typo.
	* NEWS: Mention the new option.

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

	introduce op::strong_X

	This was prompted by reports by Andrew Wells and Yong Li.

	* NEWS, doc/tl/tl.tex: Document the changes.
	* THANKS: Add Andrew.
	* bin/ltlfilt.cc: Match --ltl before --from-ltlf if needed.
	* spot/parsetl/parsedecl.hh, spot/parsetl/parsetl.yy,
	spot/parsetl/scantl.ll: Parse X[!].
	* spot/tl/formula.cc, spot/tl/formula.hh: Declare the new operator.
	* spot/tl/ltlf.cc: Adjust to handle op::X and op::strong_X correctly.
	* spot/tl/dot.cc, spot/tl/mark.cc, spot/tl/mutation.cc,
	spot/tl/print.cc, spot/tl/simplify.cc, spot/tl/snf.cc,
	spot/tl/unabbrev.cc, spot/twa/formula2bdd.cc,
	spot/twaalgos/ltl2taa.cc, spot/twaalgos/ltl2tgba_fm.cc,
	tests/core/ltlgrind.test, tests/core/rand.test,
	tests/core/sugar.test, tests/python/randltl.ipynb: Adjust.
	* tests/core/ltlfilt.test, tests/core/sugar.test,
	tests/core/utf8.test: More tests.

2019-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix compilation with clang on ArchLinux

	* lib/gettext.h: Remove useless use of NULL.

2019-09-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: use a specific directory for .gcda files

	Otherwise the .gcda files may end into .libs/ and be destroyed by make
	clean.

	* debian/rules (PRO1SETUP, PRO2SETUP): Here.

2019-09-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix failing tests on Debian unstable

	* tests/Makefile.am (ltsmin_modelcheck_LDADD): Add -lpthread as it
	seems Debian's libtool does not carries this dependency over from
	libspotltsmin.la.  Also using $(LTLIBMULTITHREAD) does not work,
	because that would add -pthread which is currently ignored when
	linking shared libraries (because libtool adds -nostdlib for some
	reason).

2019-09-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	update to gnulib d77a23b15925e5554325ea3553c940133734eee3

	* configure.ac: Update minimum autoconf version.
	* lib/config.charset, lib/ref-add.sin, lib/ref-del.sin,
	m4/closeout.m4, m4/close-stream.m4, m4/configmake.m4, m4/glibc21.m4,
	m4/hard-locale.m4: Remove.
	* lib/alloca.c, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.h,
	lib/arg-nonnull.h, lib/argp-ba.c, lib/argp-eexst.c,
	lib/argp-fmtstream.c, lib/argp-fmtstream.h, lib/argp-fs-xinl.c,
	lib/argp.h, 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/asnprintf.c, lib/basename-lgpl.c, lib/c-ctype.h, lib/c++defs.h,
	lib/closeout.c, lib/closeout.h, lib/close-stream.c,
	lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strcase.h,
	lib/c-strncasecmp.c, lib/dirname.h, lib/dirname-lgpl.c, lib/dosname.h,
	lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c,
	lib/exitfail.h, lib/fcntl.in.h, lib/filename.h, lib/float.c,
	lib/float+.h, lib/float.in.h, lib/fpending.c, lib/fpending.h,
	lib/getopt1.c, lib/getopt.c, lib/getopt-cdefs.in.h, lib/getopt-core.h,
	lib/getopt-ext.h, lib/getopt.in.h, lib/getopt_int.h,
	lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h, lib/getprogname.c,
	lib/getprogname.h, lib/gettext.h, lib/gettimeofday.c,
	lib/hard-locale.c, lib/hard-locale.h, lib/intprops.h, lib/isatty.c,
	lib/itold.c, lib/limits.in.h, lib/localcharset.c, lib/localcharset.h,
	lib/localtime-buffer.c, lib/localtime-buffer.h, lib/lstat.c,
	lib/Makefile.am, lib/malloca.c, lib/malloca.h, lib/malloc.c,
	lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c, lib/memchr.valgrind,
	lib/mempcpy.c, lib/minmax.h, lib/mkstemp.c, lib/mkstemps.c,
	lib/msvc-inval.c, lib/msvc-inval.h, lib/msvc-nothrow.c,
	lib/msvc-nothrow.h, lib/_Noreturn.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/quotearg.c, lib/quotearg.h,
	lib/quote.h, lib/rawmemchr.c, lib/rawmemchr.valgrind,
	lib/secure_getenv.c, lib/size_max.h, lib/sleep.c, lib/stat.c,
	lib/stat-time.h, lib/stat-w32.c, lib/stat-w32.h, lib/stdalign.in.h,
	lib/stdbool.in.h, lib/stddef.in.h, lib/stdint.in.h, lib/stdio-impl.h,
	lib/stdio.in.h, lib/stdlib.in.h, lib/stpcpy.c, lib/strcasecmp.c,
	lib/strchrnul.c, lib/strchrnul.valgrind, lib/streq.h, lib/strerror.c,
	lib/strerror-override.c, lib/strerror-override.h, lib/string.in.h,
	lib/strings.in.h, lib/stripslash.c, lib/strncasecmp.c, lib/strndup.c,
	lib/strnlen.c, lib/strverscmp.c, lib/sysexits.in.h, lib/sys_stat.in.h,
	lib/sys_time.in.h, lib/sys_types.in.h, lib/sys_wait.in.h,
	lib/tempname.c, lib/tempname.h, lib/time.in.h, lib/unistd.in.h,
	lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h, lib/vsnprintf.c,
	lib/warn-on-use.h, lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c,
	lib/xalloc.h, lib/xalloc-oversized.h, lib/xmalloc.c, lib/xsize.h,
	m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4,
	m4/codeset.m4, m4/dirname.m4, m4/double-slash-root.m4, m4/eealloc.m4,
	m4/errno_h.m4, m4/error.m4, m4/exponentd.m4, m4/extensions.m4,
	m4/extern-inline.m4, m4/fcntl_h.m4, m4/fcntl-o.m4, m4/float_h.m4,
	m4/fpending.m4, m4/getopt.m4, m4/getprogname.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/isatty.m4, m4/largefile.m4, m4/limits-h.m4,
	m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4,
	m4/localtime-buffer.m4, m4/longlong.m4, m4/lstat.m4, m4/malloca.m4,
	m4/malloc.m4, m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4,
	m4/mbstate_t.m4, m4/memchr.m4, m4/mempcpy.m4, m4/minmax.m4,
	m4/mkstemp.m4, m4/mkstemps.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/quotearg.m4, m4/quote.m4,
	m4/rawmemchr.m4, m4/secure_getenv.m4, m4/size_max.m4, m4/sleep.m4,
	m4/ssize_t.m4, m4/stat.m4, m4/stat-time.m4, m4/stdalign.m4,
	m4/stdbool.m4, m4/stddef_h.m4, m4/stdint_h.m4, m4/stdint.m4,
	m4/stdio_h.m4, m4/stdlib_h.m4, m4/stpcpy.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/strverscmp.m4, m4/sysexits.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/tempname.m4, m4/time_h.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/wctype_h.m4, m4/wint_t.m4,
	m4/xalloc.m4, m4/xsize.m4: Update.
	* lib/cdefs.h, lib/glthread/lock.c, lib/glthread/lock.h,
	lib/glthread/threadlib.c, lib/libc-config.h, lib/mkdir.c,
	lib/windows-initguard.h, lib/windows-mutex.c, lib/windows-mutex.h,
	lib/windows-once.c, lib/windows-once.h, lib/windows-recmutex.c,
	lib/windows-recmutex.h, lib/windows-rwlock.c, lib/windows-rwlock.h,
	m4/host-cpu-c-abi.m4, m4/__inline.m4, m4/lib-ld.m4, m4/lib-link.m4,
	m4/lib-prefix.m4, m4/lock.m4, m4/mkdir.m4,
	m4/pthread_rwlock_rdlock.m4, m4/std-gnu11.m4, m4/threadlib.m4,
	tools/config.rpath: New files.

2019-08-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: update Doxygen documentation for DEAD

	* spot/ltsmin/ltsmin.hh: Here.

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

	Upgrade parsers to Bison >= 3.0

	Bison 3.0 was released in 2013, and the current Debian stable (buster)
	has version 3.3.2.

	* m4/bison.m4: Remove -Wno-precedence and -Wno-empty-rule, keep
	-Wno-deprecated just to protect from future deprecation warnings that
	would be interpreted as errors.
	* spot/parseaut/parseaut.yy, spot/parsetl/parsetl.yy: Use %empty
	rules, prefer %precedence over %nonassoc, update %error-versbose and
	%name-prefix to their more modern equivalent.
	* spot/misc/trival.hh (maybe): Mark this function as noexcept to
	please the compiler while compiling the parsers.

2019-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/sum.py: Simplify code.

2019-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/dualize.cc: Improve comment.

2019-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: fix precondition on set_init_state

	Fixes #391.

	* spot/twa/twagraph.hh: Here.
	* tests/core/dualize.test, tests/python/except.py: New tests.
	* NEWS: Mention the bug.

2019-07-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add syntax highlighting for three HOA examples

	* doc/org/concepts.org, doc/org/ltl2tgba.org, doc/org/ltldo.org: Here.

2019-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.8.1.dev.

2019-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.8.1

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.8.1.

2019-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross, autcross: add --quiet/-q option

	* bin/autcross.cc, bin/ltlcross.cc: Implement it.
	* doc/org/autcross.org, doc/org/ltlcross.org, NEWS: Document it.
	* doc/org/spot.css: Add colors for Makefile snippets.
	* tests/core/autcross4.test, tests/core/ltlcross3.test,
	tests/core/ltlcrossce.test: Add test cases.

2019-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	allow gcc-snapshot failures because of GCC bug 91184

	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91184

	* .gitlab-ci.yml (debian-gcc-snapshot): Add allow_failure=true.

2019-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: work around emacs/gnutls interaction bug

	* doc/org/init.el.in: Set gnutls-algorithm-priority when needed.
	* NEWS: Mention the issue.

2019-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	forbid the use of std::endl on std::cerr

	std::cerr will flush after each operator<< by default, so it's simpler
	to use \n instead of std::endl, especially if we can merge \n into the
	previous string.  Ideally we should prefer \n for std::cout as well,
	but there are reasonable cases where we want to call std::endl there,
	so it's hard to enforce.

	* tests/sanity/style.test: Diagnose occurrences of cerr.*<<.*endl.
	* bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc, bin/ltlsynt.cc,
	spot/tl/formula.cc, spot/twa/bdddict.cc, tests/core/checkpsl.cc,
	tests/core/checkta.cc, tests/core/consterm.cc, tests/core/emptchk.cc,
	tests/core/equalsf.cc, tests/core/ikwiad.cc, tests/core/kind.cc,
	tests/core/length.cc, tests/core/ltlrel.cc, tests/core/parity.cc,
	tests/core/randtgba.cc, tests/core/reduc.cc, tests/core/syntimpl.cc,
	tests/ltsmin/modelcheck.cc: Fix them.

2019-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --pps-arbiter-{strict,standard}

	* spot/gen/formulas.cc, spot/gen/formulas.hh, bin/genltl.cc: Implement
	this.
	* NEWS, bin/man/genltl.x, doc/spot.bib: Add documentation.
	* tests/core/genltl.test, tests/core/ltlfilt.test: Add some tests.

2019-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/gen/formulas.cc: Add missing delete[].

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

	complement: fix handling of output_aborter with postproc

	Reported by Salomon Sickert.

	* spot/twaalgos/complement.cc: Make sure the output of postproc
	is deterministic.
	* tests/core/ltlcross.test: Add test case.
	* NEWS: Mention the bug.

2019-07-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/install.org: Debian stable is now Buster.

2019-07-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.8.0.dev

	* NEWS, configure.ac: Here.

2019-07-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.8

	* configure.ac, doc/org/setup.org, NEWS: Bump version to Spot 2.8.

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

	autcross: add shorthand for dra2dpa

	* bin/common_trans.cc: Add it.
	* NEWS: Mention it.

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

	product: fix handling of output_aborter

	* spot/twaalgos/product.cc: The res pointer should be
	passed by reference since we reset it to nullptr when
	output_aborter says "too large".
	* python/spot/impl.i: Add binding for powerset.hh,
	so we can use output_aborter in Python.
	* tests/python/prodexpt.py: Test it.

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

	* doc/spot.bib: Fix some urls.

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

	genem: cite our ATVA'19 paper

	* doc/spot.bib (baier.19.atva): New reference.
	* spot/twaalgos/genem.hh: Cite it.

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

	ltldo, ltlcross: add support from ltl2ba, ltl2nba, ltl2dgba

	* bin/common_trans.cc: Here.
	* NEWS: Document this.

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

	tl: eight new simplification rules

	* NEWS, doc/tl/tl.tex: Document the rules.
	* spot/tl/simplify.cc: Implement them.
	* tests/core/reduccmp.test: Test them.
	* tests/core/det.test, tests/core/ltl2tgba2.test,
	tests/python/stutter-inv.ipynb, tests/core/385.test: Adjust.

2019-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Fix some typos.

2019-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	deprecate spot::acc_cond::format()

	* NEWS: Mention it.
	* spot/twa/acc.hh (spot::acc_cond::format): Deprecate.
	(spot::acc_cond::mark_t::as_string): New function.
	* spot/taalgos/dot.cc: Use mark_t::as_string().
	* spot/priv/satcommon.cc, spot/priv/satcommon.hh,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/emptiness.cc,
	tests/core/acc.cc, tests/core/acc.test: Adjust to use << directly.

2019-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: cleanup with autopep8

	* tests/python/341.py, tests/python/alarm.py, tests/python/bdddict.py,
	tests/python/bddnqueen.py, tests/python/bugdet.py,
	tests/python/dualize.py, tests/python/except.py, tests/python/gen.py,
	tests/python/genem.py, tests/python/implies.py,
	tests/python/interdep.py, tests/python/ipnbdoctest.py,
	tests/python/kripke.py, tests/python/ltl2tgba.py,
	tests/python/ltlf.py, tests/python/ltlparse.py,
	tests/python/ltlsimple.py, tests/python/relabel.py,
	tests/python/rs_like.py, tests/python/sccsplit.py,
	tests/python/semidet.py, tests/python/setacc.py,
	tests/python/setxor.py, tests/python/split.py,
	tests/python/streett_totgba.py, tests/python/stutter.py,
	tests/python/sum.py, tests/python/toparity.py, tests/python/toweak.py,
	tests/python/trival.py, python/spot/__init__.py, python/spot/aux.py,
	python/spot/jupyter.py: Reformat with autopep8.

	fixup! * spot/tl/simplify.cc: Fix typos in tracing code.

2019-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/simplify.cc: Fix typos in tracing code.

2019-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Typo.

2019-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add tut90.org about bdd_dict

	Fixes #372.

	* doc/org/tut90.org: New file.
	* doc/Makefile.am, doc/org/tut.org: Add it.
	* NEWS: Mention it.
	* python/spot/__init__.py: Allow make_twa_graph with
	default bdd_dict.

2019-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: fix a fixme

	* spot/twaalgos/postproc.cc: Fix reject_bigger argument of
	minimize_obligation for --low.

2019-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_has_rejecting_cycle: rewrite without copy

	* spot/twaalgos/genem.hh, spot/twaalgos/genem.cc
	(generic_emptiness_check_for_scc): Add a version that takes an acc.
	* spot/twaalgos/isweakscc.cc (scc_has_rejecting_cycle): Use
	generic_emptiness_check_for_scc.

2019-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/formula.cc: Fix two fixmes.

2019-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: get rid of intersecting_run()'s second argument

	* spot/twa/twa.cc, spot/twa/twa.hh: Here.
	* NEWS: Mention the backward incompatibility.

2019-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: improve merging of transiant-SCCs

	* spot/twaalgos/simulation.cc: Code this.
	* tests/core/det.test, tests/core/dra2dba.test,
	tests/core/satmin.test, tests/core/sim3.test,
	tests/python/decompose.ipynb, tests/python/dualize.py: Adjust test
	cases.
	* NEWS: Mention the optimization.

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

	ltlsynt: use reduce_parity()

	* bin/ltlsynt.cc: Here.
	* tests/core/ltlsynt.test: Adjust.

2019-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	toparity: revert symmetry-based optimization of LAR

	Fixes #390.

	* spot/twaalgos/toparity.cc: Revert the relevant part of 516e9536.
	* tests/python/toparity.py: Add test case.
	* NEWS: Mention the issue.

2019-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	re-enable tests incorrectly disabled

	These were disabled by mistake in f6575d2ec.

	* tests/python/parity.py: Uncomment test cases.

2019-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	toparity: typo in pretty print

	* spot/twaalgos/toparity.cc: Fix pretty print.

2019-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: misc typos

	* doc/org/ltlsynt.org: Fix example.
	* bin/ltlsynt.cc: Fix --help text.

2019-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gfguarantee: fix #357 again

	The previous patch triggered this issue again, failing
	core/ltl2tgba2.test.

	* spot/twaalgos/gfguarantee.cc: Separate the replaying of history from
	the modification of the automaton.
	* NEWS: Mention the bug.
	* tests/python/twagraph-internals.ipynb, tests/python/automata.ipynb:
	Adjust.

2019-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: GF(f)=GF(dnf(f)) FG(f)=FG(cnf(f))

	These rules come from Delag's paper, and help some cases
	in issue #385.

	* spot/tl/simplify.cc: Implement the simplification.
	* doc/tl/tl.tex, NEWS: Document it.
	* tests/core/385.test: New file.
	* tests/Makefile.am: Add it.
	* tests/core/reduccmp.test: More tests.
	* tests/core/ltl2tgba2.test: Adjust one improved case.
	* tests/python/automata.ipynb, tests/python/twagraph-internals.ipynb:
	Adjust expected output, as the cnf/dnf reorder some subformulas.

2019-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use a bibtex file to collect all references in Doxygen

	* doc/tl/tl.bib: Move ...
	* doc/spot.bib: ... here, and augment it with all references that
	appeared verbatim in Doxygen comments.
	* doc/Makefile.am, doc/tl/Makefile.am
	doc/tl/tl.tex: Adjust for the move.
	* doc/Doxyfile.in: Point to spot.bib.
	* spot/gen/automata.hh, spot/gen/formulas.hh, spot/misc/game.hh,
	spot/misc/minato.hh spot/taalgos/emptinessta.hh,
	spot/taalgos/minimize.hh, spot/taalgos/tgba2ta.hh, spot/tl/formula.hh,
	spot/tl/remove_x.hh, spot/tl/simplify.hh, spot/tl/snf.hh,
	spot/twaalgos/cobuchi.hh, spot/twaalgos/cycles.hh,
	spot/twaalgos/dualize.hh, spot/twaalgos/gtec/gtec.hh,
	spot/twaalgos/gv04.hh, spot/twaalgos/ltl2taa.hh,
	spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/magic.hh,
	spot/twaalgos/minimize.hh, spot/twaalgos/parity.hh,
	spot/twaalgos/powerset.hh, spot/twaalgos/randomgraph.hh,
	spot/twaalgos/se05.hh, spot/twaalgos/simulation.hh,
	spot/twaalgos/strength.hh, spot/twaalgos/stutter.hh,
	spot/twaalgos/tau03.hh, spot/twaalgos/totgba.hh,
	spot/twaalgos/toweak.hh: Use \cite instead of a verbatim bibtex entry.

2019-06-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_parity: fix unitialized value of max on False return

	* spot/twa/acc.cc: Here.  This fixes two failures on the buildfarm.

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

	hierarchy: add a new way to check DBA-realizability via DPA

	* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Here.
	* tests/core/hierarchy.test: Test it.
	* bin/man/spot-x.x: Document SPOT_PR_CHECK.
	* doc/org/hierarchy.org, NEWS: Update.

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

	* NEWS: Typos.

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

	use reduce_parity in translator and posprocessor

	* spot/twaalgos/postproc.cc, spot/twaalgos/translate.cc: Here.
	* tests/core/genltl.test, tests/core/parity2.test,
	tests/core/sccsimpl.test, tests/python/twagraph-internals.ipynb:
	Adjust test cases.
	* NEWS: Mention it.

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

	parity: introduce reduce_parity()

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here.
	* tests/core/parity.cc: Add test case.
	* tests/python/parity.ipynb, NEWS: More documentation.

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

	improve cleanup_parity() and colorize_parity()

	Fixes #384.

	* spot/twaalgos/parity.cc: Here.
	* tests/core/parity2.test, tests/python/highlighting.ipynb,
	tests/python/parity.py: Adjust test cases.
	* tests/python/parity.ipynb: Improve the presentation.
	* NEWS: Mention the change.

2019-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autcross: simplify code using complement() and intersecting_word()

	* bin/autcross.cc: Let complement() decide how to complement automata.
	Do not apply remove_fin(), because we have a generic emptiness check
	now.  Use intersecting_word() instead of product()+accepting_word() so
	that the former can maybe be optimized in the future.
	* tests/core/autcross2.test: Adjust test case to use TGBA instead
	of monitors, as calling complement() had a side-effect of setting
	the "weak" property on the input.

2019-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genaut: introduce --m-nba

	* bin/genaut.cc: Implement the --m-nba option.
	* spot/gen/automata.hh, spot/gen/automata.cc: Add the generation code.
	* NEWS, bin/man/genaut.x: Document it.
	* doc/org/genaut.org: Update.
	* tests/core/genaut.test, tests/core/parity2.test: Add some tests.

2019-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2019-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.7.5.dev.

2019-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.7.5

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

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

	* NEWS: Mention swig4 support.

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

	Update instructions for divine-ltsmin installation

	* tests/ltsmin/README: Here.
	* THANKS: Reported by Jiraphapa Jiravaraphan.

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

	remprop: reset no-terminal property

	Reported by Yong Li.

	* spot/twaalgos/remprop.cc: Here.
	* tests/python/removeap.py: New test case.
	* tests/Makefile.am: Add it.
	* NEWS: Document the issue.
	* THANKS: Add Yong Li.

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

	tests: add missing copyright blobs

	* tests/python/remfin.py, tests/python/tra2tba.py: Here.

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

	work around another swig4 change

	* python/spot/impl.i: Make sure spot::acc_cond::mark_t::operator<<
	exceptions are not ignored.

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

	work around swig4 regression

	* python/Makefile.am: Here.

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

	work around new import statements generated by swig-4.0

	Those statements are not compatible with the fact that
	libtool-generated modules are in .libs/ until they get installed.

	* python/spot/__init__.py: Add sys.path to __path__ if SPOT_BUILD is
	  set.
	* tests/run.in: Set SPOT_BUILD.

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

	python: remove the -nofastproxy option

	This was introduced by b893b5597 to work around some IPython 2 issue
	(https://github.com/ipython/ipython/issues/7003).

	* python/Makefile.am (SWIGFLAGS): Remove obsolete option.
	* python/spot/__init__.py: Adjust.

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

	test: add missing copyright boilerplate

	* tests/python/genem.py: Here.

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

	translate: relabel_bool was ignored when option_map was not supplied

	* spot/twaalgos/translate.cc: Set relabel_bool_ to 4 by default, not
	-1.
	* NEWS: Mention the bug.

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

	dot: replace large labels by "(label too long)"

	Based on a report by Victor Khomenko.

	* spot/twaalgos/dot.cc: Here.
	* tests/core/readsave.test: Add test case.
	* NEWS: Mention it.

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

	tl: extend F[n:m] and G[n:m] to the case of m=$

	Suggested by Victor Khomenko.

	* spot/tl/formula.cc, spot/tl/formula.hh, spot/parsetl/parsetl.yy:
	Implement this.
	* NEWS, doc/tl/tl.tex: Document it.
	* tests/core/sugar.test, tests/python/ltlparse.py: Add some tests.

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

	remprop: reset no-terminal property

	Reported by Yong Li.

	* spot/twaalgos/remprop.cc: Here.
	* tests/python/removeap.py: New test case.
	* tests/Makefile.am: Add it.
	* NEWS: Document the issue.
	* THANKS: Add Yong Li.

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

	tests: add missing copyright blobs

	* tests/python/remfin.py, tests/python/tra2tba.py: Here.

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

	work around another swig4 change

	* python/spot/impl.i: Make sure spot::acc_cond::mark_t::operator<<
	exceptions are not ignored.

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

	work around swig4 regression

	* python/Makefile.am: Here.

2019-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around new import statements generated by swig-4.0

	Those statements are not compatible with the fact that
	libtool-generated modules are in .libs/ until they get installed.

	* python/spot/__init__.py: Add sys.path to __path__ if SPOT_BUILD is
	  set.
	* tests/run.in: Set SPOT_BUILD.

2019-05-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: remove the -nofastproxy option

	This was introduced by b893b5597 to work around some IPython 2 issue
	(https://github.com/ipython/ipython/issues/7003).

	* python/Makefile.am (SWIGFLAGS): Remove obsolete option.
	* python/spot/__init__.py: Adjust.

2019-05-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce output_aborter, and use it in ltlcross

	* spot/twaalgos/alternation.cc, spot/twaalgos/alternation.hh,
	spot/twaalgos/complement.cc, spot/twaalgos/complement.hh,
	spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh,
	spot/twaalgos/minimize.cc, spot/twaalgos/minimize.hh,
	spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh,
	spot/twaalgos/powerset.cc, spot/twaalgos/powerset.hh,
	spot/twaalgos/product.cc, spot/twaalgos/product.hh: Use an
	output_aborter argument to abort if the output is too large.
	* bin/ltlcross.cc: Use complement() with an output_aborter
	so that ltlcross will not attempt to build complement larger
	than 500 states or 5000 edges.  Add --determinize-max-states
	and --determinize-max-edges options.
	* tests/core/ltlcross3.test, tests/core/ltlcrossce2.test,
	tests/core/sccsimpl.test, tests/core/wdba2.test,
	tests/python/stutter-inv.ipynb: Adjust test cases.
	* NEWS: Document this.
	* bin/spot-x.cc: Add documentation for postprocessor's
	det-max-states and det-max-edges arguments.
	* doc/org/ltlcross.org: Update description.

2019-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	test: add missing copyright boilerplate

	* tests/python/genem.py: Here.

2019-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	word: introduce use_all_aps()

	This allows fixing issue #388 reported by Victor Khomenko.

	* spot/twaalgos/word.cc, spot/twaalgos/word.hh (use_all_aps): New
	method.
	* tests/python/stutter-inv.ipynb: Use it.
	* tests/python/stutter.py: New file, with Victor's test case.
	* tests/Makefile.am: Add python/stutter.py.

2019-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: fix handling of f##[0:0]g, and of ##[0:n]g

	The first issue was reported by Victor Khomenko.

	* spot/tl/formula.cc: Introduce a single-argument
	version of sugar_delay().
	* spot/parsetl/parsetl.yy: Use it.
	* doc/tl/tl.tex, spot/tl/formula.hh: Adjust doc.
	* tests/core/ltlfilt.test, tests/core/sugar.test: More tests.

2019-05-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: fix the definition of ##[i:j]

	Reported by Victor Khomenko.

	* NEWS, doc/tl/tl.tex, spot/tl/formula.cc: Fix the definition.
	* tests/core/ltl2tgba.test: Add some test cases.

2019-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: relabel_bool was ignored when option_map was not supplied

	* spot/twaalgos/translate.cc: Set relabel_bool_ to 4 by default, not
	-1.  Also call relabel_apply when the formula is relabeled.

2019-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: replace large labels by "(label too long)"

	Based on a report by Victor Khomenko.

	* spot/twaalgos/dot.cc: Here.
	* tests/core/readsave.test: Add test case.
	* NEWS: Mention it.

2019-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: add support for ##[+] and ##[*]

	Suggested by Victor Khomenko.

	* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Implement them.
	* NEWS, doc/tl/tl.tex: Document them.
	* tests/core/sugar.test: Add a couple of tests.

2019-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: new simplification rules

	Related to issue #385.

	* doc/tl/tl.tex, NEWS: Document the rules.
	* spot/tl/simplify.cc: Implement the rules.
	* tests/core/reduccmp.test, tests/core/ltl2tgba2.test: Add tests.
	* tests/core/degenscc.test: Adjust.

2019-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: implement relabel_apply()

	* spot/tl/relabel.hh, spot/tl/relabel.cc: Here.
	* NEWS: Mention it.
	* tests/python/relabel.py: Use it.

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

	simplify: more rules for first_match

	* spot/tl/simplify.cc: Implement the rules.
	* tests/core/reduccmp.test: Test them.
	* doc/tl/tl.tex: Document them.

2019-05-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: add some simplifications for first_match

	Following a discussion with Victor Khomenko.

	* doc/tl/tl.tex: Document those rules.
	* spot/tl/simplify.cc: Implement them.
	* tests/core/reduccmp.test: Test them.

2019-05-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: first_match does not preserve syntactic_si

	* spot/tl/formula.cc: Fix it.
	* tests/core/kind.test: Add test case.

2019-05-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tut03: add missing operators

	* doc/org/tut03.org: Here.

2019-05-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	implement SVA's first_match operator

	* NEWS, doc/tl/tl.tex, doc/tl/tl.bib: Document it.
	* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse it.
	* spot/tl/formula.cc, spot/tl/formula.hh, spot/tl/dot.cc,
	spot/tl/mutation.cc, spot/tl/print.cc, spot/tl/randomltl.cc,
	spot/twaalgos/ltl2tgba_fm.cc: Adjust to support first_match.
	* spot/tl/mark.cc, spot/tl/simplify.cc, spot/tl/snf.cc,
	spot/tl/unabbrev.cc, spot/twa/formula2bdd.cc,
	spot/twaalgos/ltl2taa.cc: Ignore it.
	* tests/core/acc_word.test, tests/core/randpsl.test: Add more tests.
	* tests/core/rand.test, tests/core/unambig.test,
	tests/python/randltl.ipynb: Adjust.
	* tests/python/formulas.ipynb: Show first_match.

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

	tl.pdf: add missing precedence and grammar rules

	* doc/tl/tl.tex: Here.

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

	tl: add support for ##n and ##[i:j] from SVA

	* spot/tl/formula.cc, spot/tl/formula.hh (formula::sugar_delay): New
	function to implement this operator as syntactic sugar.
	* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse it.
	* doc/tl/tl.tex: Document the syntactic sugar rules and precedence.
	* tests/core/sugar.test: Add tests.
	* NEWS: Mention this new feature.

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

	Merge branch 'master' into next

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

	Bump version to 2.7.4.dev

	* NEWS, configure.ac: Here.

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

	Release Spot 2.7.4

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

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

	* THANKS: Add Victor Khomenko.

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

	formula: b* is siSERE

	Since b[+] and [*0] are siSERE, b* is siSERE as well.
	Suggested by Victor Khomenko.

	* spot/tl/formula.cc: Implement that for Star and also
	in the concatenation rule.
	* tests/core/kind.test, tests/core/ltlfilt.test: Adjust.

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

	formula: b* is siSERE

	Since b[+] and [*0] are siSERE, b* is siSERE as well.
	Suggested by Victor Khomenko.

	* spot/tl/formula.cc: Implement that for Star and also
	in the concatenation rule.
	* tests/core/kind.test, tests/core/ltlfilt.test: Adjust.

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

	org: better sitemap

	* doc/org/init.el.in: List pages in a nested list according to
	HTML_LINK_UP links.

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

	formula: fix syntactic-SI detection for ; operator

	Reported by Victor Khomenko.

	* spot/tl/formula.cc: Rewrite the siPSL detection for ";".
	* tests/core/ltlfilt.test: Add more tests.
	* tests/core/kind.test: Adjust.
	* NEWS: Mention the bug.

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

	formula: fix syntactic-SI detection for ; operator

	Reported by Victor Khomenko.

	* spot/tl/formula.cc: Rewrite the siPSL detection for ";".
	* tests/core/ltlfilt.test: Add more tests.
	* tests/core/kind.test: Adjust.
	* NEWS: Mention the bug.

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

	cleanacc: cleanup documentation and API

	* spot/twaalgos/cleanacc.hh: Fix Doxygen comments, and
	add a strip argument to cleanup_acceptance().
	* spot/twaalgos/cleanacc.cc: Adjust.

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

	fix "requires separate Inf and Fin sets" error from ltl2tgba -G

	Report from David Müller.

	* spot/twaalgos/simulation.cc: Add wrapper to deal with automata
	sharing Fin/Inf sets.
	* tests/core/ltl2tgba2.test: New test cases.
	* NEWS: Mention the change.

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

	fix "requires separate Inf and Fin sets" error from ltl2tgba -G

	Report from David Müller.

	* spot/twaalgos/simulation.cc: Add wrapper to deal with automata
	sharing Fin/Inf sets.
	* tests/core/ltl2tgba2.test: New test cases.
	* NEWS: Mention the change.

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

	sepsets: fix infinite loop

	* tests/core/sepsets.test: New test case.
	* spot/twaalgos/sepsets.cc: Fix the code.
	* NEWS: Mention the problem.

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

	* bin/spot-x.cc (ba-simul): Update documentation.

2019-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: minor fixes

	* bin/man/spot-x.x, bin/man/dstar2tgba.x, bin/spot-x.cc: Cosmetics
	changes.
	* bin/man/README: New file.

2019-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Fix ltlcross.csv example.

2019-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sepsets: fix infinite loop

	* tests/core/sepsets.test: New test case.
	* spot/twaalgos/sepsets.cc: Fix the code.
	* NEWS: Mention the problem.

2019-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/spot-x.cc (ba-simul): Update documentation.

2019-04-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: make sure intersection_run and intersection_word use genem

	* spot/twa/twa.cc (accepting_word, intersecting_run,
	intersecting_word): Refactor.
	* tests/python/contains.ipynb: Adjust.

2019-04-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: minor fixes

	* bin/man/spot-x.x, bin/man/dstar2tgba.x, bin/spot-x.cc: Cosmetics
	changes.
	* bin/man/README: New file.

2019-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Fix ltlcross.csv example.

2019-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2019-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.7.3.dev.

2019-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release spot 2.7.3

	* NEWS, configure.ac, doc/org/setup.org: Set version.

2019-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: reverse part of 7dfeda8e7

	* doc/org/satmin.org: Get the old description of the CSV example.  The
	new description installed by 7dfeda8e7 only apply to the next major
	release.

2019-04-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: fix some examples

	Reported by František Blahoudek.

	* tests/python/parity.ipynb: Fix examples and improve some text.

2019-04-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: fix some examples

	Reported by František Blahoudek.

	* tests/python/parity.ipynb: Fix examples and improve some text.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a quick dirty comparison of 3 translators

	* doc/org/ltldo.org: Here.
	* doc/org/spot.css: Add table-pre style.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* elisp/README: Remove obsolete comment.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: better display for CSV tables

	* doc/org/.dir-locals.el.in,
	doc/org/init.el.in (org-html-table-header-tags): Define.
	* doc/org/spot.css: Style the tables.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: simplify babel blocks using #+PROPERTY: header-args

	This feature is in Org 9, which is already required.

	* doc/org/autcross.org, doc/org/autfilt.org, doc/org/compile.org,
	doc/org/concepts.org, doc/org/csv.org, doc/org/dstar2tgba.org,
	doc/org/genaut.org, doc/org/genltl.org, doc/org/hierarchy.org,
	doc/org/hoa.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
	doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltldo.org,
	doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/ltlsynt.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/setup.org, doc/org/tools.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
	doc/org/tut12.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut23.org, doc/org/tut24.org,
	doc/org/tut30.org, doc/org/tut31.org, doc/org/tut50.org,
	doc/org/upgrade2.org: Simplify SRC block setups for sh, python and
	C++.  Also fix a few typos and examples along the way.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: try to work around some frequent time outs in our checks

	* tests/python/ipnbdoctest.py: Augment time limits.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a quick dirty comparison of 3 translators

	* doc/org/ltldo.org: Here.
	* doc/org/spot.css: Add table-pre style.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* elisp/README: Remove obsolete comment.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: better display for CSV tables

	* doc/org/.dir-locals.el.in,
	doc/org/init.el.in (org-html-table-header-tags): Define.
	* doc/org/spot.css: Style the tables.

2019-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: simplify babel blocks using #+PROPERTY: header-args

	This feature is in Org 9, which is already required.

	* doc/org/autcross.org, doc/org/autfilt.org, doc/org/compile.org,
	doc/org/concepts.org, doc/org/csv.org, doc/org/dstar2tgba.org,
	doc/org/genaut.org, doc/org/genltl.org, doc/org/hierarchy.org,
	doc/org/hoa.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
	doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltldo.org,
	doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/ltlsynt.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/setup.org, doc/org/tools.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
	doc/org/tut12.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut23.org, doc/org/tut24.org,
	doc/org/tut30.org, doc/org/tut31.org, doc/org/tut50.org,
	doc/org/upgrade2.org: Simplify SRC block setups for sh, python and
	C++.  Also fix a few typos and examples along the way.

2019-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: try to work around some frequent time outs in our checks

	* tests/python/ipnbdoctest.py: Augment time limits.

2019-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: prefer posix_spawn over fork+exec

	* configure.ac: Test for <spawn.h>.
	* bin/common_trans.cc: Use posix_spawn when available.
	* NEWS: Mention the change.
	* tests/core/ltldo.test: Adjust expected error message.

2019-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: fix previous patch

	* spot/twaalgos/genem.cc: Do not use a temporary scc_and_mark_filter.

2019-04-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: improve handling of co-Büchi

	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Make sure
	scc_and_mark_filter does not install a filter if there is nothing
	to filter.
	* tests/python/genem.py, spot/twaalgos/genem.cc,
	python/spot/impl.i: Adjust.

2019-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: remove call to cleanup_acceptance_here

	* spot/twaalgos/genem.cc: Here.

2019-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: rename scc_info(x,opt) into scc_info_with_options(x,opt)

	* spot/twaalgos/sccinfo.hh, python/spot/impl.i: Here.  This avoid
	ambiguities where options (integer in Python) are interpreted as
	initial states.
	* tests/python/genem.py: Adjust.

2019-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/sccinfo.cc (scc_info::split_on_sets): Honor filter.

2019-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complement: add a complement() function

	* spot/twaalgos/complement.cc,
	spot/twaalgos/complement.hh (complement): New function.
	* bin/autfilt.cc, spot/twa/twa.cc, spot/twaalgos/contains.cc,
	spot/twaalgos/powerset.cc, spot/twaalgos/stutter.cc: Use it.
	* tests/core/complement.test: Adjust.
	* NEWS: Mention it.

2019-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: fix commit 8959eabad

	* spot/twaalgos/simulation.cc: Restrict common_in marks to current SCC
	when pushing them, otherwise weak automata might become inherently
	weak.
	* tests/core/sim3.test: Add test case.

2019-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut22.org: Add missing call to prop_state_acc(True).

2019-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: explain how to build automata with state-based acceptance

	* doc/org/tut22.org: Here.  Suggested by Yannick Molinghen.
	* THANKS: Add him.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut22.org: Add missing call to prop_state_acc(True).

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Fix non-existent address

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix description of remove_fin

	* doc/org/dstar2tgba.org: The RA2BA is not for state-based acceptance
	only.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_alternation: fix serious typo

	Fixes #382.

	* spot/twaalgos/alternation.cc: Here.
	* tests/python/alternation.ipynb: Add test case.
	* NEWS: Mention it.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix handling of \r\n with %>

	Fix issue #380.

	* bin/common_finput.cc: Erase a trailing \r.
	* tests/core/ltl2tgba2.test: Test it.
	* NEWS: Mention the fix.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: suggest python-dev for installing Python headers

	* doc/org/install.org: Mention python-dev and libpython3-dev.
	Suggested by Tereza Šťastná.
	* THANKS: Add her.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: explain how to build automata with state-based acceptance

	* doc/org/tut22.org: Here.  Suggested by Yannick Molinghen.
	* THANKS: Add him.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: adjust text for simplified example for dstar2tgba

	* doc/org/dstar2tgba.org: Simplify example now that the automaton is
	further reduced.

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Fix non-existent address

2019-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix description of remove_fin

	* doc/org/dstar2tgba.org: The RA2BA is not for state-based acceptance
	only.

2019-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add option 'g'

	* spot/twaalgos/dot.cc: Implement support for hidding labels.
	* tests/core/readsave.test: Test it.
	* bin/common_aoutput.cc: Add --help text.
	* NEWS: Mention it.

2019-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: greatly simplify code

	* spot/twaalgos/genem.cc: Simplify the code to be more
	aligned to the Python version in genem.py.

2019-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: introduce scc_and_mark_filter

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Here.
	* spot/twaalgos/genem.cc: Use it.
	* python/spot/impl.i, python/spot/__init__.py: Add bindings.
	* tests/python/genem.py: Test it.
	* NEWS: Mention it.

2019-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: extend top_disjuncts and top_conjuncts to acc_cond as well

	* spot/twa/acc.hh, spot/twa/acc.cc: Implement the new methods.
	* python/spot/impl.i: Add bindings for vectors of acc_cond.
	* tests/python/acc_cond.ipynb: Test the two methods.
	* NEWS: Adjust.

2019-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_obligation: complement very weak automata if needed

	Fixes #379.

	* spot/twaalgos/minimize.cc: Here.
	* tests/core/optba.test: Add test case provided by Rüdiger Ehlers.
	* NEWS: Mention the improvement.

2019-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_alternation: fix serious typo

	Fixes #382.

	* spot/twaalgos/alternation.cc: Here.
	* tests/python/alternation.ipynb: Add test case.
	* NEWS: Mention it.

2019-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: introduce top_conjuncts() and top_disjuncts()

	* spot/twa/acc.cc, spot/twa/acc.hh: Add the new functions.
	* python/spot/impl.i: Add bindings.
	* tests/python/acc_cond.ipynb: Add tests.
	* NEWS: Mention it.

2019-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add support for --highlight-accepting-run

	Fixes #381.

	* bin/autfilt.cc: Here.
	* tests/core/highlightstate.test: Test it.
	* NEWS: Mention it.

2019-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix handling of \r\n with %>

	Fix issue #380.

	* bin/common_finput.cc: Erase a trailing \r.
	* tests/core/ltl2tgba2.test: Test it.
	* NEWS: Mention the fix.

2019-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: minor simplifications

	* tests/python/genem.py: Use SPOT_ON_ACC explicitely.
	* spot/twaalgos/genem.cc: Do not keep track of states.  Don't
	check that the clauses of the disjuncts are Fin-less: they aren't
	(this was discovered while discussing with Jan and Fanda).

2019-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: suggest python-dev for installing Python headers

	* doc/org/install.org: Mention python-dev and libpython3-dev.
	Suggested by Tereza Šťastná.
	* THANKS: Add her.

2019-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2019-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.7.2.dev.

2019-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.7.2

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2019-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around potential null dereference warning

	* spot/twaalgos/ltl2taa.cc: Here.
	* NEWS: Mention the issue.

2019-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: typos

	* doc/org/tut.org, doc/org/tut12.org: Here.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more hyperlinks

	* doc/org/ltlfilt.org, doc/org/tut12.org: Add links.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add an example for dealing with LTLf formulas

	Related to issue #377.

	* doc/org/tut12.org: New file.
	* doc/org/tut.org, doc/Makefile.am, NEWS: Add the new file.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/twagraph-internals.ipynb: Fix a typo.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add missing entry for previous patch.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve Python formating

	* doc/org/spot.css: Use bold for "def", "from", "import".
	* doc/org/init.el.in: Prevent tabs from being inserted when the code
	is indented before export.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add explicit Kripke structure example

	Fixes #376.

	* doc/org/tut52.org: New file.
	* doc/org/tut.org, doc/org/tut51.org: Link to it.
	* doc/Makefile.am: Add it.

2019-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: improve kripke_graph bindings

	Related to issue #376.

	* spot/kripke/kripkegraph.hh: Avoid indirect type definitions for the
	benefit of Swig.
	* python/spot/impl.i: Add bindings for iterators over kripke_graph
	states and edges.
	* tests/python/kripke.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Update.

2019-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more hyperlinks

	* doc/org/ltlfilt.org, doc/org/tut12.org: Add links.

2019-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add an example for dealing with LTLf formulas

	Related to issue #377.

	* doc/org/tut12.org: New file.
	* doc/org/tut.org, doc/Makefile.am, NEWS: Add the new file.

2019-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/twagraph-internals.ipynb: Fix a typo.

2019-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: try pulling marks instead of pushing them for sbacc input

	Suggested by František Blahoudek.

	* spot/twaalgos/simulation.cc: When doing forward simulation with
	state-based acceptance as input but transition-based acceptance as
	output, pull acceptance marks on incoming edges instead of pushing
	them to outgoing edges.
	* tests/core/dra2dba.test, tests/core/exclusive-tgba.test,
	tests/core/ltlcrossce.test, tests/core/satmin3.test,
	tests/core/sim3.test, tests/python/satmin.ipynb: Adjust test cases.
	* NEWS: Mention the change.

2019-02-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add missing entry for previous patch.

2019-02-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve Python formating

	* doc/org/spot.css: Use bold for "def", "from", "import".
	* doc/org/init.el.in: Prevent tabs from being inserted when the code
	is indented before export.

2019-02-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add explicit Kripke structure example

	Fixes #376.

	* doc/org/tut52.org: New file.
	* doc/org/tut.org, doc/org/tut51.org: Link to it.
	* doc/Makefile.am: Add it.

2019-02-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: improve kripke_graph bindings

	Related to issue #376.

	* spot/kripke/kripkegraph.hh: Avoid indirect type definitions for the
	benefit of Swig.
	* python/spot/impl.i: Add bindings for iterators over kripke_graph
	states and edges.
	* tests/python/kripke.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Update.

2019-02-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	polish previous two patches

	* NEWS: Update.
	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh, spot/twa/twa.cc:
	Update copyright years.
	* spot/twa/twa.hh: Update Doxygen documentation.
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Simplify data
	structures, and fix failure of get_accepting_run() to compute
	accepting runs in SCC that are accepting due to the self-loop
	optimization of scc_info.
	* tests/python/highlighting.ipynb: Add three test cases.

2019-02-14  Clément Gillard  <clement.gillard@epita.fr>

	twa: Use generic accepting run search

	Make use of the generic accepting run search in twa::accepting_run()
	and twa::accepting_word().

	* spot/twa/twa.cc: Here.

2019-02-14  Clément Gillard  <clement.gillard@epita.fr>

	genem: Implement accepting cycle search

	Implement an accepting run search in spot::sccinfo, use it with the
	generic emptiness check.

	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Here.
	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: Use it.
	* tests/python/genem.py: Test it.

2019-02-14  Clément Gillard  <clement.gillard@epita.fr>

	Several typos

	* HACKING: Missing "to", extraneous 's'.
	* spot/misc/timer.hh: Extraneous space.
	* spot/twa/acc.hh: Extraneous 's', typos.
	* spot/twaalgos/genem.hh: Typo.
	* spot/twaalgos/sccinfo.cc: Fix indentation.
	* spot/twaalgos/sccinfo.hh: Missing 's'.
	* tests/python/acc_cond.ipynb: Extraneous 'e', missing comma.
	* tests/python/decompose.ipynb: Extraneous 't'.
	* tests/python/ltsmin-dve.ipynb: Extraneous verb.

2019-02-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.7.1.dev

	* configure.ac, NEWS: Here.

2019-02-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release spot 2.7.1

	* configure.ac, NEWS, doc/org/setup.org: Set version.

2019-02-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better support for explicit Kripke

	Part of issue #376, reported by Hashim Ali.

	* python/spot/impl.i: Add bindings for kripke_graph.
	* python/spot/__init__.py (automaton): Add a want_kripke option.
	* spot/kripke/kripkegraph.hh: Honnor the "state-names" property
	when displaying states.
	* spot/twaalgos/hoa.cc: Preserve names of Kripke states.
	* tests/python/ltsmin-dve.ipynb: Illustrate all the above.
	* NEWS: Mention those changes.
	* THANKS: Add Hashim.

2019-02-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around gcc 8.2.1+ bug #89303

	Do not call std::make_shared on classes inheriting from
	std::enable_shared_from_this when compiling with g++ 8.2.

	* NEWS: Mention the bug.
	* spot/misc/common.hh (SPOT_make_shared_enabled__): New macro.
	* spot/twa/twagraph.cc, spot/twa/twagraph.hh, spot/twa/twaproduct.hh,
	spot/twa/taatgba.hh, spot/twaalgos/couvreurnew.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
	spot/twaalgos/tau03opt.cc, spot/twaalgos/gv04.cc,
	spot/ltsmin/ltsmin.cc, spot/twaalgos/gtec/gtec.cc: Use it.

2019-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product_susp: fix product of state-based automata

	Reported by Simon Jantsch.

	* spot/twaalgos/product.cc: Here.
	* tests/core/unambig2.test: New file, testing this plus
	the previous patch.
	* tests/Makefile.am: Add unambig2.test.
	* NEWS: Mention the bug.

2019-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: don't tag weak automata if unambiguous is used

	Part of a bug reported by Simon Jantsch.  Test cases in next patch.

	* spot/twaalgos/ltl2tgba_fm.cc: Here.
	* NEWS: Mention the bug.

2019-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: better handling of MS-DOS line endings

	* spot/parsetl/scantl.ll: Ignore \r.
	* tests/core/lbt.test: Add a test.
	* NEWS: Mention the issue.

2019-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add some troubleshooting help

	Inspired by #375.

	* README: Add a section about troubleshooting installations.  Mention
	GraphViz as optional dependency.
	* doc/org/install.org: Mention the troubleshooting section from INSTALL.

2019-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: suggest installing GraphViz when dot is not found

	This fixes an issue mentioned in #375.

	* python/spot/aux.py (str_to_svg): Catch a missing 'dot' and instruct
	the user to install GraphViz.
	* THANKS: Add reporter.

2019-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: some clean up

	* spot/twaalgos/powerset.cc: Remove some unnecessary code, as spotted
	by Fanda.  Also fix some comments.

2019-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* THANKS: Add the reporter of #372.

2019-01-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: work around issue with Org 9.2

	See the following email
	http://lists.gnu.org/archive/html/emacs-orgmode/2019-01/msg00226.html

	* doc/org/tut24.org, doc/org/tut51.org: Export the output of
	noweb-based block without ':export results' or ':export both'.
	* doc/org/spot.css: Add style for src-text.

2019-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: improve bdd_dict bindings

	Fixes #372.

	* python/spot/impl.i: Refactor the handling of exceptions using a
	Lippincott function.  Map out_of_range to IndexError.  Add
	PyObject* version for bdd_dict's register and unregister functions
	so we can use Python objects as well.
	* tests/python/bdddict.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the changes.

2019-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

2019-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: typo

	* doc/org/concepts.org: Typo reported by Paul Guénézan.
	* THANKS: Add him.

2018-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_dot_psl: fix numbering of commutative operands

	* spot/tl/dot.cc: Here.
	* tests/python/formulas.ipynb: Add test case.
	* NEWS: Mention the bug.

2018-12-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/stutter-inv.ipynb: Add link to on-line translator.

2018-12-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

2018-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2018-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.7

	* configure.ac, NEWS, doc/org/setup.org: Bump version.

2018-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: fix stutter-invariant flag on leading Xs

	Issue discovered by Mikuláš Klokočka and reported by František
	Blahoudek.

	* spot/twaalgos/translate.cc: Reset the stutter-invariant flag
	when adding extra transitions for leading Xs.
	* tests/core/stutter-tgba.test: New test case.
	* NEWS: Mention the bug.

2018-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/acc.hh: More documentation.

2018-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add a missing entry.

2018-12-04  Etienne Renault  <renault@lrde.epita.fr>

	gitlab-ci: force distcheck to use included GNU ltdl

	* .gitlab-ci.yml: Here.

2018-12-03  Etienne Renault  <renault@lrde.epita.fr>

	gitlab-ci: use the included GNU ltdl sources

	* .gitlab-ci.yml: Here.

2018-11-29  Etienne Renault  <renault@lrde.epita.fr>

	noexcept: please gcc snapshot

	* bin/common_finput.hh,
	bin/common_trans.cc,
	bin/common_trans.hh,
	spot/misc/minato.hh,
	spot/ta/ta.cc,
	spot/ta/ta.hh,
	spot/twa/acc.hh,
	spot/twaalgos/cycles.hh,
	spot/twaalgos/emptiness.hh,
	spot/twaalgos/gtec/gtec.hh,
	spot/twaalgos/ndfs_result.hxx,
	spot/twaalgos/sccinfo.hh,
	spot/twaalgos/word.cc,
	spot/twaalgos/word.hh: Here.

2018-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add an Alpine Linux build

	* .gitlab-ci.yml (alpine-gcc): Here.

2018-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix rpm builds

	* spot.spec.in: Do not hardcode the Python version.

2018-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix Alpine Linux builds

	Reported by Maxime Bouton.

	* spot/misc/tmpfile.cc: Include stdlib.h, not cstdlib, so
	that our replacement secure_getenv() is found.
	* THANKS: Add Maxime.

2018-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix is_generalized_rabin and is_generalized_streett

	* spot/twa/acc.cc: Recoginize the single-pair case.
	* python/spot/impl.i: Return the vector instead of taking it
	by reference.
	* tests/python/setacc.py: Add test cases.
	* NEWS: Mention those changes.

2018-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce count_univbranch_states() and count_univbranch_edges()

	Fixes #368, suggested by František Blahoudek.

	* spot/twaalgos/isdet.cc, spot/twaalgos/isdet.hh
	(count_univbranch_states(), count_univbranch_edges()): New functions.
	* bin/common_aoutput.cc, bin/common_aoutput.hh: Add %u and variants.
	* NEWS: Mention these.
	* tests/core/alternating.test: Test them.

2018-11-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: more conventional __repr__ for several types

	* NEWS: Mention the change.
	* python/spot/__init__.py: Add _repr_latex_ for twa_word, and
	remove __repr__ and __str__ for atomic_prop_set.
	* python/spot/impl.i: Implement __repr__ and __str__ for
	atomic_prop_set.  Fix __repr__ for trival, acc_code, acc_cond,
	mark_t.  Remove __repr__ for twa_run and twa_word.
	* tests/python/acc_cond.ipynb, tests/python/accparse.ipynb,
	tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
	tests/python/bdditer.py, tests/python/contains.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/ltlsimple.py, tests/python/ltsmin-dve.ipynb,
	tests/python/product.ipynb, tests/python/relabel.py,
	tests/python/satmin.ipynb tests/python/stutter-inv.ipynb,
	tests/python/word.ipynb: Adjust test cases.
	* tests/python/formulas.ipynb: Add test for atomic_prop_set.

2018-11-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add __repr__ for rs_pair

	* spot/twa/acc.hh: Hide default constructors, so that we can have
	keyword arguments on the main constructor.
	* python/spot/impl.i: Add __repr__.
	* tests/python/setacc.py: Test it.

2018-10-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix return of is_rabin_like() and is_streett_like()

	* python/spot/impl.i: Fix instantiation of vector_rs_pairs.
	* tests/python/setacc.py: Add test cases.
	* NEWS: Mention the bugs.

2018-10-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix binding of used_inf_fin_sets()

	* python/spot/impl.i: Here.
	* tests/python/setacc.py: Test it.
	* NEWS: Mention the bug.

2018-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	require bison 3.0 and fix obsolete api.location.type usage

	* spot/parseaut/parseaut.yy, spot/parsetl/parsetl.yy: Explicitly Bison
	3.0, and use a code argument instead of an (deprecated) string
	argument for api.location.type.

2018-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: fix signed/unsigned comparison warning

	* spot/parseaut/parseaut.yy: Here.

2018-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add xargs support to translate() and postprocess()

	Fixes #361.

	* python/spot/__init__.py: Implement it.
	* tests/python/optionmap.py: Test it.
	* NEWS: Mention it.

2018-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo in release date.

2018-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2018-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump version to 2.6.3.dev

	* NEWS, configure.ac: Here.

2018-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.6.3

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2018-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix ltlfilt --accept-word and --reject-word

	* NEWS: Mention the issue.
	* bin/ltlfilt.cc: Fix test.
	* tests/core/acc_word.test: Test this.

2018-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	option --low should disable gf-guarantee

	Fixes #367.

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Fix it.
	* NEWS: Mention the change.
	* tests/core/ltl2tgba2.test: Test this.

2018-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Büchi translation should not go through fg_safety_to_dca_maybe()

	Fixes #366, reported by Simon Jantsch.

	* spot/twaalgos/translate.cc: type_&Generic will also match if
	type_==BA... use type_==Generic instead.
	* tests/core/unambig.test: Add a test corresponding to Simon's report.
	* NEWS: Describe the bug.

2018-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	solve build issue on Debian unstable i386

	* tests/python/_product_weak.ipynb: Split large loop in two cells.

2018-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	implement is_liveness() and is_liveness_automaton()

	* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh,
	spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Here.
	* bin/ltlfilt.cc (--liveness): New filter.
	* NEWS: Mention those.
	* tests/core/ltlfilt.test, tests/python/ltlsimple.py: Add test cases.

2018-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix ltlfilt --accept-word and --reject-word

	* NEWS: Mention the issue.
	* bin/ltlfilt.cc: Fix test.
	* tests/core/acc_word.test: Test this.

2018-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	option --low should disable gf-guarantee

	Fixes #367.

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Fix it.
	* NEWS: Mention the change.
	* tests/core/ltl2tgba2.test: Test this.

2018-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Büchi translation should not go through fg_safety_to_dca_maybe()

	Fixes #366, reported by Simon Jantsch.

	* spot/twaalgos/translate.cc: type_&Generic will also match if
	type_==BA... use type_==Generic instead.
	* tests/core/unambig.test: Add a test corresponding to Simon's report.
	* NEWS: Describe the bug.

2018-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	solve build issue on Debian unstable i386

	* tests/python/_product_weak.ipynb: Split large loop in two cells.

2018-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	unabbreviate: add new rules based on eventual/universal arguments

	Based on a report by Simon Jantsch.  Fixes #362.

	* NEWS, doc/tl/tl.tex: Mention the new rules.
	* spot/tl/unabbrev.cc: Implement them.
	* tests/core/unabbrevwm.test: Test them.
	* tests/python/randltl.ipynb: Adjust.

2018-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Remove some items from 2.6.2.

2018-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2018-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.6.2.dev

	* NEWS, configure.ac: Here.

2018-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.6.2

	* NEWS, configure.ac, doc/org/setup.org: Bump version number.

2018-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: adjust link to online translator

	* doc/org/index.org: Here.

2018-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more gcc-snapshot warnings

	* spot/misc/game.hh: Here.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Describe more fixed bugs.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	exclusive_ap::constrain does not improve determism

	Fixes #363.

	* spot/tl/exclusive.cc: Fix the prop_copy() call.
	* tests/core/exclusive-tgba.test: Test it.
	* NEWS: Mention the issue.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Fix docker names.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_dot: add xlabel to colored states if too many colors in use

	Based on a report from Andreas Tollkötter.

	* spot/twaalgos/dot.cc (highlight_states_show_num_): New option,
	turned on implicitly when more than 8 colors are used.
	* tests/core/highlightstate.test: Test it.
	* NEWS: Mention it.
	* THANKS: Add Andreas.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/copyright: Fix syntax.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove more references to the old cgi-based translator

	* debian/source/lintian-overrides, python/.gitignore: Here

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: add missing build dependency

	* debian/control (Build-Depends): Add dh-python.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debiam: fix the regex from previous patches

	* debian/rules: Here.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: apply the mathjax regex to org output as well

	* debian/rules: Here.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/setup.org: Typo.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: another mathjax regex

	* debian/rules: mathjax is also fetched from cdnjs.cloudflare.com.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: adjust the mathjax regex

	* debian/rules: Here.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/control: Typo.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: R is now required to build from git.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix --disable-doxygen and --disable-c++17

	Reported by Yuri Victorovich.

	* configure.ac (enable_doxygen, enable_c++17): Use $enableval instead
	of "yes".
	* THANKS: Add Yuri.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gcc-snapshot warnings

	* spot/kripke/kripkegraph.hh, spot/priv/bddalloc.hh,
	spot/priv/freelist.hh, spot/priv/satcommon.hh, spot/ta/taexplicit.cc
	spot/twa/bdddict.cc, spot/twa/twagraph.hh,
	spot/twaalgos/alternation.hh, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/ltl2taa.cc, spot/twaalgos/stutter.cc,
	tests/core/ngraph.cc: Add default constructors, copy constructors, or
	remove useless destructors.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust to Automake 1.16

	* python/Makefile.am: Adjust for Automake 1.16.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of the Python-based CGI translator

	We now have a separate project for its replacement at
	https://gitlab.lrde.epita.fr/spot/spot-web-app/

	* python/ajax/: Remove directory.
	* python/Makefile.am, configure.ac, README: Adjust.
	* NEWS: Mention this.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: show some useful R operations on ltlcross output

	* doc/org/ltlcross.org: Here.
	* doc/org/init.el.in, doc/org/.dir-locals.el.in: Enable R,
	and install ess.

2018-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	exclusive_ap::constrain does not improve determism

	Fixes #363.

	* spot/tl/exclusive.cc: Fix the prop_copy() call.
	* tests/core/exclusive-tgba.test: Test it.
	* NEWS: Mention the issue.

2018-09-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Fix docker names.

2018-09-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_dot: add xlabel to colored states if too many colors in use

	Based on a report from Andreas Tollkötter.

	* spot/twaalgos/dot.cc (highlight_states_show_num_): New option,
	turned on implicitly when more than 8 colors are used.
	* tests/core/highlightstate.test: Test it.
	* NEWS: Mention it.
	* THANKS: Add Andreas.

2018-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/copyright: Fix syntax.

2018-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove more references to the old cgi-based translator

	* debian/source/lintian-overrides, python/.gitignore: Here

2018-08-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: add missing build dependency

	* debian/control (Build-Depends): Add dh-python.

2018-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debiam: fix the regex from previous patches

	* debian/rules: Here.

2018-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: apply the mathjax regex to org output as well

	* debian/rules: Here.

2018-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/setup.org: Typo.

2018-08-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: another mathjax regex

	* debian/rules: mathjax is also fetched from cdnjs.cloudflare.com.

2018-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: adjust the mathjax regex

	* debian/rules: Here.

2018-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/control: Typo.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: R is now required to build from git.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix --disable-doxygen and --disable-c++17

	Reported by Yuri Victorovich.

	* configure.ac (enable_doxygen, enable_c++17): Use $enableval instead
	of "yes".
	* THANKS: Add Yuri.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gcc-snapshot warnings

	* spot/kripke/kripkegraph.hh, spot/priv/bddalloc.hh,
	spot/priv/freelist.hh, spot/priv/satcommon.hh, spot/ta/taexplicit.cc
	spot/twa/bdddict.cc, spot/twa/twagraph.hh,
	spot/twaalgos/alternation.hh, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/ltl2taa.cc, spot/twaalgos/stutter.cc,
	tests/core/ngraph.cc: Add default constructors, copy constructors, or
	remove useless destructors.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust to Automake 1.16

	* python/Makefile.am: Adjust for Automake 1.16.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of the Python-based CGI translator

	We now have a separate project for its replacement at
	https://gitlab.lrde.epita.fr/spot/spot-web-app/

	* python/ajax/: Remove directory.
	* python/Makefile.am, configure.ac, README: Adjust.
	* NEWS: Mention this.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reorganize entries for next release.

2018-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: show some useful R operations on ltlcross output

	* doc/org/ltlcross.org: Here.
	* doc/org/init.el.in, doc/org/.dir-locals.el.in: Enable R,
	and install ess.

2018-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2018-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2018-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.6.1

	* NEWS, configure.ac, doc/org/setup.org: Update version number.

2018-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix python bindings for spot::parsed_formula::f getter

	* python/spot/impl.i: Add a typemap.
	* tests/python/ltlsimple.py: Add a test case for an issue.
	* NEWS: Mention the bug.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix python bindings for spot::parsed_formula::f getter

	* python/spot/impl.i: Add a typemap.
	* tests/python/ltlsimple.py: Add a test case for an issue.
	* NEWS: Mention the bug.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	contains: fix the semantics

	spot::contains(a, b) should test a⊇b.  It was testing a⊆b instead.

	* NEWS: Mention the bug.
	* spot/twaalgos/contains.cc, spot/twaalgos/contains.hh: Fix the
	code and documentation.
	* tests/python/contains.ipynb: Adjust description and expected
	results.
	* python/spot/__init__.py: Also swap the argument of
	language_containment_checker.contains()
	* bin/autfilt.cc: Adjust usage.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: add some implication-based rewritings for "<->", "->", and "xor"

	This prevents an exception from being raised if NNF is not performed
	on Boolean properties and implication-based checks are used.

	* NEWS: Mention the issue.
	* spot/tl/simplify.cc, doc/tl/tl.tex: Add some rules.
	* tests/python/ltlsimple.py: Test them.

2018-08-02  Maximilien Colange  <colange@lrde.epita.fr>

	* spot/twa/acc.hh: fix constness

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/translate.cc: Typos in comments.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: fix split_on_sets

	* spot/twaalgos/sccinfo.cc (split_on_sets): Correctly register APs.
	* tests/python/sccsplit.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (debpkg-stable): Typo.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: introduce --suspendable

	* bin/ltlfilt.cc: Add the option.
	* tests/core/ltlfilt.test: Use it.
	* NEWS: Mention it.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twa.cc: Typo.

2018-08-02  Etienne Renault  <renault@lrde.epita.fr>

	HACKING: directory has moved

	* HACKING: Here.

2018-08-02  Etienne Renault  <renault@lrde.epita.fr>

	remove duplicated includes

	* spot/graph/graph.hh,
	spot/taalgos/tgba2ta.cc,
	spot/tl/formula.hh,
	spot/twaalgos/dot.cc,
	spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/ndfs_result.hxx,
	spot/twaalgos/powerset.cc,
	spot/twaalgos/stutter.cc: Here.

2018-08-02  Etienne Renault  <renault@lrde.epita.fr>

	remove useless forward declaration

	* spot/ta/taexplicit.hh,
	spot/twaalgos/compsusp.hh,
	spot/twaalgos/isunamb.hh,
	spot/twaalgos/word.hh: Here.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	escape_rfc4180: document relation with std::quote

	* spot/misc/escape.hh: Here.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix two issues related to jupyter notebook execution

	* tests/python/ipnbdoctest.py: Invert diffs inputs.
	* tests/run.in: Run notebooks with
	PYTHONIOENCODING=utf-8:surrogateescape to avoid exceptions when trying
	to display utf-8 characters on ascii terminals.

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add missing documentation for prop_complete

	* doc/org/concepts.org: Here.

2018-08-02  Antoine Martin  <amartin@lrde.epita.fr>

	* HACKING: typos

2018-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Convert to utf-8.

2018-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	contains: fix the semantics

	spot::contains(a, b) should test a⊇b.  It was testing a⊆b instead.

	* NEWS: Mention the bug.
	* spot/twaalgos/contains.cc, spot/twaalgos/contains.hh: Fix the
	code and documentation.
	* tests/python/contains.ipynb: Adjust description and expected
	results.
	* python/spot/__init__.py: Also swap the argument of
	language_containment_checker.contains()
	* bin/autfilt.cc: Adjust usage.

2018-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: add some implication-based rewritings for "<->", "->", and "xor"

	This prevents an exception from being raised if NNF is not performed
	on Boolean properties and implication-based checks are used.

	* NEWS: Mention the issue.
	* spot/tl/simplify.cc, doc/tl/tl.tex: Add some rules.
	* tests/python/ltlsimple.py: Test them.

2018-07-28  Maximilien Colange  <colange@lrde.epita.fr>

	* spot/twa/acc.hh: fix constness

2018-07-27  Maximilien Colange  <colange@lrde.epita.fr>

	ltlsynt: new algorithm, based on LAR

	* bin/ltlsynt.cc: here
	* tests/core/ltlsynt.test: test it
	* NEWS: document it

2018-07-27  Maximilien Colange  <colange@lrde.epita.fr>

	ltlsynt: rework synthesis algorithms

	ltlsynt now offers two algorithms: one where splitting occurs before
	determinization (the historical one) and one where determinization
	occurs before splitting.

	* bin/ltlsynt.cc: here
	* tests/core/ltlsynt.test: test it and refactor test file
	* NEWS: document it
	* spot/misc/game.hh, spot/misc/game.cc: remove Calude's algorithm

2018-07-26  Maximilien Colange  <colange@lrde.epita.fr>

	LAR made smarter with symmetry-based degeneralization

	* spot/twaalgos/toparity.cc: here
	* spot/twa/acc.hh, spot/twa/acc.cc: compute symmetries of an acceptance
	  condition
	* tests/python/accparse2.py, tests/python/toparity.py: test it

2018-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl-split: translate any "safety" with "rest"

	* tests/core/ltl2tgba2.test: Add a test-case reported by Maximilien.
	* spot/twaalgos/translate.cc: Translate any "safety" formula with
	"rest".
	* tests/python/highlighting.ipynb: Adjust.

2018-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/translate.cc: Typos in comments.

2018-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: fix removal of unsatisfied Fin(x) sets

	Fixes #360.

	* spot/twa/acc.cc, spot/twa/acc.hh (force_inf): New method.
	* spot/twaalgos/genem.cc: Fix the emptiness check using force_inf.
	* tests/python/genem.py: Add test case and adjust the python
	version of the emptiness check.

2018-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: fix split_on_sets

	* spot/twaalgos/sccinfo.cc (split_on_sets): Correctly register APs.
	* tests/python/sccsplit.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2018-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (debpkg-stable): Typo.

2018-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: introduce --suspendable

	* bin/ltlfilt.cc: Add the option.
	* tests/core/ltlfilt.test: Use it.
	* NEWS: Mention it.

2018-07-24  Maximilien Colange  <colange@lrde.epita.fr>

	translate any automaton to a parity automaton

	* spot/twaalgos/toparity.cc, spot/twaalgos/toparity.hh: implement it,
	  based on last-appearance record (LAR)
	* spot/twaalgos/Makefile.am: build it
	* NEWS: document it
	* python/spot/impl.i: add to python bindings
	* tests/Makefile.am, tests/python/toparity.py: test it

2018-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use the generic emptiness check

	* spot/twa/twa.cc (is_empty, intersects): Here.
	* spot/twaalgos/sccinfo.cc (check_scc_emptiness): Here.
	* spot/twaalgos/genem.cc: Report error if the input is alternating.
	* spot/twaalgos/isunamb.cc, spot/twaalgos/sccinfo.hh: Adjust.
	* NEWS: Mention the change.

2018-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twa.cc: Typo.

2018-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genem: implement a generic emptiness check for twa_graph_ptr

	* spot/twa/acc.cc, spot/twa/acc.hh (fin_unit, one_fin): New function.
	* spot/twaalgos/genem.cc, spot/twaalgos/genem.hh: New files.
	* spot/twaalgos/Makefile.am: Add it.
	* tests/python/genem.py: New file.
	* tests/Makefile.am: Add it.
	* python/spot/impl.i: Add bindings for genem.hh.
	* NEWS: Mention the new function.

2018-07-23  Etienne Renault  <renault@lrde.epita.fr>

	HACKING: directory has moved

	* HACKING: Here.

2018-07-23  Etienne Renault  <renault@lrde.epita.fr>

	remove duplicated includes

	* spot/graph/graph.hh,
	spot/taalgos/tgba2ta.cc,
	spot/tl/formula.hh,
	spot/twaalgos/dot.cc,
	spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/ndfs_result.hxx,
	spot/twaalgos/powerset.cc,
	spot/twaalgos/stutter.cc: Here.

2018-07-23  Etienne Renault  <renault@lrde.epita.fr>

	remove useless forward declaration

	* spot/ta/taexplicit.hh,
	spot/twaalgos/compsusp.hh,
	spot/twaalgos/isunamb.hh,
	spot/twaalgos/word.hh: Here.

2018-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	modernize std::string("foo") into "foo"s

	* spot/ltsmin/ltsmin.cc, spot/misc/tmpfile.cc,
	spot/parseaut/parseaut.yy, spot/taalgos/dot.cc, spot/tl/hierarchy.cc,
	spot/tl/unabbrev.cc, spot/twa/acc.cc, spot/twa/twagraph.cc,
	spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc, spot/twaalgos/lbtt.cc,
	spot/twaalgos/neverclaim.cc, spot/twaalgos/strength.cc,
	spot/twaalgos/word.cc: Replace std::string("foo") by "foo"s, and
	include namespace std::string_literals.

2018-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	escape_rfc4180: document relation with std::quote

	* spot/misc/escape.hh: Here.

2018-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix two issues related to jupyter notebook execution

	* tests/python/ipnbdoctest.py: Invert diffs inputs.
	* tests/run.in: Run notebooks with
	PYTHONIOENCODING=utf-8:surrogateescape to avoid exceptions when trying
	to display utf-8 characters on ascii terminals.

2018-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add missing documentation for prop_complete

	* doc/org/concepts.org: Here.

2018-07-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more documentation for twa_graph internals

	* spot/graph/graph.hh, spot/twa/twagraph.hh, spot/twa/twagraph.cc:
	Implement a dump_storage_as_dot() method.
	* python/spot/__init__.py (twa_graph.show_storage): New method, above
	dump_storage_as_dot().
	* tests/python/twagraph-internals.ipynb: New file, with documentation
	about the twa_graph internals, using show_storage() to illustrate
	everything.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* python/spot/impl.i: Add bindings for out_iterasor, demonstrated in
	the Python notebook.
	* spot/twa/twa.hh: Add prop_reset().  Used in the notebook.
	* NEWS: Mention the new notebook and function.
	* doc/org/tut50.org: Link to the notebook.
	* tests/python/ipnbdoctest.py: Adjust for twa_graph_ptr being
	redefined in the spot namespace.

2018-07-09  Antoine Martin  <amartin@lrde.epita.fr>

	* HACKING: typos

2018-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Convert to utf-8.

2018-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: add support for X[n], F[n:m] and G[n:m]

	* NEWS, doc/tl/tl.tex, doc/tl/tl.bib: Document these new operators.
	* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse those.
	* spot/tl/formula.cc, spot/tl/formula.hh: Add constructors.
	* spot/gen/formulas.cc: Use it.
	* tests/core/sugar.test: New file.
	* tests/Makefile.am: Add it.

2018-07-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: do not define the viewport twice

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Do not set the
	viewport, org already does it.

2018-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.6.0.dev

	* NEWS, configure.ac: Here.

2018-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.6

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 2.6.

2018-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add instructions for install RPM packages

	* doc/org/install.org: Here.
	* NEWS: Mention that we have RPM packages.

2018-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot.spec.in: Use --disable-devel --enable-optimizations.

2018-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix GITPATCH computation

	Since the introduction of the syntcomp2018-submission tag (on a
	separate branch), that computation of GITPATCH was based on this
	tag because it was the last one (even if it is not on next).
	We did not see it on the Debian packages, because they clone
	only one branch of the repository, but the RPM packages had a
	different GITPATCH.

	* configure.ac (GITPATCH): Compute the number of commits since the
	last "spot-*" tag.

2018-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	trival: prefer a global operator== relying on implicit conversion

	Hopefully fixes #359.

	* spot/misc/trival.hh: Declare a global operator==(trival,trival) that
	replace the specialized operator==(bool,trival), and the in class
	trival::operator(trival), thanks to the implicit construction from
	bool to trival.  Make the repr_t/value_t constructor explicit, are
	those are mostly internal to the library and may cause conflicts.
	* spot/twa/twa.hh: Adjust to construct trival explicitly.
	* python/spot/impl.i: Since Swig/Python does not support global
	comparison operators, implement a member version, supporting
	only __eq__(trival,bool) as before.
	* tests/python/setacc.py: Adjust erroneous code.
	* tests/python/trival.py: Add test cases.

2018-07-02  Antoine Martin  <amartin@lrde.epita.fr>

	complement: improve code coverage

	* spot/twaalgos/complement.cc: removed unused code
	* tests/python/except.py: test for exception raised

2018-07-02  Clément Gillard  <clement.gillard@epita.fr>

	* spot/twaalgos/product.hh: Typos in comments.

2018-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Typo.

2018-07-02  Antoine Martin  <amartin@lrde.epita.fr>

	isdet: fix documentation error

	* spot/twaalgos/isdet.hh: here

2018-07-02  Antoine Martin  <amartin@lrde.epita.fr>

	implement NCSB complementation

	* spot/twaalgos/isdet.cc,spot/twaalgos/isdet.hh: Two new functions to
	highlight deterministic SCCs
	* spot/twaalgos/complement.cc,spot/twaalgos/complement.hh:
	Implementation of the NCSB complementation algorithm
	* tests/Makefile.am, tests/python/complement_semidet.py: Test the
	implementation
	* NEWS: document function

2018-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gitlab-ci: publish the RPM packages

	* .gitlab-ci.yml (publish-rpm): New job.

2018-07-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Antoine.

2018-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl-split: deal with suspendable formulas that are false

	Fixes #358.

	* spot/twaalgos/translate.cc: Fix the assert().
	* tests/core/ltl2tgba2.test: Add a test case.

2018-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Adjust for the release of Owl 18.06.

2018-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gfguarantee: fix selection of moved init state

	Fixes #357.

	* spot/twaalgos/gfguarantee.cc: Decide that a moved init state is to
	close from the terminal state *before* actually modifying the
	automaton.
	* tests/core/ltl2tgba2.test: Add a test.

2018-06-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: conform to GNU Coding Standards for --version

	* bin/common_setup.cc: Print the version number after the parentheses.

2018-06-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: introduce exclusive_word() and exclusive_run()

	* spot/twa/twa.cc, spot/twa/twa.hh: Add these methods.
	* NEWS, tests/python/contains.ipynb: Document them.

2018-06-29  Antoine Martin  <amartin@lrde.epita.fr>

	build rpm package during ci

	* .gitignore: don't commit spot.spec
	* Makefile.am: write version number to spot.spec.in
	* .gitlab-ci.yml: new job builds the tarball and rpm package
	* spot.spec.in: spot.spec is used by rpmbuild to build the package

2018-06-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: enable a restricted form of ltl-split for TGBA/BA

	Fixes #267

	* spot/twaalgos/gfguarantee.cc: Fix a typo when comparing automata
	sizes.
	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Use
	ltl-split even for BA/TGBA, but only of conjunctions with GF(..)
	in those cases.
	* tests/core/ltl2tgba2.test: Adjust and add the example of #267.
	* tests/core/degenid.test, tests/core/parity2.test,
	tests/core/stutter-tgba.test, tests/python/automata.ipynb,
	tests/python/highlighting.ipynb, tests/python/stutter-inv.ipynb,
	bin/spot-x.cc: Adjust.

2018-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: clarify that ltl2tgba does not only output TGBA

	* doc/org/tools.org: Adjust the link to ltl2tgba.org.
	* doc/org/ltl2tgba.org: Also point out that --generic and --parity can
	be used without --deterministic.
	* bin/ltl2tgba.cc, bin/spot.cc: Adjust help text.

2018-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Fix typos reported by Fanda.

2018-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	modernize the logo

	* doc/org/spot2.svg: New file.
	* doc/Makefile.am: Distribute it.
	* doc/org/.gitignore: Adjust.
	* doc/org/setup.org: Display it.
	* doc/org/autcross.org, doc/org/autfilt.org, doc/org/citing.org,
	doc/org/compile.org, doc/org/concepts.org, doc/org/csv.org,
	doc/org/dstar2tgba.org, doc/org/genaut.org, doc/org/genltl.org,
	doc/org/hierarchy.org, doc/org/hoa.org, doc/org/index.org,
	doc/org/install.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
	doc/org/ltl2tgta.org, doc/org/ltlcross.org, doc/org/ltldo.org,
	doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/ltlsynt.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/tools.org, doc/org/tut.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut04.org, doc/org/tut10.org, doc/org/tut11.org,
	doc/org/tut20.org, doc/org/tut21.org, doc/org/tut22.org,
	doc/org/tut23.org, doc/org/tut24.org, doc/org/tut30.org,
	doc/org/tut31.org, doc/org/tut50.org, doc/org/tut51.org,
	doc/org/upgrade2.org: Include setup.org instead of declaring it as
	SETUPFILE.
	* doc/org/spot.css: Add entries for the logo.
	* python/ajax/trans.html: Use the new logo.
	* python/ajax/logos/mail.png, python/ajax/logos/spot64s.png: Delete.
	* python/ajax/Makefile.am: Adjust.

2018-06-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: download plantuml.jar from lrde.epita.fr

	* doc/Makefile.am (PLANTUML_URL): Adjust.

2018-06-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Include a comparison with ltl3tela 1.1.2.

2018-06-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update hierarchy examples

	* doc/org/hierarchy.org: Adjust for recent changes.

2018-06-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: extract obligations terms when translating LTL to Parity

	* spot/twaalgos/translate.cc: Here.
	* NEWS: Mention the change.
	* tests/core/genltl.test: Add parity automata sizes for a set of
	formulas.
	* tests/core/parity2.test: Add another formula to the tests.

2018-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update the micro benchmarks.

2018-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: simplify the acceptance condition

	* spot/twaalgos/postproc.cc: Here.
	* spot/twaalgos/cobuchi.cc, spot/twaalgos/totgba.cc: Fix some bug
	uncovered by the new simplified automata.
	* tests/core/satmin2.test, tests/core/sccdot.test,
	tests/core/sim3.test, tests/python/decompose.ipynb,
	tests/python/satmin.ipynb: Update expected results.
	* NEWS: Mention the simplification and the bug.

2018-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: install everythin into pyexecdir

	Reported by Antoine Martin.

	* python/Makefile.am: Here.
	* NEWS: Mention the bug.

2018-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve translation of ms-phi-h=2..3

	* spot/twaalgos/gfguarantee.cc: Rework the history computation to keep
	an overapproximation of the history, and a longer one.  Also replay
	the history even if there is no initial trivial SCC.  This helps with
	translating FG(!a|XXXb) where we need to keep the history of a, but we
	were previously unable to do so because some state had both "a" and
	"ab" as input.
	* spot/twaalgos/translate.cc: Optimize the product of suspendable
	automata by removing useless trivial SCCs.
	* tests/core/genltl.test, tests/core/satmin.test, NEWS: Adjust
	expected results.

2018-06-20  Maximilien Colange  <colange@lrde.epita.fr>

	add a pool allocator for STL containers

	* spot/priv/allocator.hh, spot/priv/Makefile.am: add a STL-compliant
	  allocator based on spot::fixed_size_pool
	* spot/misc/fixpool.hh, spot/misc/fixpool.cc, spot/misc/Makefile.am:
	  refactor the existing spot::fixed_size_pool
	* spot/ltsmin/ltsmin.cc, spot/twa/twaproduct.cc: reflect changes in the
	  interface of spot::fixed_size_pool
	* tests/core/mempool.cc: test the new allocator

2018-06-20  Maximilien Colange  <colange@lrde.epita.fr>

	make valgrind understand our memory pools

	Annotate pools with valgrind macros so that it detects errors in pool
	usage. Typically, we wish valgrind to detect a leak when the user fails
	to call proper deallocation function.

	* spot/misc/fixpool.hh, spot/misc/mspool.hh: here
	* configure.ac: ensure that valgrind header exists
	* tests/Makefile.am, tests/core/mempool.cc, tests/core/mempool.test,
	  tests/core/.gitignore: add tests to ensure valgrind accurately detects
	  leaks

2018-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix lists of escape sequences

	* doc/org/autfilt.org, doc/org/ltl2tgba.org, doc/org/ltlfilt.org: Here.

2018-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: add ltl-split option

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Build
	automata with generic acceptance by doing product of automata for
	smaller subformulas.
	* bin/spot-x.cc: Mention ltl-split.
	* NEWS: Mention the change, and show some results.
	* tests/core/genltl.test, tests/python/_product_susp.ipynb,
	tests/python/highlighting.ipynb: Adjust test cases.
	* doc/org/ltl2tgba.org: Update.
	* tests/core/gragsa.test: Add another formula to cover more
	code.

2018-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product_susp: new function

	* spot/twaalgos/product.cc, spot/twaalgos/product.hh: Implement it.
	* tests/python/_product_susp.ipynb: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention it.

2018-06-15  Antoine Martin  <amartin@lrde.epita.fr>

	don't use tabs for indentation

	* .dir-locals.el: Here

2018-06-15  Maximilien Colange  <colange@lrde.epita.fr>

	fix a bug in aiger printer

	* spot/twaalgos/aiger.cc: here
	* tests/core/ltlsynt.test: add a non-regression test

2018-06-15  Maximilien Colange  <colange@lrde.epita.fr>

	ltlsynt: more deterministic behavior

	Zielonka algorithm used to iterate over an std::unordered_set, thus
	producing different strategies depending on compiler...

	* spot/misc/game.cc: replace std::unordered_set with std::set

2018-06-14  Antoine Martin  <amartin@lrde.epita.fr>

	fix typo in dir-locals

	* .dir-locals.el: fix typo for indent-tabs-mode

2018-06-13  Maximilien Colange  <colange@lrde.epita.fr>

	update ltlsynt documentation

	closes #355

	* doc/org/citing.org, bin/man/ltlsynt.x: add SYNT2018 paper
	* doc/org/ltlsynt.org: fix documentation

2018-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter: add quick test for very-weak

	Related to issue #351.

	* spot/twaalgos/sccfilter.cc: When handling weak automata, we know
	they are very-weak if the SCC count is equal to the number of states.
	* tests/core/dca2.test, tests/core/monitor.test,
	tests/core/parity2.test, tests/core/randomize.test,
	tests/core/readsave.test, tests/core/remfin.test,
	tests/core/sccsimpl.test, tests/core/wdba2.test,
	tests/python/dualize.py, tests/python/remfin.py: Adjust output.

2018-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: mark persistence formulas as weak automata

	... instead of inherently-weak.  The reason they were tagged
	as inherently-weak is historical: this property was introduced
	1.5 years before the weak propery.

	Fixes #351.

	* spot/twaalgos/ltl2tgba_fm.cc: Use prop_weak() instead of
	prop_inherently_weak().  Also be more conservative about the use of
	single_acc when unambiguous automata are generated.

2018-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	specialize scc_filter for inherently_weak automata

	Part of issue #351.

	* spot/twaalgos/sccfilter.cc, spot/twaalgos/sccfilter.hh: Specialize
	for inherently-weak automata.
	* spot/twaalgos/postproc.cc: Simplify.
	* tests/core/dca2.test, tests/core/parity2.test,
	tests/core/prodor.test, tests/core/randomize.test,
	tests/python/automata.ipynb, tests/python/highlighting.ipynb,
	tests/python/product.ipynb, tests/python/remfin.py,
	tests/python/stutter-inv.ipynb: Adjust.
	* NEWS: Mention it.

2018-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reorder and fix some typos.

2018-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --gf-equiv-xn, --gf-implies-xn

	* spot/gen/formulas.cc, spot/gen/formulas.hh: Here.
	* bin/genltl.cc: Add options.
	* tests/core/genltl.test: Test them.
	* NEWS: Mention them.

2018-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gf_guarantee_to_ba: save states using histories

	This improves gf_guarantee_to_ba() on formulas GF(φ) where the
	automaton for F(φ) as several leading transiant SCCs.  E.g.,
	GF(a <-> XXXa) where we know get results that are as good as
	those of delag without loosing on the cases where delag's technique
	would actually produce two big automata.

	* spot/twaalgos/gfguarantee.cc: Implement this.
	* spot/twaalgos/gfguarantee.hh, NEWS: Document it.
	* tests/core/ltl2tgba2.test, tests/core/ltl3ba.test: Add test cases.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_wdba: use a product to decide accepting SCCs

	Fixes #347.

	* spot/twaalgos/minimize.cc, spot/twaalgos/minimize.hh: An SCC of the
	determinized automaton is marked as accepting if it intersects any
	accepting SCC of the original automaton.  This can be checked by
	making a product.  As a consequence the output of minimize_wdba() now
	always includes the original language, and minimize_obligation() only
	needs a single containment check.
	* NEWS: Mention this.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (debian-gcc-snapshot): Fix path to log files.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplifier: add two new rules

	Fixes #354.

	* spot/tl/simplify.cc: Implement the rules.
	* doc/tl/tl.tex, NEWS: Document them.
	* tests/core/reduccmp.test: Add tests.
	* tests/core/det.test, tests/core/satmin.test: Adjust.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reorganize recent entries.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: --ms-example now has two arguments

	* bin/genltl.cc, spot/gen/formulas.cc, tests/core/genltl.test: Adjust.
	* NEWS: Mention it.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: implement --has-univ-branching and --has-exist-branching

	Fixes #352.

	* bin/autfilt.cc: Add the options.
	* tests/core/alternating.test: Test them.
	* NEWS: Mention them.

2018-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add support for --sejk-f=n,m

	Together with the previous patch, this Fixes #353.

	Implementing this required to extend our interface two support
	two-parameter patterns.

	* spot/gen/formulas.cc, spot/gen/formulas.hh: Implement it.
	* bin/genltl.cc: Add --sejk-f.
	* bin/common_output.cc, bin/common_output.hh: Adjust to handle
	"line numbers" that are not integers (e.g., "3,2"), since those
	are used to display pattern parameters.
	* bin/ltlfilt.cc: Adjust.
	* python/spot/gen.i: Add support for two-parameters patterns.
	* tests/core/genltl.test, tests/python/gen.ipynb: Augment.
	* NEWS: Mention it.

2018-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: three new families --sejk-{j,k,patterns}

	These correspond to the first three blocks of table 1 in S. Sickert,
	J. Esparza, S. Jaax, and J. Křetínský: Limit-Deterministic Büchi
	Automata for Linear Temporal Logic.  CAV'16.  LNCS 9780.

	For #353.

	* spot/gen/formulas.cc, spot/gen/formulas.hh, bin/genltl.cc: Implement
	the new families.
	* tests/core/genltl.test: Test it.
	* bin/man/genltl.x, NEWS: Document it.

2018-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve alternation removal to match G&O construction

	When dealternating the VWAA for GFa, our result had two states that
	could not be fused by simulation because of unmatched acceptance mark.
	With this change, the result can be simplified.

	* spot/twaalgos/alternation.cc: Here.
	* tests/core/alternating.test, tests/python/alternation.ipynb: Update
	test case.
	* NEWS: Mention it.

2018-05-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: turn some assertions into exceptions

	* spot/misc/bitset.cc, spot/misc/bitset.hh (set, clear):
	Turn asserts into exceptions.
	* spot/twa/acc.hh (mark_t): As a consequence, the
	constructor is not noexcept anymore.
	* tests/core/acc.cc, tests/python/except.py: More tests.

2018-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a9293f329

	* spot/twaalgos/alternation.cc: Always call ensure_weak_scc().

2018-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix and check shifting issue

	The exception raised by << and >> when shifting mark_t by too many
	bits are only enabled in SPOT_DEBUG, as those operations are quite
	low-level.  However we were always testing them, and although we
	wanted them to be active in Python, it was not always the case.

	* spot/twa/acc.hh: introduce max_accsets() as
	a static constexpr method, so we can see it in Python.
	* spot/misc/bitset.hh: Fix preprocessing directive
	so the check is actually enabled when compiling the Python
	bindings.
	* bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc: Use max_accsets().
	* tests/core/acc.cc: Comment out the shifting exception when
	SPOT_DEBUG is unset.
	* tests/python/except.py: Make sure the exception is always raised in
	Python.

2018-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/except.py: Make sure exceptions are raised.

2018-05-25  Maximilien Colange  <colange@lrde.epita.fr>

	fix warnings when compiling without assertions

	* spot/twa/acc.hh, spot/twaalgos/alternation.cc,
	  spot/twaalgos/determinize.cc, spot/twaalgos/ndfs_result.hxx,
	  spot/twaalgos/tau03.cc, spot/ltsmin/ltsmin.cc, tests/core/parity.cc:
	  here

2018-05-25  Maximilien Colange  <colange@lrde.epita.fr>

	optimize split_2step

	* spot/twaalgos/split.cc: split_2step relies less on bdd, which improves
	  its performance
	* tests/python/split.py: update test

2018-05-25  Maximilien Colange  <colange@lrde.epita.fr>

	twa_graph: add a method to merge states with same outgoing edges

	* spot/twa/twagraph.hh, spot/twa/twagraph.cc: here
	* NEWS: document it
	* tests/core/twagraph.cc, tests/core/tgbagraph.test: test it

2018-05-25  Maximilien Colange  <colange@lrde.epita.fr>

	a few improvements to mark_t

	* spot/misc/bitset.hh: add methods set() and clear()
	* spot/twa/acc.hh: deprecate comparison of mark_t with unsigned, and
	  rely more on biset for efficiency

2018-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	document --enable-max-accsets

	* README, doc/org/hoa.org: Here.

2018-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename SPOT_NB_ACC to SPOT_MAX_ACCSETS

	* NEWS, bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc,
	configure.ac, spot/parseaut/parseaut.yy, spot/twa/acc.cc,
	spot/twa/acc.hh, tests/core/acc.cc, .gitlab-ci.yml: Here.

2018-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitset: optimize the code generated by shifts in common cases

	* spot/misc/bitset.hh: Here.
	* spot/misc/bitset.cc: New file.
	* spot/misc/Makefile.am: Add it.
	* spot/twa/acc.hh: Conditionally remove the exception checks around
	shift operators.
	* spot/misc/common.hh (SPOT_ASSUME): New macro.

2018-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	common: typo

	* spot/misc/common.hh (SPOT_BUILTIN_UNREACHABLE): Typo.

2018-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/sanity/style.test: Allow {{x}} in constructors.

2018-05-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: better handling of chain of products with -B

	Fixes #348, reported by Jeroen Meijer.

	* bin/autfilt.cc: If -B is used with many --product,
	degeneralize intermediate products as needed.
	* NEWS: Mention the change.
	* tests/core/prodchain.test: New file.
	* tests/Makefile.am: Add it.
	* spot/twa/acc.cc, spot/twa/acc.hh: Fix reporting of
	overflow.
	* tests/core/acc.cc: Adjust.

2018-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: optimize product with weak automata

	Fixes #350.

	* spot/twaalgos/product.cc: Implement this change.
	* NEWS, spot/twaalgos/product.hh: Mention it.
	* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::sat_mark): New method.
	* tests/python/_product_weak.ipynb: New file.
	* tests/Makefile.am: Add it.
	* tests/python/automata.ipynb, tests/python/highlighting.ipynb,
	tests/python/product.ipynb, tests/core/prodor.test: Adjust test cases.

2018-05-23  Maximilien Colange  <colange@lrde.epita.fr>

	ltlsynt: improve coverage

	* tests/core/ltlsynt.test: here

2018-05-23  Maximilien Colange  <colange@lrde.epita.fr>

	genltl: improve coverage

	* tests/core/genltl.test: here
	* spot/gen/formulas.cc: typo

2018-05-23  Maximilien Colange  <colange@lrde.epita.fr>

	ltlfilt: improve coverage

	* tests/core/ltlfilt.test: here

2018-05-23  Maximilien Colange  <colange@lrde.epita.fr>

	randltl: fix option --allow-dups

	* bin/randltl.cc: here
	* tests/core/rand.test: test it
	* NEWS: document it

2018-05-23  Maximilien Colange  <colange@lrde.epita.fr>

	hide implementation of spot::acc_cond::mark_t

	* bin/autcross.cc, bin/autfilt.cc, bin/ltlcross.cc,
	  spot/parseaut/parseaut.yy: use SPOT_NB_ACC
	* spot/twa/acc.hh: make implementation private

2018-05-23  Maximilien Colange  <colange@lrde.epita.fr>

	various fixes to bitset

	* spot/misc/bitset.hh: here
	* tests/core/acc.cc: test it

2018-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	optionmap: fix set()

	This longstanding issue caused some emptiness checks options to be
	ignored in the test suite, reducing coverage.

	* spot/misc/optionmap.cc (set): Insert the other keys without
	erasing the existing ones.

2018-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gtec: hide some debugging code behind #if/#endif

	* spot/twaalgos/gtec/gtec.cc, spot/twaalgos/gtec/gtec.hh:
	Here.

2018-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove some dead code

	* bin/common_trans.cc, bin/common_trans.hh: Here.

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	build with a large spot::acc_cond::mark_t

	* .gitlab-ci.yml: here

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	building spot::acc_cond::mark_t from unsigned is deprecated

	* spot/twa/acc.hh: here

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	more portable configure.ac

	* configure.ac: do not use bash-ism

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	improve coverage

	* tests/core/acc.cc: here
	* tests/core/acc.test: fix test invokation

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	better coverage for ltlsynt

	* tests/core/ltlsynt.test: here

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	acc_cond::mark_t now relies on bitset

	This allows to represent more than 32 acceptance marks.

	* configure.ac: add an option to specify the number of marks
	* spot/twa/acc.hh: implement it
	* tests/python/acc_cond.ipynb, tests/core/acc.cc,
	  tests/core/ltlcross3.test: update tests
	* NEWS: document it
	* bin/randltl.cc: fix an include

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	a new bitset class with static size

	* spot/misc/bitset.hh: implement it
	* spot/misc/Makefile.am: distribute it

2018-05-22  Maximilien Colange  <colange@lrde.epita.fr>

	remove parity_product and parity_product_or

	* NEWS: document it
	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh,
	  tests/core/parity.cc: here

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Remove spot.cc and spot-x.cc from coverage report.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/randtgba.cc: Remove code related to random formulas.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autcross: exercise %S, %L, and {name{nest}}

	* tests/core/autcross.test, tests/core/autcross2.test: More tests.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove dead code from ltl2tgta

	* bin/ltl2tgta.cc: There is no -B option.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: teach conversion options to report about the options

	* bin/common_conv.cc, bin/common_conv.hh: Here.
	* bin/autfilt.cc, bin/common_trans.cc, bin/ltlcross.cc, bin/ltldo.cc,
	bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randaut.cc, bin/randltl.cc: Pass
	the name of the argumennt to the conversion function.
	* tests/core/ltlcross3.test, tests/core/ltldo.test,
	tests/core/randaut.test: Add test cases.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: abort autcross on input parse error

	* bin/common_hoaread.hh (hoa_processor): Add a abort_on_error
	option.
	* bin/autcross.cc: Use it.
	* tests/core/autcross4.test: Add many more error cases to improve
	coverage.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: improve coverage of range-checking code

	* tests/core/genaut.test: Here.

2018-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: accept Alias: before AP:

	Fixes #345.

	* spot/parseaut/parseaut.yy: Deal with this inconvenient order.
	* tests/core/parseaut.test: Test it.
	* NEWS: Mention the bug fix.

2018-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add --usage back

	Because it appears in some error messages we cannot remove.  Make
	--usage as a synonym for --help.

	* bin/common_setup.cc: Here.

2018-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross, ltldo, autcross: add support for Rabinizer 4 tools

	* bin/common_trans.cc: Here.
	* NEWS: Mention that.

2018-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: exercise --stats='%[v]c %[IW]c' and friends

	* tests/core/scc.test: Here.

2018-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: support --is-colored

	This also improve the coverage of the is_colored() function, because
	it was not used in negative cases so far.

	* bin/autfilt.cc: Implement it.
	* tests/core/satmin2.test: Test it.
	* NEWS: Mention it.

2018-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: tests exceptions raised by is_weak_scc() and friends

	* tests/python/except.py: Here.

2018-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: diagnose failures to print --help

	Fixes #349.

	* bin/common_setup.cc (OPT_HELP, OPT_VERSION): Call close_stdout().

2018-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: finish removal of --usage

	* bin/common_setup.cc: Here.

2018-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: add the closeout and secure_getenv modules

	* lib/close-stream.c, lib/close-stream.h, lib/closeout.c,
	lib/closeout.h, lib/fpending.c, lib/fpending.h, lib/stdio-impl.h,
	lib/secure_getenv.c, m4/close-stream.m4, m4/closeout.m4,
	m4/fpending.m4, m4/secure_getenv.m4: New file.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Update.

2018-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	update gnulib to b35c22af02271c8dd9844b98db17702b8bf2bd93

	* lib/Makefile.am, lib/alloca.in.h, lib/arg-nonnull.h, lib/argmatch.c,
	lib/argmatch.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/c++defs.h, lib/c-ctype.h, lib/c-strcase.h,
	lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strncasecmp.c,
	lib/config.charset, lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h,
	lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c,
	lib/exitfail.h, lib/fcntl.in.h, lib/filename.h, lib/float+.h,
	lib/float.c, lib/float.in.h, lib/getopt-cdefs.in.h, lib/getopt-core.h,
	lib/getopt-ext.h, lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h,
	lib/getopt.c, lib/getopt.in.h, lib/getopt1.c, lib/getopt_int.h,
	lib/getprogname.c, lib/getprogname.h, lib/gettext.h,
	lib/gettimeofday.c, lib/hard-locale.c, lib/hard-locale.h,
	lib/intprops.h, lib/isatty.c, lib/itold.c, lib/limits.in.h,
	lib/localcharset.c, lib/localcharset.h, lib/localtime-buffer.c,
	lib/localtime-buffer.h, lib/lstat.c, lib/malloc.c, lib/malloca.c,
	lib/malloca.h, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c,
	lib/mempcpy.c, lib/minmax.h, lib/mkstemp.c, lib/mkstemps.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/quote.h, lib/quotearg.c,
	lib/quotearg.h, lib/rawmemchr.c, lib/ref-add.sin, lib/ref-del.sin,
	lib/size_max.h, lib/sleep.c, lib/stat-w32.c, lib/stat-w32.h,
	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/stpcpy.c,
	lib/strcasecmp.c, lib/strchrnul.c, lib/streq.h,
	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/strverscmp.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/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h,
	lib/verify.h, lib/vsnprintf.c, lib/warn-on-use.h, lib/wchar.in.h,
	lib/wctype.in.h, lib/xalloc-die.c, lib/xalloc-oversized.h,
	lib/xalloc.h, lib/xmalloc.c, lib/xsize.h, m4/00gnulib.m4,
	m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4, m4/configmake.m4,
	m4/dirname.m4, m4/double-slash-root.m4, m4/eealloc.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/getopt.m4,
	m4/getprogname.m4, m4/gettimeofday.m4, m4/glibc21.m4,
	m4/gnulib-cache.m4, m4/gnulib-common.m4, m4/gnulib-comp.m4,
	m4/gnulib-tool.m4, m4/hard-locale.m4, m4/include_next.m4,
	m4/intmax_t.m4, m4/inttypes_h.m4, m4/isatty.m4, m4/largefile.m4,
	m4/limits-h.m4, m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4,
	m4/locale-zh.m4, m4/localtime-buffer.m4, m4/longlong.m4, m4/lstat.m4,
	m4/malloc.m4, m4/malloca.m4, m4/math_h.m4, m4/mbrtowc.m4,
	m4/mbsinit.m4, m4/mbstate_t.m4, m4/memchr.m4, m4/mempcpy.m4,
	m4/minmax.m4, m4/mkstemp.m4, m4/mkstemps.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/quote.m4, m4/quotearg.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/stpcpy.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/strverscmp.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/unistd_h.m4, m4/vasnprintf.m4,
	m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4,
	m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4: Update.
	* lib/malloca.valgrind, lib/secure_getenv.c, m4/secure_getenv.m4:
	Delete.
	* lib/stat-time.c, lib/stat-time.h, m4/stat-time.m4: New files.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor exception-handling code

	* bin/common_setup.cc, bin/common_setup.hh: Define a protected_main()
	function that deal with exceptions.
	* bin/autcross.cc, bin/autfilt.cc, bin/dstar2tgba.cc, bin/genaut.cc,
	bin/genltl.cc, bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc,
	bin/ltldo.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/ltlsynt.cc,
	bin/randaut.cc, bin/randltl.cc: Use it for all tools.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randomltl: avoid #define

	As this pollutes the user's namespace.

	* spot/tl/randomltl.hh: Use class-level enum and constexpr instead
	of #define.
	* spot/tl/randomltl.cc, python/spot/__init__.py, bin/randltl.cc,
	tests/python/dualize.py, tests/python/sum.py: Adjust usage.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: stop supporting the hidden --usage

	It's not used anywhere, not documented, and its output is slightly
	broken with options that are too long.

	* bin/common_setup.cc: Remove --usage support.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: use ltlcross --color for better code coverage

	* tests/core/ltlcross3.test: Here.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove some dead code

	* bin/common_output.cc, bin/common_output.hh: Here.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: cover error handling of ltlfilt -r

	* tests/core/ltlfilt.test: Add test cases.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/bdd.test: Cover garbage collection hooks.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove useless reachiter.hh includes

	* spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/neverclaim.cc, spot/twaalgos/sccfilter.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/stripacc.cc: Here.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --complement accepts non-deterministic input

	* bin/autfilt.cc: Fix the --help string for --complement, and also
	merge edges in the resulting automaton, as suggested by František
	Blahoudek.
	* tests/core/complement.test: Adjust output and add František's
	example.

2018-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Upgrade to GitLab 10.7

	* .gitlab-ci.yml (publish-stable, publish-unstable): Use a single
	variable to pass the current branch to the spot-web project.

2018-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: improve formating of double-quoted AP in MathJax

	* python/spot/impl.i: Move the rendering code...
	* python/spot/__init__.py: ... here, and ajust it for MathJax.
	* tests/python/formulas.ipynb, tests/python/ltsmin-dve.ipynb: Adjust
	expected results.

2018-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut04.org: Show are_equivalent().

2018-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: implicit str->formula conversion

	* python/spot/impl.i, python/spot/__init__.py: Implement it.
	* NEWS: Mention it.
	* tests/python/atva16-fig2a.ipynb, tests/python/atva16-fig2b.ipynb,
	tests/python/formulas.ipynb, tests/python/ltsmin-dve.ipynb,
	tests/python/ltsmin-pml.ipynb, tests/python/stutter-inv.ipynb,
	doc/org/tut02.org: Modernize.

2018-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add option K

	* spot/twaalgos/dot.cc: Here.
	* NEWS, bin/common_aoutput.cc: Mention it.
	* tests/python/ltsmin-pml.ipynb: Use it.
	* tests/python/ipnbdoctest.py: Work around some graphviz
	version differences.

2018-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix and improve hoa.org

	* doc/org/hoa.org: Here.

2018-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add a show= keyword to display_inline()

	* python/spot/jupyter.py: Here.
	* tests/python/alternation.ipynb: Use it.
	* NEWS: Mention the above notebook as usage example.

2018-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: support 'u'

	* spot/twaalgos/dot.cc: Implement it.
	* bin/common_aoutput.cc, NEWS: Mention it.
	* tests/python/alternation.ipynb: Test it.

2018-05-04  Maximilien Colange  <colange@lrde.epita.fr>

	remove a useless exception

	* spot/twaalgos/split.cc: split_2step does work with any acceptance
	  condition
	* spot/twaalgos/split.hh: typo

2018-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/stutter-inv.ipynb: Remove debug print.

2018-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add link to stutter checks and autcross on main page

	* doc/org/index.org: Here.

2018-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce containement checks functions

	* spot/twaalgos/contains.hh, spot/twaalgos/contains.cc: New files.
	* spot/twaalgos/Makefile.am, python/spot/impl.i: Add them.
	* python/spot/__init__.py: Also attach these functions as methods,
	and support string arguments.
	* tests/python/contains.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* bin/autfilt.cc, tests/python/streett_totgba.py, tests/python/sum.py,
	tests/python/toweak.py: Use the new function.

2018-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: introduce spot.jupyter.display_inline()

	* python/spot/jupyter.py: New file.
	* python/Makefile.am: Add it.
	* tests/python/product.ipynb: Use it.
	* NEWS: Mention it.

2018-05-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve gf_guarantee_to_ba

	* spot/twaalgos/gfguarantee.cc: Combine the last letter read
	with the first one of the next pass when doing transition-based
	acceptance.  Also move the initial states to the source of any
	accepting transition if the input is deterministic.
	* tests/core/ltl2tgba2.test, tests/core/satmin.test,
	tests/python/stutter-inv.ipynb: Reduce expected sizes of a few
	automata.

2018-04-30  Maximilien Colange  <colange@lrde.epita.fr>

	ltlsynt: improve construction of turn-based games

	Improve the way transitions are duplicated when preparing the turn-based
	game for synthesis. The resulting arena should now be deterministic on
	nodes owned by the environment. Also move the code to another file, so
	that it is easier to test (e.g. in Python).

	* bin/ltlsynt.cc: move the code
	* spot/twaalgos/split.cc, spot/twaalgos/split.hh: move the code and
	  implement the improvements
	* tests/Makefile.am, tests/python/split.py: test it
	* tests/core/ltlsynt.test: update existing tests to reflect the changes

2018-04-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_dot: correctly escape \n in html output

	* spot/misc/escape.cc (escape_html): Handle \n.
	* tests/core/readsave.test: Test it.
	* NEWS: Mention the fix.

2018-04-23  Maximilien Colange  <colange@lrde.epita.fr>

	fix parity game printing

	* spot/misc/game.cc: a state could be printed several times
	* tests/core/ltlsynt.test: update tests

2018-04-23  Maximilien Colange  <colange@lrde.epita.fr>

	parity game: various improvements

	Zielonka algorithm has been fixed and optimized.
	It also now computes the strategy for both players.

	* bin/ltlsynt.cc: Update calls to parity_game::solve()
	* spot/misc/game.cc, spot/misc/game.hh: Implement the changes

2018-04-23  Maximilien Colange  <colange@lrde.epita.fr>

	ltlsynt: fix the construction of the arena

	* bin/ltlsynt.cc: implement it
	* tests/core/ltlsynt.test: update tests

2018-04-23  Maximilien Colange  <colange@lrde.epita.fr>

	Add a verbose option to ltlsynt

	* bin/ltlsynt.cc: implement it

2018-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/satmin.ipynb: Remove a debug statement.

2018-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2018-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.5.3.dev

	* NEWS, configure.ac: Here.

2018-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.5.3

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2018-04-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unambiguous: fix false negatives again

	Reported by Simon Jantsch and David Müller.

	* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite wihtout assuming
	that the product of two accepting SCCs is accepting,  Also use
	the result of is_accepting_scc()/is_rejectng_scc() when available.
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Make it
	possible to check the acceptance of a unique SCC.
	* tests/core/unambig.test: Add more test cases.

2018-04-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unambiguous: fix false negatives again

	Reported by Simon Jantsch and David Müller.

	* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite wihtout assuming
	that the product of two accepting SCCs is accepting,  Also use
	the result of is_accepting_scc()/is_rejectng_scc() when available.
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh: Make it
	possible to check the acceptance of a unique SCC.
	* tests/core/unambig.test: Add more test cases.

2018-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/rules: Disable valgrind.

2018-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unambiguous: fix false negatives

	Reported by Simon Jantsch and David Müller.

	* tests/core/unambig.test: Test the issue.
	* spot/twaalgos/isunamb.cc: Fix it.
	* NEWS: Mention it.
	* THANKS: Add Simon.

2018-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix broken links

	* doc/org/upgrade2.org, doc/org/ioltl.org, doc/org/concepts.org: Here.
	* doc/org/tut51.org: Fix example output.

2018-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gitlab-ci: skip org-mode in mingw builds

	* .gitlab-ci.yml: Here.
	* doc/Makefile.am: Make sure the svg files are only rebuilt when org
	files are processed.

2018-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unambiguous: fix false negatives

	Reported by Simon Jantsch and David Müller.

	* tests/core/unambig.test: Test the issue.
	* spot/twaalgos/isunamb.cc: Fix it.
	* NEWS: Mention it.
	* THANKS: Add Simon.

2018-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: name the digraph

	* spot/twaalgos/dot.cc: Here.
	* NEWS: Mention the change.
	* tests/core/alternating.test, tests/core/det.test,
	tests/core/dstar.test, tests/core/monitor.test,
	tests/core/neverclaimread.test, tests/core/readsave.test,
	tests/core/sccdot.test, tests/core/tgbagraph.test,
	tests/python/_altscc.ipynb, tests/python/_autparserr.ipynb,
	tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
	tests/python/atva16-fig2b.ipynb, tests/python/automata-io.ipynb,
	tests/python/automata.ipynb, tests/python/decompose.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
	tests/python/parity.ipynb, tests/python/product.ipynb,
	tests/python/randaut.ipynb, tests/python/satmin.ipynb,
	tests/python/stutter-inv.ipynb, tests/python/testingaut.ipynb,
	tests/python/word.ipynb: Adjust test cases.

2018-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: use tooltips with option "1"

	Fixes #327.

	* spot/twaalgos/dot.cc: Emit a tooltip="..." for state names and
	labels that are disabled by option "1".
	* doc/org/tut51.org, tests/python/product.ipynb, NEWS: Discuss this.
	* tests/core/readsave.test, tests/python/alternation.ipynb,
	tests/python/automata.ipynb: Adjust test cases.

2018-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: adjust to org-mode 9.1

	This is needed so that SVG files are included as an <object...> rather
	than as an <img...>, which in turn is needed to ensure SVG tooltips
	will work.  We do not explicitly require org-mode 9.1, but we install
	it if it is not present.

	* HACKING: Mention the requirement.
	* doc/org/.dir-locals.el.in, doc/org/init.el.in, doc/org/spot.css:
	Adjust to org-mode 9.1.
	* doc/Makefile.am: Run emacs with the site-lisp libraries, in
	case it contains a more recent org-mode.
	* elisp/ob-dot.el: Delete, this was a work around older versions.
	* elisp/Makefile.am: Adjust.

2018-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix broken links

	* doc/org/upgrade2.org, doc/org/ioltl.org, doc/org/concepts.org: Here.
	* doc/org/tut51.org: Fix example output.

2018-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gitlab-ci: skip org-mode in mingw builds

	* .gitlab-ci.yml: Here.
	* doc/Makefile.am: Make sure the svg files are only rebuilt when org
	files are processed.

2018-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: make sure spot.automata() terminates the command

	Fixes #341.

	* python/spot/__init__.py (automata): Rewrite and simplify using
	the subprocess context manager.
	* tests/python/341.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the issue.

2018-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: make sure spot.automata() terminates the command

	Fixes #341.

	* python/spot/__init__.py (automata): Rewrite and simplify using
	the subprocess context manager.
	* tests/python/341.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the issue.

2018-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete reference to Esparza/Křetínský/Sickert LICS'18 paper

	* NEWS, bin/man/spot-x.x, bin/spot-x.cc, spot/twaalgos/gfguarantee.hh:
	Add the conference.

2018-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat_minimize: improve logs and document Python bindings

	* spot/priv/satcommon.cc, spot/priv/satcommon.hh: Make it possible to
	set the log file without setting the environment variable.  Adjust
	print_log to take the input state and print it as a new column.
	* spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc: Adjust all
	calls to print_log.  Fix log output for incremental approaches.
	Prefer purge_unreachable_states() over stats_reachable().  Do
	not call scc_filter() on colored automata.
	* spot/twaalgos/dtwasat.hh: Document the new "log" option.
	* NEWS: Mention the changes.
	* tests/python/satmin.ipynb: New file.
	* tests/Makefile.am: Add it.
	* doc/org/satmin.org, doc/org/tut.org: Link to it.
	* doc/org/satmin.org, bin/man/spot-x.x: Adjust description
	of CSV files.
	* bench/dtgbasat/gen.py, bench/dtgbasat/tabl.pl,
	bench/dtgbasat/tabl1.pl, bench/dtgbasat/tabl2.pl,
	bench/dtgbasat/tabl3.pl, bench/dtgbasat/tabl4.pl: Adjust for
	the new column.
	* spot/misc/satsolver.cc, spot/misc/satsolver.hh (stats): Make it
	const.
	* python/spot/__init__.py (sat_minimize): Add display_log and
	return_log options.
	* tests/python/ipnbdoctest.py: Adjust to not compare SAT-minimization
	logs as they contain timings.

2018-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gfguarantee: fix a typo in the code

	* spot/twaalgos/gfguarantee.cc: Call is_terminal_automaton() on
	the reduced automaton.
	* tests/core/ltl2tgba.test: Add a test case.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (publish-stable): Use scp instead of cp.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix --sat-minimize -B

	Fixes #340.

	* bin/common_post.cc: -B implies -S.
	* tests/core/satmin2.test: Test this.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix error message of translate()/posprocess()

	* python/spot/__init__.py: Here.
	* NEWS: Mention the bug.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/strength.cc: Typo.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_dca/to_nca: fix handling of co-Büchi input

	* spot/twaalgos/cobuchi.cc (to_dca, to_nca): Do not process
	the input if it is already co-Büchi.
	* tests/core/dca.test: Test this.
	* NEWS: Mention the bug.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around some g++-7.3 issues

	* spot/twaalgos/langmap.cc, spot/ltsmin/ltsmin.cc: Add asserts to hide
	spurious "potential null pointer dereference" messages.
	* spot/twaalgos/tau03opt.cc (color_ref): Initialize pc to nullptr
	even when is_cyan is true so that valgrind does not report pc being
	used uninitialized in is_white().

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	specialized translation for GF(guarantee) and FG(safety)

	This is adapted from a proposition in a paper by J. Esparza,
	J. Křentínský, and S. Sickert, submitted to LICS'18.  We should add
	proper references to the code and documentation once that paper is
	accepted.

	* spot/twaalgos/gfguarantee.cc, spot/twaalgos/gfguarantee.hh:
	New files.
	* spot/twaalgos/Makefile.am, python/spot/impl.i: Add them.
	* spot/twa/fwd.hh: Add a forward declaration of bdd_dict_ptr.
	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Make it
	possible to call finalize() from the translator subclass.  Constify
	all the do_* functions while we are there.
	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Add
	a "gf-guarantee" option to decide whether to use the new translation.
	* bin/spot-x.cc: Document it.
	* tests/core/dca2.test, tests/core/genltl.test,
	tests/core/ltl2tgba2.test, tests/core/parity2.test,
	tests/core/satmin.test, tests/python/automata.ipynb,
	tests/python/sbacc.py: Adjust test cases.
	* tests/python/except.py: Add a couple more tests.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml (publish-stable): Use scp instead of cp.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix --sat-minimize -B

	Fixes #340.

	* bin/common_post.cc: -B implies -S.
	* tests/core/satmin2.test: Test this.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix error message of translate()/posprocess()

	* python/spot/__init__.py: Here.
	* NEWS: Mention the bug.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/strength.cc: Typo.

2018-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_dca/to_nca: fix handling of co-Büchi input

	* spot/twaalgos/cobuchi.cc (to_dca, to_nca): Do not process
	the input if it is already co-Büchi.
	* tests/core/dca.test: Test this.
	* NEWS: Mention the bug.

2018-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around some g++-7.3 issues

	* spot/twaalgos/langmap.cc, spot/ltsmin/ltsmin.cc: Add asserts to hide
	spurious "potential null pointer dereference" messages.
	* spot/twaalgos/tau03opt.cc (color_ref): Initialize pc to nullptr
	even when is_cyan is true so that valgrind does not report pc being
	used uninitialized in is_white().

2018-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2018-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump version to 2.5.2.dev

	* NEWS, configure.ac: Here.

2018-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.5.2

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2018-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/ltl2taa.cc: Remove unused variable.

2018-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/ltl2taa.cc: Remove unused variable.

2018-03-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: fix closure() on Fin-acceptance

	From a report by Anton Pirogov.

	* NEWS: Mention the bug.
	* spot/twaalgos/stutter.cc: Fix it.
	* tests/core/stutter-tgba.test: Test it.
	* THANKS: Add Anton.

2018-03-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: fix closure() on Fin-acceptance

	From a report by Anton Pirogov.

	* NEWS: Mention the bug.
	* spot/twaalgos/stutter.cc: Fix it.
	* tests/core/stutter-tgba.test: Test it.
	* THANKS: Add Anton.

2018-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: implement an LRU cache

	* spot/twaalgos/powerset.cc: Use an LRU cache to fix #302.

2018-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/autcross.org: Typo.

2018-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/autcross.org: Typo.

2018-03-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autcross: support %M in tool specifications

	Fixes #335.

	* bin/common_trans.cc: Add support.
	* tests/core/autcross4.test: New file.
	* tests/Makefile.am: Add it.
	* doc/org/autcross.org, NEWS: Document it.

2018-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_run: better protection against empty cycles

	Fixes #337.

	* spot/twaalgos/emptiness.cc, spot/twaalgos/emptiness.hh: Here.
	* tests/python/except.py: Test it.
	* NEWS: Mention the issue.

2018-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt --acceptance-is=Fin-less should reject "f"

	* bin/autfilt.cc: Fix detection of Fin-less acceptance.
	* tests/core/remfin.test: Add some tests.
	* NEWS: Mention the bug.

2018-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: never return acceptance "f"

	Fixes #333.

	* spot/twaalgos/remfin.cc, spot/twaalgos/remfin.hh,
	spot/twaalgos/totgba.cc: Adjust.  The assert() added
	to remove_fin() triggered a lot of failure in the test
	suite before the different functions were fixed.
	* tests/core/remfin.test, tests/python/tra2tba.py:
	Adjust expected result.
	* NEWS: Mention the bug.

2018-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix the --acceptance help output

	Fixes #334.

	* bin/autfilt.cc: Turn std::flush into std::endl, and fix a quoting
	issue.

2018-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_run: better protection against empty cycles

	Fixes #337.

	* spot/twaalgos/emptiness.cc, spot/twaalgos/emptiness.hh: Here.
	* tests/python/except.py: Test it.
	* NEWS: Mention the issue.

2018-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt --acceptance-is=Fin-less should reject "f"

	* bin/autfilt.cc: Fix detection of Fin-less acceptance.
	* tests/core/remfin.test: Add some tests.
	* NEWS: Mention the bug.

2018-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: never return acceptance "f"

	Fixes #333.

	* spot/twaalgos/remfin.cc, spot/twaalgos/remfin.hh,
	spot/twaalgos/totgba.cc: Adjust.  The assert() added
	to remove_fin() triggered a lot of failure in the test
	suite before the different functions were fixed.
	* tests/core/remfin.test, tests/python/tra2tba.py:
	Adjust expected result.
	* NEWS: Mention the bug.

2018-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix the --acceptance help output

	Fixes #334.

	* bin/autfilt.cc: Turn std::flush into std::endl, and fix a quoting
	issue.

2018-03-15  Maximilien Colange  <colange@lrde.epita.fr>

	Clean the usage of spot::acc_cond::mark_t

	spot::acc_cond::mark_t is implemented as a bit vector using a single
	unsigned, and implicit conversions between mark_t and unsigned may be
	confusing. We try to use the proper interface.

	* bin/autfilt.cc, bin/ltlsynt.cc, spot/kripke/kripke.cc,
	  spot/misc/game.hh, spot/parseaut/parseaut.yy, spot/priv/accmap.hh,
	  spot/ta/ta.cc, spot/ta/taexplicit.cc, spot/ta/taproduct.cc,
	  spot/taalgos/emptinessta.cc, spot/taalgos/tgba2ta.cc, spot/twa/acc.cc,
	  spot/twa/acc.hh, spot/twa/taatgba.cc, spot/twa/taatgba.hh,
	  spot/twa/twagraph.hh, spot/twaalgos/alternation.cc,
	  spot/twaalgos/cleanacc.cc, spot/twaalgos/cobuchi.cc,
	  spot/twaalgos/complete.cc, spot/twaalgos/couvreurnew.cc,
	  spot/twaalgos/degen.cc, spot/twaalgos/dot.cc,
	  spot/twaalgos/dtwasat.cc, spot/twaalgos/dualize.cc,
	  spot/twaalgos/emptiness.cc, spot/twaalgos/gtec/ce.cc,
	  spot/twaalgos/gtec/gtec.cc, spot/twaalgos/gtec/sccstack.cc,
	  spot/twaalgos/gv04.cc, spot/twaalgos/hoa.cc, spot/twaalgos/lbtt.cc,
	  spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/magic.cc,
	  spot/twaalgos/ndfs_result.hxx, spot/twaalgos/rabin2parity.cc,
	  spot/twaalgos/randomgraph.cc, spot/twaalgos/remfin.cc,
	  spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc,
	  spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh,
	  spot/twaalgos/se05.cc, spot/twaalgos/sepsets.cc,
	  spot/twaalgos/simulation.cc, spot/twaalgos/strength.cc,
	  spot/twaalgos/stripacc.cc, spot/twaalgos/stutter.cc,
	  spot/twaalgos/sum.cc, spot/twaalgos/tau03.cc,
	  spot/twaalgos/tau03opt.cc, spot/twaalgos/totgba.cc,
	  spot/twaalgos/toweak.cc, python/spot/impl.i, tests/core/acc.cc,
	  tests/core/twagraph.cc: do not confuse mark_t and unsigned
	* tests/python/acc_cond.ipynb: warn about possible change of the API

2018-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: reduce {r;1} to {r} or {1}

	Fixes #3.

	* spot/tl/simplify.cc: Implement this new rule.
	* doc/tl/tl.tex, NEWS: Document it.
	* tests/core/reduccmp.test: Test it.

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	always capture exceptions by const references

	For #199.

	* tests/sanity/style.test: Test this.
	* bin/ltlcross.cc, spot/parseaut/parseaut.yy,
	tests/ltsmin/modelcheck.cc: Fix it.

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: strengthen is_generalized_rabin() and is_generalized_streett()

	* spot/twa/acc.cc: These functions were segfaulting on acceptance
	conditions such as "Acceptance: 3 t" or "Acceptance: 3 f".
	The issue was revealed on branch "next" by the change that print_dot()
	display the acceptance condition by default, but we want the fix on
	master as well.
	* NEWS: Mention the issue.

2018-03-14  Maximilien Colange  <colange@lrde.epita.fr>

	Fix various typos

	* bin/autfilt.cc, bin/common_post.cc, spot/graph/graph.hh,
	  spot/twa/twa.hh, spot/twa/twagraph.hh, spot/twaalgos/remfin.cc: typos
	* spot/twaalgos/toweak.cc: incorrect types when invoking std::hash

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust test case to work with ltl2dstar 0.5.4

	* tests/core/ltl2dstar.test: Here.

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update plantuml download URL

	* doc/Makefile.am: Here.

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Switch to LRDE's docker registry.

2018-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More config for GitLab-CI

	* .gitlab-ci.yml: Add a build with gcc-snapshot, and disable Debian
	packages on all branches except master/next/stable and branches ending
	in "-deb".

2018-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: make "a" the default

	Fixes #319.

	* spot/twaalgos/dot.cc: Enable "a" by default.
	* bin/common_aoutput.cc, NEWS: Document it.
	* doc/org/autfilt.org, doc/org/concepts.org, doc/org/dstar2tgba.org,
	doc/org/hierarchy.org, doc/org/ltl2tgba.org, doc/org/oaut.org,
	doc/org/randaut.org, doc/org/satmin.org, doc/org/tut23.org,
	doc/org/tut24.org, doc/org/tut30.org, doc/org/tut31.org: Adjust or
	simplify the documentation.
	* tests/core/det.test, tests/core/dstar.test, tests/core/monitor.test,
	tests/core/neverclaimread.test, tests/core/readsave.test,
	tests/core/tgbagraph.test, tests/core/wdba.test,
	tests/python/_autparserr.ipynb, tests/python/automata-io.ipynb,
	tests/python/automata.ipynb, tests/python/highlighting.ipynb
	tests/python/ltsmin-dve.ipynb, tests/python/ltsmin-pml.ipynb,
	tests/python/product.ipynb, tests/python/testingaut.ipynb,
	tests/python/word.ipynb: Adjust test cases.

2018-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: strengthen is_generalized_rabin() and is_generalized_streett()

	* spot/twa/acc.cc: These functions were segfaulting on acceptance
	conditions such as "Acceptance: 3 t" or "Acceptance: 3 f".
	The issue was revealed on branch "next" by the change that print_dot()
	display the acceptance condition by default, but we want the fix on
	master as well.
	* NEWS: Mention the issue.

2018-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: remove useless calls to AC_CHECK_PROG

	Fixes #329.

	* configure.ac: Do not check for lbt, modella, and ltl2nba.
	* bench/ltl2tgba/defs.in: Remove the associated substitutions,
	not used in the scripts.

2018-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/hash.hh: Remove useless include.

2018-03-08  Maximilien Colange  <colange@lrde.epita.fr>

	Clean a hash function definition

	* spot/misc/hashfunc.hh: make the definition of FNV hash magic constants
	  more generic

2018-03-02  Maximilien Colange  <colange@lrde.epita.fr>

	Move the Fowler-Noll-Vo hash function to a header

	* spot/misc/bitvect.cc, spot/misc/hashfunc.hh: move FNV hash function,
	  use the new interface

2018-03-01  Maximilien Colange  <colange@lrde.epita.fr>

	Fix various typos

	* bin/autfilt.cc, bin/common_post.cc, spot/graph/graph.hh,
	  spot/twa/twa.hh, spot/twa/twagraph.hh, spot/twaalgos/remfin.cc: typos
	* spot/twaalgos/toweak.cc: incorrect types when invoking std::hash

2018-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust test case to work with ltl2dstar 0.5.4

	* tests/core/ltl2dstar.test: Here.

2018-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update plantuml download URL

	* doc/Makefile.am: Here.

2018-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Switch to LRDE's docker registry.

2018-02-23  Maximilien Colange  <colange@lrde.epita.fr>

	Improve purge_unreachable_states()

	* NEWS: document it
	* spot/twa/twagraph.hh, spot/twa/twagraph.cc: implement it
	* tests/core/tgbagraph.test, tests/core/twagraph.cc: test it

2018-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Document that "config.h" should be included first.

2018-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	setup bug-reference for emacs

	* .dir-locals.el: Here.
	* tests/core/remfin.test, tests/core/unambig.test:
	Make consistent references to issue numbers.
	* HACKING: Document convention for mentioning issues.

2018-02-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More config for GitLab-CI

	* .gitlab-ci.yml: Add a build with gcc-snapshot, and disable Debian
	packages on all branches except master/next/stable and branches ending
	in "-deb".

2018-02-21  Maximilien Colange  <colange@lrde.epita.fr>

	Slight improvement of the determinization

	* spot/twaalgos/determinize.cc: the acceptance condition
	  of the determinized automaton should be simpler
	* tests/core/safra.test, tests/python/simstate.py: update tests

2018-02-21  Maximilien Colange  <colange@lrde.epita.fr>

	Improve cleanup_parity

	* spot/twaalgos/parity.cc: cleanup_parity and cleanup_parity_here are
	  now better at finding useless parity colors
	* tests/python/parity.py: test it
	* NEWS: document the change

2018-02-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	include config.h in all *.cc files

	This helps working around missing C functions like strcasecmp that do
	not exist everywhere (e.g. on Cygwin), and for which lib/ supplies a
	replacement.  Unfortunately we do not have such build in our current
	continuous integration suite, so we cannot easily detect files where
	such config.h inclusion would be useful.  Therefore this patch simply
	makes it mandatory to include config.h in *.cc files.  Including this
	in public *.hh file is currently forbidden.

	* spot/gen/automata.cc, spot/gen/formulas.cc,
	spot/kripke/fairkripke.cc, spot/kripke/kripke.cc,
	spot/ltsmin/ltsmin.cc, spot/misc/game.cc, spot/parseaut/fmterror.cc,
	spot/parsetl/fmterror.cc, spot/parsetl/parsetl.yy,
	spot/priv/bddalloc.cc, spot/priv/freelist.cc, spot/priv/satcommon.cc,
	spot/priv/trim.cc, spot/priv/weight.cc, spot/ta/ta.cc,
	spot/ta/taexplicit.cc, spot/ta/taproduct.cc, spot/ta/tgtaexplicit.cc,
	spot/ta/tgtaproduct.cc, spot/taalgos/dot.cc,
	spot/taalgos/emptinessta.cc, spot/taalgos/minimize.cc,
	spot/taalgos/reachiter.cc, spot/taalgos/statessetbuilder.cc,
	spot/taalgos/stats.cc, spot/taalgos/tgba2ta.cc, spot/tl/apcollect.cc,
	spot/tl/contain.cc, spot/tl/declenv.cc, spot/tl/defaultenv.cc,
	spot/tl/dot.cc, spot/tl/exclusive.cc, spot/tl/hierarchy.cc,
	spot/tl/length.cc, spot/tl/ltlf.cc, spot/tl/mark.cc,
	spot/tl/mutation.cc, spot/tl/nenoform.cc, spot/tl/print.cc,
	spot/tl/randomltl.cc, spot/tl/relabel.cc, spot/tl/remove_x.cc,
	spot/tl/simplify.cc, spot/tl/snf.cc, spot/tl/unabbrev.cc,
	spot/twa/acc.cc, spot/twa/bdddict.cc, spot/twa/bddprint.cc,
	spot/twa/formula2bdd.cc, spot/twa/taatgba.cc, spot/twa/twa.cc,
	spot/twa/twagraph.cc, spot/twa/twaproduct.cc, spot/twaalgos/aiger.cc,
	spot/twaalgos/alternation.cc, spot/twaalgos/are_isomorphic.cc,
	spot/twaalgos/bfssteps.cc, spot/twaalgos/canonicalize.cc,
	spot/twaalgos/cleanacc.cc, spot/twaalgos/cobuchi.cc,
	spot/twaalgos/complement.cc, spot/twaalgos/complete.cc,
	spot/twaalgos/compsusp.cc, spot/twaalgos/couvreurnew.cc,
	spot/twaalgos/cycles.cc, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/dot.cc,
	spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/dualize.cc, spot/twaalgos/emptiness.cc,
	spot/twaalgos/gtec/ce.cc, spot/twaalgos/gtec/gtec.cc,
	spot/twaalgos/gtec/sccstack.cc, spot/twaalgos/gtec/status.cc,
	spot/twaalgos/gv04.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/iscolored.cc, spot/twaalgos/isdet.cc,
	spot/twaalgos/isunamb.cc, spot/twaalgos/isweakscc.cc,
	spot/twaalgos/langmap.cc, spot/twaalgos/lbtt.cc,
	spot/twaalgos/ltl2taa.cc, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/mask.cc,
	spot/twaalgos/minimize.cc, spot/twaalgos/neverclaim.cc,
	spot/twaalgos/parity.cc, spot/twaalgos/postproc.cc,
	spot/twaalgos/powerset.cc, spot/twaalgos/product.cc,
	spot/twaalgos/rabin2parity.cc, spot/twaalgos/randomgraph.cc,
	spot/twaalgos/randomize.cc, spot/twaalgos/reachiter.cc,
	spot/twaalgos/relabel.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/remprop.cc, spot/twaalgos/sbacc.cc,
	spot/twaalgos/sccfilter.cc, spot/twaalgos/sccinfo.cc,
	spot/twaalgos/se05.cc, spot/twaalgos/sepsets.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/split.cc,
	spot/twaalgos/stats.cc, spot/twaalgos/strength.cc,
	spot/twaalgos/stripacc.cc, spot/twaalgos/stutter.cc,
	spot/twaalgos/sum.cc, spot/twaalgos/tau03.cc,
	spot/twaalgos/tau03opt.cc, spot/twaalgos/totgba.cc,
	spot/twaalgos/toweak.cc, spot/twaalgos/translate.cc,
	spot/twaalgos/word.cc, tests/core/acc.cc, tests/core/bitvect.cc,
	tests/core/checkpsl.cc, tests/core/checkta.cc, tests/core/consterm.cc,
	tests/core/emptchk.cc, tests/core/equalsf.cc, tests/core/graph.cc,
	tests/core/ikwiad.cc, tests/core/intvcmp2.cc, tests/core/intvcomp.cc,
	tests/core/kind.cc, tests/core/kripkecat.cc, tests/core/length.cc,
	tests/core/ltlrel.cc, tests/core/ngraph.cc, tests/core/parity.cc,
	tests/core/randtgba.cc, tests/core/readltl.cc, tests/core/reduc.cc,
	tests/core/safra.cc, tests/core/sccif.cc, tests/core/syntimpl.cc,
	tests/core/taatgba.cc, tests/core/tostring.cc, tests/core/trival.cc,
	tests/core/twagraph.cc, tests/ltsmin/modelcheck.cc,
	spot/parseaut/scanaut.ll, spot/parsetl/scantl.ll: Include config.h.
	* spot/gen/Makefile.am, spot/graph/Makefile.am,
	spot/kripke/Makefile.am, spot/ltsmin/Makefile.am,
	spot/parseaut/Makefile.am, spot/parsetl/Makefile.am,
	spot/priv/Makefile.am, spot/ta/Makefile.am, spot/taalgos/Makefile.am,
	spot/tl/Makefile.am, spot/twa/Makefile.am, spot/twaalgos/Makefile.am,
	spot/twaalgos/gtec/Makefile.am, tests/Makefile.am: Add the -I lib/
	flags.
	* tests/sanity/includes.test: Catch missing config.h in *.cc, and
	diagnose config.h in *.hh.
	* tests/sanity/style.test: Better diagnostics.

2018-02-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: fix definition of DOT.

2018-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: $CI_JOB_TOKEN does not seem to work.

2018-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Ignore tags and use $CI_JOB_TOKEN.

2018-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump version to 2.5.1.dev

	* NEWS, configure.ac: Here.

2018-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.5.1

	* NEWS, configure.ac, doc/org/setup.org: Set version to 2.5.1.

2018-02-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update link to dev tarball

	* doc/org/install.org: Point to the gitlab-ci artefacts.

2018-02-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Trigger spot-web and spot-sandbox rebuilds

2018-02-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix handling of Rabin-like input for dnf_to_dca()

	The bug is mentioned by Maximilien Colange in a comment to issue #317,
	but turned out to be unrelated to that original issue.

	* spot/twaalgos/totgba.cc (dnf_to_streett): Save the correspondence
	between the created states an the DNF clause in a named property.
	* doc/org/concepts.org, spot/twaalgos/totgba.hh: Mention the new
	property.
	* spot/twaalgos/cobuchi.cc (save_inf_nca_st): Rewrite using the named
	property.  Relying on seen marks and trying to deduce the matching
	original clause could only work from plain Rabin.
	* tests/core/dca.test: Add the test from Maximilien.
	* NEWS: Mention the issue.

2018-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minor code cleanups

	* spot/twaalgos/cobuchi.cc, spot/twaalgos/totgba.cc: Here.

2018-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Adjust artifact paths for distcheck.

2018-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix tra_to_tba()

	Fixes #324, reported by Tobias Meggendorfer and František Blahoudek.

	* spot/twa/acc.hh (rs_pairs_view::paired_with): Rename as...
	(rs_pairs_view::paired_with_fin):... this and adjust the code.
	* spot/twaalgos/remfin.cc: Use paired_with_fin instead of
	paired_with, and do it once per pair.
	* tests/core/remfin.test: Add a test case.
	* NEWS: Mention the issue.

2018-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify_acceptance: remove one useless call

	* spot/twaalgos/cleanacc.cc (merge_identical_marks_here): Do not call
	cleanup_acceptance_here(), as this has already been done.

2018-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix is_generalized_rabin() and is_generalized_streett()

	Fixes #325.

	* spot/twa/acc.cc: Here.
	* tests/core/accsimpl.test: New test case.
	* NEWS: Mention the issue.

2018-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitlab-ci.yml: Create build tasks.

2018-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: cleanup temporary files leftover by a test case

	* tests/python/otfcrash.py: Remove the file generated by divine.

2018-01-24  Maximilien Colange  <colange@lrde.epita.fr>

	Improve IAR construction

	spot::iar() was fixed to handle correctly Rabin-like conditions.
	It also now supports Streett-like conditions.

	* NEWS, spot/twaalgos/postproc.cc: document it
	* spot/twaalgos/rabin2parity.cc, spot/twaalgos/rabin2parity.hh:
	  implement it
	* tests/core/rabin2parity.test, tests/python/except.py: test it

2018-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a bug in streett_to_generalized_buchi

	Fixes #320.

	* spot/twaalgos/totgba.cc: Fix the bug.
	* NEWS: Mention the problem.
	* tests/core/streett.test: Add test case.

2018-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.5.0.dev.

2018-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.5

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2018-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	multiple adjustments for Debian stable

	* tests/python/ipnbdoctest.py: Adjust to Python <3.6.
	* tests/python/_autparserr.ipynb: Adjust to older IPython version.
	* tests/python/stutter-inv.ipynb: Avoid pandas because its output
	varies from version to version.

2018-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more coverage

	* python/spot/impl.i: Add missing bindings from remprop.hh
	* tests/python/except.py: New file to test several error cases.
	* tests/Makefile.am: Add it.
	* spot/twaalgos/rabin2parity.cc (iar): Fix error message.

2018-01-19  Florian Perlié-Long  <florian.perlie-long@epita.fr>

	* doc/tl/tl.tex: Typos

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	tl/hierarchy: Optimize is_persistence/recurrence processing chains

	* spot/tl/hierarchy.cc: Here.

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/totgba: Avoid to construct useless SCC in dnf_to_streett()

	* spot/twaalgos/totgba.cc: Here.

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	cobuchi: nsa_to_nca() takes is_useful_scc() into account

	* spot/twaalgos/cobuchi.cc: Add scc_info_options::TRACK_SUCCS in
	nsa_to_nca().
	* spot/twaalgos/sccinfo.cc: Add scc_info_options::TRACK_SUCCS and
	is_useful_scc() in states_on_acc_cycle_of().

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/cobuchi: Optimize aug. subset construction when aut. is det

	* spot/twaalgos/cobuchi.cc: Avoid the product of an automaton A and its
	power construction Pow(A) when A is deterministic.

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	remfin: add is_buchi_realizable() method

	* NEWS: Update.
	* spot/tl/hierarchy.cc: Replace rabin_to_buchi_maybe() with
	is_buchi_realizable().
	* spot/twaalgos/remfin.cc: Implement it.
	* spot/twaalgos/remfin.hh: Declare it.

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot: small factorisations, improvements and typos

	* spot/tl/hierarchy.cc: Factorisations, improvements.
	* spot/twaalgos/totgba.cc:  Typos.

2018-01-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	sccinfo: Fix bug in states_on_acc_cycle_of_rec()

	* spot/twaalgos/sccinfo.cc: Here.

2018-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more doxygen

	This introduce some section for acceptance transformation, and add
	more comments in a few places.

	* spot/taalgos/emptinessta.hh, spot/twa/twa.hh, spot/twa/twagraph.hh,
	spot/twaalgos/bfssteps.hh, spot/twaalgos/cleanacc.hh,
	spot/twaalgos/degen.hh, spot/twaalgos/dualize.hh,
	spot/twaalgos/parity.hh, spot/twaalgos/rabin2parity.hh,
	spot/twaalgos/remfin.hh, spot/twaalgos/sccinfo.hh,
	spot/twaalgos/sepsets.hh, spot/twaalgos/split.hh,
	spot/twaalgos/totgba.hh: More doxygen.
	* spot/twa/twagraph.cc: Typos in comments.

2018-01-16  Maximilien Colange  <colange@lrde.epita.fr>

	Rabin to parity translation

	* spot/twaalgos/rabin2parity.cc, spot/twaalgos/rabin2parity.hh:
	  implement it
	* spot/twaalgos/postproc.cc: use it
	* spot/twaalgos/Makefile.am: build the new files
	* NEWS: document the new function
	* python/spot/impl.i: Python bindings for the new function
	* tests/Makefile.am, tests/core/rabin2parity.test: test the new function

2018-01-16  Maximilien Colange  <colange@lrde.epita.fr>

	Typos and duplicates

	* spot/twaalgos/degen.cc: typo in an error message
	* NEWS: fix typos and remove duplicates

2018-01-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twaalgos: more doxygen comments

	* spot/twaalgos/product.hh, spot/twaalgos/remfin.hh,
	spot/twaalgos/sum.hh, spot/twaalgos/totgba.hh: Improve documentation.

2018-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around issue #317

	* spot/twaalgos/cobuchi.cc: Call sbacc() on transition-based input.
	* tests/Makefile.am: Remove XFAIL_TESTS.
	* NEWS: Adjust.

2018-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add support for co-Büchi output

	* spot/twaalgos/cobuchi.cc, spot/twaalgos/cobuchi.hh (to_nca): New
	function.
	(weak_to_cobuchi): New internal function, used in to_nca and to_dca
	when appropriate.
	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Implement
	the CoBuchi option.
	* python/spot/__init__.py: Support it in Python.
	* bin/common_post.cc: Add support for --buchi.
	* bin/autfilt.cc: Remove the --dca option.
	* tests/core/dca.test, tests/python/automata.ipynb: Adjust and add
	more tests.  In particular, add more complex persistence and
	recurrence formulas to the list of dca.test.
	* tests/python/dca.test: Adjust and rename to...
	* tests/core/dca2.test: ... this.  Add more tests, to the point
	that this is now failing, as described in issue #317.
	* tests/python/dca.py: Remove.
	* tests/Makefile.am: Adjust.

2018-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix streett_to_generalized_buchi

	Fixes #316.

	* spot/twaalgos/totgba.cc: Fix confusing definition of scc_inf_wo_fin.
	* tests/python/streett_totgba2.py: New test case.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2018-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	misc: fix some down_cast issues

	We had new failure on MinGW with GCC believing that some pointer
	returned by down_cast could be NULL; and the down_cast function was in
	the global namespace.

	* spot/misc/casts.hh: Rewrite.
	* NEWS: Mention the small issues.
	* tests/core/ikwiad.cc, tests/core/ngraph.cc: Adjust to use
	spot::down_cast instead of down_cast.

2018-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: rework the dlsym interface to please GCC snapshot

	* spot/ltsmin/ltsmin.cc: Avoid C-style function casts with
	incompatible types.

2018-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	mark custom hash functions as noexcept

	* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/misc/hash.hh,
	spot/twa/acc.hh, spot/twaalgos/cobuchi.cc, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/parity.cc,
	spot/twaalgos/powerset.cc, spot/twaalgos/product.cc,
	spot/twaalgos/stutter.cc, spot/twaalgos/totgba.cc,
	spot/twaalgos/toweak.cc: Mark hash function as noexcept to please GCC
	snapshot.

2018-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reorganize, in preparation for the 2.5 release.

2018-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some bibliographic references

	* spot/twaalgos/cobuchi.hh, spot/twaalgos/totgba.hh: Here.

2018-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --gf-implies

	* spot/gen/formulas.cc, spot/gen/formulas.hh: Implement
	LTL_GF_IMPLIES.
	* bin/genltl.cc: Add --gf-implies.
	* NEWS: Mention it.
	* tests/core/genltl.test: Use it.

2018-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add colored parity support to postproc and translate

	* python/spot/impl.i: Bind is_colored().
	* python/spot/__init__.py: Add Colored support to postproc.
	* tests/python/parity.py: Add a test case.

2018-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/parity.hh: Fix typo in comment.

2018-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add support for colored-parity

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh: Add support
	for a colored option.
	* bin/common_post.cc, bin/common_post.hh bin/autfilt.cc,
	bin/ltl2tgba.cc, bin/dstar2tgba.cc: Add support for --colored-parity.
	* bin/ltldo.cc: Adjust as well for consistency, even if --parity and
	--colored-parity is not used here.
	* tests/core/parity2.test: Add tests.
	* doc/org/autfilt.org, doc/org/ltl2tgba.org: Add examples.
	* NEWS: Mention --colored-parity.

2018-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: remove error recovery checks from the public notebooks

	* tests/python/_autparserr.ipynb: New files, containing error
	checking code from automata-io.ipynb and piperead.ipynb.
	* tests/python/automata-io.ipynb: Remove error checks, and pipe
	examples from piperead.ipynb.
	* tests/python/piperead.ipynb: Delete.
	* tests/python/word.ipynb: Move error checking code...
	* tests/python/_word.ipynb: ... in this new file.
	* doc/org/tut.org, tests/Makefile.am: Adjust.

2018-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: upgrade notebook format to v4

	Fixes #311.

	* tests/python/ipnbdoctest.py: Adjust to process the new format,
	with a lot of inspiration from Vcsn's copy of this file.
	* tests/python/_altscc.ipynb, tests/python/_aux.ipynb,
	tests/python/acc_cond.ipynb, tests/python/accparse.ipynb,
	tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
	tests/python/atva16-fig2b.ipynb, tests/python/automata-io.ipynb,
	tests/python/automata.ipynb, tests/python/decompose.ipynb,
	tests/python/formulas.ipynb, tests/python/gen.ipynb,
	tests/python/highlighting.ipynb, tests/python/ltsmin-dve.ipynb,
	tests/python/ltsmin-pml.ipynb, tests/python/parity.ipynb,
	tests/python/piperead.ipynb, tests/python/product.ipynb,
	tests/python/randaut.ipynb, tests/python/randltl.ipynb,
	tests/python/stutter-inv.ipynb, tests/python/testingaut.ipynb,
	tests/python/word.ipynb: Upgrade to the new format.
	* NEWS: Mention the change.

2018-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: detect remove_fin failures

	Fixes #314, reported by František Blahoudek.

	* bin/ltlcross.cc: Here.
	* tests/core/ltlcross3.test: Add new test case.
	* NEWS: Mention the bug.

2018-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: use simplify_acceptance

	* spot/twaalgos/remfin.cc: Simplify acceptance before trying the
	different strategies.
	* spot/twaalgos/cleanacc.cc: Skip simplify_complementary_marks_here()
	on generalized Büchi.
	* tests/core/remfin.test, tests/python/tra2tba.py: Adjust.
	* spot/twaalgos/totgba.cc: Simplify the result of Streett->GBA.
	* NEWS: Adjust.

2018-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify_acceptance: fix handling of first edge

	Fixes #315.

	* spot/twaalgos/cleanacc.cc (simplify_acceptance_here): Do not
	compare the first edge against previous_a.
	* tests/core/accsimpl.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2018-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: SVG display of word as signals

	Fixes #309.

	* python/spot/__init__.py (twa_word.as_svg, twa_word.show): New
	  methods.
	* tests/python/word.ipynb: Use them.
	* NEWS: Mention them.

2018-01-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump copyright year

	* bin/common_setup.cc, debian/copyright: Here.

2018-01-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parity: fix error handling

	* spot/twaalgos/parity.cc: Do not throw a pointer to an exception,
	throw the exception directly.  Factor all the throwing code in a
	function.
	* tests/python/parity.py: Add test case.

2018-01-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add Python bindings for Parity changes

	* python/spot/__init__.py: Here.
	* tests/python/parity.py: New file.
	* tests/Makefile.am: Add it.

2018-01-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: introduce --parity output

	* spot/twaalgos/postproc.hh, spot/twaalgos/postproc.cc: Add parity
	  options.
	* bin/common_post.cc: Add support for --parity.
	* NEWS: Mention it.
	* tests/core/parity2.test: New file.
	* tests/Makefile.am: Add it.

2017-12-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: obsolete paragraph in ltlcross doc

	Reported by František Blahoudek.

	* bin/man/ltlcross.x: Remove obsolete paragraph with reference to
	columns in_states, in_edges, in_transitions, and in_acc that
	were removed in 1.99.3.

2017-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.4.4.dev.

2017-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.4.4

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2017-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: more fixes related to #312

	The issue also exists with determinism.

	* tests/core/sbacc.test: New test case.
	* spot/twaalgos/sbacc.cc: Fix it.
	* NEWS: Update.

2017-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: fix sbacc producing complete automata marked as incomplete

	Fixes #312, reported by František Blahoudek.

	* spot/twaalgos/sbacc.cc: Detect the case were this can happen,
	and fix it.
	* tests/core/sbacc.test: New test case.
	* NEWS: Mention the bug.

2017-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_tgba: fix handling of CNF with multiple unit clauses

	Fixes #313, reported by František Blahoudek.

	* spot/twaalgos/totgba.cc (to_generalized_buchi): Fix it.
	* tests/core/remfin.test: Test it.
	* NEWS: Mention it.

2017-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: more fixes related to #312

	The issue also exists with determinism.

	* tests/core/sbacc.test: New test case.
	* spot/twaalgos/sbacc.cc: Fix it.
	* NEWS: Update.

2017-12-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/stutter.cc (highlight_vector): Replace existing colors.

2017-12-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: highlighting with vector of bools

	* python/spot/__init__.py: Deal with vectors of bools.
	* tests/python/highlighting.ipynb: Test this.

2017-12-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: fix sbacc producing complete automata marked as incomplete

	Fixes #312, reported by František Blahoudek.

	* spot/twaalgos/sbacc.cc: Detect the case were this can happen,
	and fix it.
	* tests/core/sbacc.test: New test case.
	* NEWS: Mention the bug.

2017-12-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	to_tgba: fix handling of CNF with multiple unit clauses

	Fixes #313, reported by František Blahoudek.

	* spot/twaalgos/totgba.cc (to_generalized_buchi): Fix it.
	* tests/core/remfin.test: Test it.
	* NEWS: Mention it.

2017-12-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: give access to the "product-states" property

	* python/spot/impl.i (get_product_states, set_product_states): New.
	* tests/python/product.ipynb: Use it.
	* NEWS: Mention it.

2017-12-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: detect incorrect initial state

	* spot/twaalgos/sccinfo.cc: Here.
	* tests/python/sccinfo.py: Test it.

2017-12-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: allow spot.formula(spot.formula(...))

	* python/spot/__init__.py: Recognize if the input is already a
	formula.
	* tests/python/formulas.ipynb: Test this.

2017-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: two new functions

	* spot/twaalgos/stutter.hh, spot/twaalgos/stutter.cc: Introduce
	is_stutter_invariant_forward_closed and
	make_stutter_invariant_forward_closed_inplace.
	* tests/python/stutter-inv.ipynb: Use them.

2017-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ipnbdoctest.py: Work around different pandas versions.

2017-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version number

	* configure.ac, NEWS: Update to 2.4.3.dev.

2017-12-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.4.3

	* NEWS, configure.ac, doc/org/setup.org: Update.

2017-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce check_determinism()

	* spot/twaalgos/isdet.hh, spot/twaalgos/isdet.cc (check_determinism):
	New function.
	* NEWS: Mention it.
	* tests/python/semidet.py: New file.
	* tests/Makefile.am: Add it.

2017-12-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix URL to last successful build

	* doc/org/install.org: Here.

2017-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for computing operator nesting depth

	* spot/tl/hierarchy.hh, spot/tl/hierarchy.cc (nesting_depth): New
	function.
	* python/spot/__init__.py: Also make it a method of formula in Python
	* bin/common_output.cc, bin/common_output.hh: Implement
	--stats=%[OP]n.
	* NEWS: Mention it.
	* tests/core/format.test, tests/python/formulas.ipynb: Test it.

2017-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doxygen doc: minor improvements

	* doc/footer.html: Make the footer XML compatible.
	* doc/mainpage.dox: Fix references to modules.
	* spot/tl/formula.hh: Introduce a hierarchy module.
	* spot/tl/hierarchy.hh: Use it.

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix URL to last successful build

	* doc/org/install.org: Here.

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: do not redefine argp_bug_address

	This prevented static compilation on MinGW.

	* bin/common_setup.cc: Here.

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix usage pf importlib.util.find_spec for newer pythons

	* tests/python/ipnbdoctest.py: Here.  It seems importlib
	does not load importlib.util anymore.

2017-11-28  Maximilien Colange  <colange@lrde.epita.fr>

	Fix a typo in a test

	* tests/sanity/namedprop.test: fix typo for proper output

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix ASAN reports about mismatched emplace new/delete

	* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/tl/formula.cc,
	spot/tl/formula.hh: Here.
	* NEWS: Mention the bug.

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	couvreur99_new: fix two memory leaks found by ASAN

	This only occurs when doing the emptiness check of twa with allocated
	states.

	* spot/twaalgos/couvreurnew.cc: Here.
	* NEWS: Mention the bug.

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some g++-snapshot warnings

	* spot/twaalgos/couvreurnew.cc: explicit operator bool is not used by
	return.

2017-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: do not redefine argp_bug_address

	This prevented static compilation on MinGW.

	* bin/common_setup.cc: Here.

2017-11-27  Maximilien Colange  <colange@lrde.epita.fr>

	Finer control over the build of the documentation

	* Makefile.am: move the doc subdirectory to its own variable

2017-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: reduce the memory/time footprint of ltl2dstar.test

	* tests/core/ltl2dstar.test: Reduce the amount of tests performed on
	one formula that is problematic for ltl2dstar.

2017-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: git rid of all the tool=tool assignents

	Our use of
	  ltl2tgba=ltl2tgba
	  autfilt=autfilt
	  ...
	all over the test cases comes from the time where those tools were not
	in PATH and we actually had something like
	  ltl2tgba=../../bin/ltl2tgba
	  autfilt=../../bin/autfilt

	But today that is useless, and we prefer to write ltl2tgba rather than
	$ltl2tgba, so let's remove this old cruft.

	* tests/core/basimul.test, tests/core/det.test, tests/core/lbt.test,
	tests/core/lenient.test, tests/core/ltl2dstar.test,
	tests/core/ltl2dstar2.test, tests/core/ltl2dstar3.test,
	tests/core/ltl2dstar4.test, tests/core/ltlcross2.test,
	tests/core/ltlcross3.test, tests/core/ltlcross4.test,
	tests/core/ltlcrossce2.test, tests/core/ltldo.test,
	tests/core/ltlfilt.test, tests/core/optba.test,
	tests/core/prodor.test, tests/core/rand.test,
	tests/core/randomize.test, tests/core/remfin.test,
	tests/core/satmin.test, tests/core/sbacc.test,
	tests/core/strength.test, tests/core/stutter-ltl.test,
	tests/core/stutter-tgba.test, tests/core/unabbrevwm.test,
	tests/core/unambig.test: Get rid of all tool=tool assignments.

2017-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename one printable_formula

	We currently have 3 printable_formula classes in Spot; let's reduce
	this to 2.

	* bin/common_output.cc (anonymous::printable_formula): Rename to...
	(anonymous::printable_formula_with_location): ... this.

2017-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix doxygen doc build

	* debian/rules: Build it last.
	* configure.ac: Add missing comma.

2017-11-24  Maximilien Colange  <colange@lrde.epita.fr>

	Fix ltlsynt tests

	* tests/core/ltlsynt.test: Escape newlines and test PGsolver printer

2017-11-24  Maximilien Colange  <colange@lrde.epita.fr>

	Heavily optimize tgba_determinize()

	* spot/twaalgos/determinize.cc: a lot of optimizations (and refactoring)

2017-11-24  Maximilien Colange  <colange@lrde.epita.fr>

	Fix script running IPython tests

	* tests/python/ipnbdoctest.py: skip test when jupyter is not found

2017-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: accept additional arguments for map and traverse

	Fixes #306.

	* spot/tl/formula.hh, python/spot/__init__.py: Implement this
	in C++ and Python.
	* doc/org/tut03.org: Document (and indirectly test) it.
	* NEWS: Mention it.

2017-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Makefile.am (DISTCLEANFILES): Avoid multiple definitions.

2017-11-23  Maximilien Colange  <colange@lrde.epita.fr>

	Improve ltlsynt interface

	To ease debugging and testing, ltlsynt can output the synthesized
	strategy as an automaton, not just an aiger circuit.
	Also, its exit code has been changed to something meaningful.

	* bin/ltlsynt.cc: Various improvements: options, exit code, code style
	* spot/twaalgos/aiger.hh, spot/twaalgos/aiger.cc,
	  spot/twaalgos/Makefile.am: Move the aiger printer to separate files
	* tests/core/ltlsynt.test: Clean up and update test file
	* tests/Makefile.am: Add the test file to the test suite
	* NEWS: document the new aiger printer
	* doc/org/concepts.org: document the named property "synthesis-outputs",
	  used by print_aiger

2017-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/dca.test: Fix location of temporary.

2017-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not run optipng anymore

	* doc/Makefile.am (dist-hook): Remove.
	* HACKING: Adjust.

2017-11-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce formula::is_leaf()

	Fixes #307.

	* spot/tl/formula.hh: Here.
	* tests/python/ltlparse.py: Test it.
	* NEWS: Mention it.

2017-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: implement --enable-doxygen and do not distribute the doc

	Fixes #299.

	* configure.ac, doc/Makefile.am: Adjust.
	* NEWS, HACKING, README: Document the change.
	* doc/dot.in: Delete, not used anymore.
	* doc/Doxyfile.in: Adjust to not look for dot.
	* debian/rules: Use --enable-doxygen.

2017-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix usage pf importlib.util.find_spec for newer pythons

	* tests/python/ipnbdoctest.py: Here.  It seems importlib
	does not load importlib.util anymore.

2017-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix python/dca.test for VPATH builds

	* tests/python/dca.test: Do not assume the run script is in the source
	directory.

2017-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: convert all images to svg

	Suggested in #299.

	* doc/org/autfilt.org, doc/org/concepts.org, doc/org/dstar2tgba.org,
	doc/org/genaut.org, doc/org/hierarchy.org, doc/org/hoa.org,
	doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/satmin.org,
	doc/org/tut11.org, doc/org/tut23.org, doc/org/tut24.org,
	doc/org/tut30.org, doc/org/tut31.org, doc/org/tut50.org,
	doc/org/tut51.org: Adjust all dot outputs to produce svg.
	* doc/org/arch.tex, doc/org/hierarchy.tex, doc/org/satmin.tex: Adjust
	to produce a pdf with 12pt text.
	* doc/Makefile.am: Adjust the generation of arch.svg, hierarchy.svg,
	and satmin.svg: From above.
	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Adjust dot arguments
	to produce svg with 12pt text (the default was 14pt).
	* doc/org/spot.css: Use Lato as the main font for consistency with
	automata.
	* HACKING: pdf2svg is now required to build the doc.

2017-11-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: use SVG in the doxygen manual

	Suggested in #299.

	* doc/Doxyfile.in: Here.

2017-11-22  Maximilien Colange  <colange@lrde.epita.fr>

	Fix a typo in a test

	* tests/sanity/namedprop.test: fix typo for proper output

2017-11-21  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	hierarchy: Rewrite is_recurrence(), is_persistence() and add tests

	* spot/tl/hierarchy.cc: Rewrite is_recurrence(), is_persistence()
	* spot/tl/hierarchy.hh: Fix typo.
	* tests/core/hierarchy.test: Add tests.

2017-11-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix ASAN reports about mismatched emplace new/delete

	* spot/misc/bitvect.cc, spot/misc/bitvect.hh, spot/tl/formula.cc,
	spot/tl/formula.hh: Here.
	* NEWS: Mention the bug.

2017-11-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	couvreur99_new: fix two memory leaks found by ASAN

	This only occurs when doing the emptiness check of twa with allocated
	states.

	* spot/twaalgos/couvreurnew.cc: Here.
	* NEWS: Mention the bug.

2017-11-17  Maximilien Colange  <colange@lrde.epita.fr>

	Mark bdd_hash as noexcept

	* spot/misc/bddlt.hh: do it

2017-11-17  Etienne Renault  <renault@lrde.epita.fr>

	misc: improve previous commit (thanks to A. Duret-Lutz)

	* spot/misc/game.cc: here.

2017-11-17  Etienne Renault  <renault@lrde.epita.fr>

	Fixes #304

	* spot/misc/game.cc: here.

2017-11-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce is_obligation(f)

	This is not optimal yet because it still construct a minimal WDBA
	internally, but it's better than the previous way to call
	minimize_obligation() since it can avoid constructing the minimized
	automaton in a few more cases.

	* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: Introduce
	is_obligation().
	* bin/ltlfilt.cc: Wire it to --obligation.
	* spot/twaalgos/minimize.cc: Implement is_wdba_realizable(),
	needed by the above.
	* tests/core/obligation.test: Test it.
	* bin/man/spot-x.x, NEWS: Document it.

2017-11-16  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	hierarchy: Fix #303

	* spot/tl/hierarchy.cc: code was actually reachable.

2017-11-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	wdba_minimization: make the reverse check first

	* spot/twaalgos/minimize.cc (minimize_obligation): When
	needed (i.e. in the non-deterministic case), make the reverse check
	before the forward check, because it does not require translating the
	negated formula.

2017-11-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	wdba_minimization: avoid translating !f when input is deterministic

	* spot/twaalgos/minimize.cc (wdba_minimization): Here.

2017-11-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	wdba_minimization: skip one inclusion test on deterministic input

	* spot/twaalgos/minimize.cc (wdba_minimization): Improve handling of
	deterministic input by not doing the powerset/wdba_scc_is_accepting
	duo, and skipping the one inclusion test.

2017-11-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some g++-snapshot warnings

	* spot/twaalgos/couvreurnew.cc: explicit operator bool is not used by
	return.

2017-11-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstar2tgba: remove some useless call

	* bin/dstar2tgba.cc: Do not call to_generalized_buchi(), it's
	already done in postproc.

2017-11-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add support for SPOT_OOM_ABORT

	* bin/common_setup.cc: Here.
	* NEWS, bin/man/spot-x.x: Document it.

2017-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: ltl3hoa -> ltl3tela

	Fixes #296.

	* doc/org/ltlcross.org: Here.

2017-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.4.2.dev

	* configure.ac, NEWS: Here.

2017-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.4.2

	* NEWS, configure.ac, doc/org/setup.org: Update.

2017-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add shorthand for ltl3tela

	That's the new name of ltl3hoa.

	* bin/common_trans.cc: Add it.

2017-11-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	symplify_acceptance: More rules

	Fixes #297. Implement the following rules.

	Fin(i) & Fin(j) by f if i and j are complementary
	Fin(i) & Inf(i) by f
	Inf(i) | Inf(j) by t if i and j are complementary
	Fin(i) | Inf(i) by t.

	* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Here.
	* tests/python/merge.py: Add more test cases.
	* NEWS: Mention the change.

2017-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/bdddict.cc: Trap SIGABORT so coverage works.

2017-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: add a test for bdd_dict::assert_emptiness()

	This improves the coverage for bdd_dict::assert_emptiness() and
	bdd_dict::dump().

	* tests/core/bdddict.cc, tests/core/bdddict.test: New files.
	* tests/Makefile.am, tests/core/.gitignore: Adjust.

2017-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bdd_dict: remove register_all_propositions_of

	* spot/twa/bdddict.cc, spot/twa/bdddict.hh: Here.
	* NEWS: Mention this removal.

2017-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc::name(): recognize generalized Streett

	* spot/twa/acc.cc: Implement this.
	* tests/python/randaut.ipynb: Adjust.

2017-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: introduce --acceptance-is

	Fixes #288.

	* bin/autfilt.cc: Implement it.
	* spot/twa/acc.cc, spot/twa/acc.hh: Add
	acc_cond::is_generalized_streett, acc_cond::operator==, and
	acc_cond::operator!=.
	* tests/core/randaut.test: Add some tests.
	* NEWS: Mention it.

2017-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc::name(): recognize Fin-less acceptance

	* spot/twa/acc.cc: Implement this.
	* tests/python/automata.ipynb, tests/python/randaut.ipynb,
	tests/python/stutter-inv.ipynb: Adjust.

2017-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add %g options to print acceptance name

	Fixes #289.

	* spot/twaalgos/stats.cc, spot/twaalgos/stats.hh,
	bin/common_aoutput.cc, bin/common_aoutput.hh: plug %g and %G into
	acc_cond::name() when arguments are given as %[arg]g.  or %[arg]G.
	* tests/core/acc2.test: Add test case.
	* doc/org/randaut.org, NEWS: Document it.

2017-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: introduce acc_cond::name()

	* spot/twa/acc.cc, spot/twa/acc.hh (acc_cond::name): New method.
	* spot/twaalgos/dot.cc: Use it.
	* tests/python/acc_cond.ipynb: Add a small test.
	* NEWS: Mention it.

2017-11-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce stutter_invariant_letters()

	* spot/twaalgos/stutter.cc,
	spot/twaalgos/stutter.hh (stutter_invariant_letters)
	(stutter_invariant_states): Get rid of the broken local variant.
	* tests/python/stutter-inv.ipynb, NEWS: Document.
	* python/spot/impl.i: Bind vector<bdd>.

2017-11-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	test the SPOT_SATSOLVER envvar

	* tests/core/satmin3.test: New file.
	* tests/Makefile.am: Add it.
	* spot/misc/satsolver.cc: Cleanup error messages.
	* spot/misc/satsolver.hh (satsolver_get_solution): Remove this unused
	function.
	* tests/core/readsat.cc, tests/core/readsat.test: Delete (unused).
	* tests/Makefile.am: Adjust.

2017-11-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	test the SPOT_BDD_TRACE envvar

	* tests/core/bdd.test: New file.
	* tests/Makefile.am: Add it.

2017-11-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	random: remove bmrand() and prand()

	We do not need these functions in Spot.

	* spot/misc/random.cc, spot/misc/random.hh (bmrand, prand): Remove.
	* NEWS: Mention it.

2017-11-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: improve coverage

	* tests/core/parseaut.test: Add more tests.

2017-11-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: fix some doxygen commands

	* spot/twaalgos/iscolored.hh, spot/twaalgos/parity.hh: Here.

2017-11-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	overhaul the stutter-invariance checks

	* spot/twaalgos/stutter.cc, spot/twaalgos/stutter.hh: Cleanup and
	document the api.
	* spot/twa/twa.hh, doc/mainpage.dox: Add a stutter-invariant section.
	* tests/python/stutter-inv-states.ipynb: Rename as ...
	* tests/python/stutter-inv.ipynb: ... this, and add more comments.
	* tests/Makefile.am, doc/org/tut.org: Adjust renaming.
	* bench/stutter/stutter_invariance_randomgraph.cc,
	bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/Makefile.am: Make it compile again.
	* bin/autfilt.cc: Call inplace variants.
	* NEWS: Mention the overhaul.

2017-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update for gpg-signed Debian repository

	* doc/org/install.org: Mention the GPG key.

2017-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update for gpg-signed Debian repository

	* doc/org/install.org: Mention the GPG key.

2017-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve wording

	* doc/org/tut04.org: This tests equivalence, not equality.

2017-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add shorthand for ltl3tela

	That's the new name of ltl3hoa.

	* bin/common_trans.cc: Add it.

2017-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: simplify mark_t::subset()

	* spot/twa/acc.hh: Here.

2017-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve wording

	* doc/org/tut04.org: This tests equivalence, not equality.

2017-10-19  Maximilien Colange  <colange@lrde.epita.fr>

	Heavily rewrite and optimize the determinization

	* NEWS: document the rewrite
	* spot/twaalgos/determinize.cc: lots of code optimizations
	* tests/core/safra.test, tests/python/highlighting.ipynb,
	  tests/python/simstate.py: Update tests

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	document the recent changes to implication rules

	* doc/tl/tl.tex: This adds the rules implemented in 0a2bca137
	for #293.

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix the example for ltlcross --verbose

	* doc/org/ltlcross.org: Use SPOT_HOA_TOLERANT=1 to work around a bug
	in ltl3ba -H1.

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: add missing crossrefs in spot(7)

	Part of #292.

	* bin/man/spot.x, bin/spot.cc: Here.

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: improve the logic of some implication checks

	Fixes #293.

	* spot/tl/simplify.cc: Test implications that would yield tt or ff
	first.  In rules of the form "if a => b, a op b = b" also check
	if b => a, and in this case return smallest(a,b).
	* tests/core/reduccmp.test: Add a test.
	* NEWS: Mention it.

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genaut: fix ks_nca

	* spot/gen/automata.cc (ks_nca): The output is complete.
	* tests/core/genaut.test: Add test.
	* NEWS: Mention the bug.

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: do not create scc_info

	* spot/twaalgos/simulation.cc: Remove useless creation of scc_info
	object.

2017-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.4.1.dev

	* NEWS, configure.ac: Here.

2017-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	document the recent changes to implication rules

	* doc/tl/tl.tex: This adds the rules implemented in 0a2bca137
	for #293.

2017-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add support for --reference translators

	Suggested by Tobias Meggendorfer.  Fixes #295.

	* bin/ltlcross.cc, bin/common_trans.hh, bin/common_trans.cc: Implement
	this --reference option.
	* NEWS, doc/org/ltlcross.org: Document it.
	* tests/core/ltlcross3.test: Test it.

2017-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix the example for ltlcross --verbose

	* doc/org/ltlcross.org: Use SPOT_HOA_TOLERANT=1 to work around a bug
	in ltl3ba -H1.

2017-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: mention ltlsynt in spot(7)

	Fixes #292.

	* bin/man/spot.x, bin/spot.cc: Add missing cross references.
	* tests/sanity/bin.test: Add safety checks so we do not forget
	again.

2017-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: add missing crossrefs in spot(7)

	Part of #292.

	* bin/man/spot.x, bin/spot.cc: Here.

2017-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross, autcross, ltldo: support --fail-on-timeout

	Suggested by Tobias Meggendorfer.  Fixes #294.

	* bin/autcross.cc, bin/ltlcross.cc, bin/ltldo.cc: Add the option.
	* tests/core/autcross3.test, tests/core/ltlcross3.test,
	tests/core/ltldo.test: Test it.
	* tests/Makefile.am: Add autcross3.test.
	* NEWS, doc/org/autcross.org, doc/org/ltlcross.org, doc/org/ltldo.org:
	Mention the option.
	* THANKS: Add Tobias.

2017-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: improve the logic of some implication checks

	Fixes #293.

	* spot/tl/simplify.cc: Test implications that would yield tt or ff
	first.  In rules of the form "if a => b, a op b = b" also check
	if b => a, and in this case return smallest(a,b).
	* tests/core/reduccmp.test: Add a test.
	* NEWS: Mention it.

2017-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: add support for -x tls-impl=N

	This is long overdue, and we probably want to use tls-impl=1 in
	ltlsynt.

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh:
	Add support for tls-impl=N.
	* tests/core/ltl2tgba.test: Test it.
	* bin/spot-x.cc, NEWS: Document it.

2017-10-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: detect stutter-invariance at the state level

	* spot/twaalgos/stutter.cc, spot/twaalgos/stutter.hh: Implement
	stutter-invariance detection at the state level.
	* python/spot/impl.i: Instantiate std::vector<bool>
	* tests/python/stutter-inv-states.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.

2017-10-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genaut: fix ks_nca

	* spot/gen/automata.cc (ks_nca): The output is complete.
	* tests/core/genaut.test: Add test.
	* NEWS: Mention the bug.

2017-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: do not create scc_info

	* spot/twaalgos/simulation.cc: Remove useless creation of scc_info
	object.

2017-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: add ways to speedup scc_info

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Add an optional
	argument to abort on accepting SCC, to not keep track of SCC states,
	and some one_accepting_scc() method.
	* NEWS: Mention it.
	* bin/ltlcross.cc, spot/twaalgos/alternation.cc,
	spot/twaalgos/cobuchi.cc, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/isunamb.cc,
	spot/twaalgos/powerset.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc,
	spot/twaalgos/totgba.cc: Adjust arguments passed to scc_info.

2017-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: improve split_on_sets

	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh (split_on_set):
	Allow names to be preserved
	* python/spot/impl.i: Instantiate std::vector<spot::twa_graph_ptr>.

2017-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: add support for -n

	Fixes #287.

	* bin/ltldo.cc: Implement it.
	* tests/core/ltldo.test: Test it.
	* NEWS: Mention the new feature.

2017-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.4.1

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2017-10-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix the dot2tex example

	* doc/org/oaut.org: Fix the call to convert.

2017-10-03  Florian Perlié-Long  <florian.perlie-long@epita.fr>

	* HACKING, doc/tl/tl.tex, spot/tl/formula.hh: Typos

2017-10-03  Maximilien Colange  <colange@lrde.epita.fr>

	Typos

	* NEWS: typos

2017-10-03  Florian Perlié-Long  <florian.perlie-long@epita.fr>

	* HACKING, doc/tl/tl.tex, spot/tl/formula.hh: Typos

2017-10-02  Maximilien Colange  <colange@lrde.epita.fr>

	Typos

	* NEWS: typos

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: incorrect setting of non-deterministic property

	Fixes #286.

	* spot/twaalgos/simulation.cc: Only set the deterministic
	property, not the non-deterministic one.
	* tests/core/ltl2tgba.test: Add test case.
	* NEWS: Mention the issue.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/totgba.cc: Typos in comment.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: fix building of {a->c[*]}

	Fixes #285, reported by Florian Perlié-Long.

	* NEWS: Mention the issue.
	* spot/tl/formula.cc: Fix it.
	* tests/core/kind.test: Document it.
	* THANKS: Add Florian.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	streett_to_generalized_buchi: fix incorrect algorithm

	Fixes #284, reported by Juraj Major.

	* spot/twaalgos/totgba.cc: Fix the algorithm.
	* spot/twa/acc.hh: More doc for future generations.
	* tests/core/scc.test: More test cases.
	* NEWS: Mention the issues.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: avoid some superfluous calls to remove_alternation()

	* tests/python/toweak.py: Here.

2017-09-29  Maximilien Colange  <colange@lrde.epita.fr>

	Fix a bug in scc_info, and clarify documentation

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Implement it
	* tests/python/sccinfo.py: Test it
	* NEWS: Document the fix

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: do not order BDDs by IDs in merge_edges()

	Fixes #282.

	* spot/misc/bddlt.hh (bdd_less_than_stable): New function.
	* spot/twa/twagraph.cc (merge_edges): Use it.
	* tests/core/complement.test, tests/core/degenid.test,
	tests/core/ltldo.test, tests/core/prodor.test,
	tests/core/readsave.test, tests/core/sbacc.test,
	tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/dualize.py,
	tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
	tests/python/product.ipynb, tests/python/simstate.py,
	tests/python/tra2tba.py: Adjust all expected outputs.
	* NEWS: Mention the bug.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: fix a comment

	* spot/twaalgos/postproc.cc: Here.

2017-09-29  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	typos

	* spot/twaalgos/alternation.hh: Typos.
	* spot/twa/twa.hh: Typos.

2017-09-29  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	Fix: Remove SBAcc option in bin/ltlfilt

	* bin/ltlfilt.cc: Remove SBAcc option as rabin_to_buchi_maybe() works
	with transition-based acceptance as well.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: speed up two slow tests

	These were the most expansive tests, each taking more than 5min.
	This should bring them back below 1min.

	* tests/core/parity.test: Do not run through valgrind.
	* tests/python/toweak.py: Remove one very long case.

2017-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: detect superfluous SCCs and remove them

	Suggested by Maximilien Colange.

	* spot/twaalgos/degen.cc: If the output has more SCC than the input,
	detect useless SCCs and remove them.
	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh,
	spot/twaalgos/degen.hh: Add support for a degen-remscc option.
	* bin/spot-x.cc, NEWS: Document it.
	* tests/core/degenscc.test: New file.
	* tests/Makefile.am: Add it.
	* tests/core/det.test: Lower some expected size (yay!).

2017-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: incorrect setting of non-deterministic property

	Fixes #286.

	* spot/twaalgos/simulation.cc: Only set the deterministic
	property, not the non-deterministic one.
	* tests/core/ltl2tgba.test: Add test case.
	* NEWS: Mention the issue.

2017-09-27  Thibaud Michaud  <thibaud.michaud@epita.fr>

	remove universal transitions on the fly

	* spot/twaalgos/alternation.cc, spot/twaalgos/alternation.hh: Implement
	remove_univ_otf.
	* tests/python/alternating.py: Test it.
	* python/spot/impl.i: Bindings.
	* NEWS: Document it.

2017-09-27  Laurent XU  <laurent.xu@lrde.epita.fr>

	* NEWS: add tools for parity automata

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/totgba.cc: Typos in comment.

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: also check the 80-column limit in bin

	* tests/sanity/80columns.test: Check bin sources.
	* bin/ltlsynt.cc: Fix it.

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsynt: handle --algo with XARGMATCH

	* bin/ltlsynt.cc: Use XARGMATCH for better error handling.

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: make sure that all options are in a named section

	This also fixes some empty lines and unsorted options
	that appeared in some tools.

	* tests/sanity/bin.test: Ensure this is done.
	* bin/README: Add a new paragraph about this.
	* bin/autcross.cc, bin/ltlcross.cc: Move the
	output options in their own section.
	* bin/common_color.cc: Assume color options are
	in group -15.
	* bin/common_finput.cc, bin/common_finput.hh:
	Add a headless variant.
	* bin/genltl.cc, bin/ltlfilt.cc, bin/ltlgrind.cc,
	bin/randaut.cc, bin/randltl.cc:  Do not force the
	children groups, so that the options are correctly sorted.
	* bin/ltlsynt.cc: Add missing groups.

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: fix building of {a->c[*]}

	Fixes #285, reported by Florian Perlié-Long.

	* NEWS: Mention the issue.
	* spot/tl/formula.cc: Fix it.
	* tests/core/kind.test: Document it.
	* THANKS: Add Florian.

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	streett_to_generalized_buchi: fix incorrect algorithm

	Fixes #284, reported by Juraj Major.

	* spot/twaalgos/totgba.cc: Fix the algorithm.
	* spot/twa/acc.hh: More doc for future generations.
	* tests/core/scc.test: More test cases.
	* NEWS: Mention the issues.

2017-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: avoid some superfluous calls to remove_alternation()

	* tests/python/toweak.py: Here.

2017-09-25  Maximilien Colange  <colange@lrde.epita.fr>

	Fix a bug in scc_info, and clarify documentation

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Implement it
	* tests/python/sccinfo.py: Test it
	* NEWS: Document the fix

2017-09-25  Thibaud Michaud  <thibaud.michaud@epita.fr>

	ltlsynt: translate winning strategy to AIGER

	* bin/ltlsynt.cc: Here.
	* doc/org/ltlsynt.org: Document it.
	* tests/core/ltlsynt.test: Test it.

2017-09-25  Thibaud Michaud  <thibaud.michaud@epita.fr>

	parity game: compute winning strategy

	* spot/misc/game.cc, spot/misc/game.hh: Here.
	* bin/ltlsynt.cc: Realizability is now done by checking if the winning
	strategy contains the initial state.

2017-09-25  Thibaud Michaud  <thibaud.michaud@epita.fr>

	parity game: add Zielonka's recursive algorithm

	* spot/misc/game.cc, spot/misc/game.hh: Implement it.
	* bin/ltlsynt.cc: Use it.
	* doc/org/ltlsynt.org: Document it.

2017-09-25  Thibaud Michaud  <thibaud.michaud@epita.fr>

	add ltlsynt executable

	For now, ltlsynt only handles LTL realizability. It uses a reduction to
	parity game followed by Calude et al.'s reduction from parity game to
	reachability game.

	* bin/ltlsynt.cc, bin/Makefile.am, bin/man/ltlsynt.x,
	bin/man/Makefile.am, bin/.gitignore: New binary.
	* doc/org/arch.tex, doc/Makefile.am, doc/org/tools.org,
	doc/org/ltlsynt.org: Document it.
	* spot/misc/game.cc, spot/misc/game.hh, spot/misc/Makefile.am: Parity
	game wrapper for parity automata + reachability game interface from
	Calude et al.'s paper.

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: add spot::parity_product_or()

	parity_product_or constructs the sum of two parity automata and it keeps
	the parity.

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here.
	* tests/core/parity.cc: Add tests here.

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: merge states having same cleaned matrices in parity_product

	Some states can become identical once their history matrix are
	cleaned. These states are merged and only store the cleaned matrix.

	* spot/twaalgos/parity.cc: Here.

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: remove history matrices in parity_product()

	The history matrix of size n*m is replaced by couples of vectors with a
	total size of n + m. These couples of vectors are simplified
	representations of the history matrices, they ecnode the exact same
	data. They are cached as well as the method to get the next history
	matrix using the acc_sets and the current history matrix.

	* spot/twaalgos/parity.cc: Here.

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: add spot::parity_product()

	Compute the synchronized product of two parity automata, this product
	keeps the parity acceptance.

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
	* tests/core/parity.cc: Add tests for spot::parity_product()

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: add spot::cleanup_parity_acceptance()

	Merge the acceptance sets of a parity acceptance with the same priority
	level to simplify this acceptance.

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
	* tests/core/parity.cc: Add tests for spot::cleanup_parity_acceptance()

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: add spot::colorize_parity()

	These functions colorize automata with parity acceptance. They output
	parity automata.

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
	* tests/core/parity.cc: Add tests for spot::colorize_parity()
	* tests/python/parity.ipynb: Add documentation about
	spot::colorize_parity()

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	parity: add spot::change_parity()

	This function changes the parity acceptance of an automaton.

	* spot/twaalgos/parity.cc, spot/twaalgos/parity.hh: Here
	* python/spot/impl.i: Add spot/twaalgos/parity.hh
	* spot/twaalgos/Makefile.am: Add spot/twaalgos/parity.{cc,hh}
	* tests/core/parity.cc, tests/core/parity.test: Add
	spot::change_parity() tests
	* tests/python/parity.ipynb: Add documentation about
	spot::change_parity()
	* tests/Makefile.am: Add tests/core/parity.{cc,hh} and
	tests/python/parity.ipynb
	* doc/org/tut.org: Add the html page of tests/python/parity.ipynb

2017-09-25  Laurent XU  <laurent.xu@lrde.epita.fr>

	misc: add spot::is_colored()

	This function checks whether an automaton is colored, an automaton
	is said to be colored iff all the transitions belong to exactly one
	acceptance set.

	* spot/twaalgos/iscolored.cc, spot/twaalgos/iscolored.hh: Here.
	* spot/twaalgos/Makefile.am: add spot/twaalgos/iscolored.{cc,hh}
	* python/spot/impl.i: add spot/twaalgos/iscolored.hh

2017-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: do not order BDDs by IDs in merge_edges()

	Fixes #282.

	* spot/misc/bddlt.hh (bdd_less_than_stable): New function.
	* spot/twa/twagraph.cc (merge_edges): Use it.
	* tests/core/genltl.test: Adjust, and add an extra test
	for the behavior of #282.
	* tests/core/complement.test, tests/core/degenid.test,
	tests/core/ltldo.test, tests/core/prodor.test,
	tests/core/readsave.test, tests/core/sbacc.test,
	tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/dualize.py,
	tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
	tests/python/product.ipynb, tests/python/simstate.py,
	tests/python/tra2tba.py: Adjust all expected outputs.
	* NEWS: Mention the bug.

2017-09-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: fix a comment

	* spot/twaalgos/postproc.cc: Here.

2017-09-22  Maximilien Colange  <colange@lrde.epita.fr>

	genltl: add a new family from SYNTCOMP'2017

	* bin/genltl.cc, spot/gen/formulas.cc, spot/gen/formulas.hh: Implement
	  it.
	* tests/core/genltl.test: Test it.
	* NEWS: Document it.

2017-09-20  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	bin/ltlfilt: Use is_persistence() and is_recurrence()

	* bin/ltlfilt.cc: Use them.

2017-09-20  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	hierarchy: Add is_persistence() and make is_recurrence() use it

	* NEWS: Update.
	* bin/man/spot-x.x: Add environment variable.
	* spot/tl/hierarchy.cc: Implement them.
	* spot/tl/hierarchy.hh: Declare them.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	hierarchy: Make is_recurrence() public

	* NEWS: Declare it.
	* spot/tl/hierarchy.cc: Remove static keyword and anonymous namespace.
	* spot/tl/hierarchy.hh: Declare function.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	ltlfilt: Add %r and %R format options

	* NEWS: Declare new options.
	* bin/common_output.cc: Add new options.
	* bin/common_output.hh: Add new options.
	* bin/genltl.cc: Update.
	* bin/ltlfilt.cc: Update.
	* bin/ltlgrind.cc: Update.
	* bin/randltl.cc: Update.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	misc/timer: Gather handling of %r and %R options

	* bin/autcross.cc: Update.
	* bin/autfilt.cc: Update.
	* bin/common_aoutput.cc: Gather them. Move process_timer struct.
	* bin/common_aoutput.hh: Gather them.
	* bin/common_output.hh: Update.
	* bin/dstar2tgba.cc: Update.
	* bin/ltl2tgba.cc: Update.
	* bin/ltlcross.cc: Update.
	* bin/ltldo.cc: Update.
	* bin/ltlfilt.cc: Update.
	* bin/randaut.cc: Update.
	* spot/misc/formater.hh: Remove an useless function.
	* spot/misc/timer.hh: Add process_timer struct definition.
	* spot/misc/timer.cc: Remove old dead code.
	* spot/twaalgos/stats.cc: Update.
	* spot/twaalgos/stats.hh: Update.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	typos

	* spot/twaalgos/alternation.hh: Typos.
	* spot/twa/twa.hh: Typos.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/cobuchi: Add dnf_to_dca()

	* NEWS: Update news with all co-Büching functions.
	* spot/twaalgos/cobuchi.hh: Declare it.
	* spot/twaalgos/cobuchi.cc: Implement it.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/cobuchi: Add breakpoint construction and nsa_to_dca()

	* spot/twaalgos/cobuchi.hh: Declare nsa_to_dca().
	* spot/twaalgos/cobuchi.cc: Implement nsa_to_dca().

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/cobuchi: Add dnf_to_nca() method

	* NEWS: Update.
	* spot/twaalgos/cobuchi.hh: Declare dnf_to_nca().
	* spot/twaalgos/cobuchi.cc: Implement it.
	* tests/core/dca.test: Add tests.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/totgba: Add dnf_to_streett() method

	* NEWS: Update.
	* spot/twaalgos/totgba.hh: Declare dnf_to_streett().
	* spot/twaalgos/totgba.cc: Implement dnf_to_streett().
	* bin/autfilt.cc: Add --dnf-to-streett cmd line option.
	* tests/core/dnfstreett.test: Add test.
	* tests/Makefile.am: Add test file.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/cobuchi: Add nsa_to_nca()

	* NEWS: Update.
	* spot/twaalgos/cobuchi.hh: Declare to_dca() and nsa_to_nca().
	* spot/twaalgos/cobuchi.cc: Implement them.
	* python/spot/impl.i: Include new file for python bindings.
	* spot/twaalgos/Makefile.am: Add new file.
	* bin/autfilt.cc: Add --dca command line option. This option does not
	return a deterministic automaton yet, but it will.
	* tests/core/dca.test: Add tests for Büchi automata.
	* tests/python/dca.py: Add a python script that builds a nondet. Streett
	automaton.
	* tests/python/dca.test: Add tests for Streett automata.
	* tests/Makefile.am: Add all tests.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos/scc_info: Add states_on_acc_cycle_of() method

	* NEWS: Update.
	* spot/twaalgos/sccinfo.hh: Declare states_on_acc_cycle_of().
	* spot/twaalgos/sccinfo.cc: Implement it.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot/twa: Add methods to set co-Büchi acceptance

	* spot/twa/acc.hh: Add set_generalized_co_buchi() method.
	* spot/twa/twa.hh: Add set_generalized_co_buchi() and set_co_buchi()
	wrappers.

2017-09-19  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	Fix: Remove SBAcc option in bin/ltlfilt

	* bin/ltlfilt.cc: Remove SBAcc option as rabin_to_buchi_maybe() works
	with transition-based acceptance as well.

2017-09-19  Maximilien Colange  <colange@lrde.epita.fr>

	Use clearer names for three methods of spot::scc_info

	scc_info::used_acc() and spot::info::used_acc_of() have been renamed to
	scc_info::marks() and scc_info::marks_of().
	scc_info::acc() has been renamed to (the already existing and redundant)
	scc_info::acc_sets_of().
	Old names have been deprecated.

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: implement it.
	* spot/twaalgos/dtwasat.cc, spot/twaalgos/isweakscc.cc,
	  spot/twaalgos/remfin.cc, spot/twaalgos/sccfilter.cc: update names.
	* NEWS: documentate it.

2017-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add 4 new families from Müller & Sickert (GandALF'17)

	* spot/gen/formulas.cc, spot/gen/formulas.hh, bin/genltl.cc:
	Implement them.
	* NEWS, bin/man/genltl.x: Document them.
	* tests/core/genltl.test: Add some tests.

2017-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix some --help typos

	Reported by František Blahoudek.

	* bin/genaut.cc, bin/autcross.cc: Fix help strings.

2017-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve dot2tex conversion to png

	* doc/org/oaut.org: Here.

2017-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/dot2tex.test: Work around dot2tex 2.9.0.

2017-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 2.4.0.dev.

2017-09-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.4

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2017-09-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add a missing entry.

2017-09-05  Clément Gillard  <clement.gillard@epita.fr>

	fix typos and indentation

	* bin/autfilt.cc, python/spot/__init__.py, spot/twa/twa.hh,
	spot/twa/twaproduct.cc, spot/twaalgos/couvreurnew.cc,
	tests/python/bugdet.py: Here.

2017-09-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Some typos en cleanup.

2017-09-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: make 'x' compatible with 'b'/'r'/'R'

	* spot/twaalgos/dot.cc: Implement.
	* doc/org/oaut.org: Illustrate.
	* tests/core/dot2tex.test: Add some limited tests.

2017-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/oaut.org: Missing word.

2017-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: make --stats and --format synonyms

	* bin/common_output.cc: Make --stats an alias of --format.
	* bin/common_aoutput.cc: Make --format an alias of --stats.
	* tests/core/acc2.test, tests/core/format.test: Test these aliases.
	* NEWS: Mention this.

2017-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix one example

	* doc/org/genaut.org: Output the result for the last example.

2017-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: rename KS_COBUCHI to KS_NCA for consistency

	* spot/gen/automata.cc, spot/gen/automata.hh, bin/genaut.cc: Rename
	the enum, function, and command-line option.
	* tests/core/genaut.test, tests/python/gen.ipynb, tests/python/gen.py:
	Adjust test cases.
	* doc/org/genaut.org: Adjust doc.

2017-09-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: rewrite GF(a & Fb) as G(Fa & Fb)

	This addresses part of #35, and is just a generalization of the rules
	from 646c5170 for #263 (hence, no new documentation).

	* spot/tl/simplify.cc: Implement this.
	* tests/core/reduccmp.test: Add test cases.
	* tests/core/stutter-tgba.test: Adjust to expect smaller automata.

2017-09-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Improve simplification of expr[*0..1]

	Fixes #108.

	* spot/tl/simplify.cc: Implement the reduction.
	* doc/tl/tl.tex, NEWS: Document it.
	* tests/core/reduccmp.test: Test it.

2017-09-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: implement a small optimization

	Fixes #277.

	* spot/twaalgos/ltl2tgba_fm.cc: Improve the translation of f U g
	when f is universal.  Suggested by Maximilien Colange.
	* tests/core/ltl2tgba.test: Test it.

2017-09-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --gxf-and and --fxg-or

	As suggested in #263.

	* spot/gen/formulas.cc, spot/gen/formulas.hh, bin/genltl.cc: Implement
	these options.
	* tests/core/genltl.test: Use them.
	* NEWS: Mention them.

2017-09-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: some new simplification rules

	For #263, reported by Mikuláš Klokočka.

	G(a & Xe1 & F(b & e2)) = G(a & e1 & Fb & e2)
	F(a | Xu1 | G(b | u2)) = F(a | u1 | Gb | u2)

	* spot/tl/simplify.cc: Implement the rules.
	* doc/tl/tl.tex, NEWS: Document them.
	* tests/core/reduccmp.test, tests/core/eventuniv.test: Add test cases.
	* tests/core/det.test, tests/core/ltl2tgba2.test: Adjust to expect
	smaller automata.
	* THANKS: Add Mikuláš.

2017-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of some unnecessary code

	* spot/priv/enumflags.hh: Delete.
	* spot/priv/Makefile.am, debian/copyright: Adjust.
	* spot/twaalgos/remfin.cc: Replace the complex enum
	definition by a plain enum that is almost not used.

2017-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: apply Rabin conversion before Streett

	* spot/twaalgos/remfin.cc (remove_fin_impl): Apply the Rabin strategy
	before the Streett one.

2017-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	streett_to_generalize_buchi: fix handling of SCCs without Fin

	The generalization to Streett-like of 7b5b8f34 was incomplete for this
	case.  Thanks to František Blahoudek for reporting the bug.
	Fixes #279.

	* spot/twaalgos/totgba.cc (streett_to_generalized_buchi): Here.
	* tests/core/remfin.test: Add more tests.

2017-09-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	common_trans: leave the shell handle commands containing = in arg0

	This is probably an environment variable definition.

	* bin/common_trans.cc: Here.  A use-case appears in the test of the
	next patch.

2017-08-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add x option for dot2tex

	* spot/twa/acc.cc, spot/twa/acc.hh: Add a LaTeX output for acceptance
	conditions.
	* spot/twaalgos/dot.cc: Implement the 'x' option and refactor the code
	a bit to limit duplication.
	* tests/core/dot2tex.test: New test case (requires dot2tex).
	* tests/Makefile.am: Add dot2tex.test.
	* tests/core/alternating.test, tests/core/readsave.test,
	tests/python/automata-io.ipynb: Adjust expected output.
	* NEWS, doc/org/oaut.org: Mention the new option.

2017-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add option 'A' to disable 'a'

	This way in 2.5 we can make 'a' the default, and tell people to use
	SPOT_DOTDEFAULT=A if they want the old behavior in both 2.4 and 2.5.

	* spot/twaalgos/dot.cc: Implement the option.
	* NEWS, bin/common_aoutput.cc: Mention it.
	* tests/core/readsave.test: Test it.

2017-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: display Rabin-like and Streett-like acceptances

	* spot/twaalgos/dot.cc (print_acceptance_for_human): Add Rabin-like
	and Streett-like checks.
	* tests/core/sccdot.test, tests/python/decompose.ipynb,
	tests/python/randaut.ipynb, tests/core/alternating.test: Adjust.

2017-08-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add remark about "%h"

	* doc/org/csv.org: Mention that %h must be double-quoted in CSV output.

2017-08-29  Maximilien Colange  <colange@lrde.epita.fr>

	Improve tests of spot.dualize()

	* tests/python/dualize.py: test that an automaton and its dual have
	  complementary languages.

2017-08-28  Maximilien Colange  <colange@lrde.epita.fr>

	Fix a bug in spot.complete()

	spot.complete() could complete an empty co-Büchi automaton into an
	automaton accepting everything.

	* NEWS: Document it
	* spot/twaalgos/complete.cc: Fix it
	* tests/core/complete.test, tests/core/prodor.test: Test it

2017-08-28  Maximilien Colange  <colange@lrde.epita.fr>

	Typos

	* NEWS, doc/org/concepts.org, doc/org/hierarchy.org,
	  spot/misc/optionmap.hh, spot/twa/acc.hh, spot/twaalgos/ltl2tgba_fm.hh,
	  spot/twaalgos/sccinfo.hh, spot/twaalgos/translate.cc: fix typos

2017-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	switch to C++14 compilation

	* configure.ac: Compile in C++14 by default and rename
	--enable-c++14 as c++17.
	* doc/org/compile.org, doc/org/concepts.org, doc/org/index.org,
	doc/org/install.org, doc/org/tut.org, doc/org/upgrade2.org, HACKING,
	NEWS, README: Adjust all mentions of C++11.
	* spot/twaalgos/stats.hh: Use std::make_unique.

2017-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	mention autcross in arch.tex

	* doc/org/arch.tex: Add autcross.
	* tests/sanity/bin.test: Make sure all binaries appear in arch.tex.

2017-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: display acceptance names

	* spot/twaalgos/dot.cc: Display common acceptance names.
	* NEWS: Mention the change.
	* doc/org/oaut.org: Adjust text.
	* tests/core/alternating.test, tests/core/readsave.test,
	tests/python/_altscc.ipynb, tests/python/alternation.ipynb,
	tests/python/atva16-fig2a.ipynb, tests/python/atva16-fig2b.ipynb,
	tests/python/automata.ipynb, tests/python/decompose.ipynb,
	tests/python/gen.ipynb, tests/python/highlighting.ipynb,
	tests/python/product.ipynb, tests/python/randaut.ipynb: Adjust test
	cases.

2017-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: fix operator| and operator&

	Bug introduced in abe2c08b, visible in tests/python/product.ipynb,
	and tests/python/acc_cond.ipynb.

	* spot/twa/acc.hh: fix operator| and operator&.
	* tests/python/acc_cond.ipynb: Adjust test case.

2017-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hierarchy: avoid sbacc()

	* spot/tl/hierarchy.cc (is_recurrence): Do not request state-based
	acceptance, now that the Rabin->DBA conversionn works on
	transition-based acceptance as well.

2017-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update hierarchy

	* doc/org/hierarchy.org: Update with small typos, and
	notes about tra2tba.

2017-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: remove some unnecessary copies

	* spot/twaalgos/remfin.cc (tra_to_tba, is_scc_tba_type): Here.

2017-08-17  Thomas Medioni  <tmedioni@lrde.epita.fr>

	to_weak_alternating(): fixes a bug on generalized co-Büchi automata

	Fixes #278. Also adds a test ensuring non-regression.

	* spot/twaalgos/toweak.cc: Fixes the bug.
	* tests/python/toweak.py: Add a test case.

2017-08-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: fix incorrect state-based output

	* spot/twaalgos/remfin.cc: If no Inf set is used, set sbacc early so
	that it is used in the algorithm.
	* tests/core/remfin.test: Add more tests.
	* NEWS: Mention the bug.

2017-08-09  Thomas Medioni  <tmedioni@lrde.epita.fr>

	Fix typo automatons -> automata

	* NEWS, spot/twaalgos/dualize.cc, spot/twaalgos/dualize.hh,
	  spot/twaalgos/langmap.cc, spot/twaalgos/sum.hh,
	  tests/python/streett_totgba.py: Fixes typo.

2017-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/simulation.cc (print_partition): Improve.

2017-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/optba.test: Use set -x.

2017-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: upgrade to today's version

	* tools/snippet/_Noreturn.h, tools/snippet/c++defs.h,
	tools/snippet/arg-nonnull.h, tools/snippet/warn-on-use.h: Rename to...
	* lib/_Noreturn.h, lib/c++defs.h, lib/arg-nonnull.h,
	lib/warn-on-use.h: ... these.
	* lib/filename.h, lib/getopt-cdefs.in.h, lib/getopt-core.h,
	lib/getopt-ext.h, lib/getopt-pfx-core.h, lib/getopt-pfx-ext.h,
	lib/localtime-buffer.c, lib/localtime-buffer.h, lib/malloca.c,
	lib/malloca.h, lib/malloca.valgrind, lib/stat-w32.c, lib/stat-w32.h,
	m4/eealloc.m4, m4/localtime-buffer.m4, m4/malloca.m4: New files.
	* lib/argp-help.c, lib/argp-parse.c, lib/error.c, lib/float.in.h,
	lib/getopt1.c, lib/getopt.c, lib/getopt.in.h, lib/getopt_int.h,
	lib/gettext.h, lib/gettimeofday.c, lib/intprops.h, lib/isatty.c,
	lib/limits.in.h, lib/localcharset.c, lib/Makefile.am, lib/mbrtowc.c,
	lib/mbsinit.c, lib/msvc-nothrow.c, lib/quotearg.c, lib/stat.c,
	lib/stdalign.in.h, lib/stdint.in.h, lib/string.in.h,
	lib/sys_stat.in.h, lib/sys_types.in.h, lib/tempname.c, lib/time.in.h,
	lib/unistd.in.h, lib/vasnprintf.c, lib/wchar.in.h, lib/wctype.in.h,
	lib/xalloc.h, lib/xalloc-oversized.h, m4/fcntl-o.m4, m4/float_h.m4,
	m4/getopt.m4, m4/gettimeofday.m4, m4/gnulib-common.m4,
	m4/gnulib-comp.m4, m4/include_next.m4, m4/largefile.m4, m4/lstat.m4,
	m4/mbrtowc.m4, m4/memchr.m4, m4/mkstemp.m4, m4/printf.m4, m4/sleep.m4,
	m4/stat.m4, m4/stdalign.m4, m4/stdint.m4, m4/strerror.m4,
	m4/string_h.m4, m4/sys_stat_h.m4, m4/sys_time_h.m4, m4/sys_types_h.m4,
	m4/time_h.m4, m4/unistd_h.m4, m4/wchar_h.m4, m4/wctype_h.m4,
	m4/wint_t.m4: Update.

2017-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos in NEWS

	* NEWS: Fix them.

2017-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix error message in exception

	* spot/twaalgos/alternation.cc: Here.

2017-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: allow counting complete SCCs

	* bin/common_aoutput.cc, NEWS: Update documentation.
	* spot/twaalgos/stats.cc: Honor c and C.
	* tests/core/alternating.test: Test it.

2017-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_weak_scc and friend: make them work for alternating automata

	* spot/twaalgos/isweakscc.cc, spot/twaalgos/isweakscc.hh,
	spot/twaalgos/mask.cc, spot/twaalgos/mask.hh: Adjust to
	work with alternating automata.
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh
	(determine_unknown_acceptance): Do not complain about
	not supporting alternating automata if there is not
	indeterminate acceptance.
	* spot/twaalgos/stats.cc: Fix a bug were %[iw]c was
	read as %[iww]c.
	* tests/core/alternating.test: Test is_inherently_weak_scc() and
	is_weak_scc().
	* python/spot/impl.i: Add missing python bindings
	for isweakscc.hh.

2017-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: extend the palette from 9 to 16 colors

	Let's close #212 even if this does not cover the 32 sets.

	* spot/twaalgos/dot.cc: Change the palette.
	* doc/org/autfilt.org, NEWS: Adjust documentation.
	* tests/core/alternating.test, tests/core/readsave.test,
	tests/core/tgbagraph.test, tests/python/_altscc.ipynb,
	tests/python/alternation.ipynb, tests/python/atva16-fig2a.ipynb,
	tests/python/automata-io.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/gen.ipynb,
	tests/python/highlighting.ipynb, tests/python/ltsmin-dve.ipynb,
	tests/python/piperead.ipynb, tests/python/product.ipynb,
	tests/python/randaut.ipynb, tests/python/word.ipynb: Adjust
	test cases.

2017-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	g++wrap: make it work with --enable-glibcxx-debug

	* doc/org/g++wrap.in: Honor CPPFLAGS.

2017-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: hide throw statements from inline methods

	* spot/tl/formula.hh: Move all throw statements behind
	some [[noreturn]] report...() methods...
	* spot/tl/formula.cc: ... defined here.  This makes the methods
	shorter and helps their inlining.  Incidentally, this also removes the
	uninitialized read that weirdly occurs when _GLIBCXX_DEBUG is on, as
	observed with #184, but I do not know why.

2017-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unabiguous: fix incorrect vector usage

	* spot/twaalgos/isunamb.cc: Actually set the size of the vector
	instead of just reserving the size.

2017-08-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: allow the univ-branch diagnostics to be ignored

	* spot/parseaut/parseaut.yy: Check the SPOT_HOA_TOLERANT variable.
	* tests/core/ltl3ba.test, tests/core/parseaut.test: Adjust test cases.
	* NEWS, bin/man/spot-x.x: Mention SPOT_HOA_TOLERANT.

2017-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix I/O of determinism

	Fixes #212.

	* spot/parseaut/parseaut.yy, spot/twaalgos/hoa.cc: Recognize
	exist-branch, and adjust printer to the 1.1 semantics.
	* tests/core/alternating.test, tests/core/complete.test,
	tests/core/det.test, tests/core/explsum.test,
	tests/core/parseaut.test, tests/core/readsave.test,
	tests/core/sbacc.test, tests/core/tgbagraph.test,
	tests/python/alternating.py, tests/python/dualize.py: Adjust test
	cases.
	* NEWS: Mention the change.

2017-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: introduce autcross

	Fixes #252.

	* NEWS: Mention it.
	* bin/autcross.cc, bin/man/autcross.x, doc/org/autcross.org: New
	files.
	* bin/Makefile.am, bin/man/Makefile.am, doc/org/tools.org,
	doc/Makefile.am: Add them.
	* bin/autfilt.cc: Use is_universal() instead of is_deterministic().
	* bin/common_hoaread.hh, bin/common_trans.cc, bin/common_trans.hh,
	bin/ltlcross.cc, bin/ltldo.cc: Factor some bits common between
	ltlcross, ltldo and autcross.
	* tests/core/autcross.test, tests/core/autcross2.test: New files.
	* tests/Makefile.am: Add them.
	* tests/core/dra2dba.test, tests/core/sbacc.test,
	tests/core/streett.test: Use autcross.

2017-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: make the scanner reentrant

	* spot/parseaut/parseaut.yy, spot/parseaut/parsedecl.hh,
	spot/parseaut/public.hh, spot/parseaut/scanaut.ll: Use a reentrant
	scanner, so that we can now parse multiple automaton streams at the
	same time.  This is needed for the future autcross, which is going to
	read several individual automata produced by different tools, while
	reading the stream of automata to process.

2017-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt, dstar2tgba: remove some superfluous arguments

	* bin/autfilt.cc, bin/dstar2tgba.cc, bin/common_hoaread.hh: The
	filename is stored in the parsed automaton, so do not pass it another
	time to the printer.

2017-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt, dstar2tgba: factorize input code

	* bin/autfilt.cc, bin/dstar2tgba.cc: Move the common
	hoa_processor class ...
	* bin/common_hoaread.hh: ... here.

2017-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross, ltldo: rename "translators" to "tools" in the code

	* bin/common_trans.cc, bin/common_trans.hh, bin/ltlcross.cc,
	bin/ltldo.cc: Rename translator_spec and translators to tool_spec and
	tools, so that we can reuse these structures for automata tools
	in a future autcross.

2017-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: extract the color handling code

	* bin/common_color.cc, bin/common_color.hh: New files, with
	code extracted from ltlcross.cc.
	* bin/Makefile.am: Add them.
	* bin/ltlcross.cc: Simplify.

2017-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: use prop_universal() instead of prop_deterministic()

	* spot/parseaut/parseaut.yy: Here.

2017-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: make &= and |= symmetrical

	Operator &= used to always move Fin to the front, it does not anymore.
	The only thing it does now is to merge Inf(x)&Inf(y) as Inf({x,y}).
	Operator |= is now symmetrical and merges Fin()s.

	Fixes #253.

	* spot/twa/acc.cc, spot/twa/acc.hh: Simplify &= and make |= symmetrical.
	* spot/twaalgos/cleanacc.cc: Fix conjunction order.
	* tests/core/acc.test, tests/core/acc2.test, tests/core/parseaut.test,
	tests/core/readsave.test, tests/core/satmin2.test,
	tests/core/sccdot.test, tests/python/acc_cond.ipynb,
	tests/python/accparse.ipynb, tests/python/automata.ipynb,
	tests/python/product.ipynb, tests/python/randaut.ipynb: Adjust test
	cases.

2017-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	deprecate copy() in favor of make_twa_graph()

	Fixes #258.

	* spot/twaalgos/copy.cc: Delete, and move the code...
	* spot/twa/twagraph.cc: ... in some anonymous namespace here.
	* spot/twa/twagraph.hh: Adjust the make_twa_graph() overload.
	* spot/twaalgos/copy.hh, NEWS: Mark copy() as deprecated and redirect
	to make_twa_graph().
	* doc/org/upgrade2.org, doc/org/tut51.org, python/spot/impl.i,
	spot/twaalgos/dot.cc, spot/twaalgos/langmap.cc, tests/core/ikwiad.cc:
	Adjust callers.
	* spot/twaalgos/Makefile.am: Remove copy.cc.

2017-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: merge edges going to the sink

	* spot/twaalgos/complete.cc: Here.
	* tests/python/dualize.py, tests/core/complete.test: Adjust test cases.

2017-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen, sbacc: merge accepting sinks

	Fixes #276.

	* spot/twaalgos/sbacc.cc, spot/twaalgos/degen.cc: Detect accepting
	sinks, and merge them.
	* tests/python/dualize.py: Adjust.
	* tests/python/sbacc.py: More test cases.

2017-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	honor SPOT_BDD_TRACE

	* spot/priv/bddalloc.cc: Add hooks on request.
	* bin/man/spot-x.x, NEWS: Document the envvar.

2017-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench: make ltlcross and ltlclass work again

	They were not updated since we moved binaries around in Spot 2.0.
	Let them use ltl2tgba directly.

	* bench/ltlclasses/plot.gnu, bench/ltlclasses/run,
	bench/ltlcounter/plot.gnu, bench/ltlcounter/run: Adjust.

2017-07-20  Thomas Medioni  <tmedioni@lrde.epita.fr>

	spot::sbacc() works on alternating automata, fix dualize

	Fixes #273.

	* NEWS: Mention this.
	* spot/twaalgos/dualize.cc, tests/python/dualize.py: Adapt dualize.
	* spot/twaalgos/sbacc.cc, tests/core/sbacc.test: sbacc support
	  alternating automata

2017-07-19  Thomas Medioni  <tmedioni@lrde.epita.fr>

	Implement to_weak_alternating() which weakifies tgbas

	* NEWS: mention the modification.
	* python/spot/impl.i: makes to_weak_alternating visible from python
	* spot/twaalgos/Makefile.am, spot/twaalgos/toweak.cc,
	  spot/twaalgos/toweak.hh: Implements to_weak_alternating.
	* tests/Makefile.am, tests/python/toweak.py: Test the results of
	  to_weak_alternating.

2017-07-17  xlauko  <xlauko@mail.muni.cz>

	tra2tba: Make result state-based if possible

	* spot/twaalgos/remfin.cc: Create state-based result.

2017-07-17  xlauko  <xlauko@mail.muni.cz>

	remfin: Use tra2tba as new rabin strategy in remove_fin

	Move implementation of tra2tba to remfin.

	* python/spot/impl.i: Remove tra2tba python bindings
	* spot/twaalgos/Makefile.am: Remove tra2tba
	* spot/twaalgos/remfin.cc: Update rabin_strategy
	* spot/twaalgos/tra2tba.cc: Delete the file
	* spot/twaalgos/tra2tba.hh: Delete the file
	* tests/core/remfin.test: Update tests
	* tests/python/tra2tba.py: Update tests

2017-07-17  xlauko  <xlauko@mail.muni.cz>

	acc: Add support for rs_pairs view

	* spot/twa/acc.hh: Implement rs_pairs_view

2017-07-17  xlauko  <xlauko@mail.muni.cz>

	tra2tba: Merge edges of resulting automaton

	* spot/twaalgos/tra2tba.cc: Call 'merge_edges'
	* tests/python/tra2tba.py: Update tests

2017-07-17  Henrich Lauko  <xlauko@mail.muni.cz>

	tra2tba: Add support for Rabin like automata

	* spot/twaalgos/tra2tba.cc: Support Rabin like input
	* tests/core/tra2tba.cc: Remove C tests
	* tests/core/tra2tba.test: Remove C tests
	* tests/python/tra2tba.py: Convert C tests to python
	* tests/Makefile.am: Remove C tests and add python tests

2017-07-17  xlauko  <xlauko@mail.muni.cz>

	tra2tba: Implement transformation of TRA to TBA acceptance condition

	* python/spot/impl.i: Add bindings for tra2tba
	* spot/twaalgos/Makefile.am: Record tra2tba.cc, tra2tba.hh
	* spot/twaalgos/tra2tba.cc: Implement transformation of TRA to TBA
	* spot/twaalgos/tra2tba.hh: Introduce declaration of tra_to_tba
	* tests/Makefile.am: Record tra2tba tests
	* tests/core/tra2tba.cc: Add driver for tests
	* tests/core/tra2tba.test: Add tests of tra2tba transformation

2017-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: export the sbacc() algorithm

	Fixes #274.

	* python/spot/impl.i: Bind sbacc().
	* tests/python/sbacc.py: New tesat.
	* tests/Makefile.am: Add sbacc.py.

2017-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: typo

	* spot/twaalgos/remfin.cc: 0x16 is not 16.

2017-07-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/strength.cc: Fix unsigned/signed cmp.

2017-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	decompose: merge decompose_strength() and decompose_scc()

	These two functions were doing almost identical work, the only
	difference was the way to select the SCC to keep.  Now we have a more
	uniform way to do that.  Closes #172.

	* bin/autfilt.cc: Offer a unique --decompose-scc option, but keep
	--decompose-strength as an alias for backward compatibility.
	* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh: Rename
	decompose_strength as decompose_scc, and handle a way to list
	all SCC numers in the string specifier.  This gets rid
	of the nearly identical
	* tests/core/scc.test, tests/core/strength.test,
	tests/python/decompose.ipynb, tests/python/decompose_scc.py: Adjust
	test cases.
	* NEWS: Adjust.

2017-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve recurrence example

	* doc/org/hierarchy.org: When generating DBA from recurrence formulas,
	actually use -B instead of --tgba.

2017-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: typo in error message

	* spot/twa/twa.cc (twa::accepting_run): Here.

2017-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump version

	* NEWS, configure.ac: Bump version to 2.3.5.dev.

2017-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.3.5

	* NEWS, configure.ac, doc/org/setup.org: Update version.

2017-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: fix maybe_accepting() on Fin(x)|Fin(y)|Fin(z)

	Fixes #271, reported by Henrich Lauko.

	* spot/twa/acc.cc (maybe_accepting): Fix handling in case
	of disjunction of Fin.
	* tests/core/scc.test, tests/python/accparse2.py: Add more
	tests.

2017-06-21  Thomas Medioni  <tmedioni@lrde.epita.fr>

	streett_like: clear the pair vector when non Streett-like

	When an acceptance condition is not Streett-like, is_streett_like
	now clears the rs_pair vector parameter before returning. Fixes #270.

	* spot/twa/acc.cc: Clear the pair vector.
	* spot/twaalgos/totgba.cc: Stop calling streett_to_generalized_buchi()
	  when the acceptance condition is not Streett-like.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: catch exceptions by reference

	* spot/ltsmin/ltsmin.cc, tests/ltsmin/modelcheck.cc: Here.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: catch exceptions by reference

	* spot/ltsmin/ltsmin.cc, tests/ltsmin/modelcheck.cc: Here.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: Jessie -> Stretch

	* doc/org/install.org: Update.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: use relabel_bse() to speed translations with a lot of APs

	Fixes #268, reported by Yann Thierry-Mieg.

	* spot/twaalgos/translate.cc, spot/twaalgos/translate.hh: Call
	relabel_bse() + relabel_here().
	* tests/core/format.test: Add a test case.
	* bin/spot-x.cc, NEWS: Document the change.

2017-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel_here: make it compatible with relabel_bse

	* spot/twaalgos/relabel.cc: Deal with the cases where the substitution
	value is a Boolean formula.
	* spot/twaalgos/relabel.hh: Improve documentation.
	* tests/python/relabel.py: Add more tests.
	* python/spot/impl.i: Add bindings for are_isomorphic for the above
	test.
	* NEWS: Mention the news.

2017-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: Jessie -> Stretch

	* doc/org/install.org: Update.

2017-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: fix slow %s and inappropriate %S output

	Fixes #269.

	* spot/twaalgos/stats.cc: Use twa_statistics instead of
	twa_sub_statistics when %t is not used.
	* bin/common_aoutput.cc: Likewise, also fix %S to use twa_statistics
	instead of num_states(), and document that %s,%t,%e all return
	statistics about the reachable part of the automaton.
	* tests/core/format.test: Add more tests.
	* NEWS: Document the issue.

2017-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: fix slow %s and inappropriate %S output

	Fixes #269.

	* spot/twaalgos/stats.cc: Use twa_statistics instead of
	twa_sub_statistics when %t is not used.
	* bin/common_aoutput.cc: Likewise, also fix %S to use twa_statistics
	instead of num_states(), and document that %s,%t,%e all return
	statistics about the reachable part of the automaton.
	* tests/core/format.test: Add more tests.
	* NEWS: Document the issue.

2017-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	libtool: surrender to Debian's castrated libtool

	The libtool version distributed by Debian is patched to *not* propagate
	dependencies (i.e., if libA depends on libB, then linking against libA
	will not automatically link against libB, it has to be explicit),
	contrary to what the Libtool manual document.  So now we explicitly
	link against both libA and libB in such case.

	* configure.ac: Remove the workaround that does not work for
	MinGW.
	* doc/org/compile.org: Mention the issue.
	* bin/Makefile.am, tests/Makefile.am, spot/ltsmin/Makefile.am,
	doc/org/g++wrap.in: Make the dependencies explicit.

2017-06-11  Etienne Renault  <renault@lrde.epita.fr>

	ikwiad: fix accepting run printing

	* tests/core/ikwiad.cc: here.

2017-06-08  Thomas Medioni  <tmedioni@lrde.epita.fr>

	streett_to_generalized_buchi() now works on Streett-like

	* NEWS: Mention the modification.
	* spot/twaalgos/remfin.cc: Adapt to avoid infinite recursion.
	* spot/twaalgos/totgba.cc: Work on Streett-like.
	* tests/Makefile.am, tests/python/streett_totgba.py: Tests the
	  modification.
	* tests/core/remfin.test: Fix one test case that is now handled by
	  the modification.

2017-06-08  Thomas Medioni  <tmedioni@lrde.epita.fr>

	autfilt: add option --simplify_acceptance

	* NEWS: Mention this.
	* bin/autfilt.cc: Add option --simplify-acceptance.

2017-06-08  Thomas Medioni  <tmedioni@lrde.epita.fr>

	introduce spot::simplify_acceptance()

	Simplify some automata where some marks are identical,
	or complementary to another. Fixes #216.

	* NEWS: mention the new function.
	* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Implement
	  the function.
	* tests/Makefile.am, tests/python/merge.py: Test this implementation.

2017-06-08  Thomas Medioni  <tmedioni@lrde.epita.fr>

	style: allow the use of initializer-lists in if

	* tests/sanity/style.test: Allow initializer-lists in ifs.

2017-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cleanacc: add an option to not strip sets

	also consider sets that appear everywhere

	* spot/twaalgos/cleanacc.cc, spot/twaalgos/cleanacc.hh: Here.

2017-06-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove marks from acceptance condition without stripping

	Author: Alexandre Duret-Lutz.

	* NEWS: mention the modification.
	* spot/twa/acc.cc, spot/twa/acc.hh: Implement the removal.
	* spot/twa/twa.hh: Allow directly setting a new acceptance condition.

2017-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	libtool: surrender to Debian's castrated libtool

	The libtool version distributed by Debian is patched to *not* propagate
	dependencies (i.e., if libA depends on libB, then linking against libA
	will not automatically link against libB, it has to be explicit),
	contrary to what the Libtool manual document.  So now we explicitly
	link against both libA and libB in such case.

	* configure.ac: Remove the workaround that does not work for
	MinGW.
	* doc/org/compile.org: Mention the issue.
	* bin/Makefile.am, tests/Makefile.am, spot/ltsmin/Makefile.am,
	spot/gen/Makefile.am, doc/org/g++wrap.in: Make the dependencies
	explicit.

2017-06-07  Etienne Renault  <renault@lrde.epita.fr>

	ikwiad: fix accepting run printing

	* tests/core/ikwiad.cc: here.

2017-06-07  Henrich Lauko  <henrich.lau@gmail.com>

	remfin: Make removing of fins more modular.

	* spot/twaalgos/remfin.cc: Refactore remove_fin implementation. Enable
	filtering of strategies used for fin removing.
	* spot/priv/enumflags.hh: Add support for enum flags from brick-types.
	* spot/priv/Makefile.am: Add enumflags.hh to make.
	* debian/copyright: Update copyright with bricks library license.

2017-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Henrich Lauko.

2017-06-05  Maximilien Colange  <colange@lrde.epita.fr>

	Properly handle "simulated-states" property in twagraph::defrag_states.

	* spot/twa/twagraph.cc: Implement the change.
	* spot/twaalgos/simulation.hh: Improve documentation.
	* tests/python/simstate.py: Improve the test.
	* doc/org/concepts.org: Typo.

2017-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/ltlcross4.test: Ignore space diff in pandas' output.

2017-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/ltlcross4.test: Ignore space diff in pandas' output.

2017-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around change in pandas 0.20

	* tests/core/ltlcross4.test: Replace describe() by agg() to work
	around a backward incompatible change in pandas 0.20.

2017-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: do not depend on bdd numbers for ordering classes

	Fixes #262 again.  Reported by Maximilien Colange.

	* spot/twaalgos/simulation.cc: Use state numbers to order classes, not
	their signatures.  The problem was that even if two simulation of the
	same automaton assign the same signature, the BDD identifier used for
	that signature might be different, and therefore the ordering obtained
	by using BDDs as keys in a map can be different.  A side-effect of
	this change is that the order of states in automata produced by
	simulation-based reduction may change; many tests had to be updated.
	* tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
	report.
	* tests/core/complement.test, tests/core/det.test,
	tests/core/parseaut.test, tests/core/prodor.test,
	tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/highlighting.ipynb,
	tests/python/piperead.ipynb, tests/python/testingaut.ipynb,
	tests/python/word.ipynb: Update test cases for new order of states.

2017-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around change in pandas 0.20

	* tests/core/ltlcross4.test: Replace describe() by agg() to work
	around a backward incompatible change in pandas 0.20.

2017-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: do not depend on bdd numbers for ordering classes

	Fixes #262 again.  Reported by Maximilien Colange.

	* spot/twaalgos/simulation.cc: Use state numbers to order classes, not
	their signatures.  The problem was that even if two simulation of the
	same automaton assign the same signature, the BDD identifier used for
	that signature might be different, and therefore the ordering obtained
	by using BDDs as keys in a map can be different.  A side-effect of
	this change is that the order of states in automata produced by
	simulation-based reduction may change; many tests had to be updated.
	* tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
	report.
	* tests/core/complement.test, tests/core/det.test,
	tests/core/parseaut.test, tests/core/prodor.test, tests/core/scc.test,
	tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/decompose_scc.py,
	tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
	tests/python/sccinfo.py, tests/python/simstate.py,
	tests/python/testingaut.ipynb, tests/python/word.ipynb: Update
	test case for new order of states.

2017-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: fix printing of alternating automata

	Related to #208.

	* spot/twaalgos/dot.cc: Fix missing definitions of universal nodes,
	and inclusion of universal nodes inside of SCC when none of the
	destination comes back to the SCC.
	* tests/python/_altscc.ipynb: Adjust and add more test cases.
	* tests/core/alternating.test, tests/core/neverclaimread.test,
	tests/core/readsave.test, tests/core/sccdot.test,
	tests/python/decompose.ipynb: Adjust test cases.
	* NEWS: Mention the bug.

2017-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: ensure that all environment variables are documented

	* tests/sanity/getenv.test: New file.
	* tests/Makefile.am: Add it.
	* bin/man/spot-x.x: Document SPOT_STUTTER_CHECK and SPOT_DEBUG_PARSER.

2017-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: catch undocumented named properties

	* tests/sanity/namedprop.test: New file.
	* tests/Makefile.am: Add it.
	* doc/org/concepts.org: Add documentation for degen-levels and
	simulated-states.

2017-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: fix printing of alternating automata

	Related to #208.

	* spot/twaalgos/dot.cc: Fix missing definitions of universal nodes,
	and inclusion of universal nodes inside of SCC when none of the
	destination comes back to the SCC.
	* tests/python/_altscc.ipynb: Adjust and add more test cases.
	* tests/core/alternating.test, tests/core/neverclaimread.test,
	tests/core/readsave.test, tests/core/sccdot.test,
	tests/python/decompose.ipynb: Adjust test cases.
	* NEWS: Mention the bug.

2017-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: keep track of common acceptance sets

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Do it.
	* tests/core/sccdot.test: Add a test case.
	* NEWS: Mention it.

2017-05-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: add a maybe_accepting() method

	* spot/twa/acc.cc, spot/twa/acc.hh: Implement the new method, and
	use it to implement inf_accepting().
	* tests/python/accparse2.py: Add some tests.

2017-05-31  Maximilien Colange  <colange@lrde.epita.fr>

	Degeneralization keeps track of levels.

	* NEWS: Document this.
	* spot/twa/twagraph.cc: `copy_state_names_from` handles this new info.
	* spot/twaalgos/degen.hh, spot/twaalgos/degen.cc: Implement it.
	* tests/python/origstate.py, tests/python/simstate.py: Update tests to
	  reflect the change.

2017-05-31  Maximilien Colange  <colange@lrde.epita.fr>

	Simulation keeps track of simulated states in the input automaton.

	* NEWS: Document the change.
	* spot/twaalgos/simulation.cc: Implement the change.
	* spot/twa/twagraph.cc: `copy_state_names_from` uses simulated states
	  info if present.
	* spot/twaalgos/determinize.cc: Pretty-print in determinization follows
	  simulated states, avoiding possible confusion.
	* tests/Makefile.am, tests/python/simstate.py: Add a test.

2017-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: use an scc_info filter to avoid copying automata

	* spot/twaalgos/remfin.cc (is_scc_ba_type): Replace the call
	to mask_keep_states by the use of an scc_info filter.

2017-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: make it possible to ignore or cut edges

	* spot/twaalgos/sccinfo.hh, spot/twaalgos/sccinfo.cc: Take
	a filter function as optional argument.
	* tests/core/sccif.cc, tests/core/sccif.test: New files.
	* tests/Makefile.am, tests/core/.gitignore: Adjust.
	* NEWS: Mention the new feature.

2017-05-29  Thomas Medioni  <tmedioni@lrde.epita.fr>

	rs_like: fix bug to accept Fin | Fin , Inf & Inf

	co-Büchi is now recognized as Streett-like, Büchi as Rabin-like.
	Also recognized Inf & Inf & Inf... as Streett-like and
	Fin | Fin | Fin... as Rabin-like.

	* spot/twa/acc.cc: Fix the bug
	* tests/python/rs_like.py: Add some test case

2017-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: release all subformulas between runs

	Fixes #262, reported by Maximilien Colange.

	* bin/common_output.cc, bin/common_aoutput.cc, bin/common_aoutput.hh:
	Clear the set of atomic propositions if --stats=%[...]x was used.
	* spot/twa/bdddict.cc: Release any formula associated to a BDD when it
	is unregistered, do not wait for the dictionary's destruction.  This
	was the main culprit for #262.
	* tests/core/ltl2tgba.test: Add test cases.
	* NEWS: Mention the bug.

2017-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: release all subformulas between runs

	Fixes #262, reported by Maximilien Colange.

	* bin/common_output.cc, bin/common_aoutput.cc, bin/common_aoutput.hh:
	Clear the set of atomic propositions if --stats=%[...]x was used.
	* spot/twa/bdddict.cc: Release any formula associated to a BDD when it
	is unregistered, do not wait for the dictionary's destruction.  This
	was the main culprit for #262.
	* tests/core/ltl2tgba.test: Add test cases.
	* NEWS: Mention the bug.

2017-05-11  Maximilien Colange  <colange@lrde.epita.fr>

	Fix uninitialized value.

	* spot/twaalgos/sccinfo.hh: initialize t_, and remove useless data from
	  class scc_edges.

2017-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2017-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.3.4

	* NEWS, configure.ac, doc/org/setup.org: Update version to 2.3.4.

2017-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: misc cleanups

	* spot/parseaut/parseaut.yy: Remove extra ;.
	* spot/parseaut/scanaut.ll: Use nullptr instead of 0.

2017-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: misc cleanups

	* spot/parseaut/parseaut.yy: Remove extra ;.
	* spot/parseaut/scanaut.ll: Use nullptr instead of 0.

2017-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: clear simplification cache between translations

	The cache used in formula simplification will keep atomic propositions
	defined between several translations, and may impact variable order.
	Reported by Maximilien Colange.

	* spot/tl/simplify.hh, spot/tl/simplify.cc,
	spot/twaalgos/translate.cc, spot/twaalgos/translate.hh (clear_cache):
	New method.
	* bin/ltl2tgba.cc, bin/ltl2tgta.cc: Call it.
	* spot/twaalgos/stats.cc: Do not keep a point to the formula after
	printing statistics.
	* tests/core/ltl2tgba.test: Add a test case.
	* tests/core/readsave.test: Adjust one formula.
	* NEWS: Mention the issue.

2017-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: clear simplification cache between translations

	The cache used in formula simplification will keep atomic propositions
	defined between several translations, and may impact variable order.
	Reported by Maximilien Colange.

	* spot/tl/simplify.hh, spot/tl/simplify.cc,
	spot/twaalgos/translate.cc, spot/twaalgos/translate.hh (clear_cache):
	New method.
	* bin/ltl2tgba.cc, bin/ltl2tgta.cc: Call it.
	* spot/twaalgos/stats.cc: Do not keep a point to the formula after
	printing statistics.
	* tests/core/ltl2tgba.test: Add a test case.
	* tests/core/readsave.test: Adjust one formula.
	* NEWS: Mention the issue.

2017-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: introduce edges_of() and inner_edges_of()

	This is motivated by some upcoming patch by Heňo.

	* spot/twaalgos/sccinfo.hh (edges_of, inner_edges_of): New methods.
	* spot/twaalgos/sccinfo.cc, spot/twaalgos/strength.cc: Use them.
	* spot/twa/twagraph.hh (edge_number): Add an overload.
	* python/spot/impl.i: Bind the new methods.
	* tests/python/sccinfo.py: Add tests.
	* NEWS: Mention the changes.

2017-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: list ltlfilt's transformation

	* doc/org/ltlfilt.org: A the list of transformation option.
	Suggested by Yann Thierry-Mieg.

2017-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: list ltlfilt's transformation

	* doc/org/ltlfilt.org: A the list of transformation option.
	Suggested by Yann Thierry-Mieg.

2017-05-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: fix related to event_univ handling

	Fixes #260.  Reported by František Blahoudek.

	The simplification F(f)|q = F(f|q), where q designates an event_univ
	formula, was not always applied because of a couple of issue: (1) the
	mospliter was ignoring event_univ unless favor_event_univ was set, (2)
	when processing formulas from res_EventUniv they were not put back
	into res_F or res_G to be subject to the F/G rules.

	* spot/tl/simplify.cc: Improve handling of the above points.
	* tests/core/reduccmp.test: Adjust and add test case.
	* tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.

2017-05-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: fix related to event_univ handling

	Fixes #260.  Reported by František Blahoudek.

	The simplification F(f)|q = F(f|q), where q designates an event_univ
	formula, was not always applied because of a couple of issue: (1) the
	mospliter was ignoring event_univ unless favor_event_univ was set, (2)
	when processing formulas from res_EventUniv they were not put back
	into res_F or res_G to be subject to the F/G rules.

	* spot/tl/simplify.cc: Improve handling of the above points.
	* tests/core/reduccmp.test: Adjust and add test case.
	* tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.

2017-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: fix the changelog of buddy

	* debian/rules (override_dh_installchangelogs): New rule.

2017-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce spot::split_edges()

	Fixes #255.

	* spot/twaalgos/split.cc, spot/twaalgos/split.hh,
	tests/core/split.test: New files.
	* spot/twaalgos/Makefile.am, tests/Makefile.am: Add them.
	* bin/autfilt.cc (--split-edges): New option.
	* python/spot/impl.i: Process split.hh.
	* tests/python/alternating.py: Test split_edges() on
	an alternating automaton.

2017-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: fix the changelog of buddy

	* debian/rules (override_dh_installchangelogs): New rule.

2017-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: consider incoming edges to select initial levels

	Fixes #257.

	* spot/twaalgos/degen.cc: Implement this optimization.
	* tests/core/degendet.test: Add a few test cases.
	* tests/core/ltl2tgba2.test: Adjust expected sizes.
	* NEWS: Mention the change.

2017-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: honor state-names & product-states in format_state()

	* spot/twa/twagraph.cc, spot/twa/twagraph.hh (format_state): Honor
	the state-names and product-states properties.
	* tests/python/highlighting.ipynb: Adjust.

2017-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: introduce copy_state_names_from()

	* spot/twa/twagraph.cc, spot/twa/twagraph.hh: Here.  Also
	make sure "original-states" survives defrag_states().
	* NEWS: Mention it.
	* tests/python/origstate.py: New file.
	* tests/Makefile.am: Add it.

2017-05-04  Thomas Medioni  <tmedioni@lrde.epita.fr>

	sum: remove useless include

	* spot/twaalgos/sum.cc: Remove useless include.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove temporary files even on errors

	Fixes #259.

	* bin/common_setup.cc: Register a cleanup_tmpfiles() via atexit.
	* tests/core/ltldo.test: Add a test case.
	* NEWS: Mention the bug.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* Makefile.am (gen-ChangeLog): Generate BuDDy's ChangeLog.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix libspot.pc and libspotltsmin.pc generation

	Report from Jeroen Meijer.

	* spot/Makefile.am (libspot.pc): Depends on Makefile.  Use a
	temporary.  Declare in CLEANFILES instead of DISTCLEANFILES.
	* spot/ltsmin/Makefile.am (libspotltsmin.pc): Likewise.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove temporary files even on errors

	Fixes #259.

	* bin/common_setup.cc: Register a cleanup_tmpfiles() via atexit.
	* tests/core/ltldo.test: Add a test case.
	* NEWS: Mention the bug.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* Makefile.am (gen-ChangeLog): Generate BuDDy's ChangeLog.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	install a libspotgen.pc file

	* spot/gen/libspotgen.pc.in: New file.
	* spot/gen/Makefile.am: Install libspotgen.pc.
	* debian/libspot-dev.install: Update.

2017-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix libspot.pc and libspotltsmin.pc generation

	Report from Jeroen Meijer.

	* spot/Makefile.am (libspot.pc): Depends on Makefile.  Use a
	temporary.  Declare in CLEANFILES instead of DISTCLEANFILES.
	* spot/ltsmin/Makefile.am (libspotltsmin.pc): Likewise.

2017-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_dfa: use the twa_graph interface

	Fixes #233, although more cleanup would be welcome.

	* spot/twaalgos/minimize.cc: Replace the uses of twa methods by
	twa_graph methods, and simplify some data structures.
	* tests/core/acc_word.test, tests/core/readsave.test,
	tests/python/automata.ipynb: Adjust changed output due
	to different data structures.

2017-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: another automaton family

	* spot/gen/automata.hh, spot/gen/automata.cc,
	bin/genaut.cc: Introduce L_DSA.
	* tests/core/genaut.test: Add quick test.

2017-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: set more properties in automata

	* spot/gen/automata.cc: Set more properties.
	* tests/python/gen.py: Check that they are set.

2017-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: introduce a new automaton family

	* spot/gen/automata.cc, spot/gen/automata.hh: Define AUT_L_NBA.
	* bin/genaut.cc (--l-nba): New option.
	* bin/man/genaut.x, doc/org/genaut.org, NEWS: Document it.
	* tests/python/gen.py, tests/core/genaut.test: Test it.

2017-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: pass the bdd_dict to aut_pattern()

	* spot/gen/automata.hh (aut_pattern): Add the dict argument.
	* spot/gen/automata.cc, python/spot/gen.i: Adjust.
	* tests/python/gen.py: Make sure two automata built without
	specifying any dictionary share the same one.

2017-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: hide ks_cobuchi(), introduce aut_pattern()

	* spot/gen/automata.hh, spot/gen/automata.cc: Hide ks_cobuchi() behind
	introduce aut_pattern(), as we have already done for the formulas.
	* bin/genaut.cc: Simplify using this interface.
	* python/spot/gen.i: Introduce aut_patterns().
	* tests/python/gen.ipynb, tests/python/gen.py: Adjust.

2017-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: prefix ltl_pattern identifiers with LTL_

	This helps with autocompletion in IPython, and it will prevent us from
	mixing LTL patterns with automata patterns (once we have more than one
	automata generator).

	* spot/gen/formulas.hh: Here.
	* spot/gen/formulas.cc, bin/genltl.cc, tests/python/gen.ipynb,
	tests/python/gen.py: Adjust.

2017-04-28  Thomas Medioni  <tmedioni@lrde.epita.fr>

	* bin/.gitignore: Ignore genaut binary.

2017-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reword and reorder a few entries.

2017-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gen: rename genltl() to ltl_pattern() and introduce ltl_patterns()

	* spot/gen/formulas.hh, spot/gen/formulas.cc (genltl): Rename as...
	(ltl_pattern): This.
	(ltl_pattern_max): New function.
	* bin/genltl.cc: Adjust names, and simplify using ltl_pattern_max().
	* python/spot/gen.i (ltl_patterns): New function.
	* tests/python/gen.py: Test it.
	* tests/python/gen.ipynb: New file to document the spot.gen package.
	* tests/Makefile.am, doc/org/tut.org: Add gen.ipynb.

2017-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org: Typos in property flag names.

2017-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos: familly -> family

	* bench/ltlcounter/README, doc/org/upgrade2.org: Here.

2017-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove unsupported %b stats from --help

	* bin/common_aoutput.cc: Here.
	* NEWS: Mention it.

2017-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org: Typos in property flag names.

2017-04-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: move all formula generation code to spot/gen/

	Fixes #254.

	* spot/gen/formulas.cc, spot/gen/formulas.hh: New files.
	* spot/gen/Makefile.am: Add them.
	* spot/Makefile.am: Fix build order.
	* bin/genltl.cc: Move most code to the above files and adjust.
	* bin/Makefile.am: Link genltl with libspotgen.
	* doc/org/arch.tex: Adjust picture to show that genltl uses
	libspotgen.
	* python/spot/gen.i: Include formulas.hh.
	* tests/python/gen.py: Make sure genltl() and ltl_pattern_name()
	can be called.

2017-04-25  Maximilien Colange  <colange@lrde.epita.fr>

	Remove useless code.

	* spot/twaalgos/determinize.cc: remove code.

2017-04-24  Maximilien Colange  <colange@lrde.epita.fr>

	Check that automata produced by ks_cobuchi are state-based.

	* tests/python/gen.py: implement the check.

2017-04-24  Maximilien Colange  <colange@lrde.epita.fr>

	ks_cobuchi produces state-based automata.

	* spot/gen/automata.cc: implement the change.

2017-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update the architecture diagram

	For #254.

	* doc/org/arch.tex: Include libspotgen and its python bindings,
	genaut, and also the buddy bindings.
	* doc/org/concepts.org: Adjust the description.

2017-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add wrapper for libspotgen

	For #254.

	* python/spot/gen.i, tests/python/gen.py: New files.
	* python/Makefile.am, tests/Makefile.am: Adjust.
	* NEWS: Mention the spot.gen python package.

2017-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos: familly -> family

	* bench/ltlcounter/README, doc/org/upgrade2.org: Here.

2017-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ks_cobuchi: forbid n=0

	* spot/gen/automata.hh: State the precondition.
	* spot/gen/automata.cc: Catch n==0.
	* tests/core/genaut.test: Test it.

2017-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: ensure all binaries are documented

	* tests/sanity/bin.test: New file.
	* tests/Makefile.am: Run it.

2017-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genaut: add missing documentation

	* bin/man/genaut.x, doc/org/genaut.org: New files.
	* bin/man/Makefile.am, doc/Makefile.am: Add them.
	* doc/org/tools.org, bin/man/randaut.x, bin/man/randltl.x,
	bin/man/genltl.x: Link to them.

2017-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: remove unsupported %b stats from --help

	* bin/common_aoutput.cc: Here.
	* NEWS: Mention it.

2017-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genaut: minor fixes and add test case

	* bin/genaut.cc: Use RANGE instead of N, and document it.
	Output the FORMAT documentation, and fix handling of %F and %L.
	* tests/core/genaut.test: New file.
	* tests/Makefile.am: Add it.

2017-04-21  Maximilien Colange  <colange@lrde.epita.fr>

	Add a genaut binary.

	Similarly to genltl that generates LTL formulas for various classes that
	appear in the literature, genaut generates automata.

	* NEWS: Mention the modification.
	* bin/Makefile.am: Build the new binary.
	* bin/genaut.cc: The new binary itself.

2017-04-21  Maximilien Colange  <colange@lrde.epita.fr>

	Add a new library to generate formulas and automata.

	This library, called libspotgen, gathers functions to generate classes
	of automata found in the literature.
	Related to #254.

	* NEWS, README: Mention the modification.
	* Makefile.am, debian/control, debian/libspotgen0.install: Build the new
	  library in a separate package.
	* spot/gen/automata.hh, spot/gen/automata.cc: Add a family of co-Büchi
	  automata.
	* configure.ac, spot/Makefile.am, spot/gen/Makefile.am: Build the new
	  library.

2017-04-21  Thomas Medioni  <tmedioni@lrde.epita.fr>

	Implements is_streett_like() and streett_like_pairs(), is_rabin_like...

	Adds the method spot::acc_cond::is_streett_like() that behaves like
	spot::acc_cond::is_streett() except that it works on a wider range
	of acceptance conditions, called Streett-like. Also adds
	spot::acc_cond::streett_like_pairs() that returns a boolean assessing
	whether the acceptance condition is Streett-like and also returns all
	the Streett_like pairs.
	Defines the new struct type spot::acc_cond::rs_pair.
	Similarily, Adds the methods spot::acc_cond::is_rabin_like() and
	spot::acc_cond::rabin_like_pairs().

	* NEWS: Mention this modification
	* python/spot/impl.i: Declares the new struct to SWIG, and defines
	the streett_like_pairs() vector as an output parameter, which makes
	the python code return a tuple (boolean, vector) rather than a
	pass-by-reference vector.
	* spot/twa/acc.cc, spot/twa/acc.hh: Declares an implements the new
	methods and the new nested struct.
	* tests/Makefile.am: Add new tests to the suite
	* tests/python/rs_like.py: Tests the new methods and
	the SWIG bindings.

2017-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: typos

	* doc/org/concepts.org: Fix some typos.

2017-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce original-states

	* spot/twaalgos/degen.cc, spot/twaalgos/degen.hh,
	spot/twaalgos/mask.hh: Store original states in "original-states"
	properties.
	* spot/twaalgos/dot.cc: Add support for option 'd'.
	* bin/common_aoutput.cc: Document it.
	* doc/org/concepts.org, NEWS: Document "original-states".
	* tests/core/readsave.test: Add some tests.

2017-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: typos

	* doc/org/concepts.org: Fix some typos.

2017-04-20  Thomas Medioni  <tmedioni@lrde.epita.fr>

	mark_t: sets() no longer returns a vector

	spot::mark_t::sets() was modified so that it now returns an iterable
	object rather than an std::vector<unsigned>.

	* NEWS: Mention the modification.
	* python/spot/impl.i: Declares mark_container as iterable to SWIG.
	* spot/parseaut/parseaut.yy: Adapts to the modification.
	* spot/twa/acc.hh: Implement the modification.
	* tests/python/acc_cond.ipynb: Adapts to the modification.

2017-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: fix a serious bug

	Reported by Thibaud Michaud

	* spot/twaalgos/sbacc.cc: Do not label rejecting SCCs with the empty
	mark, as it might be accepting.
	* tests/core/sbacc.test: Add test cases.
	* NEWS: Mention the bug.

2017-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: fix a serious bug

	Reported by Thibaud Michaud

	* spot/twaalgos/sbacc.cc: Do not label rejecting SCCs with the empty
	mark, as it might be accepting.
	* tests/core/sbacc.test: Add test cases.
	* NEWS: Mention the bug.

2017-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version number to 2.3.3.dev

	* NEWS, configure.ac: Here.

2017-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Spot 2.3.3

	* NEWS, configure.ac, doc/org/setup.org: Bump version number.

2017-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/remfin.cc: Typos in comments.

2017-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/remfin.cc: Typos in comments.

2017-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_hoa: turn the safety checks into exceptions

	Because when those assertions fails in Python, they crash the
	interpreter.

	* spot/twaalgos/hoa.cc (print_hoa): Remplace assert() by throw.

2017-04-07  Thomas Medioni  <tmedioni@lrde.epita.fr>

	autfilt: Add --dualize option

	* NEWS: Mention this addition.
	* bin/autfilt.cc: Add dualize option
	* tests/Makefile.am: Add dualize option test file to the suite.
	* tests/core/dualize.test: Test the dualize option.

2017-04-07  Thomas Medioni  <tmedioni@lrde.epita.fr>

	dtwa_complement: deprecated, use dualize() instead.

	* NEWS: Mention of the deprecation
	* bench/stutter/stutter_invariance_randomgraph.cc,
	  bin/autfilt.cc, bin/ltlcross.cc, spot/twaalgos/langmap.cc,
	  spot/twaalgos/minimize.cc, spot/twaalgos/powerset.cc,
	  spot/twaalgos/stutter.cc, tests/core/ikwiad.cc,
	  tests/python/bugdet.py, tests/python/remfin.py,
	  tests/python/sum.py: Refactor calls to dtwa_complement() with calls
	  to dualize().
	* doc/org/upgrade2.org: Change mention of dtwa_complement with dualize.
	* spot/twaalgos/complement.hh: Add deprecation notice.
	* python/spot/impl.i: Add deprecation notice for the python bindings.

2017-04-07  Thomas Medioni  <tmedioni@lrde.epita.fr>

	dtwa_complement: replace code with call to dualize

	* NEWS: Mention of this modification
	* spot/twaalgos/complement.cc: Replace dtwa_complement with a call
	  to dualize

2017-04-07  Thomas Medioni  <tmedioni@lrde.epita.fr>

	implement dualize to complement automatons

	* NEWS: Mention the implementation
	* python/spot/impl.i: Add dualize() to python interface.
	* spot/twaalgos/Makefile.am: Add dualize.cc,hh to the build
	* spot/twaalgos/dualize.cc: Implement dualize() that takes an automaton
	  and returns its dual
	* spot/twaalgos/dualize.hh: Implement dualize()
	* tests/Makefile.am: Add dualize tests to the test suite
	* tests/python/dualize.py: Test cases for dualize

2017-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Thomas Medioni.

2017-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add support for --p-patterns

	Fixes #246.

	* bin/genltl.cc: Implement it.
	* bin/man/genltl.x, doc/org/genltl.org, NEWS: Document it.
	* tests/core/ltl2tgba2.test: Test it.

2017-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --hkrss-patterns

	Fixes #245.

	* bin/genltl.cc: Add the option.
	* bin/man/genltl.x: Add reference.
	* tests/core/ltl2tgba2.test: Use these patterns.
	* doc/org/genltl.org, NEWS: Document the options.

2017-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --spec-patterns as an alias to --dac-patterns

	* bin/genltl.cc: Here.
	* NEWS: Mention it.

2017-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add shorthands for ltl2dpa ltl2da and ltl2ldba

	* bin/common_trans.cc: Here.
	* doc/org/ltlcross.org, doc/org/ltldo.org, NEWS: Adjust.

2017-04-07  Maximilien Colange  <colange@lrde.epita.fr>

	Fix wrong URL for Debian packages.

	* debian/control: Fix URL.

2017-04-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: fix a corner case for rabin_to_buchi_maybe

	when fin_alone sets where presents (i.e., not really Rabin condition),
	the rabin_to_buchi_maybe() could fail to notice DBA-typeness.

	* spot/twaalgos/remfin.cc: Don't set scc_ba_type to false when
	fin_alone is present.
	* tests/core/remfin.test: Add a test case.

2017-04-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add shorthands for ltl2dpa ltl2da and ltl2ldba

	* bin/common_trans.cc: Here.
	* doc/org/ltlcross.org, doc/org/ltldo.org, NEWS: Adjust.

2017-04-05  Maximilien Colange  <colange@lrde.epita.fr>

	Fix wrong URL for Debian packages.

	* debian/control: Fix URL.

2017-04-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: fix a corner case for rabin_to_buchi_maybe

	when fin_alone sets where presents (i.e., not really Rabin condition),
	the rabin_to_buchi_maybe() could fail to notice DBA-typeness.

	* spot/twaalgos/remfin.cc: Don't set scc_ba_type to false when
	fin_alone is present.
	* tests/core/remfin.test: Add a test case.

2017-04-03  Thomas Medioni  <tmedioni@lrde.epita.fr>

	sum: Fix universal initial state bug

	* spot/twaalgos/sum.cc: Fix the sum of automatas having universal
	  initial transitions.
	* tests/core/explsum.test: Add test case testing the handling of
	  universal initial transitions in sum.

2017-03-31  Thomas Medioni  <tmedioni@lrde.epita.fr>

	bench: fix stutter bench compiler errors.

	* NEWS: mention this fix.
	* bench/stutter/stutter_bench.sh, bench/stutter/user.sh: Path to spot
	  binaries would include an inexistant src directory.
	* bench/stutter/stutter_invariance_formulas.cc: Add override qualifier
	  to satisfy -Wsuggest-override.

2017-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	various typos

	* bench/dtgbasat/gen.py, spot/twaalgos/complement.hh: Fix
	looser->loser and lossing->losing.
	* tests/sanity/style.test: Catch 'an uni[^n]'.
	* spot/ta/ta.hh, spot/taalgos/tgba2ta.cc, spot/taalgos/tgba2ta.hh,
	spot/twa/twagraph.cc, spot/twaalgos/complement.hh,
	spot/twaalgos/sccinfo.cc: Fix various occurences of this pattern.

2017-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: update some incorrect or obsolete code

	* tests/python/ipnbdoctest.py: Use importlib instead of imp.
	* tests/python/ltlparse.py: Fix invalid escape sequence.

2017-03-31  Thomas Medioni  <tmedioni@lrde.epita.fr>

	bench: fix stutter bench compiler errors.

	* NEWS: mention this fix.
	* bench/stutter/stutter_bench.sh, bench/stutter/user.sh: Path to spot
	  binaries would include an inexistant src directory.
	* bench/stutter/stutter_invariance_formulas.cc: Add override qualifier
	  to satisfy -Wsuggest-override.

2017-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	various typos

	* bench/dtgbasat/gen.py, spot/twaalgos/complement.hh: Fix
	looser->loser and lossing->losing.
	* tests/sanity/style.test: Catch 'an uni[^n]'.
	* spot/ta/ta.hh, spot/taalgos/tgba2ta.cc, spot/taalgos/tgba2ta.hh,
	spot/twa/twagraph.cc, spot/twaalgos/complement.hh,
	spot/twaalgos/sccinfo.cc, spot/twaalgos/sum.hh: Fix various occurences
	of this pattern.

2017-03-29  Maximilien Colange  <colange@lrde.epita.fr>

	Properly track dependencies of SWIG files.

	Properly track dependencies of SWIG files to trigger recompilation when
	appropriate.
	Closes issue #250.

	* python/Makefile.am: Track the dependencies of .i files à la automake.

2017-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: update some incorrect or obsolete code

	* tests/python/ipnbdoctest.py: Use importlib instead of imp.
	* tests/python/ltlparse.py: Fix invalid escape sequence.

2017-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: mark prop_deterministic as deprecated

	Related to #212.

	* python/spot/impl.i: Here.

2017-03-29  Maximilien Colange  <colange@lrde.epita.fr>

	Improve sanity tests.

	* tests/sanity/style.test: improve detection of assert in headers, and
	  of template arguments.

2017-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: fix purge_unreachable_states on alternating automata

	The algorithm had two problems: it was removing only useless
	destination from universal destination (instead of removing the entire
	edge), and it was not properly iterating over the entire reachable
	automaton.

	* spot/twa/twagraph.cc: Fix it.
	* spot/twa/twagraph.hh: Adjust documentation.
	* tests/core/alternating.test: Add more tests.
	* tests/python/twagraph.py: Adjust.
	* NEWS: Mention the bug.

2017-03-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: fix purge_unreachable_states on alternating automata

	The algorithm had two problems: it was removing only useless
	destination from universal destination (instead of removing the entire
	edge), and it was not properly iterating over the entire reachable
	automaton.

	* spot/twa/twagraph.cc: Fix it.
	* spot/twa/twagraph.hh: Adjust documentation.
	* tests/core/alternating.test: Add more tests.
	* tests/python/twagraph.py: Adjust.
	* NEWS: Mention the bug.

2017-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emacs config: Make C-c C-c execute the current test through ./run

	* .dir-locals.el: Redefine C-c C-c in sh-mode and python-mode for
	the tests/ subdirectory.c
	* HACKING: Mention it.

2017-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: add more comments

	Because we spent some time with Thomas to re-understand the logic.

	* spot/twaalgos/complete.cc: Comment the code.

2017-03-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complement: reset the terminal property

	Reported by Thomas Medioni.

	* spot/twaalgos/complement.cc: Here.
	* tests/core/complement.test: Add a test case.
	* NEWS: Mention it.

2017-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complement: reset the terminal property

	Reported by Thomas Medioni.

	* spot/twaalgos/complement.cc: Here.
	* tests/core/complement.test: Add a test case.
	* NEWS: Mention it.

2017-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename is_deterministic to is_universal

	For #212.

	* spot/twa/twa.hh: Rename prop_deterministic() as prop_universal(),
	and keep the old name as deprecated.
	* spot/twaalgos/isdet.cc, spot/twaalgos/isdet.hh: Rename
	is_deterministic() as is_universal(), and add a new function
	for is_deterministic().
	* doc/org/concepts.org, doc/org/hoa.org, doc/org/tut21.org,
	spot/tl/hierarchy.cc, spot/twa/twagraph.cc,
	spot/twaalgos/are_isomorphic.cc, spot/twaalgos/determinize.cc,
	spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/hoa.cc, spot/twaalgos/minimize.cc,
	spot/twaalgos/postproc.cc, spot/twaalgos/product.cc,
	spot/twaalgos/randomgraph.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/totgba.cc,
	spot/twaalgos/word.cc, tests/python/product.ipynb,
	tests/python/remfin.py: Adjust.
	* NEWS: Mention the change.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: fix %F for --r-left and --r-right

	Fixes #247.

	* bin/genltl.cc: Here.
	* tests/core/genltl.test: Make sure %F always return a correct pattern
	name..
	* NEWS: Mention the bug.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: move babel's temporary directory in builddir

	Fixes #244, reported by Vincent Tourneur.

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Define
	org-babel-temporary-directory and create the directory.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut11.org: Typo in title.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: improve coverage

	* spot/parsetl/parsetl.yy: Adjust one diagnostic.
	* spot/parsetl/scantl.ll: Fix recovering of missing closing brace
	in lenient mode.
	* tests/python/ltlparse.py: Add tests.
	* NEWS: Mention the lenient mode bug.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: fix %F for --r-left and --r-right

	Fixes #247.

	* bin/genltl.cc: Here.
	* tests/core/genltl.test: Make sure %F always return a correct pattern
	name..
	* NEWS: Mention the bug.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add support for --p-patterns

	Fixes #246.

	* bin/genltl.cc: Implement it.
	* bin/man/genltl.x, doc/org/genltl.org, NEWS: Document it.
	* tests/core/ltl2tgba2.test: Test it.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --hkrss-patterns

	Fixes #245.

	* bin/genltl.cc: Add the option.
	* bin/man/genltl.x: Add reference.
	* tests/core/ltl2tgba2.test: Use these patterns.
	* doc/org/genltl.org, NEWS: Document the options.

2017-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add --spec-patterns as an alias to --dac-patterns

	* bin/genltl.cc: Here.
	* NEWS: Mention it.

2017-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: add support for prop_complete()

	* spot/twa/twa.hh: Add support.  Make two constructors for prop_set in
	order to diagnose constructions with 5 arguments.
	* spot/parseaut/parseaut.yy: Adjust diagnostics for complete and
	deterministic.
	* spot/tl/exclusive.cc, spot/twa/twagraph.cc,
	spot/twaalgos/alternation.cc, spot/twaalgos/complete.cc,
	spot/twaalgos/complete.hh, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/isdet.cc, spot/twaalgos/mask.cc,
	spot/twaalgos/minimize.cc, spot/twaalgos/product.cc,
	spot/twaalgos/remfin.cc, spot/twaalgos/remprop.cc,
	spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/strength.cc,
	spot/twaalgos/stutter.cc, spot/twaalgos/totgba.cc,
	tests/core/parseaut.test, tests/python/product.ipynb: Adjust.
	* NEWS, doc/org/concepts.org, doc/org/hoa.org,
	doc/org/tut21.org: Document it.

2017-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: move babel's temporary directory in builddir

	Fixes #244, reported by Vincent Tourneur.

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Define
	org-babel-temporary-directory and create the directory.

2017-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/common_aoutput.cc: Remove a dead assignment.

2017-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut11.org: Typo in title.

2017-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: improve coverage

	* spot/parsetl/parsetl.yy: Adjust one diagnostic.
	* spot/parsetl/scantl.ll: Fix recovering of missing closing brace
	in lenient mode.
	* tests/python/declenv.py: Move some tests...
	* tests/python/ltlparse.py: ... here, and add many more.
	* NEWS: Mention the lenient mode bug.

2017-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2017-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.3.2.dev

	* NEWS, configure.ac: Here.

2017-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.3.2

	* configure.ac, NEWS, doc/org/setup.org: Bump version to 2.3.2.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl.pdf: adjust syntactic hierarchy class to match code

	Fixes #243.

	* doc/tl/tl.tex: Here.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl.pdf: adjust syntactic hierarchy class to match code

	Fixes #243.

	* doc/tl/tl.tex: Here.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: misc cosmetics

	* doc/org/tut24.org: Add missing section title.
	* doc/org/spot.css: Style h3 headings, and remove some useless lines.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: fix incorrect comment about {r} vs. cl(r)

	Fixes #242.

	* doc/tl/tl.tex: Remove incorrect claim that {r} does not match the
	PSL semantics.

2017-03-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: misc cosmetics

	* doc/org/tut24.org: Add missing section title.
	* doc/org/spot.css: Style h3 headings, and remove some useless lines.

2017-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: fix incorrect comment about {r} vs. cl(r)

	Fixes #242.

	* doc/tl/tl.tex: Remove incorrect claim that {r} does not match the
	PSL semantics.

2017-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: detect C++ errors

	* doc/org/g++wrap.in: Save error messages.
	* doc/Makefile.am: Display them at the end of the compilation.

2017-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emptiness stats: remove some unused code

	* spot/twaalgos/emptiness_stats.hh (unsigned_statistics_copy): Remove.
	* tests/core/randtgba.cc: Remove option -H.

2017-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emptiness checks: replace assert-preconditions by exceptions

	* spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
	spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance
	condition is not satisfied.
	* tests/python/misc-ec.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the change.

2017-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emptiness checks: replace assert-preconditions by exceptions

	* spot/twaalgos/couvreurnew.cc, spot/twaalgos/gv04.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/se05.cc, spot/twaalgos/tau03.cc,
	spot/twaalgos/tau03opt.cc: Throw if precondition on acceptance
	condition is not satisfied.
	* tests/python/misc-ec.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the change.

2017-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .gitignore: Ignore *.gcov files.

2017-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gnulib: update to 405cd675384221b541b460c43de26d159914fe0a

	This also include my patch to lib/argp.hh for C++ compilation.

	* lib/Makefile.am, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.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/c-ctype.h, lib/c-strcase.h,
	lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strncasecmp.c,
	lib/config.charset, lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h,
	lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c,
	lib/exitfail.h, lib/fcntl.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/gettimeofday.c,
	lib/hard-locale.c, lib/hard-locale.h, lib/intprops.h, lib/isatty.c,
	lib/itold.c, lib/localcharset.c, lib/localcharset.h, lib/lstat.c,
	lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c,
	lib/mempcpy.c, lib/mkstemp.c, lib/mkstemps.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/quote.h, lib/quotearg.c, lib/quotearg.h,
	lib/rawmemchr.c, lib/ref-add.sin, lib/ref-del.sin,
	lib/secure_getenv.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/stpcpy.c, lib/strcasecmp.c,
	lib/strchrnul.c, lib/streq.h, 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/strverscmp.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/unistd.in.h,
	lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h, lib/vsnprintf.c,
	lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c,
	lib/xalloc-oversized.h, lib/xalloc.h, lib/xmalloc.c, lib/xsize.h,
	m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4,
	m4/configmake.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/getopt.m4, m4/gettimeofday.m4, m4/glibc21.m4, m4/gnulib-cache.m4,
	m4/gnulib-common.m4, m4/gnulib-comp.m4, m4/gnulib-tool.m4,
	m4/hard-locale.m4, m4/include_next.m4, m4/intmax_t.m4,
	m4/inttypes_h.m4, m4/isatty.m4, m4/largefile.m4, m4/localcharset.m4,
	m4/locale-fr.m4, m4/locale-ja.m4, m4/locale-zh.m4, m4/longlong.m4,
	m4/lstat.m4, m4/malloc.m4, m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4,
	m4/mbstate_t.m4, m4/memchr.m4, m4/mempcpy.m4, m4/mkstemp.m4,
	m4/mkstemps.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/quote.m4, m4/quotearg.m4, m4/rawmemchr.m4,
	m4/secure_getenv.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/stpcpy.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/strverscmp.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/unistd_h.m4, m4/vasnprintf.m4,
	m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4,
	m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4,
	tools/snippet/arg-nonnull.h, tools/snippet/c++defs.h,
	tools/snippet/warn-on-use.h: Update.
	* lib/getprogname.c, lib/getprogname.h, lib/limits.in.h, lib/minmax.h,
	m4/getprogname.m4, m4/limits-h.m4, m4/minmax.m4: New files.

2017-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	upgrade utfcpp to v2.3.5

	From https://github.com/nemtrif/utfcpp/releases/tag/v2.3.5

	* utf8/utf8.h, utf8/utf8/checked.h, utf8/utf8/core.h,
	utf8/utf8/unchecked.h: Update.
	* utf8/doc/utf8cpp.html, utf8/doc/ReleaseNotes: Delete.
	* utf8/README.md: New file.
	* Makefile.am: Adjust.

2017-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add python bindings for declarative_environment

	* python/spot/impl.i: Here.
	* tests/python/declenv.py: New file.
	* tests/Makefile.am: Add it.

2017-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: factor some code

	* spot/parsetl/parsetl.yy (parse_ap, sere_ensure_bool,
	error_false_block): New functions, replacing several similar blocks.

2017-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Thomas Medioni.

2017-03-09  Thomas Medioni  <tmedioni@lrde.epita.fr>

	Implement sum(..) and sum_and(..).

	Fixes #231.

	* NEWS: Mention of implementation of sum, sum_and.
	* bin/autfilt.cc: Add --sum, --sum-or and --sum-and options.
	* python/spot/impl.i: Add bindings for sum, sum_and.
	* spot/twaalgos/Makefile.am: Add sum.cc, sum.hh.
	* spot/twaalgos/sum.cc: Implement sum, sum_and.
	* spot/twaalgos/sum.hh: Declaration of sum, sum_and.
	* tests/Makefile.am: Add sum tests.
	* tests/core/explsum.test: Test the sum of two automatons,
	  false or false, unsatisfied mark propagation, handling of univ.
	  transitions.
	* tests/python/sum.py: Check that two automatons that does not
	  share their bdd dict are not accepted, then run tests over the
	  sum of randomly generated LTL formulas.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add bindings for to_generalized_buchi()

	* python/spot/impl.i: Here.
	* NEWS: Mention it.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/remfin.cc: Typos in comment.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add bindings for to_generalized_buchi()

	* python/spot/impl.i: Here.
	* NEWS: Mention it.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/remfin.cc: Typos in comment.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos: dictionnary -> dictionary

	* doc/org/upgrade2.org, tests/python/prodexpt.py,
	tests/python/product.ipynb, NEWS: Fix typos.
	* tests/sanity/style.test: Add a check for this.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add bindings for bdd_to_formula()

	Follow-up to an email from Ayrat Khalimov.

	* python/spot/impl.i: Include twa/formula2bdd.hh.
	* python/spot/__init__.py: Make the dictionnary
	optional.
	* spot/twa/formula2bdd.cc: Throw an exception instead of asserting.
	* tests/python/bdditer.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Update.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos: dictionnary -> dictionary

	* doc/org/upgrade2.org, tests/python/prodexpt.py,
	tests/python/product.ipynb, NEWS: Fix typos.
	* tests/sanity/style.test: Add a check for this.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: improve test coverage

	* spot/twaalgos/degen.cc: Make use_cust_acc_orders as unlikely, as it
	was never true in the whole test suite before this patch.
	* tests/core/ltlcross2.test: Play with degen-order and degen-lcache
	options to test more cases.

2017-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add bindings for bdd_to_formula()

	Follow-up to an email from Ayrat Khalimov.

	* python/spot/impl.i: Include twa/formula2bdd.hh.
	* python/spot/__init__.py: Make the dictionnary
	optional.
	* spot/twa/formula2bdd.cc: Throw an exception instead of asserting.
	* tests/python/bdditer.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Update.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: more test coverage

	The goal is to improve coverage stats, but I discovered two issues
	while doing so.

	* tests/python/twagraph.py: New test case.
	* tests/Makefile.am: Add it.
	* spot/twa/twagraph.hh: Add fix typos in error messages.
	* python/spot/impl.i: Fix broken wrappers for state_from_number and
	state_acc_sets.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: remove the useless set_init_state(const state*)

	* spot/twa/twagraph.hh: Here.
	* NEWS: Mention the change.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: more test coverage

	The goal is to improve coverage stats, but I discovered two issues
	while doing so.

	* tests/python/twagraph.py: New test case.
	* tests/Makefile.am: Add it.
	* spot/twa/twagraph.hh: Add fix typos in error messages.
	* python/spot/impl.i: Fix broken wrappers for state_from_number and
	state_acc_sets.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: remove ltlprod

	This very old test did not do anything useful today.

	* tests/core/ltlprod.cc, tests/core/ltlprod.test: Delete.
	* tests/Makefile.am: Adjust.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc/translate: more doc and references

	Fixes #239.

	* spot/twaalgos/postproc.hh, spot/twaalgos/translate.hh: Here.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: fix set_univ_init_state() with initializer_list

	Reported by Thomas Medioni.

	* spot/twa/twagraph.hh (set_univ_init_state): Remove the bogus
	template parameter.
	* tests/core/twagraph.cc, tests/core/tgbagraph.test: Test the method.
	* NEWS: Mention the bug.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc/translate: more doc and references

	Fixes #239.

	* spot/twaalgos/postproc.hh, spot/twaalgos/translate.hh: Here.

2017-03-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: fix set_univ_init_state() with initializer_list

	Reported by Thomas Medioni.

	* spot/twa/twagraph.hh (set_univ_init_state): Remove the bogus
	template parameter.
	* tests/core/twagraph.cc, tests/core/tgbagraph.test: Test the method.
	* NEWS: Mention the bug.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	monitor: fix -MD/-M difference in property output

	Fixes #241.

	* spot/twaalgos/postproc.cc: Use the deterministic monitor if it
	has as many states as the non-deterministic one.
	* spot/twaalgos/minimize.cc (minimize_monitor): Quickly check
	for terminal automata.
	* spot/twaalgos/stripacc.cc: Set the weak property.
	* spot/twaalgos/stripacc.hh: Improve documentation.
	* tests/core/monitor.test, tests/core/sbacc.test: Update.
	* NEWS: Mention the issue.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: simplify a C++ example

	* doc/org/tut10.org: Remove a couple of useless includes.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add an example about how to build monitor in shell/python/C++

	Part of #239.

	* doc/org/tut11.org: New file.
	* doc/org/ltl2tgba.org, doc/org/hierarchy.org: Add some anchors we can
	link to in tut11.org.
	* doc/org/tut.org, doc/Makefile.am: Add tut11.org.
	* NEWS: Mention the new page.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: fix monitor code

	Fixes #240.

	* spot/twaalgos/postproc.cc: Do not call do_simul on the output of
	minimize_monitor(), and do not skip complete() when PREF_==Any.
	* tests/core/monitor.test: Add a test case.
	* NEWS: Mention the bug.
	* doc/org/ltl2tgba.org: Document complete monitors.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: fix a typo and remove some useless code

	* spot/twaalgos/sbacc.cc: Do not assign to one_in twice, and
	fix the value of init_acc.
	* tests/core/sbacc.test: Add a test case.
	* NEWS: Mention the bug.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	monitor: fix -MD/-M difference in property output

	Fixes #241.

	* spot/twaalgos/postproc.cc: Use the deterministic monitor if it
	has as many states as the non-deterministic one.
	* spot/twaalgos/minimize.cc (minimize_monitor): Quickly check
	for terminal automata.
	* spot/twaalgos/stripacc.cc: Set the weak property.
	* spot/twaalgos/stripacc.hh: Improve documentation.
	* tests/core/monitor.test, tests/core/sbacc.test: Update.
	* NEWS: Mention the issue.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: simplify a C++ example

	* doc/org/tut10.org: Remove a couple of useless includes.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add an example about how to build monitor in shell/python/C++

	Part of #239.

	* doc/org/tut11.org: New file.
	* doc/org/ltl2tgba.org, doc/org/hierarchy.org: Add some anchors we can
	link to in tut11.org.
	* doc/org/tut.org, doc/Makefile.am: Add tut11.org.
	* NEWS: Mention the new page.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: fix monitor code

	Fixes #240.

	* spot/twaalgos/postproc.cc: Do not call do_simul on the output of
	minimize_monitor(), and do not skip complete() when PREF_==Any.
	* tests/core/monitor.test: Add a test case.
	* NEWS: Mention the bug.
	* doc/org/ltl2tgba.org: Document complete monitors.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: make mark_t::operator bool() explicit

	This avoids a few conversion problems, and also made the bug of
	sbacc (fixed by 37fc948be4) obvious.

	Reported by Thomas Medioni.

	* spot/twa/acc.hh (mark_t::operator bool): Make it explicit.
	* spot/twaalgos/remfin.cc: Adjust.

2017-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: fix a typo and remove some useless code

	* spot/twaalgos/sbacc.cc: Do not assign to one_in twice, and
	fix the value of init_acc.
	* tests/core/sbacc.test: Add a test case.
	* NEWS: Mention the bug.

2017-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove options -! and -" from genltl

	Fixes #237.

	* bin/genltl.cc: Fix the numbering of options.
	* NEWS: Mention the bugs.

2017-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add options to %x to list atomic propositions

	* bin/common_aoutput.cc, bin/common_aoutput.hh, bin/common_output.cc,
	bin/common_output.hh: Add options to %x to list atomic propositions
	with various quoting scheme.  Deprecate --format=%a in favor of the
	new --format=%x for consistency with --stats=%x.
	* tests/core/format.test, tests/core/remprop.test: Adjust and add more
	tests.
	* NEWS: Mention these changes.

2017-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: implement min_set() and max_set() using gcc builtins

	Fixes #238.

	* spot/twa/acc.hh (max_set): Add a version using __builtin_clz().
	(min_set): New method.
	* tests/core/acc.cc, tests/core/acc.test: Add some tests.

2017-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove options -! and -" from genltl

	Fixes #237.

	* bin/genltl.cc: Fix the numbering of options.
	* NEWS: Mention the bugs.

2017-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add options to %x to list atomic propositions

	* bin/common_aoutput.cc, bin/common_aoutput.hh, bin/common_output.cc,
	bin/common_output.hh: Add options to %x to list atomic propositions
	with various quoting scheme.  Deprecate --format=%a in favor of the
	new --format=%x for consistency with --stats=%x.
	* tests/core/format.test, tests/core/remprop.test: Adjust and add more
	tests.
	* NEWS: Mention these changes.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	correct handling of --stats=%P

	Fixes #236.

	* bin/common_aoutput.cc: Fix it.
	* tests/core/format.test: Improve test cases.
	* NEWS: Mention the bug.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	skip divine tests when divine does not understand compile --help

	Fixes #235, reported by Henrich Lauko.

	* python/spot/ltsmin.i: Catch CalledProcessError.
	* NEWS: Mention the bug.
	* THANKS: Add Henrich.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: --stats=%x to count atomic propositions

	* bin/common_aoutput.cc, bin/common_aoutput.hh: Implement %x and %X.
	* tests/core/remprop.test: Test them.
	* NEWS: Mention them.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/priv/satcommon.cc: Fix include.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: minor simplifications

	* spot/twaalgos/powerset.cc (tgba_powerset): Use twa::ap() to simplify
	the code.
	(number_of_variables): Remove.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	correct handling of --stats=%P

	Fixes #236.

	* bin/common_aoutput.cc: Fix it.
	* tests/core/format.test: Improve test cases.
	* NEWS: Mention the bug.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	skip divine tests when divine does not understand compile --help

	Fixes #235, reported by Henrich Lauko.

	* python/spot/ltsmin.i: Catch CalledProcessError.
	* NEWS: Mention the bug.
	* THANKS: Add Henrich.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: --stats=%x to count atomic propositions

	* bin/common_aoutput.cc, bin/common_aoutput.hh: Implement %x and %X.
	* tests/core/remprop.test: Test them.
	* NEWS: Mention them.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/priv/satcommon.cc: Fix include.

2017-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Clément Gillard

2017-02-21  Clément Gillard  <clement.gillard@epita.fr>

	decompose_scc: Update 'decompose' notebook

	* tests/python/decompose.ipynb: Add about `decompose_scc`.
	* doc/org/tut.org: Update description.

2017-02-21  Clément Gillard  <clement.gillard@epita.fr>

	decompose_scc: factor autfilt into decompose_acc_scc

	Put what is done by `autfilt` in a new function, `decompose_acc_scc`.

	* bin/autfilt.cc: Move code from here...
	* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh: To here.
	* tests/python/decompose_scc.py: Test python binding.

2017-02-21  Clément Gillard  <clement.gillard@epita.fr>

	autfilt: Add '--decompose-scc' option

	See #172.

	* bin/autfilt.cc: Add option.
	* tests/core/strength.test: Remove ambiguity with
	'--decompose-strength'.
	* NEWS: Mention it.
	* tests/core/scc.test: Test it.

2017-02-21  Clément Gillard  <clement.gillard@epita.fr>

	Add a decompose_scc() function

	See #172.
	While at it, fix typo in doxygen comment.

	* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh: New function.
	* tests/python/decompose_scc.py, tests/Makefile.am: Test python
	binding.

	* spot/twaalgos/mask.hh: Fix typo.

2017-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: add Python bindings

	Related to #172, where we discussed that scc_info bindings were
	missing.

	* spot/twaalgos/sccinfo.hh (spot::scc_info::scc_node): Move...
	(spot::scc_info_node): ... here to help Swig.
	* python/spot/impl.i: Add bindings for scc_info.
	* tests/python/sccinfo.py: New file.
	* tests/Makefile.am: Add it.

2017-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/genltl.org: Simplify example.

2017-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Bump version number.

2017-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Bump version to 2.3.1.dev.

2017-02-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.3.1

	* configure.ac, NEWS, doc/org/setup.org: Bump version numbers.

2017-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: --kv-phi is in fact --kv-psi

	* bin/genltl.cc: Change the name and add the bibtex entry.
	* bin/man/genltl.x: Replace LNCS by LNAI.
	* tests/core/genltl.test: Also test the %F output.

2017-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: typos and shorter descriptions

	* bin/genltl.cc: Shorten the descriptions of
	the three new LTL families.
	* NEWS: Mention those.

2017-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Vincent & Arthur.

2017-02-16  Vincent Tourneur  <vincent.tourneur@lrde.epita.fr>

	genltl: Add 3 families of LTL formulas from a paper

	Fixes #80.

	* bin/genltl.cc: Add --kr-n2, --kr-nlogn and --kr-n.
	* bin/man/genltl.x: Add the paper in the documentation.
	* tests/core/genltl.test: Test them.

2017-02-16  Arthur Remaud  <aremaud@avignon.lrde.epita.fr>

	autfilt: Better display of cluster when universal edge loops in it

	Fixes #208

	* NEWS: Informations about the modifications
	* spot/twaalgos/dot.cc (print): Gestion of cluster for
	universal transitions
	* tests/core/alternating.test: tests added
	* tests/core/neverclaimread.test: tests changed for
	new dot format
	* tests/core/readsave.test: tests changed
	* tests/core/sccdot.test: tests changed
	* tests/python/_altscc.ipynb: tests changed
	* tests/python/decompose.ipynb: tests changed

2017-02-16  Arthur Remaud  <aremaud@node7.lrde.epita.fr>

	autfilt: add option (y) to --dot to split universal transitions

	Fixes #207

	* NEWS: Informations about the option 'y' for --dot added
	* bin/common_aoutput.cc: Documentation for the option 'y'
	for --dot added
	* spot/twaalgos/dot.cc (print_dst, process_link): Functions
	modified for the new option
	* tests/core/alternating.test: Tests added

2017-02-16  Etienne Renault  <renault@lrde.epita.fr>

	ltsmin: more information for MacOS users

	* tests/ltsmin/README: this fixes #230.

2017-02-16  Etienne Renault  <renault@lrde.epita.fr>

	configure: allows to silent compilation

	* HACKING, configure.ac: here.

2017-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_alternating() -> !is_existential()

	Part of #212.

	* spot/misc/common.hh (SPOT_DEPRECATED): Improve support current
	compilers and options flags.
	* spot/twa/twagraph.hh, spot/graph/graph.hh (is_alternating): Mark it
	as deprecated.
	(is_existential): New method.
	* bin/autfilt.cc, bin/ltlcross.cc, spot/parseaut/parseaut.yy,
	spot/twa/twa.cc, spot/twa/twagraph.cc, spot/twaalgos/alternation.cc,
	spot/twaalgos/are_isomorphic.cc, spot/twaalgos/canonicalize.cc,
	spot/twaalgos/couvreurnew.cc, spot/twaalgos/cycles.cc,
	spot/twaalgos/degen.cc, spot/twaalgos/determinize.cc,
	spot/twaalgos/dot.cc, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/isunamb.cc, spot/twaalgos/isweakscc.cc,
	spot/twaalgos/mask.hh, spot/twaalgos/minimize.cc,
	spot/twaalgos/postproc.cc, spot/twaalgos/product.cc,
	spot/twaalgos/randomize.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/sbacc.cc, spot/twaalgos/sccfilter.cc,
	spot/twaalgos/sccinfo.cc, spot/twaalgos/simulation.cc,
	spot/twaalgos/strength.cc, tests/core/graph.cc, tests/core/ngraph.cc,
	tests/python/alternating.py: Adjust all uses.
	* NEWS: Mention the renaming.

2017-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut23.org: Typos.

2017-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: fix typos in adl_CHECK_PYTHON

	Fixes #220.

	* m4/pypath.m4: Here.
	* NEWS: Mention the bug.

2017-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	alternation: fix detection of non-weak automata

	Fixes #218.

	* spot/twaalgos/alternation.cc: Adjust check.
	* tests/core/alternating.test: Add test case from #218.
	* NEWS: Mention the bug.

2017-02-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/parse.hh (fix_utf8_locations): Fix documentation.

2017-02-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Adjust color and wording of output

	Suggested by Akim Demaille.

	* bin/ltlcross.cc: Change the colors, and add ':' at
	the end of some error message.
	* NEWS: Mention the color change.
	* doc/org/ltlcross.org: Adjust examples.

2017-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Typo.

2017-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emptiness: allow twa_run::as_twa to preserve names

	* spot/twaalgos/emptiness.cc, spot/twaalgos/emptiness.hh: Here.
	* tests/python/ltsmin-dve.ipynb: Add a test.
	* NEWS: Mention the change.

2017-02-02  Maximilien Colange  <colange@lrde.epita.fr>

	Rework the 'down_cast' macro, closing #196.

	* spot/misc/casts.hh: New inline functions and compile-time checks.
	* spot/kripke/kripkegraph.hh, spot/ta/taexplicit.cc,
	  spot/ta/taproduct.cc, spot/ta/tgtaproduct.cc, spot/taalgos/tgba2ta.cc,
	  spot/twa/taatgba.hh, spot/twa/taatgba.cc, spot/twa/twagraph.hh,
	  spot/twa/twaproduct.cc, spot/twaalgos/emptiness.cc,
	  spot/twaalgos/stutter.cc, spot/ltsmin/ltsmin.cc, tests/core/ikwiad.cc,
	  tests/core/ngraph.cc: Remove downcast checks from code.

2017-02-02  Maximilien Colange  <colange@lrde.epita.fr>

	Do not warn about static_asserts.

	* tests/sanity/style.test: Filter out static_assert.

2017-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: plantuml.jar is in the build directory

	Fixes #213.

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Adjust location of
	plantuml.jar.

2017-02-01  Etienne Renault  <renault@lrde.epita.fr>

	use wget or curl according to what is available

	* doc/Makefile.am, elisp/Makefile.am: here.
	* HACKING: add missing requirements.

2017-02-01  Etienne Renault  <renault@lrde.epita.fr>

	Fixes #205.

	* tests/core/hierarchy.test: here.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org: Typo.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	activate -Wpedantic

	Fixes #214.

	* m4/gccwarn.m4: Add -Wpedantic.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: fix function pointer casts for -Wpedantic

	* spot/ltsmin/ltsmin.cc: Here.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: do not use 0-length arrays for -Wpedantic

	* spot/ltsmin/ltsmin.cc: Here.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove stray semi-colons reported by -Wpedantic

	* spot/priv/weight.cc, spot/priv/weight.hh,
	spot/twaalgos/determinize.cc, spot/twaalgos/stats.cc: Here.

2017-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not use non-standard anonymous structs

	For #214, as observed by Thibaud Michaud.

	* spot/twa/acc.hh: Name the anonymous struct.
	* spot/twa/acc.hh, spot/twa/acc.cc, spot/parseaut/parseaut.yy,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/sepsets.cc, spot/twaalgos/totgba.cc: Adjust all usages.
	* NEWS: Mention the renaming.

2017-02-01  Maximilien Colange  <colange@lrde.epita.fr>

	Update doc to reflect changes to Teamcity invokation.

	* HACKING: fix command-line invokation of make check for Teamcity.

2017-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo.org: Fix first examples

	Fixes #210.

	* doc/org/ltldo.org: Actually execute the code writing sample.ltl, and
	remove the file once it is not used anymore.

2017-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: add portfolio options

	Fixes #206.

	* bin/ltldo.cc: Implement --smallest and --greatest.
	* tests/core/ltldo2.test: Test them.
	* NEWS, doc/org/ltldo.org: Document them.

2017-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut51.org: Typo.

2017-01-23  Maximilien Colange  <colange@lrde.epita.fr>

	Do not specify tests extensions as we use a unique runner.

	* tests/Makefile.am: Remove TEST_EXTENSIONS + typos.

2017-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: register dead only if it is an atomic proposition

	* spot/ltsmin/ltsmin.cc: Here.  This fixes 5a441e1b.

2017-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some incorrect AP registrations

	* spot/ltsmin/ltsmin.cc: Do not forget to register dead.
	* spot/twa/twaproduct.cc: Use copy_ap_of() instead of
	register_all_propositions_of() because the latter does
	do update ap().

2017-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typos.

2017-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.3.0.dev

	* NEWS, configure.ac: Here.

2017-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.3

	* configure.ac, doc/org/setup.org, NEWS: Bump version to 2.3.

2017-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: a few additional links

	* doc/org/index.org: Add links to the hierarchy and sat-minimization.
	* doc/org/satmin.org: Show how to use glucose.

2017-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Improve for upcoming release.

2017-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: render the M&P hierarchy in SVG

	* python/spot/__init__.py (show_mp_hierarchy, mp_hierarchy_svg): New
	functions.
	* tests/python/formulas.ipynb: Illustrate show_mp_hierarchy.
	* python/ajax/spotcgi.in: Use mp_hierarchy_svg.
	* python/ajax/css/trans.css: Adjust for possible overflows.
	* NEWS: Mention this new feature.

2017-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	git rid of std::iterator

	Fixes #194.

	* spot/graph/graph.hh: Here.

2017-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: reject alternating inputs

	* spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc: Here.

2017-01-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	langmap: Add example in notebook

	* tests/python/highlighting.ipynb: Add an example of
	highlight_languages().

2017-01-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	langmap: adjust to only color non-unique languages

	Fixes #203.

	* spot/twaalgos/langmap.hh (highlight_languages): Simplify the
	interface by only taking the automaton to color.
	* spot/twaalgos/langmap.cc (highlight_languages): Only introduce
	color for states that have a non-unique language.
	* tests/core/highlightstate.test: Update and add more tests.
	* tests/python/langmap.py: Keep the tests simple.
	* bin/autfilt.cc: Adjust usage and help string.

2017-01-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tmpfile: remove deprecated throw specifiers

	* spot/misc/tmpfile.cc, spot/misc/tmpfile.hh: Remove throw specifier
	to suppress a deprecation warning from g++ 7.

2017-01-16  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	TYPOS

	* NEWS: typo.
	* bench/dtgbasat/config.bench: typo.
	* bench/dtgbasat/gen.py: typo.
	* bench/dtgbasat/stat-gen.sh: typo.
	* doc/org/concepts.org: typo.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hierarchy: expose mp_class to python

	* bin/common_output.cc: Move some of the printing code...
	* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: ... here, as new
	  variants of mp_class...
	* python/spot/impl.i: ... that we can now call from Python.
	* python/ajax/spotcgi.in: Use those to simplify and extend
	the code printing class membership.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	install pkg-config configuration files

	Suggested by Jeroen Meijer.

	* spot/libspot.pc.in, spot/ltsmin/libspotltsmin.pc.in: New file.
	* spot/Makefile.am, spot/ltsmin/Makefile.am: Distribute them, and
	install their derived version.
	* spot/.gitignore: Ignore *.pc files.
	* debian/libbddx-dev.install, debian/libspot-dev.install: Ship
	those *.pc files.
	* NEWS: Mention it.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: disable products columns in CSV if --products=0

	* bin/ltlcross.cc: Fix it.
	* tests/core/ltlcross3.test: Test it.
	* NEWS: Mention the bug.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat_minimize: do not complete in the preproc step

	Fixes #204.

	* spot/twaalgos/dtwasat.cc (sat_minimize): Here.
	* tests/core/satmin2.test: Add a test case.
	* NEWS: Mention the bug.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	alternation: better detection of non-weak alternating automata

	* spot/twaalgos/alternation.cc: Fix the code to also check the
	weakness of single-state SCCs.
	* tests/core/alternating.test: Add a test from ltl3hoa.

2017-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: distribute static libraries

	Suggested by Jeroen Meijer.

	* debian/rules: Enable static libraries.
	* debian/libbddx-dev.install, debian/libspot-dev.install: Distribute
	them.
	* THANKS: Add Jeroen.
	* NEWS: Mention the change.

2017-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross, ltldo: Add support for ltl3hoa.

	* bin/common_trans.cc: Add shorthand for ltl3hoa.
	* NEWS, doc/org/ltlcross.org, doc/org/ltldo.org: Mention it.

2017-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross, ltldo: add a --relabel option

	* bin/common_trans.cc, bin/common_trans.hh: Add the --relabel option.
	* bin/ltlcross.cc, bin/ltldo.cc: Implement it.
	* doc/org/ltldo.org, NEWS: Document it.
	* tests/core/ltl3ba.test: Test it.

2017-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: relabel unsupported atomic propisitions in %s

	* bin/ltlcross.cc: Do it.
	* bin/common_trans.cc: Adjust documentation.
	* tests/core/ltl3ba.test: Test it.
	* NEWS: Document it.

2017-01-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: some doc about the hierarchy

	* doc/org/hierarchy.org, doc/org/hierarchy.tex: New files.
	* doc/Makefile.am, doc/org/tools.org, NEWS: Add them.

2017-01-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: minor tweaks

	* doc/org/ltlfilt.org: Update example.
	* doc/org/ioltl.org: Explain %s briefly.

2017-01-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_wdba: fix handling of input with useless SCCs

	* spot/twaalgos/minimize.cc (minimize_wdba): Diminish the color of
	terminal SCCs that are incomplete, as if they had a non-accepting
	sink as successor.
	* spot/twaalgos/strength.hh, spot/twaalgos/strength.cc
	(is_terminal_automaton): Add an option to ignore trivial SCC as we did
	before, since it matters for deciding membership to the guarantee
	class.
	(is_safety_mwdba): Rewrite as ...
	(is_safety_automaton): ... generalizating to any acceptance, and
	ignoring trivial SCCs.
	* bin/ltlfilt.cc, python/ajax/spotcgi.in, spot/tl/hierarchy.cc,
	tests/core/ikwiad.cc: Adjust usage of is_terminal_automaton and
	is_safety_automaton().
	* tests/core/hierarchy.test: Add a problematic formula as test-case.
	* NEWS: Mention the bug.

2017-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: mp_class() and --format=%[vw]h

	Tools for deciding the class of a formula.

	* spot/tl/hierarchy.cc, spot/tl/hierarchy.hh: New files.
	* spot/tl/Makefile.am: Add them.
	* bin/common_output.cc, bin/common_output.hh: Implement --format=%h.
	* tests/core/hierarchy.test: More tests.
	* NEWS: Update.

2017-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add --recurrence and --persistence

	* spot/twaalgos/remfin.cc, spot/twaalgos/remfin.hh
	(rabin_to_buchi_maybe): Make this function public.
	* bin/ltlfilt.cc: Implement the two options.
	* tests/core/hierarchy.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the new options.

2017-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Some rewrites in preparation for the next release.

2017-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* .dir-locals.el (magit-branch-adjust-remote-upstream-alist): New.

2017-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twagraph: fix purge_dead_states on alternating automata

	* tests/core/alternating.test: Run some of the test through
	valgrind to exhibit the bug.
	* spot/twa/twagraph.cc: Fix it.

2017-01-09  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	Update dtgbasat benchmark

	* bench/dtgbasat/config.bench: Configuration file sample used by gen.py
	* bench/dtgbasat/gen.py: Script that can generate both bench script and
	pdf results.
	* bench/dtgbasat/stats.sh: Change stat.sh into stat-gen.sh that will be
	generated by gen.py script.
	* bench/dtgbasat/Makefile.am: Add new files.
	* bench/dtgbasat/README: Update README.
	* bench/dtgbasat/stat-gen.sh: Add stat script generated by gen.py and
	default config.bench file.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	Update NEWS and documentations

	* NEWS: Update.
	* doc/org/satmin.org: Update satmin page.
	* bin/man/spot-x.x: Document SPOT_XCNF and edit SPOT_SATSOLVER.
	* bin/spot-x.cc: Update satmin options.
	* bin/autfilt.cc: Update satmin related documentations.
	* bin/man/autfilt.x: Update autfilt options.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	misc: Add 'SPOT_XCNF' environment variable

	* spot/misc/satsolver.cc: Handle xcnf writing.
	* spot/misc/satsolver.hh: Handle xcnf writing.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos: Set 'dicho' algo as default for SAT-based minimization

	* python/spot/__init__.py: Handle options.
	* spot/twaalgos/dtwasat.cc: Handle options.
	* spot/twaalgos/postproc.cc: Handle options.
	* spot/twaalgos/postproc.hh: Handle options.
	* tests/core/satmin.test: Update tests.
	Now use 'sat-minimize=4' to use the naive algo.
	* tests/core/satmin2.test: Update tests.
	Now use --sat-minimize='naive' to use the naive algo.
	* tests/python/satmin.py: Update tests.
	Now use 'naive=True' to use the naive algo.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot: Add 'langmap' option with dichotomy (it helps to choose min val)

	* python/spot/__init__.py: Handle 'dicho' option in 'sat_minimize'.
	* spot/priv/satcommon.cc: Implement get_number_of_distinct_vals.
	* spot/priv/satcommon.hh: Declare get_number_of_distinct_vals.
	* spot/twaalgos/dtbasat.cc: Use get_number_of_distinct_vals.
	* spot/twaalgos/dtbasat.hh: Change dichotomy function's prototype.
	* spot/twaalgos/dtwasat.cc: Use get_number_of_distinct_vals.
	* spot/twaalgos/dtwasat.hh: Change dichotomy function's prototype.
	Handle options.
	* spot/twaalgos/postproc.cc: Handle options.
	* spot/twaalgos/postproc.hh: Add dicho_langmap_ var for options.
	* tests/core/satmin2.test: Add tests for dichotomy.
	* tests/core/satmin.test: Add tests for dichotomy.
	* tests/python/satmin.py: Replace 'dichotomy' with 'dicho' option.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	bin/autfilt.cc: Add '--highlight-languages' option

	* bin/autfilt.cc: Add that option.
	* tests/core/highlightstate.test: Add test.
	* NEWS: Update.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos: Implement language_map algo

	* python/spot/impl.i: Add python bindings.
	* spot/twaalgos/langmap.cc: Implement algo.
	* spot/twaalgos/langmap.hh: Declare algo.
	* spot/twaalgos/Makefile.am: Add new files.
	* tests/python/langmap.py: Add tests.
	* NEWS: Update.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot: Implement dt*a_sat_minimize_assume(...) methods

	* python/spot/__init__.py: Add 'assume' option.
	* spot/misc/satsolver.cc: Add function to handle assumptions.
	* spot/misc/satsolver.hh: Declare assumption function.
	* spot/twaalgos/dtbasat.cc: Implement dtba_sat_minimize_assume.
	* spot/twaalgos/dtbasat.hh: Declare it.
	* spot/twaalgos/dtwasat.cc: Implement dtwa_sat_minimize_assume and
	handle options.
	* spot/twaalgos/dtwasat.hh: Declare it.
	* spot/twaalgos/postproc.cc: Handle options.
	* spot/twaalgos/postproc.hh: Use param_ var for incr and assume.
	* tests/core/satmin.test: Add tests for the new function.
	* tests/core/satmin2.test: Add tests for the new function.
	* tests/python/satmin.py: Add tests for the new function.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos: Implement dt*a_sat_minimize_incr(...) functions

	* python/spot/__init__.py: Add 'incr' boolean argument.
	* spot/twaalgos/dtbasat.cc: Implement dtba_sat_minimize_incr(...).
	* spot/twaalgos/dtbasat.hh: Declare it.
	* spot/twaalgos/dtwasat.cc: Implement dtwa_sat_minimize_incr(...) and
	deal with options.
	* spot/twaalgos/dtwasat.hh: Declare it.
	* spot/twaalgos/postproc.cc: Add option --sat-minimize=incr.
	* spot/twaalgos/postproc.hh: Add incr parameter.
	* tests/core/satmin.test: Add tests for incremental version.
	Update expected result.
	* tests/core/satmin2.test: Add tests for incremental version.
	* tests/python/satmin.py: Add tests for incremental version.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos: Improve data storage in SAT-minimization

	* spot/misc/satsolver.hh: Make solver return vector<bool> instead of
	vector<int>.
	* spot/misc/satsolver.cc: Update code.
	* spot/priv/Makefile.am: Add satcommon.*
	* spot/priv/satcommon.hh: Declare helper class and factorize some
	duplicate code of dt*asat.cc
	* spot/priv/satcommon.cc: Implement helper class and factorize some
	duplicate code of dt*asat.cc
	* spot/twaalgos/dtbasat.cc: Declare helper, implement some functions
	in dict struct and update code.
	* spot/twaalgos/dtwasat.cc: Declare helper, implement some functions
	in dict struct and update code.
	* tests/core/readsat.cc: Update tests.
	* tests/core/satmin.test: Typo.
	* tests/core/satmin2.test: Update an expected result.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	twaalgos: Help sat_build to ignore unuseful transitions

	* spot/twaalgos/dtbasat.cc: Fix static sat_build.
	* spot/twaalgos/dtwasat.cc: Fix static sat_build.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	tests: Improve tests related to SAT-minimization

	* tests/core/satmin.test: Delete check for SPOT_SATSOLVER env
	variable and add state numbers verification.
	* tests/core/satmin2.test: Delete check for SPOT_SATSOLVER
	env variable.
	* tests/python/satmin.py: Delete check for SPOT_SATSOLVER
	env variable.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot: Add Picosat to Spot library & Update satsolver class

	* Makefile.am: Add picosat to subdirs.
	* configure.ac: Add picosat/Makefile to AC_CONFIG_FILES.
	* README: Add picosat/ in the list of directories.
	* debian/copyright: Add picosat licence and details.
	* picosat/Makefile.am: Implement Makefile.am in picosat directory.
	* spot/Makefile.am: Tell the compiler to add libpico.la into libspot.la.
	* picosat/LICENSE: Add picosat licence.
	* picosat/NEWS: Add picosat NEWS.
	* picosat/VERSION: Add picosat VERSION.
	* picosat/picosat.c: Add picosat c file.
	* picosat/picosat.h: Add picosat header file.
	* spot/misc/satsolver.cc: Update functions.
	* spot/misc/satsolver.hh: Add documentation, clean code, change
	some functions visibility and separate templates functions.
	* spot/twaalgos/dtbasat.cc: Update dtba_to_sat function.
	* spot/twaalgos/dtwasat.cc: Update dtwa_to_sat function.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot: Abstract cnf writing in SAT-based minimisation

	* spot/misc/satsolver.hh: Declare all functions needed.
	* spot/misc/satsolver.cc: Implement them.
	* spot/twaalgos/dtbasat.cc: Abstract writing.
	* spot/twaalgos/dtwasat.cc: Abstract writing.

2017-01-06  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	.gitignore: Fix typo

	* .gitignore: Fix typo dt*a instead of dt*ba.

2017-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: update ipnbdoctest to graphviz 2.40 and Python 3.6

	This fix recent failures observed on arch linux because
	it uses newer versions of graphviz and Python.

	* tests/python/ipnbdoctest.py (sanitize): More substitutions.

2017-01-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: bump copyright year

	* bin/common_setup.cc: Here.

2016-12-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: add prop_set::improve_det

	Algorithms that remove transitions can turn a non-deterministic
	automaton into a deterministic one, so we need to be able to specify
	that determinism can be improved (as opposed to preserved).

	* spot/twa/twa.hh (twa::prop_set::improve_det): New attribute.
	(twa::prop_keep, twa::prop_copy): Honor it.
	* spot/tl/exclusive.cc, spot/twaalgos/alternation.cc,
	spot/twaalgos/complete.cc, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/mask.cc,
	spot/twaalgos/minimize.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/remprop.cc, spot/twaalgos/sbacc.cc,
	spot/twaalgos/sccfilter.cc, spot/twaalgos/simulation.cc,
	spot/twaalgos/strength.cc, spot/twaalgos/stutter.cc,
	spot/twaalgos/totgba.cc: Adjust calls to prop_keep() and
	prop_copy().

2016-12-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: does not preserve !unambiguous, !semi-deterministic

	* spot/twaalgos/simulation.cc: Reset those to maybe.
	* tests/core/semidet.test: Add some tests.

2016-12-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/isdet.cc: Remove debug statement.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	support for semi-deterministic property

	* spot/twa/twa.hh (prop_semi_deterministic): New methods.
	* spot/parseaut/parseaut.yy, spot/twaalgos/hoa.cc: Add support for the
	semi-deterministic property.
	* doc/org/concepts.org, doc/org/hoa.org: Document it.
	* spot/twaalgos/isdet.cc,
	spot/twaalgos/isdet.hh (is_semi_deterministic): New function.
	* bin/autfilt.cc: Add --is-semi-deterministic.
	* bin/common_aoutput.cc: Add --check=semi-deterministic.
	* tests/core/semidet.test: New file.
	* tests/Makefile.am: Add it.
	* tests/core/parseaut.test, tests/core/readsave.test: Adjust.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: support alternation in remove_dead/unreachable_states

	* spot/graph/graph.hh (internal::univ_dest_mapper): New helper class.
	* spot/twa/twagraph.cc (merge_univ_dests): Simplify using
	univ_dest_mapper.
	(purge_unreachable_states, purge_dead_states): Add support for
	alternation.
	* tests/core/alternating.test: More tests.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: handle alternation with --equivalent-to and friends

	* bin/autfilt.cc (ensure_deterministic): Remove alternation on demand.
	(process_automaton): Prefer twa::intersects() over
	product()/is_empty().
	* spot/twa/twa.cc (remove_fin_maybe): Also remove alternation.
	* tests/core/alternating.test: More tests.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --is-alternating

	* bin/autfilt.cc: Implement --is-alternating.
	* tests/core/complete.test: Test it.
	* NEWS: Mention it.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --is-very-weak

	* bin/autfilt.cc: Implement --is-very-weak.
	* tests/core/strength.test: Test it.
	* NEWS: Mention it.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: add a merge_univ_dests() method

	and call it after parsing

	* spot/twa/twagraph.cc, spot/twa/twagraph.hh
	(twa_graph::merge_univ_dests): New method.
	* spot/parseaut/parseaut.yy: Call it.
	* spot/twaalgos/dot.cc: Improve output, now that
	several edges can use the same universal destination.
	* tests/core/alternating.test, tests/core/complete.test,
	tests/core/parseaut.test, tests/python/_altscc.ipynb,
	tests/python/alternating.py, tests/python/alternation.ipynb: Adjust
	test case.
	* doc/org/tut24.org: Adjust example.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: examples with alternating automata

	* doc/org/tut23.org, doc/org/tut24.org, doc/org/tut31.org: New files.
	* doc/Makefile.am, doc/org/tut.org: Add them.
	* doc/org/hoa.org, doc/org/concepts.org: Adjust for alternation support.
	* NEWS: Add links.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: call remove_alternation if needed

	* spot/twaalgos/remfin.cc: Here.
	* tests/core/alternating.test: Add a test case.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: add support for alternating autamata

	* spot/twaalgos/complete.cc: Do not use the initial
	state as a sink if it is universal.
	* tests/core/complete.test: Add a test case.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: preliminary support for alternating automata

	* spot/twaalgos/postproc.cc: Call remove_alternation().
	* tests/core/alternating.test: Additional test.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twaalgos: add many guards against alternation

	* spot/twa/twagraph.hh, spot/twaalgos/are_isomorphic.cc,
	spot/twaalgos/canonicalize.cc, spot/twaalgos/couvreurnew.cc,
	spot/twaalgos/cycles.cc, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/isunamb.cc,
	spot/twaalgos/isweakscc.cc, spot/twaalgos/mask.hh,
	spot/twaalgos/minimize.cc, spot/twaalgos/product.cc,
	spot/twaalgos/randomize.cc, spot/twaalgos/sbacc.cc,
	spot/twaalgos/sccfilter.cc, spot/twaalgos/simulation.cc:
	Throw a runtime_error if the input is alternating.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add support for alternating automata

	* bin/ltlcross.cc: Add an alternation-removal pass, and
	adjust CSV output.
	* doc/org/ltlcross.org: Update.
	* tests/core/ltl3dra.test, tests/core/ltl3ba.test: Add more tests.
	* tests/Makefile.am: Add tests/core/ltl3ba.test.
	* NEWS: Mention it.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: add a variant for twa_graph_ptr

	This is faster than using the abstract interface, and it also supports
	alternating automata.  (This will be tested in the tests for
	ltlcross's support for alternating automata.)

	* spot/twaalgos/stats.cc (stats_reachable, sub_stats_reachable):
	Add code specific to twa_graph_ptr.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: ignore unreachable states in remove_fin_weak()

	* spot/twaalgos/remfin.cc (remove_fin_weak): Ignore unreachable
	states.  This caused crashes in the test cases for the
	upcoming alternation support in ltlcross.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Describe experimental alternation support.

2016-12-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	alternation: implement remove_alternation() for weak alt automata

	This mixes the subset construction (for 1-state rejecting SCCs) and
	the breakpoint construction (for larger rejecting SCCs).  The
	algorithm should probably be rewritten in a cleaner and more efficient
	way, but that should do for a first version.  It should be easy to
	extend it to support Büchi acceptance (since the breakpoint
	construction works for this) when we need it.

	* spot/twaalgos/alternation.hh,
	spot/twaalgos/alternation.cc (remove_alternation): New function.
	* tests/python/alternation.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: add support for very-weak property

	* spot/twa/twa.hh: Implement the property.
	* spot/parseaut/parseaut.yy, spot/twaalgos/hoa.cc: Add input
	and output for it.
	* spot/twaalgos/strength.cc,
	spot/twaalgos/strength.hh (is_very_weak_automaton): New function.
	* tests/core/alternating.test: Add a test for --check=strength
	on an alternating automaton.
	* tests/core/strength.test, tests/core/parseaut.test: Adjust expected
	output.
	* NEWS, doc/org/hoa.org, doc/org/concepts.org: Document it.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: adjust to work with alternating automata

	* spot/twaalgos/sccinfo.cc: Consider universal edges as if they were
	existential edges.
	* spot/twaalgos/sccinfo.hh: Document that.
	* spot/twaalgos/dot.cc: Allow option 's' again, for easy testing.
	* tests/core/alternating.test: Adjust tests.
	* tests/python/_altscc.ipynb: New file (more tests).
	* tests/Makefile.am: Add it.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: handle alternating automata with many universal init states

	* spot/parseaut/parseaut.yy (fix_initial_state): Use
	spot::internal::outgoing_edge_group to reduce all initial states to a
	single one.
	* tests/core/parseaut.test: Add more tests.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	alternation: add a states_and algorithm

	This should will come handy to implement the convertion from LTL to
	alternating automata, and to handle automata with multiple initial
	states.

	* spot/twaalgos/alternation.hh, spot/twaalgos/alternation.cc: New files.
	* spot/twaalgos/Makefile.am: Add them.
	* python/spot/impl.i: Add bindings.
	* tests/python/alternating.py: Test states_and.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: add support for universal initial states

	The only missing point is that the HOA parser cannot deal with multiple
	universal initial states, as seen in parseaut.test.

	* spot/graph/graph.hh (new_univ_dests): New function, extracted from...
	(new_univ_edge): ... this one.
	* spot/twa/twagraph.hh (set_univ_init_state): Implement using
	new_univ_dests.
	* spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc, python/spot/impl.i:
	Add support for universal initial states.
	* spot/parseaut/parseaut.yy: Add preliminary support for
	universal initial states.  Multiple universal initial states
	are still not supported.
	* tests/core/alternating.test, tests/core/parseaut.test,
	tests/python/alternating.py: Adjust tests and exercise this new feature.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add support for alternating automata

	* spot/twaalgos/dot.cc: Handle universal destinations.
	Ignore option 's' for alternating automata.
	* tests/core/alternating.test: New file.
	* tests/Makefile.am: Add it.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: preliminary support for reading alternating automata

	Currently this only reads universal branches.  The parser (and the
	automaton code) do not support universal initial states.

	* spot/parseaut/parseaut.yy: Read universal branches.  Deal with
	the no-univ-branch/!univ-branch change in HOA 1.1.
	* tests/python/alternating.py: Read the output of print_hoa.
	* tests/core/parseaut.test: Adjust test output, and add more tests.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_hoa: add support for universal branches

	* spot/twaalgos/hoa.cc: Implement it.
	* tests/python/alternating.py: Test it.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: add basic support for alternation

	This only allows creating universal edges, and reading the associated
	destinations.

	* spot/twa/twagraph.hh (new_univ_edges, univ_dests, is_alternating): New
	function.
	* python/spot/impl.i: Add Python bindings.
	* tests/python/alternating.py: New file.
	* tests/Makefile.am: Add it.

2016-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: replace the existing "alternating" interface

	* spot/graph/graph.hh: Use the sign bit of destination state X to
	designate a universal edge.  Store the destinations of such an edge in a
	separate array, at index ~X.
	* spot/graph/ngraph.hh, tests/core/graph.cc, tests/core/graph.test,
	tests/core/ngraph.cc: Adjust test case to the new interface.

2016-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: call set_init_state() in tut22

	* doc/org/tut22.org: Here.

2016-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: ltlcross supports any acceptance condition

	* doc/org/ltlcross.org: Also fix the documentation of terminal and
	weak SCCs.

2016-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: support org >= 8.3

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Load "shell" instead
	of "sh" for recent org-mode version.

2016-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	copy: improve documentation

	* spot/twaalgos/copy.hh: Make a reference to make_twa_graph().

2016-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	strength: improve doc

	* spot/twaalgos/strength.hh: Add a verb to the descriptions.
	Suggested by Alexandre Gbaguidi Aïsse.

2016-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Maximilien.

2016-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2016-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bump version number

	* NEWS, configure.ac: Set version 2.2.2.dev.

2016-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.2.2

	* NEWS, configure.ac, doc/org/setup.org: Update version.

2016-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	spotcgi: correctly kill ltl3ba on timeout

	* python/spot/__init__.py (automata): Do not create a session for
	every command, this is only needed if automata() is run with a timeout
	parameter.
	* python/ajax/spotcgi.in: Adjust exclude the main process from
	the process group, so that only children are killed on SIGALRM.
	* NEWS: Mention the bug.

2016-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	spotcgi: correctly kill ltl3ba on timeout

	* python/spot/__init__.py (automata): Do not create a session for
	every command, this is only needed if automata() is run with a timeout
	parameter.
	* python/ajax/spotcgi.in: Adjust exclude the main process from
	the process group, so that only children are killed on SIGALRM.
	* NEWS: Mention the bug.

2016-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twa.hh (twa_succ_iterable): Mark move ctor as noexcept.

2016-12-14  Maximilien Colange  <colange@lrde.epita.fr>

	Add an option to enable C++14.

	* configure.ac: add an option --enable-c++14.
	* NEWS: mention the new option.

2016-12-13  Maximilien Colange  <colange@lrde.epita.fr>

	Default emptiness check is the new version of Couvreur.

	* spot/twa/twa.cc: is_empty() and accepting_run() now call the new
	version of the Couvreur algorithm.

2016-12-13  Maximilien Colange  <colange@lrde.epita.fr>

	Add a new, parameterized, version of the Couvreur emptiness check.

	This version has optimization for explicit twa, and also for weak and
	terminal (depending on whether an accepting run is requested) automata.

	* spot/twaalgos/couvreurnew.hh, spot/twaalgos/couvreurnew.cc,
	  spot/twaalgos/Makefile.am: New files for the new algorithm.
	* spot/twaalgos/emptiness.cc, tests/core/randtgba.cc:
	  Register new algorithm.

2016-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: workaround spurious gcc-snapshot warning

	* spot/ltsmin/ltsmin.cc: Add an assert.

2016-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlf: ensure alive holds initially

	Reported by Shufang Zhu.

	* spot/tl/ltlf.cc, spot/tl/ltlf.hh: Fix the transltion
	and update the comments.
	* tests/core/ltlfilt.test: Adjust test cases.
	* NEWS: Mention the fix.
	* THANKS: Add Shufang Zhu.

2016-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlf: ensure alive holds initially

	Reported by Shufang Zhu.

	* spot/tl/ltlf.cc, spot/tl/ltlf.hh: Fix the transltion
	and update the comments.
	* tests/core/ltlfilt.test: Adjust test cases.
	* NEWS: Mention the fix.
	* THANKS: Add Shufang Zhu.

2016-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	install back the safety check of includes.test

	Compilation of each header file alone, as a safety check, was removed
	when introducing "#pragma once" because we did not have to check for
	possible double inclusion.  However we still need to compile each
	header to make sure they are self-contained.

	* tests/sanity/includes.test: Compile each header.
	* tests/run.in: Export various compiler and directory flags.
	* spot/twaalgos/emptiness_stats.hh, spot/misc/mspool.hh,
	spot/misc/fixpool.hh: Include <spot/misc/common.hh>.
	* spot/misc/common.hh: Include <cassert>.
	* NEWS: Mention the fixed headers.

2016-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	install back the safety check of includes.test

	Compilation of each header file alone, as a safety check, was removed
	when introducing "#pragma once" because we did not have to check for
	possible double inclusion.  However we still need to compile each
	header to make sure they are self-contained.

	* tests/sanity/includes.test: Compile each header.
	* tests/run.in: Export various compiler and directory flags.
	* spot/twaalgos/emptiness_stats.hh, spot/misc/mspool.hh,
	spot/misc/fixpool.hh: Include <spot/misc/common.hh>.
	* spot/misc/common.hh: Include <cassert>.
	* NEWS: Mention the fixed headers.

2016-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: diagnose invalid acceptance terms

	* spot/parseaut/parseaut.yy: Add a diagnostic.
	* tests/core/parseaut.test: Test it.
	* NEWS: Document it.

2016-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: use any installed libltdl

	This should solve issue with the Debian package.

	* spot/ltsmin/Makefile.am: Use the LTDLINC, LTDLDEPS and LIBLTDL as
	documented.
	* NEWS: Mention the fix.

2016-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: diagnose invalid acceptance terms

	* spot/parseaut/parseaut.yy: Add a diagnostic.
	* tests/core/parseaut.test: Test it.
	* NEWS: Document it.

2016-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: recognize ./run jupyter

	* tests/run.in: Here.

2016-12-01  Maximilien Colange  <colange@lrde.epita.fr>

	Fix a sanity check.

	* tests/sanity/style.test: Allow parenthesis after 'operator delete'.

2016-12-01  Maximilien Colange  <colange@lrde.epita.fr>

	Properly time computations of accepting runs in randtgba.

	* tests/core/randtgba.cc: do not time statistics.

2016-11-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_graph: simplify two precondition checks

	* spot/twa/twagraph.hh (state_acc_sets, state_is_accepting): Do not
	check num_sets()==0 since this would imply prop_state_acc().

2016-11-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: fix internal iterator constness

	* spot/graph/graph.hh: Use only const variants of begin()/end(), since
	they do not modify the iterator.

2016-11-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: simplify initial code

	* spot/twaalgos/sccinfo.cc: We do not need to care
	about 0 states anymore.

2016-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: speed up recuc.test and reducpsl.test

	... by calling valgrind less often.

	* tests/core/reduc.test, tests/core/reducpsl.test: Call
	valgrind only on 1 of the 12 calls to randltl, and
	2 of the 7 calls to reduc.

2016-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: divide the run time of parse.test by 20

	* tests/core/readltl.cc: Process many formulas from a
	file instead of one arg at a time.
	* tests/core/parse.test, tests/core/parseerr.test, tests/core/utf8.test:
	Adjust to supply a file as input.

2016-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: divide the run time of tostring.test by 40

	* tests/core/tostring.test: Move all the input formulas into...
	* tests/core/tostring.cc: ... the code, and do the loop there.

2016-11-29  Maximilien Colange  <colange@lrde.epita.fr>

	Automata with no state are no longer allowed.

	* NEWS, spot/twa/twa.hh: Document the change.
	* spot/twa/twagraph.hh, spot/kripke/kripkegraph.hh:
	  Add an exception in get_init_state_number().
	  get_init_state() now calls get_init_state_number().
	* spot/twa/twagraph.cc, spot/twaalgos/simulation.cc,
	  spot/twaalgos/powerset.cc, spot/twaalgos/complete.cc,
	  spot/twaalgos/sccfilter.cc: Remove now useless tests.
	* spot/twaalgos/hoa.cc: Remove now useless comment.
	* spot/twaalgos/minimize.cc: Never return an automaton with no state.

2016-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: add lintian-overrides for the Doxygen doc

	* debian/source/lintian-overrides: New file.
	* Makefile.am: Add it.

2016-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: depend on libjs-jquery

	This fix some lintian issues.

	* debian/control: Add dependency.
	* debian/rules: Fix the generated html page to use the local jquery.

2016-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: use any installed libltdl

	This should solve issue with the Debian package.

	* spot/ltsmin/Makefile.am: Use the LTDLINC, LTDLDEPS and LIBLTDL as
	documented.
	* NEWS: Mention the fix.

2016-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	strength: fix is_terminal()

	Fix #198.  Reported by Maximilien Colange.

	* spot/twaalgos/strength.cc (is_terminal): Test that no accepting
	transition lead to a rejecting SCC.
	* tests/core/strength.test: Add test case.
	* spot/twaalgos/strength.hh, spot/twa/twa.hh, doc/org/concepts.org:
	Adjust documentation.
	* NEWS: Mention the fix.

2016-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	strength: fix is_terminal()

	Fix #198.  Reported by Maximilien Colange.

	* spot/twaalgos/strength.cc (is_terminal): Test that no accepting
	transition lead to a rejecting SCC.
	* tests/core/strength.test: Add test case.
	* spot/twaalgos/strength.hh, spot/twa/twa.hh, doc/org/concepts.org:
	Adjust documentation.
	* NEWS: Mention the fix.

2016-11-28  Maximilien Colange  <colange@lrde.epita.fr>

	New macro to downcast shared pointers.

	* spot/misc/casts.hh: Add a macro down_pointer_cast.

2016-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: do not check source files in *.dir/*

	Because gal2c generates some C++ sources that do not match our coding
	convention and should not be checked.

	* tests/sanity/80columns.test, tests/sanity/style.test: Do not test
	files in tests' work directories.

2016-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	split ltsmin/check.test in three files

	Fixes #195.

	* tests/ltsmin/check.test: Extract the spins and gal checks
	and move them to...
	* tests/ltsmin/check2.test, tests/ltsmin/check3.test: ... these files.
	* tests/Makefile.am: Adjust.

2016-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter: remove left-over print

	Reported by František Blahoudek.

	* spot/twaalgos/sccfilter.cc: Remove extra print statement.
	* NEWS: Mention it.

2016-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lts-min: fix loading of spins models

	This fixes c9aabcdd.

	* spot/ltsmin/ltsmin.cc: Update the extension after compiling
	the model.  Do not duplicate the symbol lookups for DVE and gal2C.
	Also, improve error reporting in case of missing symbol.
	* tests/ltsmin/check.test: Remove stray character.

2016-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter: remove left-over print

	Reported by František Blahoudek.

	* spot/twaalgos/sccfilter.cc: Remove extra print statement.
	* NEWS: Mention it.

2016-11-23  Maximilien Colange  <colange@lrde.epita.fr>

	Improve error messages when loading compiled models. * spot/ltsmin/ltsmin.cc: Improve error messages.

2016-11-23  Maximilien Colange  <colange@lrde.epita.fr>

	Add support to load GAL models. * spot/ltsmin/ltsmin.cc: Handle GAL models. * tests/Makefile.am: Test the new feature. * tests/ltsmin/check.test: Also check GAL. * tests/ltsmin/beem-peterson.4.gal: A new GAL model for tests. * tests/ltsmin/finite.gal: A new GAL model for tests. * tests/ltsmin/finite3.test: A new test for GAL.

2016-11-23  Etienne Renault  <renault@lrde.epita.fr>

	bitvec: remove useless methods

	* spot/misc/bitvect.hh, tests/core/bitvect.cc,
	tests/core/bitvect.test: here.

2016-11-23  Etienne Renault  <renault@lrde.epita.fr>

	Prefer emplace_back to push_back

	* spot/graph/ngraph.hh, spot/ltsmin/ltsmin.cc,
	spot/misc/bitvect.hh, spot/misc/intvcomp.cc,
	spot/misc/satsolver.cc, spot/priv/weight.cc,
	spot/ta/taexplicit.cc, spot/taalgos/minimize.cc,
	spot/taalgos/reachiter.cc, spot/tl/exclusive.cc,
	spot/tl/formula.cc, spot/tl/formula.hh,
	spot/tl/mark.cc, spot/tl/mutation.cc,
	spot/tl/relabel.cc, spot/tl/remove_x.cc,
	spot/tl/simplify.cc, spot/twa/acc.cc,
	spot/twa/acc.hh, spot/twa/formula2bdd.cc,
	spot/twa/taatgba.cc, spot/twa/taatgba.hh,
	spot/twa/twa.hh, spot/twa/twagraph.cc,
	spot/twaalgos/bfssteps.cc, spot/twaalgos/canonicalize.cc,
	spot/twaalgos/compsusp.cc, spot/twaalgos/copy.cc,
	spot/twaalgos/cycles.cc, spot/twaalgos/degen.cc,
	spot/twaalgos/determinize.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/emptiness.cc, spot/twaalgos/gv04.cc,
	spot/twaalgos/hoa.cc, spot/twaalgos/ltl2taa.cc,
	spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/magic.cc,
	spot/twaalgos/mask.hh, spot/twaalgos/minimize.cc,
	spot/twaalgos/powerset.cc, spot/twaalgos/product.cc,
	spot/twaalgos/randomgraph.cc, spot/twaalgos/reachiter.cc,
	spot/twaalgos/relabel.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/sccfilter.cc, spot/twaalgos/se05.cc,
	spot/twaalgos/simulation.cc, spot/twaalgos/stutter.cc,
	spot/twaalgos/tau03opt.cc, spot/twaalgos/totgba.cc,
	spot/twaalgos/word.cc, tests/core/bitvect.cc: here.

2016-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.2.1

	* NEWS, configure.ac, doc/org/setup.org: Update.

2016-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add test-case for bdd_noderesize

	* tests/core/ltl2tgba.test: Add new test-case,
	reported by Tomáš Babiak.
	* NEWS: Mention the bug fixed by previous patch.

2016-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

2016-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac, NEWS: Bump version number.

2016-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.2

	* configure.ac, doc/org/setup.org, NEWS: Set version number.

2016-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/oaut.org: Shorten a long line.

2016-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document %r and %R

	* doc/org/oaut.org (Timing): New section.
	* NEWS: Link to it.

2016-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: introduce intersects() and friends

	* spot/twa/twa.hh, spot/twa/twa.cc (intersects, intersecting_run,
	intersecting_word): New functions.
	* NEWS: Mention them.
	* doc/org/tut51.org, tests/python/bugdet.py: Use them.

2016-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twa.hh: Typos.

2016-11-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update for upcoming release.

2016-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve doc for purge_unreachable_states and purge_dead_states

	* spot/twa/twagraph.hh: Here.

2016-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ipnbdoctest.py: Ignore more SVG differences.

2016-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter: preserve state names and highlighted states

	Suggested by Juraj Major.

	* spot/twaalgos/sccfilter.cc: Here.
	* tests/python/sccfilter.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the news.

2016-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: do not set prop_state_acc in set_acceptance

	Reported by Juraj Major.

	* spot/twa/twa.hh: check num_sets() in prop_state_acc() so we do not
	have to set it in set_acceptance(), causing trouble if set_acceptance()
	is called multiple times.
	* tests/python/setacc.py: New test case.
	* tests/Makefile.am: Add it.
	* THANKS: Add Juraj.
	* NEWS: Mention the bug.

2016-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: fix handling of weak automata

	* spot/twaalgos/remfin.cc: Do not add a sink states to deterministic
	weak automata, and actually apply the "weak" Fin-removal to any weak
	automaton.
	* tests/core/explprod.test: Add a test case for the previous patch,
	but that used to fail because of this bug.
	* NEWS: Mention the bug.

2016-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: do not close fd or stdin

	* spot/parseaut/public.hh, spot/parseaut/scanaut.ll: When parsing
	automata read from some given FD, do not close the file descriptor, as
	the caller is likely to already close it, and closing FDs twice is very
	bad.  This seems to have be the root of some issue we had with recent
	jupyter versions, were 0MQ would crash with "Bad file descriptor"
	messages.  Also do not close stdin while we are at it.
	* NEWS: Mention the bug.

2016-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: do not hide stderr in ipnbdoctest

	* tests/python/ipnbdoctest.py: here.

2016-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: simplify three bdd operations

	* spot/twaalgos/ltl2tgba_fm.cc: Replace bdd_exists(a & b, c) by
	bdd_appex(a, b, bddop_and, c).

2016-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	attempt to mitigate our Debian build failures

	* tests/Makefile.am: Run Python tests before other tests.
	* tests/python/ipnbdoctest.py: Add some debug.

2016-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: rename %R as %#

	Fixes #189.

	* bin/ltldo.cc: Here.
	* tests/core/ltldo.test: Adjust and add test-case for %R.
	* NEWS: Mention the change.

2016-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: adjust %R to work with Mingw

	For #189.

	* bin/common_aoutput.cc: Do not call sysconf(_SC_CLK_TCK) if that is not
	defined.  Also fix the help string, and simplify some conditions.

2016-11-08  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	spot: Add %R, %[..]R common option.

	For #189.

	* NEWS: Update.
	* bin/autfilt.cc: Replace stopwatch with process_timer.
	* bin/dstar2tgba.cc: Replace stopwatch with process_timer.
	* bin/ltl2tgba.cc: Replace stopwatch with process_timer.
	* bin/ltlcross.cc: Replace stopwatch with process_timer.
	* bin/ltldo.cc: Replace stopwatch with process_timer.
	* bin/randaut.cc: Replace stopwatch with process_timer.
	* bin/common_aoutput.hh: Implement process_timer, integrate it.
	* bin/common_aoutput.cc: Integrate process_timer and implement new
	print method.
	* spot/misc/timer.hh: Modify timer class and timeinfo struct
	i.e. add cutime (children_utime) and cstime (children_stime).
	* spot/misc/timer.cc: Help code to behave as before all this.
	* spot/twaalgos/dtbasat.cc: Help print_log to behave as before
	all this.
	* spot/twaalgos/dtwasat.cc: Help print_log to behave as before
	all this.
	* spot/misc/formater.hh: Add operator<< for spot::timer.

2016-11-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: update build-depends for new Jupyter version

	Debian unstable now has Jupyter, but since it moved away from ipython3,
	the packages now have different names.

	* debian/control: Here.

2016-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: update to work with Jupyter 4.2

	Jupyter 4.2 just landed in Debian unstable, so we have a few failures
	because of all the renamings.

	* tests/python/ipnbdoctest.py: Adjust imports for Jupyter 4.2.

2016-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: flush the errors

	This fixes an issue in the on-line translator, where error message would
	not be output in the correct <div>.

	* spot/parsetl/fmterror.cc (format_parse_errors): Flush the stream.

2016-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	from_ltlf: new LTL transformation.

	Fixes #187.

	* spot/tl/ltlf.cc, spot/tl/ltlf.hh: New files.
	* spot/tl/Makefile.am: Add them.
	* bin/ltlfilt.cc: Add a new option.
	* bin/man/ltlfilt.x: Add bibliographic reference.
	* tests/core/ltlfilt.test: Add more tests.
	* tests/python/ltlf.py: New file.
	* tests/Makefile.am: Add it.
	* python/spot/impl.i: Python bindings.
	* NEWS: Mention it.

2016-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Typo.

2016-11-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: call bdd_implies less often

	* spot/twaalgos/determinize.cc (safra_state::merge_redundant_states):
	Test is_connected before called bdd_implies.

2016-11-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: do not purge unreachable states when recording implications

	This fixes the incorrect output of tgba_determinize() reported yesterday
	by Reuben Rowe.

	* spot/twaalgos/simulation.cc: Do not purge unreachable states when
	recording implications.
	* tests/python/bugdet.py: New test case.
	* tests/Makefile.am: Add it.
	* THANKS: Add Reuben.
	* NEWS: Mention the bug.

2016-10-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlsmin: revert part of 630e90b9

	* spot/ltsmin/ltsmin.cc (compile_model): It does need to modify its
	first argument.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: fix crash in debug-mode

	Fixes #193, reported by Etienne Renault.

	* spot/parsetl/parsetl.yy: Clone printed formulas.
	* tests/core/parse.test: Add test case.
	* NEWS: Mention the issue.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print: fix str_sere() and str_utf8_sere(), as found by PVS-Studio

	These were not actually printing in "SERE" mode due to a copy/paste
	error.  PVS-Studio seems really good at finding those.  For #192.

	* spot/tl/print.cc: Fix it.
	* NEWS: Mention the bug.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: do not leak on realloc failure, flagged by PVS-Studio

	For #192.

	* spot/misc/bitvect.hh: Here.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randomltl: fix initialization of the simplifier, caught by PVS-Studio

	For #192.

	* spot/tl/randomltl.cc: Here.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	optionmap: remove superfluous code

	This was noticed while looking at a false-positive in the report for
	PVS-Studio, in #192.

	* spot/misc/optionmap.cc: Do not remove the option from unused_ twice..

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rearrange some code to trigger less warning from PVS-Studio

	For #192.

	* spot/tl/formula.cc: Avoid calling twice the same function.
	* spot/twaalgos/gtec/gtec.cc: Do not shadow a member variable.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	improve some conditions, as hinted by PVS-Studio

	For #192.

	* spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/are_isomorphic.cc,
	spot/taalgos/tgba2ta.cc: Here.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove some dead code discovered while studying PVS-Studio's report

	For #192.

	* spot/misc/timer.hh, spot/twa/bdddict.cc, spot/twa/bdddict.hh,
	spot/twaalgos/sbacc.cc: Here.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some implicit promotion from bool, as suggested by PVS-Studio

	For #192.

	* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll,
	spot/tl/randomltl.cc, spot/twa/acc.cc, spot/twaalgos/postproc.hh: Here.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: fix constness of arguments as suggested by PVS-Studio

	For #192.

	* spot/ltsmin/ltsmin.cc (compile_model): Here.  As remove some unused
	variable.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	taproduct: fix incorrect assert() flagged by PVS-Studio

	For #192.

	* spot/ta/taproduct.cc: Check the output of down_cast, not its input.

2016-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix unpaired copy-ctor/op= reported by PVS-Stydio

	For #192.

	* bin/common_trans.cc, bin/common_trans.hh, spot/twa/acc.hh:
	Add an operator= in addition to the copy constructor.
	* spot/twaalgos/ltl2tgba_fm.cc: Use the default constructor.
	* spot/ta/taproduct.cc, spot/ta/taproduct.hh: Delete an unused copy
	constructor.

2016-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* README: Update description of Spot and its documentation.

2016-10-25  Etienne Renault  <renault@lrde.epita.fr>

	compression: fix bad encoding

	Fixes #190.

	* NEWS, spot/misc/intvcomp.cc: here.

2016-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: reset the LTL simplifier on set_level().

	Fix an issue reported by Tomáš Babiak, who noticed that he could not
	manage to have ltl2tgba process `genltl --go-theta=N` efficiently for
	larger values of N.

	* spot/twaalgos/translate.hh (set_level): Reset any owned LTL simplifier
	whenever the optimization level is changed.
	* NEWS: Mention the bug.

2016-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: speedup on deterministic automata

	* spot/twaalgos/simulation.cc: Detect deterministic automata, and skip
	the partial-order update.
	* NEWS: Mention the speedup.

2016-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: improve the storage of implications

	* spot/twaalgos/determinize.cc: Store implications
	in a vector, not a map.
	* spot/twaalgos/simulation.cc, spot/twaalgos/simulation.hh: Adjust.

2016-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/bitvect.hh (is_subset_of): Fix implementation.

2016-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/simulation.cc: Simplify some part.

2016-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: improve behavior on unclean acceptance

	Related to #188.  This is a third fix that independently
	makes `'utfilt --is-unambiguous -q smaller.hoa' instantaneous.

	* spot/twaalgos/remfin.cc: Clean the received automaton if
	necessary.
	* bin/autfilt.cc: No need to call cleanup_acceptance_here() before
	remove_fin() anymore.
	* tests/core/remfin.test: Add an additional test.
	* NEWS: Mention the change.

2016-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use mask_keep_accessible_states

	* bin/autfilt.cc, spot/twaalgos/isweakscc.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/sccinfo.cc: Use mask_keep_accessible_states instead of
	mask_keep_states.

2016-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: improve detection of rejecting 1-self-loop SCCs

	As observed in #188, the smaller.hoa automaton is made only of
	1-state/1-self-loop SCCs, for which calling remove_fin is a complete
	waste of time.  This patch alone (i.e., without the other changes
	suggested by #188) improves the run time of

	% autofilt -q --is-unambiguous smaller.hoa

	from 38s to 0.05s.

	* spot/twaalgos/sccinfo.cc: If a single-state SCC has undeterminate SCC
	and only one self-loop, then it is necessarily rejecting.
	* NEWS: Mention the change.

2016-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unambiguous: rewrite more efficiently

	Avoid calling scc_info::determine_unknown_acceptance on the product, as
	suggested in #188.

	* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite.
	* tests/core/unambig.test: Add the automaton from #188.
	* NEWS: Mention the improved function.
	* spot/twaalgos/mask.cc,
	spot/twaalgos/mask.hh (mask_keep_accessible_states): New function.

2016-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo, reported by Alexandre Gbaguidi Aïsse.

2016-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac, NEWS: Bump version to 2.1.2.dev.

2016-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.1.2

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2016-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgbasat: rename all.log into all.csv

	In order to match the tarballs of the FORTE'14 paper.

	* bench/dtgbasat/stats.sh, bench/dtgbasat/README: Here.

2016-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: improve option initialization

	* spot/twaalgos/dot.cc: Rearrange options to speed up their
	initialization and avoid an "uninitialized read" error from valgrind
	when compiling with clang-3.9.  The uninitialized read is still a bit
	misterious to me; valgrind was complaining about opt_shape_ who is
	actually initialized in the code.  However looking into the assembly
	code generated revealed that all consecutive 0/false values were
	initialized together, so this patch reorganize the options to encourage
	that.  Also the palette was copied over for each call to print_dot(), so
	this is now declared statically.

2016-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete Alexandre's patch

	* bench/dtgbasat/formulas: Typo.
	* NEWS: Mention the fix.
	* AUTHORS: Add Alexandre.

2016-10-13  Alexandre GBAGUIDI AISSE  <gbagui_a@epita.fr>

	dtgbasat: Fix dtgbasat bench errors

	* bench/dtgbasat/formulas: Fix bin's path.
	* bench/dtgbasat/prepare.sh: Fix bin's path & ltl2tgba@-sD option.
	* bench/dtgbasat/stats.sh: Fix bin's path.
	* bench/dtgbasat/stat.sh: Fix bin's path, ltl2tgba@-sD option

2016-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add option --strength and --ambiguous

	Suggested by František Blahoudek.

	* bin/ltlcross.cc: Implement the two options.
	* doc/org/ltlcross.org, NEWS: Document them.
	* tests/core/complementation.test: Adjust test case.
	* tests/core/ltlcross3.test, tests/core/unambig.test: More tests.

2016-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: fix --verbose --no-check crash

	Report from František Blahoudek.

	* bin/ltlcross.cc: Do not display stats for automata
	that do not exist.
	* tests/core/ltlcross3.test: Test it.
	* NEWS: Mention the fix.

2016-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/citing.org: Update references.

2016-10-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut51.org: Typos.

2016-10-10  Etienne Renault  <renault@lrde.epita.fr>

	spot.ltsmin: fix errors on Darwin

	* NEWS, python/spot/ltsmin.i: here.

2016-10-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: really hide the plantuml logo

	Fix a5d6aa2.

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Use
	-Djava.awt.headless=true, not -Djava.awt.headless.

2016-10-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/common.hh (SPOT_FALLTHROUGH): Work around Clang 3.5.

2016-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: enable -Wimplicit-fallthrough

	* m4/gccwarn.m4: Here.

2016-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce SPOT_FALLTHROUGH to cope with -Wimplicit-fallthrough

	* NEWS: Mention the fix.
	* HACKING: Mention the new macro.
	* spot/misc/common.hh (SPOT_FALLTHROUGH): Add the macro.
	* bin/randltl.cc, spot/misc/escape.cc, spot/tl/mutation.cc,
	spot/tl/print.cc, spot/tl/simplify.hh, spot/tl/snf.cc, spot/twa/acc.cc,
	spot/twaalgos/ltl2taa.cc, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/sepsets.cc, spot/twaalgos/translate.cc: Use it.

2016-10-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: avoid displaying the plantuml log during builds

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Make sure plantuml is
	started via "java -Djava.awt.headless".

2016-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add some formulas from Tabakov & Vardi (RV'10)

	* bin/genltl.cc: Implement the families.
	* NEWS, bin/man/genltl.x: Document them.
	* tests/core/genltl.test: Add a test.

2016-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more file to ignore

	* bin/.gitignore, doc/org/.gitignore: Here.

2016-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: cleanup some temporary

	* doc/org/concepts.org: Here.

2016-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: workaround flushing issues

	* bin/common_cout.cc (check_cout): Force a flush of cout if more than
	20ms has elapsed since the last explicit flush.
	* bin/common_setup.cc (setup): Untie cin and cout if the input
	is not a TTY, so that cout is flush less often.
	* NEWS: Mention the change.

2016-09-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	change the version from 2.1.1a to 2.1.1.dev for Debian

	Fixes #186.

	* configure.ac, NEWS: Update version.

2016-09-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: rewrite GF(a & GFb) as G(Fa & Fb)

	Fixes #185.

	* spot/tl/simplify.cc: Implement the new rule.
	* NEWS, doc/tl/tl.tex: Document it.
	* tests/core/reduccmp.test: Test it.

2016-09-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: fix valgrind error in is_Kleene_star() with clang++

	* spot/tl/formula.hh, spot/tl/formula.cc: Rework the
	initialization of fnode.
	* NEWS: Mention the bug.

2016-09-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/dtgbasat/README: Update references.

2016-09-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: bump version number

2016-09-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.1.1

	* NEWS, configure.ac, doc/org/setup.org: Bump version number.

2016-09-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/citing.org: Add LNCS number.

2016-09-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: fix typo in --help

	Reported by František Blahoudek.

	* bin/genltl.cc: Here.
	* NEWS: Mention it, and the typos previously fixed in spot-x.7.

2016-09-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typoa.

2016-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtwasat: typo in DEBUG mode

	* spot/twaalgos/dtwasat.cc: Update a mark check.

2016-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: two fixups for spot-x

	* bin/man/spot-x.x: Fix the example of SPOT_DEFAULT_FORMAT,
	and clarify the text for SPOT_DOTDEFAULT.

2016-09-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: fix an apostrophe

	* bin/man/ltl2tgba.x: Fix apostrophe.  It was appearing incorrectly in
	the generated html pages.

2016-09-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	kripkegraph: fix g++ warning

	Test the output of down_cast before using it.  This
	used to generate a warning when crosscompiling
	for mingw with g+++ 6.1.1

	* spot/kripke/kripkegraph.hh: Here.

2016-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	help2man: update to 1.47.4

	Also disable i18n because that seems to be causing many problem to Mac
	users building Spot for git and not knowing how to install
	Locale::gettext.

	* tools/help2man: Update from upstream, plus the two changes from
	2b4cf8e7cb9298e453d76c5b5309a761042cc587 and
	f7b65001e94d8728392e158fddef80e4ad232d57.
	* bin/man/Makefile.am: Remove the -L flag.

2016-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix an example input

	* doc/org/autfilt.org: Remove incorrect acc-name.

2016-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add options for --stats=%c

	* spot/twaalgos/stats.cc: Implement options.
	* bin/common_aoutput.cc, NEWS: Document them.
	* tests/core/format.test: Add some quick tests.

2016-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: preparatory change of the implementation of %c

	This now holds the scc_info while processing the %c sequence, so that
	using options we will soon be able to specify which SCC to count.

	* spot/twaalgos/stats.hh, spot/twaalgos/stats.cc (printable_scc_info):
	New class.
	(state_printer): Use it for %c.
	* spot/misc/formater.hh: Add move assignment.
	* bin/common_aoutput.hh, bin/common_aoutput.cc: Use printable_scc_info
	for %C.
	* tests/core/format.test: Add a quick test case to make sure nothing
	changed.

2016-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: hide the hoa_state_printer code

	* bin/common_aoutput.hh (hoa_state_printer::hoa_state_printer,
	hoa_state_printer::print): Move the definition...
	* bin/common_aoutput.cc: ... here.

2016-08-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: implement %D, %N, %P, %W

	* bin/common_aoutput.cc, bin/common_aoutput.hh: Implement.
	* tests/core/format.test: Test.
	* NEWS: Mention.

2016-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: %a,%b,%s format specs for LTL output

	* NEWS: Mention those.
	* bin/common_output.cc, bin/common_output.hh: Implement them.
	* bin/genltl.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Update
	--help.
	* tests/core/format.test: New file.
	* tests/Makefile.am: Add it.
	* doc/org/ioltl.org, doc/org/ltlfilt.org: Update documentation.

2016-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/length.hh: Fix comment.

2016-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: diagnose more write errors

	* tests/core/full.test: New file.
	* tests/Makefile.am: Add it.
	* bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
	bin/common_file.cc, bin/common_file.hh, bin/genltl.cc, bin/ltlcross.cc,
	bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Add diagnostics.
	* NEWS: Mention the fix.

2016-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 2.1.0a

	* configure.ac, NEWS: Here.

2016-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.1

	* configure.ac, NEWS, doc/org/setup.org: Update version.

2016-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt, dstar2tgba: add CSV input

	Fixes #91.

	* bin/autfilt.cc, bin/dstar2tgba.cc: Implement reading CSV files.
	* bin/common_finput.cc: Fix comments.
	* bin/common_aoutput.cc: Show %<, %> in help text.
	* NEWS, doc/org/csv.org: Document it.
	* tests/core/readsave.test: Add a short test case.

2016-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: --stats=%H --stats=%h

	Part of #91.

	* bin/common_aoutput.cc, bin/common_aoutput.hh: implement %H and %h.
	* tests/core/readsave.test: Test them.
	* NEWS: Mention it.

2016-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formater: add support for double-quoted fields

	Part of #91.

	* spot/misc/formater.cc, spot/misc/formater.hh: Here.
	* bin/common_output.cc: Adjust automatic output format.
	* doc/org/csv.org: Adjust.
	* tests/core/lbt.test, tests/core/ltlfilt.test: More tests.
	* NEWS: Mention the changes.

2016-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix two minor issues reported by clang-analyzer

	These are actually two events that should never happen, but let's just
	make sure they do not.

	* spot/tl/formula.cc: Add an assert.
	* spot/twaalgos/emptiness.cc: Add an exception.

2016-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more typos and small fixups

	* doc/org/autfilt.org, doc/org/compile.org, doc/org/concepts.org,
	doc/org/csv.org, doc/org/ltl2tgba.org, doc/org/oaut.org: Here.
	* tools/help2man: Adjust regex for optional arguments.

2016-08-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix some automata rendering

	The new ob-dot.el installed by 15ea2e66e8ff87b2ed149fe9e98ea09cca69f8d3
	makes all the sed escaping useless (and actually harmful).

	* doc/org/ltl2tgta.org, doc/org/oaut.org: Fix those.

2016-08-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: several typos

	* doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut04.org, doc/org/tut10.org, doc/org/tut20.org,
	doc/org/tut21.org, doc/org/tut50.org: Fix some typos and reword some
	sentences.

2016-08-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	implement conversion to GRA and GSA

	Fixes #174.

	* spot/twaalgos/totgba.hh, spot/twaalgos/totgba.cc
	(to_generalized_streett, to_generalized_rabin): New functions.
	* spot/twa/acc.hh: Declare more methods as static.
	* bin/autfilt.cc: Implement --generalized-rabin and
	--generalized-streett options.
	* NEWS: Mention these.
	* tests/core/gragsa.test: New file.
	* tests/Makefile.am: Add it.

2016-08-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Minor typos and reorganization.

2016-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: prefer execl("/bin/sh", ...) to execlp("sh", ...)

	Fixes #98.

	* bin/common_trans.cc: Here.

2016-08-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: bypass the shell for simple command

	For #98.

	* bin/common_trans.cc: Here.
	* NEWS: Mention it.

2016-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: improve using SCCs and common marks

	* spot/twaalgos/sbacc.cc: Here.
	* tests/core/parseaut.test, tests/python/automata.ipynb: Adjust.
	* tests/core/sbacc.test: Likewise + more tests.
	* NEWS: Mention it.

2016-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: make it possible to modify edges during iteration

	Reported by Laurent Xu.

	* python/spot/impl.i: Fix the iterator to return pointers instead of
	references.  Because references are ultimately copied.
	* tests/python/automata.ipynb: Add test cases.
	* NEWS: Mention it.

2016-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

2016-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: show cross-comparison checks counterexamples

	Part of #38.

	* bin/ltlcross.cc: Implement it.
	* NEWS: Mention it.
	* doc/org/ltlcross.org: Adjust example.
	* tests/core/ltlcrossce2.test: New test case.

2016-07-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	update gnulib

	This comes from gnulib 348402f2aac342bc925b7aaea9ee3cc353f427a9 plus
	a custom patch to support compilation of arpg in C++11.

	* lib/hard-locale.c, lib/hard-locale.h, m4/hard-locale.m4, m4/ltargz.m4:
	New files.
	* lib/Makefile.am, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.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/c-ctype.h, lib/c-strcase.h, lib/c-strcasecmp.c,
	lib/c-strcaseeq.h, lib/c-strncasecmp.c, lib/config.charset,
	lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h, lib/errno.in.h,
	lib/error.c, lib/error.h, lib/exitfail.c, lib/exitfail.h,
	lib/fcntl.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/gettimeofday.c, lib/hard-locale.h, lib/intprops.h, lib/isatty.c,
	lib/itold.c, lib/localcharset.c, lib/localcharset.h, lib/lstat.c,
	lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c, lib/mempcpy.c,
	lib/mkstemp.c, lib/mkstemps.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/quote.h,
	lib/quotearg.c, lib/quotearg.h, lib/rawmemchr.c, lib/ref-add.sin,
	lib/ref-del.sin, lib/secure_getenv.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/stpcpy.c,
	lib/strcasecmp.c, lib/strchrnul.c, lib/streq.h, 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/strverscmp.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/unistd.in.h,
	lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h, lib/vsnprintf.c,
	lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c,
	lib/xalloc-oversized.h, lib/xalloc.h, lib/xmalloc.c, lib/xsize.h,
	m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4,
	m4/codeset.m4, m4/configmake.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/getopt.m4, m4/gettimeofday.m4, m4/glibc21.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/isatty.m4,
	m4/largefile.m4, m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4,
	m4/locale-zh.m4, m4/longlong.m4, m4/lstat.m4, m4/malloc.m4,
	m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4, m4/mbstate_t.m4,
	m4/memchr.m4, m4/mempcpy.m4, m4/mkstemp.m4, m4/mkstemps.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/quote.m4,
	m4/quotearg.m4, m4/rawmemchr.m4, m4/secure_getenv.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/stpcpy.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/strverscmp.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/unistd_h.m4, m4/vasnprintf.m4,
	m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4,
	m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4,
	tests/core/randtgba.cc, tools/snippet/arg-nonnull.h,
	tools/snippet/c++defs.h, tools/snippet/warn-on-use.h: Update.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbtt: fix a memory leak detected by asan.

	* spot/twaalgos/lbtt.cc: Here.
	* NEWS: Mention it.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	misc: fix some signed shifts

	* spot/misc/intvcmp2.cc, spot/misc/intvcomp.cc: Here.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: disable ltsmin tests if --disable-shared

	* configure.ac (USE_LTSMIN): New.
	* tests/Makefile.am: Use it.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut50.org: Simplify UML diagrams.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: show how to implement Kripke structures

	* doc/org/tut51.org: New file.
	* doc/org/tut.org, doc/Makefile.am, NEWS: Add it.
	* elisp/ob-dot.el: New file, to work around old org-mode versions.
	* elisp/README, elisp/Makefile.am: Add it.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	kripke: rename state_acceptance_conditions

	* spot/kripke/kripke.cc, spot/kripke/kripke.hh,
	spot/kripke/fairkripke.hh (state_acceptance_conditions): Rename as...
	(state_acceptance_mark): ... this.
	* NEWS: Mention it.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reword some entries.

2016-07-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	active -Wsuggest-override where supported

	* m4/gccwarn.m4: Add the option.
	* bin/autfilt.cc, bin/common_output.hh, bin/dstar2tgba.cc,
	bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc,
	bin/ltlfilt.cc, bin/ltlgrind.cc, spot/kripke/kripke.hh,
	spot/ltsmin/ltsmin.cc, spot/ta/ta.hh, spot/ta/tgtaproduct.hh,
	spot/taalgos/dot.cc, spot/taalgos/reachiter.hh,
	spot/taalgos/statessetbuilder.cc, spot/taalgos/stats.cc,
	spot/twa/twaproduct.cc, spot/twaalgos/emptiness.cc,
	spot/twaalgos/gtec/ce.cc, spot/twaalgos/lbtt.cc,
	spot/twaalgos/ndfs_result.hxx, spot/twaalgos/stats.hh,
	spot/twaalgos/tau03opt.cc, tests/core/ngraph.cc: Add suggested override
	qualifiers.

2016-07-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document explicit vs. on-the-fly

	* doc/org/tut50.org: New file.
	* doc/org/tut.org: Add it.
	* NEWS: Mention it.
	* doc/Makefile.am: Add tut50.org, and download plantuml.jar when needed.
	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Activate plantum.
	* HACKING: Mention the Java dependency.

2016-07-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize_wdba: fix nondeterministic execution

	Fixes core/readsave.test and python/automata.ipython
	with gcc-snapshot (future gcc 7).

	* spot/twaalgos/minimize.cc: Here.
	* NEWS: Mention the change.
	* tests/core/acc_word.test: Adjust test case.

2016-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use SPOT_ASSERT instead of assert

	For #184.

	* spot/graph/graph.hh, spot/kripke/kripkegraph.hh,
	spot/misc/bitvect.hh, spot/misc/common.hh, spot/misc/fixpool.hh,
	spot/misc/mspool.hh, spot/misc/timer.hh, spot/tl/formula.hh,
	spot/twa/acc.hh, spot/twa/taatgba.hh, spot/twa/twa.hh,
	spot/twa/twagraph.hh, spot/twaalgos/emptiness_stats.hh,
	spot/twaalgos/mask.hh, spot/twaalgos/ndfs_result.hxx,
	spot/twaalgos/sccinfo.hh, spot/twaalgos/translate.hh: Replace
	assert() by SPOT_ASSERT(), or an exception, or nothing, depending
	on the case.
	* tests/sanity/style.test: Flag all asserts in headers.
	* HACKING: Discuss assertions.

2016-07-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: support --enable-glibgxx-debug

	Part of #184.

	* m4/devel.m4 (adl_ENABLE_GLIBCXX_DEBUG): New macro.
	* configure.ac: Use it.
	* README: Mention it.
	* spot/twa/acc.cc: Fix a small issue found with this
	option.

2016-07-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/formula.hh: Fix some comments.

2016-07-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: rename twa::succ_iterable into internal::twa_succ_iterable

	* spot/twa/twa.hh: Here.
	* NEWS: Mention the change.

2016-07-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add autfilt decoration examples

	* doc/org/autfilt.org: Here.
	* doc/org/hoa.org: Add a link to it.
	* bin/autfilt.cc: Typo.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: overhaul default input selection

	If no input have been specified, and the standard input is not a tty all
	tools now default to reading it.  If standard input is a tty, all tools
	display an error message.  Additionally, - is now a shorthand for -F- in
	all tools.

	* NEWS: Summarize this.
	* bin/common_finput.cc, bin/common_finput.hh (check_no_formulas,
	check_no_automaton): New functions that implement the above istty()
	logic.
	* bin/autfilt.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc, bin/ltl2tgta.cc,
	bin/ltlcross.cc, bin/ltldo.cc, bin/ltlgrind.cc: Use these function,
	and recognize '-' if it was not the case.
	* tests/core/acc_word.test, tests/core/ltldo.test,
	tests/core/minusx.test, tests/core/readsave.test,
	tests/core/unambig.test: Adjust some tests to exercise this.
	* doc/org/autfilt.org, doc/org/csv.org, doc/org/dstar2tgba.org,
	doc/org/ltl2tgba.org, doc/org/ltlcross.org, doc/org/ltlfilt.org,
	doc/org/oaut.org: Adjust the documentation and simplify some
	examples.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplifier: new PSL simplifications

	{e[*0..j]}<>->f = {e[*1..j]}<>->f
	{e[*0..j]}[]->f = {e[*1..j]}[]->f

	Fixes #81.

	This required a small change to the bounded-star-normal-form to prevent
	infinite recursion.

	* spot/tl/simplify.cc: Implement these rules.
	* doc/tl/tl.tex, NEWS: Document them.
	* tests/core/reduccmp.test: Add tests, and adjust others.
	* tests/core/unambig.test: Replace formula that used to generated an
	ambiguous automaton, but now generates a deterministic one.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplifier: new LTL simplifications

	if e is pure eventuality and g => e, then e U g = Fg
	if u is purely universal and u => g, then u R g = Gg

	Fixes #93.

	* doc/tl/tl.tex, NEWS: Document the rules.
	* spot/tl/simplify.cc: Implement them.
	* tests/core/reduccmp.test: Test them.
	* tests/core/det.test: Adjust.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: have %%dve and %%pml honor SPOT_TMPDIR and TMPDIR

	* python/spot/aux.py (tmpdir): New context manager.
	* python/spot/ltsmin.i: Use it for the two magics.
	* NEWS: Mention this.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	new test case to improve coverage stats

	The streett_to_generalized_buchi() function was not tested unless
	ltl2dstar is installed.

	* tests/core/streett.test: New file.
	* tests/Makefile.am: Add it.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --stutter-invariant

	* bin/autfilt.cc: Implement the option.
	* NEWS: Mention it.
	* tests/core/readsave.test, tests/core/stutter-tgba.test: Add some
	tests.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: complement non-det automata via determinization

	Fixes #164.

	* spot/twaalgos/stutter.hh, spot/twaalgos/stutter.cc: Implement
	the determinization, while keeping it optional.
	* NEWS: Mention the change.
	* tests/core/ltl2dstar.test, tests/core/stutter-tgba.test: Add
	test cases.
	* tests/core/readsave.test: Adjust.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add missing bindings for randomize()

	* python/spot/impl.i: Here.
	* NEWS: Mention it.
	* tests/python/highlighting.ipynb: Add test case.

2016-07-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: preserve highlights for <N output

	* spot/twa/twagraph.hh (twa_graph::edge_number): New method.
	* spot/twaalgos/copy.cc: Copy the highlights if requested.
	* tests/python/highlighting.ipynb: More tests.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: add accepting_run() and accepting_word() methods

	Fixes #153.

	* spot/twa/twa.cc, spot/twa/twa.hh: Add the methods.
	* bin/autfilt.cc, bin/common_aoutput.hh, bin/ltlcross.cc,
	tests/python/highlighting.ipynb, tests/python/word.ipynb: Use
	them to simplify the code.
	* NEWS: Mention them.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: more examples of highlighting

	* tests/python/highlighting.ipynb: Augment.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove the incorrect project_twa_run()

	It was bogus, and is better replaced by twa_run::project().

	* NEWS, doc/org/upgrade2.org: Mention the removal.
	* spot/twaalgos/projrun.cc, spot/twaalgos/projrun.hh: Remove the files.
	* spot/twaalgos/Makefile.am: Adjust.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --highlight-word

	* bin/autfilt.cc: Add the option.
	* NEWS: Mention it.
	* tests/core/acc_word.test: Test it.
	* spot/twaalgos/emptiness.cc,
	spot/twaalgos/emptiness.hh (twa_run::project): New method.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	highlight: do not reset existing highlights

	* spot/twa/twa.hh (twa::get_or_set_named_prop): New method.
	* spot/twaalgos/emptiness.cc, spot/twaalgos/isdet.cc: Use it to not
	overwrite existing highlights.
	* tests/core/det.test: Add test case.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: support --positive and --negative

	* bin/genltl.cc: Implement these options.
	* NEWS: Mention them.
	* tests/core/genltl.test: New file with test cases.
	* tests/Makefile.am: Add it.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --nondet-states=RANGE

	* bin/autfilt.cc: Here.
	* tests/core/det.test: Test it.
	* NEWS: Mention it.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: swap transformation and filtering --help

	It makes more sense to keep the transformationn options near the
	simplification options.

	* bin/autfilt.cc: Reorder --help.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add highlighting options for nondeterminism

	Fixes #123.

	* bin/autfilt.cc: Add options --highlight-nondet-states=NUM,
	 --highlight-nondet-edges=NUM, and  --highlight-nondet=NUM.
	* spot/twaalgos/isdet.cc,
	spot/twaalgos/isdet.hh (highlight_nondet_states,
	highlight_nondet_edges): New functions.
	* tests/core/det.test: Add test cases.
	* NEWS: Mention them.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	highlight: improve support for highlighted edges

	* spot/twa/twa.cc, spot/twa/twa.hh: Add a way to
	remove named properties.
	* spot/twa/twagraph.cc: Clear highlight-edges on operations
	that reorder the edge vector.
	* spot/twaalgos/randomize.cc, spot/twaalgos/randomize.hh:
	Preserve highlighted state, but not highlighted edges.
	* spot/twaalgos/hoa.cc: Adjust output of highlight-edge
	when the edges are not stored in order.
	* tests/core/readsave.test, tests/core/tgbagraph.test,
	tests/core/twagraph.cc: More test cases.

2016-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: output highlighted states and edges in v1.1

	* spot/twaalgos/hoa.cc: Here.
	* doc/org/hoa.org, NEWS: Document that.
	* tests/core/readsave.test: Test it.

2016-07-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document named properties

	* doc/org/concepts.org: Add a new section.
	* doc/org/hoa.org, spot/twa/twa.hh: Link to it.
	* NEWS: Mention it.

2016-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: list collected automata on --verbose

	* bin/ltlcross.cc: Here.

2016-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	isdet: update prop_deterministic in count_nondet_states()

	* spot/twaalgos/isdet.cc: Here.
	* bin/ltlcross.cc: Simplify.
	* NEWS: Update.

2016-07-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: fix swapped automata in error diagnostic

	Failures could be reported against "Comp(Ni)*Comp(Pj)" when
	it was really "Comp(Nj)*Comp(Pi)" that failed.

	* bin/ltlcross.cc: Here.
	* NEWS: Mention the bug.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.0.3

	* NEWS, configure.ac, doc/org/setup.org: Update.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: do not unregister old AP that are also new

	Reported by Ayrat Khalimov against the trans.html page when using
	ltl3ba.

	* spot/twaalgos/relabel.cc: Here.
	* tests/core/ltl3dra.test: Test it.
	* NEWS: Mention it.
	* THANKS: Add Ayrat.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgta: remove options --ba, --tgba, and friends

	* bin/common_post.cc, bin/common_post.hh: Add a "nooutput" variant of
	the options.
	* bin/ltl2tgta.cc: Use it.
	* NEWS: Mention the fix.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: fix GTA construction

	* python/ajax/spotcgi.in: Here.
	* NEWS: Mention it.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: fix handling of degen-lcache=1

	* spot/twaalgos/degen.cc: Here.
	* tests/core/degendet.test: Add test case.
	* tests/core/ltl2ta.test: Adjust expected output.
	* NEWS: Mention the issue.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/degenlskip.test: Typo.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/citing.org: Typo.

2016-07-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

2016-07-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: do not unregister old AP that are also new

	Reported by Ayrat Khalimov against the trans.html page when using
	ltl3ba.

	* spot/twaalgos/relabel.cc: Here.
	* tests/core/ltl3dra.test: Test it.
	* NEWS: Mention it.
	* THANKS: Add Ayrat.

2016-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgta: remove options --ba, --tgba, and friends

	* bin/common_post.cc, bin/common_post.hh: Add a "nooutput" variant of
	the options.
	* bin/ltl2tgta.cc: Use it.
	* NEWS: Mention the fix.

2016-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: fix GTA construction

	* python/ajax/spotcgi.in: Here.
	* NEWS: Mention it.

2016-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: get rid of the logos

	* python/ajax/logos/lip6sys64.png, python/ajax/logos/lrde64.png: Delete.
	* python/ajax/css/trans.css, python/ajax/trans.html,
	python/ajax/Makefile.am: Adjust.

2016-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust tests to SpinS 1.1

	* tests/python/ipnbdoctest.py: Adjust sanitize function.
	* tests/python/ltsmin-pml.ipynb: Adjust expected output.

2016-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: check for unused options

	Fixes #179.

	* spot/twaalgos/dtwasat.cc: Add the check.
	* tests/core/minusx.test: Test it.
	* NEWS: Mention it.

2016-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	option_map: Diagnose unused option on request

	* spot/misc/optionmap.hh, spot/misc/optionmap.cc (report_unused_options,
	set_, set_set_): New methods.
	* bin/autfilt.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc,
	bin/ltl2tgta.cc: Call report_unused_options().
	* tests/core/ltlcross2.test, tests/core/readsave.test: Fix typos in
	options.
	* tests/core/minusx.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention this.

2016-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: improve range diagnostic

	Fixes #181.

	* bin/common_range.cc: Here.
	* tests/core/ltlfilt.test: Add test case.

2016-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: fix handling of degen-lcache=1

	* spot/twaalgos/degen.cc: Here.
	* tests/core/degendet.test: Add test case.
	* tests/core/ltl2ta.test: Adjust expected output.
	* NEWS: Mention the issue.

2016-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/degenlskip.test: Typo.

2016-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/citing.org: Typo.

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.0.2

	* NEWS: Update.
	* configure.ac, doc/org/setup.org: Bump version.

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a citing page

	With a reference to the "to appear" ATVA'16 paper.

	* doc/org/citing.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/index.org, doc/org/tools.org: Link to it.

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add the examples from the ATVA'16 paper

	* tests/python/atva16-fig2a.ipynb, tests/python/atva16-fig2b.ipynb: New
	files.
	* tests/Makefile.am, doc/org/tut.org: Add them.

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a citing page

	With a reference to the "to appear" ATVA'16 paper.

	* doc/org/citing.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/index.org, doc/org/tools.org: Link to it.

2016-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add the examples from the ATVA'16 paper

	* tests/python/atva16-fig2a.ipynb, tests/python/atva16-fig2b.ipynb: New
	files.
	* tests/Makefile.am, doc/org/tut.org: Add them.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: reset CFLAGS

	* tests/run.in: Here.  This helps when spins is installed an the tests
	actually compile code; we do not want to inherit the -std=c11
	-fvisibility=hidden set for compiling Spot.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/Makefile.am: Distribute elevator2.1.pm.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: reset CFLAGS

	* tests/run.in: Here.  This helps when spins is installed an the tests
	actually compile code; we do not want to inherit the -std=c11
	-fvisibility=hidden set for compiling Spot.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/Makefile.am: Distribute elevator2.1.pm.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a few copyright headers

	* tests/core/ltlcrossgrind.test, tests/core/ltlgrind.test,
	tests/core/ltlrel.test: Here.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a few copyright headers

	* tests/core/ltlcrossgrind.test, tests/core/ltlgrind.test,
	tests/core/ltlrel.test: Here.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: fix infinite recursion in relabel_bse()

	Reported by František Blahoudek.

	* spot/tl/relabel.cc: Fix.
	* tests/core/ltlrel.test: Add test case.
	* NEWS: Mention the bug.

2016-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	relabel: fix infinite recursion in relabel_bse()

	Reported by František Blahoudek.

	* spot/tl/relabel.cc: Fix.
	* tests/core/ltlrel.test: Add test case.
	* NEWS: Mention the bug.

2016-06-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add a %%pml magic

	Fixes #162.

	* python/spot/ltsmin.i: Implement the magic.
	* NEWS: Mention it.
	* tests/python/ltsmin-pml.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* tests/python/ipnbdoctest.py: Adjust.

2016-06-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: rename ltsmin.ipynb

	* tests/python/ltsmin.ipynb: Rename as ...
	* tests/python/ltsmin-dve.ipynb: ... this.
	* doc/org/tut.org, tests/Makefile.am: Adjust.

2016-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut04.org: Typos.

2016-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add binding for language_containment_checker and document them

	* spot/tl/contain.cc, spot/tl/contain.hh: Simplify the
	use of language_containment_checker by adding default argument.
	* python/spot/__init__.py, python/spot/impl.i: Bind it in Python.
	* doc/org/tut04.org: New file to illustrate it.
	* doc/org/tut.org, doc/Makefile.am: Add it.
	* NEWS: Mention those changes.

2016-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut.org: Typo.

2016-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut.org: Typo.

2016-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix sat-minimize example

	Fixes #178.

	* doc/org/satmin.org: Use a different example, where tba-det does not
	work.  Also adjust the text to automatically adjust to the size of the
	produced automata.

2016-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix never claim example

	* doc/org/concepts.org: Enlarge the width of the output of pr so that
	the output is not truncated.  It add a missing closing brace.

2016-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix sat-minimize example

	Fixes #178.

	* doc/org/satmin.org: Use a different example, where tba-det does not
	work.  Also adjust the text to automatically adjust to the size of the
	produced automata.

2016-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix never claim example

	* doc/org/concepts.org: Enlarge the width of the output of pr so that
	the output is not truncated.  It add a missing closing brace.

2016-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/postproc.cc: Typo.

2016-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/postproc.cc: Typo.

2016-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Fix explanation.

2016-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Fix explanation.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: add <h1> title

	Final part of #176.

	* python/ajax/trans.html: Here.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: disable postamble in html export

	* doc/org/init.el.in, doc/org/.dir-locals.el.in: Here.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a description for each page

	Part of #176.

	* doc/org/autfilt.org, doc/org/compile.org, doc/org/concepts.org,
	doc/org/csv.org, doc/org/dstar2tgba.org, doc/org/genltl.org,
	doc/org/hoa.org, doc/org/install.org, doc/org/ioltl.org,
	doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org,
	doc/org/ltldo.org, doc/org/ltlfilt.org, doc/org/ltlgrind.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/tools.org, doc/org/tut.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut10.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut30.org, doc/org/upgrade2.org: Here.
	* doc/org/index.org: Also add keywords in case it is useful, and
	use a more descripting title for search engines.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	attempt to fix clang++ compilation error

	Seen on arch linux when clang++ 3.7.1 uses GCC's 6.1.1 tuple header.

	* spot/twaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::succ): Build the return
	type explicitly.
	* NEWS: Mention the issue.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: add <h1> title

	Final part of #176.

	* python/ajax/trans.html: Here.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: disable postamble in html export

	* doc/org/init.el.in, doc/org/.dir-locals.el.in: Here.

2016-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a description for each page

	Part of #176.

	* doc/org/autfilt.org, doc/org/compile.org, doc/org/concepts.org,
	doc/org/csv.org, doc/org/dstar2tgba.org, doc/org/genltl.org,
	doc/org/hoa.org, doc/org/install.org, doc/org/ioltl.org,
	doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org,
	doc/org/ltldo.org, doc/org/ltlfilt.org, doc/org/ltlgrind.org,
	doc/org/oaut.org, doc/org/randaut.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/tools.org, doc/org/tut.org,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut10.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut30.org, doc/org/upgrade2.org: Here.
	* doc/org/index.org: Also add keywords in case it is useful, and
	use a more descripting title for search engines.

2016-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	attempt to fix clang++ compilation error

	Seen on arch linux when clang++ 3.7.1 uses GCC's 6.1.1 tuple header.

	* spot/twaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::succ): Build the return
	type explicitly.
	* NEWS: Mention the issue.

2016-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update for next version.

2016-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

2016-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Bump version number.

2016-05-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.0.1

	* NEWS, configure.ac, doc/org/setup.org: Update.

2016-05-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	record properties as side-effect of is_deterministic() / is_weak() / ...

	Fixes #165.

	* spot/twaalgos/isdet.cc, spot/twaalgos/strength.cc: Here.
	* spot/twaalgos/isdet.hh, spot/twaalgos/strength.hh, NEWS: Document it.
	* spot/twaalgos/hoa.cc: Fix output of negated properties.
	* tests/core/readsave.test: New test case.

2016-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench: fix bench/ltl2tgba for new bin location

	* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/defs.in:
	Update location of tools.
	* NEWS: Mention the fix.

2016-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/man/genltl.x: Typo.

2016-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	genltl: add formulas from three papers

	Fixes #166.

	* bin/genltl.cc: Add option --dac-patterns, --eh-patterns,
	--sb-patterns.
	* NEWS, bin/man/genltl.x, doc/org/genltl.org: Document them.
	* bench/ltl2tgba/formulae.ltl: Delete.
	* bench/ltl2tgba/known: Use genltl instead.
	* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/README: Update.
	* tests/core/ltl2tgba2.test: New test case, using genltl.
	* tests/Makefile.am: Add it.

2016-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench: fix bench/ltl2tgba for new bin location

	* bench/ltl2tgba/Makefile.am, bench/ltl2tgba/defs.in:
	Update location of tools.
	* NEWS: Mention the fix.

2016-05-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/man/genltl.x: Typo.

2016-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add a spot(7) man page

	Suggested by Akim Demaille.  Fixes #171.

	* bin/man/spot.x, bin/spot.cc: New files.
	* bin/man/Makefile.am, bin/Makefile.am: Add them.
	* doc/org/tools.org, NEWS: Mention the new page.

2016-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: fix css to not highlight table row in man pages

	* doc/org/spot.css: Here.

2016-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tools.org: Minor tweaks.

2016-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: add a spot(7) man page

	Suggested by Akim Demaille.  Fixes #171.

	* bin/man/spot.x, bin/spot.cc: New files.
	* bin/man/Makefile.am, bin/Makefile.am: Add them.
	* doc/org/tools.org, NEWS: Mention the new page.

2016-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: fix css to not highlight table row in man pages

	* doc/org/spot.css: Here.

2016-05-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tools.org: Minor tweaks.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: support operator rewriting in __format__

	Fixes #168.

	* python/spot/__init__.py: Implement it.
	* tests/python/formulas.ipynb: Test it.
	* NEWS: Mention it.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	common_trans: allow rewriting operators

	Part of #168.

	* spot/misc/formater.cc: Adjust to support bracketed options.
	* bin/common_trans.hh, bin/common_trans.cc: Use that to
	support rewriting operators.
	* doc/org/ltlcross.org, tests/core/ltldo.test: Add some examples.
	* NEWS: Mention it.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/tmpfile.hh: Disallow copy.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/misc/tmpfile.hh: Disallow copy.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_hoa: output all registered APs

	Also introduce twa::unregister_ap() and twa_graph::remove_unused_ap()
	so that the methods where this behavior is expected can be fixed.

	And fix ltsmin::kripke() which did not register APs.

	Part of #170.

	* spot/twaalgos/hoa.cc: Use apvars() to print all registerd APs.
	Throw an exception when printing automata using unregistered APs.
	* spot/ltsmin/ltsmin.cc: Call register_ap().
	* spot/twa/twa.cc, spot/twa/twa.hh, spot/twa/twagraph.cc,
	spot/twa/twagraph.hh (twa::unregister_ap, twa_graph::remove_unused_ap):
	New methods.
	* spot/tl/exclusive.cc, spot/twaalgos/postproc.cc,
	spot/twaalgos/remprop.cc, spot/twaalgos/relabel.cc: Use them.
	* tests/core/maskacc.test, tests/core/maskkeep.test,
	tests/core/strength.test: Adjust expected results.
	* NEWS: Mention those changes.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	honor ap() when counting transitions

	Fixing this bug alone revealed another bug: parsing never claim or LBTT
	automata did not register APs.  So this fixes both bugs.

	This is the first part of #170.

	* spot/twa/twa.hh (register_aps_from_dict): New method.
	* spot/parseaut/parseaut.yy: Call it for never claim and LBTT files.
	* spot/twaalgos/stats.cc: Simplify using ap_vars().
	* tests/core/ltl2tgba.test: Add a test case.
	* NEWS: Mention the bugs.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix simpification of exclusive AP

	* bin/autfilt.cc: Here.
	* tests/core/exclusive-tgba.test: Test it.
	* NEWS: Mention the fix.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twagraph.cc: Fix comment.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --unused-ap and --used-ap

	Last part of #170.

	* bin/autfilt.cc: Implement the new options.
	* tests/core/remprop.test: Add a quick test.
	* NEWS: Mention these options.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --remove-unused-ap

	Part of #170.

	* bin/autfilt.cc: Here.
	* tests/core/remprop.test: Test it.
	* NEWS: Mention it.

2016-05-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_hoa: output all registered APs

	Also introduce twa::unregister_ap() and twa_graph::remove_unused_ap()
	so that the methods where this behavior is expected can be fixed.

	And fix ltsmin::kripke() which did not register APs.

	Part of #170.

	* spot/twaalgos/hoa.cc: Use apvars() to print all registerd APs.
	Throw an exception when printing automata using unregistered APs.
	* spot/ltsmin/ltsmin.cc: Call register_ap().
	* spot/twa/twa.cc, spot/twa/twa.hh, spot/twa/twagraph.cc,
	spot/twa/twagraph.hh (twa::unregister_ap, twa_graph::remove_unused_ap):
	New methods.
	* spot/tl/exclusive.cc, spot/twaalgos/postproc.cc,
	spot/twaalgos/remprop.cc, spot/twaalgos/relabel.cc: Use them.
	* tests/core/maskacc.test, tests/core/maskkeep.test,
	tests/core/strength.test: Adjust expected results.
	* NEWS: Mention those changes.

2016-04-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	honor ap() when counting transitions

	Fixing this bug alone revealed another bug: parsing never claim or LBTT
	automata did not register APs.  So this fixes both bugs.

	This is the first part of #170.

	* spot/twa/twa.hh (register_aps_from_dict): New method.
	* spot/parseaut/parseaut.yy: Call it for never claim and LBTT files.
	* spot/twaalgos/stats.cc: Simplify using ap_vars().
	* tests/core/ltl2tgba.test: Add a test case.
	* NEWS: Mention the bugs.

2016-04-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix simpification of exclusive AP

	* bin/autfilt.cc: Here.
	* tests/core/exclusive-tgba.test: Test it.
	* NEWS: Mention the fix.

2016-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ltsmin.ipynb: Remove some debugging code.

2016-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: export tgba_determinize

	* python/spot/impl.i: Here.
	* tests/python/automata.ipynb: Use it.
	* NEWS: Mention it.

2016-04-22  Etienne Renault  <renault@lrde.epita.fr>

	Update list of dependencies.

	* HACKING: Here.

2016-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ltsmin.ipynb: Remove some debugging code.

2016-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: export tgba_determinize

	* python/spot/impl.i: Here.
	* tests/python/automata.ipynb: Use it.
	* NEWS: Mention it.

2016-04-22  Etienne Renault  <renault@lrde.epita.fr>

	Update list of dependencies.

	* HACKING: Here.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: ltlcross is not only about Büchi anymore

	* bin/man/ltlcross.x, doc/org/ltlcross.org, doc/org/tools.org: Fix
	one-line summaries.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/autfilt.cc: Typos in --help.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: ltlcross is not only about Büchi anymore

	* bin/man/ltlcross.x, doc/org/ltlcross.org, doc/org/tools.org: Fix
	one-line summaries.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add options to filter by SCC count and types

	* bin/autfilt.cc: Implement those options.
	* NEWS: Mention them.
	* doc/org/randaut.org: Add a quick example.
	* tests/core/strength.test: Add some basic tests.
	* tests/core/acc_word.test: Adjust options abbreviations.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/autfilt.cc: Typos in --help.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: add option --errors

	* bin/ltldo.cc: Implement --errors.
	* tests/core/ltldo.test: Test it.
	* NEWS: Mention it.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	docyment make_emptiness_check_instantiator()

	Fixes #161, reported by Yann Thierry-Mieg.

	* spot/twaalgos/emptiness.hh: Here.
	* NEWS: Mention it.

2016-04-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: tweak to please icc

	This allows bitvect.hh to compile with icpc 16.0.2, but the whole
	project does not yet compile due to a bug in 16.0.2 that prevents
	compilation of unordered_map::emplace() from the STL shipped with GCC
	5.3.1.

	* spot/misc/bitvect.hh: adjust friend declarations.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	docyment make_emptiness_check_instantiator()

	Fixes #161, reported by Yann Thierry-Mieg.

	* spot/twaalgos/emptiness.hh: Here.
	* NEWS: Mention it.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: tweak to please icc

	This allows bitvect.hh to compile with icpc 16.0.2, but the whole
	project does not yet compile due to a bug in 16.0.2 that prevents
	compilation of unordered_map::emplace() from the STL shipped with GCC
	5.3.1.

	* spot/misc/bitvect.hh: adjust friend declarations.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	check_strength(): also check negated properties

	The test is in the patch introducing HOA 1.1 output.

	* spot/twaalgos/strength.cc: Here.
	* NEWS: Mention the bug.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: fix parsing of /*****/

	* spot/parseaut/scanaut.ll: Here.
	* tests/core/strength.test: Add a test.
	* NEWS: Mention the bug.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add option to output version 1.1

	* spot/twaalgos/hoa.cc: Implement the option.
	* bin/common_aoutput.cc, doc/org/hoa.org,
	doc/org/oaut.org, spot/twaalgos/hoa.hh, NEWS: Document it.
	* tests/core/strength.test: Test that.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	check_strength(): also check negated properties

	The test is in the patch introducing HOA 1.1 output.

	* spot/twaalgos/strength.cc: Here.
	* NEWS: Mention the bug.

2016-04-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: fix parsing of /*****/

	* spot/parseaut/scanaut.ll: Here.
	* tests/core/strength.test: Add a test.
	* NEWS: Mention the bug.

2016-04-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typo in --help output

	* bin/common_aoutput.cc: Fix --help output for -Hk.
	* NEWS: Mention it.

2016-04-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-04-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Typo in --help output

	* bin/common_aoutput.cc: Fix --help output for -Hk.
	* NEWS: Mention it.

2016-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-04-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 2.0

	* configure.ac, doc/org/setup.org, NEWS: Update version number.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/graph/graph.hh: Typo in comment.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust for recent renaming of valid_trans()

	* spot/kripke/kripkegraph.hh, spot/twa/twagraph.hh: Call
	is_valid_edge() instead.
	* NEWS: Mention the renaming.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org: Fix reference to BuDDy.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/graph/graph.hh: More Doxygen comments.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	update some URLs to skip permanent redirections

	* doc/org/concepts.org, doc/org/ltlcross.org, doc/org/ltldo.org,
	python/ajax/trans.html, tools/man2html.pl: Update URLs.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document automata properties

	Fixes #157.

	* doc/org/concepts.org: Document the properties.
	* doc/org/hoa.org: Link to it.
	* NEWS: Mention the change.

2016-04-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add picture for the architecture

	* doc/org/arch.tex: New file.
	* doc/Makefile.am: Compile it.
	* doc/org/concepts.org: Show it.

2016-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent python changes.

2016-04-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: implement --reject-word and --accept-word

	* bin/common_range.hh: Store the common definition of words.
	* bin/autfilt.cc: Use it.
	* bin/ltlfilt.cc: Likewise, and implement those two options.
	* tests/core/acc_word.test: Test them.
	* doc/org/autfilt.org: Augment the last example to point out
	that it can now be done with ltlfilt.
	* NEWS: Mention the new options.

2016-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add prints for atomic_prop_set

	Fixes #159.

	* python/spot/ltsmin.i: Here.
	* python/spot/impl.i: Disable duplicate instantiation.
	* tests/python/ltsmin.ipynb: Test it.

2016-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/sanity/style.test: Cancel set -x.

2016-04-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	let ltsmin.model.kripke() take the output of atomic_prop_collect()

	Fixes #160.

	* spot/tl/formula.hh (formula::ap): New specialization.
	* tests/python/ltsmin.ipynb: Test it.

2016-04-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/formula.hh: More doxygen comments for fnode.

2016-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tests: correctly declare word.ipynb

	Fixes #158, reported by Laurent Xu.

	* tests/Makefile.am (TESTS_python): Move word.ipynb...
	(TESTS_ipython): ... here.

2016-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.99.9a.

2016-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.9.

	* NEWS, configure.ac, doc/org/setup.org: Bump version.

2016-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Mark more classes are final.

	Fixes #42.

	* bench/stutter/stutter_invariance_formulas.cc, bin/autfilt.cc,
	bin/common_output.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc,
	bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc, bin/ltlfilt.cc,
	bin/ltlgrind.cc, spot/misc/intvcmp2.cc, spot/misc/intvcomp.cc,
	spot/taalgos/dot.cc, spot/taalgos/statessetbuilder.cc,
	spot/taalgos/stats.cc, spot/tl/relabel.cc, spot/tl/simplify.cc,
	spot/tl/snf.cc, spot/twa/bdddict.cc, spot/twa/twaproduct.cc,
	spot/twaalgos/degen.cc, spot/twaalgos/determinize.cc,
	spot/twaalgos/dot.cc, spot/twaalgos/emptiness.cc,
	spot/twaalgos/gtec/ce.cc, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/neverclaim.cc,
	spot/twaalgos/se05.cc, spot/twaalgos/simulation.cc,
	spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc: Add final.

2016-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* python/ajax/spotcgi.in: Fix error message.

2016-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/word.hh: Add documentation.

2016-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/ikwiad.cc: Rewrite the help text without std::endl.

2016-03-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/tl/formula.hh (binop): Fix Doxygen comment.

2016-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/autfilt.org: Add missing text.

2016-03-10  Laurent XU  <laurent.xu@lrde.epita.fr>

	* python/Makefile.am: Fix Makefile's targets in separated folder.

2016-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Laurent Xu.

2016-03-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ensure the no-tab rule

	* HACKING: Mention the no-tab rule.
	* tests/sanity/style.test: Only test for it at the beginning of line.

2016-03-10  Laurent XU  <laurent.xu@lrde.epita.fr>

	sanity: Replace tabulars by spaces in *.cc *.hh *.hxx

	* bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
	bin/common_finput.cc, bin/common_finput.hh, bin/common_hoaread.cc,
	bin/common_output.cc, bin/common_output.hh, bin/common_post.cc,
	bin/common_post.hh, bin/common_r.hh, bin/common_range.cc,
	bin/common_range.hh, bin/common_setup.cc, bin/common_trans.cc,
	bin/common_trans.hh, bin/dstar2tgba.cc, bin/genltl.cc,
	bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc,
	bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randaut.cc, bin/randltl.cc,
	bin/spot-x.cc, spot/graph/graph.hh, spot/graph/ngraph.hh,
	spot/kripke/kripkegraph.hh, spot/ltsmin/ltsmin.cc,
	spot/ltsmin/ltsmin.hh, spot/misc/bareword.cc, spot/misc/bitvect.cc,
	spot/misc/bitvect.hh, spot/misc/common.hh, spot/misc/escape.cc,
	spot/misc/fixpool.hh, spot/misc/formater.cc, spot/misc/hash.hh,
	spot/misc/intvcmp2.cc, spot/misc/intvcmp2.hh, spot/misc/intvcomp.cc,
	spot/misc/intvcomp.hh, spot/misc/location.hh, spot/misc/minato.cc,
	spot/misc/minato.hh, spot/misc/mspool.hh, spot/misc/optionmap.cc,
	spot/misc/optionmap.hh, spot/misc/random.cc, spot/misc/random.hh,
	spot/misc/satsolver.cc, spot/misc/satsolver.hh, spot/misc/timer.cc,
	spot/misc/timer.hh, spot/misc/tmpfile.cc, spot/misc/trival.hh,
	spot/parseaut/fmterror.cc, spot/parseaut/parsedecl.hh,
	spot/parseaut/public.hh, spot/parsetl/fmterror.cc,
	spot/parsetl/parsedecl.hh, spot/priv/accmap.hh, spot/priv/bddalloc.cc,
	spot/priv/freelist.cc, spot/priv/trim.cc, spot/priv/weight.cc,
	spot/priv/weight.hh, spot/ta/taexplicit.cc, spot/ta/taexplicit.hh,
	spot/ta/taproduct.cc, spot/ta/taproduct.hh, spot/ta/tgtaexplicit.cc,
	spot/ta/tgtaexplicit.hh, spot/ta/tgtaproduct.cc,
	spot/ta/tgtaproduct.hh, spot/taalgos/dot.cc, spot/taalgos/dot.hh,
	spot/taalgos/emptinessta.cc, spot/taalgos/emptinessta.hh,
	spot/taalgos/minimize.cc, spot/taalgos/tgba2ta.cc,
	spot/taalgos/tgba2ta.hh, spot/tl/apcollect.cc, spot/tl/contain.cc,
	spot/tl/contain.hh, spot/tl/dot.cc, spot/tl/exclusive.cc,
	spot/tl/exclusive.hh, spot/tl/formula.cc, spot/tl/formula.hh,
	spot/tl/length.cc, spot/tl/mark.cc, spot/tl/mutation.cc,
	spot/tl/mutation.hh, spot/tl/parse.hh, spot/tl/print.cc,
	spot/tl/print.hh, spot/tl/randomltl.cc, spot/tl/randomltl.hh,
	spot/tl/relabel.cc, spot/tl/relabel.hh, spot/tl/remove_x.cc,
	spot/tl/simplify.cc, spot/tl/simplify.hh, spot/tl/snf.cc,
	spot/tl/snf.hh, spot/tl/unabbrev.cc, spot/tl/unabbrev.hh,
	spot/twa/acc.cc, spot/twa/acc.hh, spot/twa/bdddict.cc,
	spot/twa/bdddict.hh, spot/twa/bddprint.cc, spot/twa/formula2bdd.cc,
	spot/twa/formula2bdd.hh, spot/twa/taatgba.cc, spot/twa/taatgba.hh,
	spot/twa/twa.cc, spot/twa/twa.hh, spot/twa/twagraph.cc,
	spot/twa/twagraph.hh, spot/twa/twaproduct.cc, spot/twa/twaproduct.hh,
	spot/twaalgos/are_isomorphic.cc, spot/twaalgos/are_isomorphic.hh,
	spot/twaalgos/bfssteps.cc, spot/twaalgos/bfssteps.hh,
	spot/twaalgos/cleanacc.cc, spot/twaalgos/complete.cc,
	spot/twaalgos/compsusp.cc, spot/twaalgos/compsusp.hh,
	spot/twaalgos/copy.cc, spot/twaalgos/cycles.cc,
	spot/twaalgos/cycles.hh, spot/twaalgos/degen.cc,
	spot/twaalgos/degen.hh, spot/twaalgos/determinize.cc,
	spot/twaalgos/determinize.hh, spot/twaalgos/dot.cc,
	spot/twaalgos/dot.hh, spot/twaalgos/dtbasat.cc,
	spot/twaalgos/dtbasat.hh, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/dtwasat.hh, spot/twaalgos/emptiness.cc,
	spot/twaalgos/emptiness.hh, spot/twaalgos/emptiness_stats.hh,
	spot/twaalgos/gtec/ce.cc, spot/twaalgos/gtec/ce.hh,
	spot/twaalgos/gtec/gtec.cc, spot/twaalgos/gtec/gtec.hh,
	spot/twaalgos/gtec/sccstack.cc, spot/twaalgos/gtec/status.cc,
	spot/twaalgos/gv04.cc, spot/twaalgos/hoa.cc, spot/twaalgos/hoa.hh,
	spot/twaalgos/isdet.cc, spot/twaalgos/isunamb.cc,
	spot/twaalgos/isweakscc.cc, spot/twaalgos/lbtt.cc,
	spot/twaalgos/lbtt.hh, spot/twaalgos/ltl2taa.cc,
	spot/twaalgos/ltl2taa.hh, spot/twaalgos/ltl2tgba_fm.cc,
	spot/twaalgos/ltl2tgba_fm.hh, spot/twaalgos/magic.cc,
	spot/twaalgos/magic.hh, spot/twaalgos/mask.cc, spot/twaalgos/mask.hh,
	spot/twaalgos/minimize.cc, spot/twaalgos/minimize.hh,
	spot/twaalgos/ndfs_result.hxx, spot/twaalgos/neverclaim.cc,
	spot/twaalgos/neverclaim.hh, spot/twaalgos/postproc.cc,
	spot/twaalgos/postproc.hh, spot/twaalgos/powerset.cc,
	spot/twaalgos/powerset.hh, spot/twaalgos/product.cc,
	spot/twaalgos/product.hh, spot/twaalgos/projrun.cc,
	spot/twaalgos/projrun.hh, spot/twaalgos/randomgraph.cc,
	spot/twaalgos/randomgraph.hh, spot/twaalgos/randomize.cc,
	spot/twaalgos/randomize.hh, spot/twaalgos/reachiter.cc,
	spot/twaalgos/reachiter.hh, spot/twaalgos/relabel.cc,
	spot/twaalgos/relabel.hh, spot/twaalgos/remfin.cc,
	spot/twaalgos/remprop.cc, spot/twaalgos/sbacc.cc,
	spot/twaalgos/sccfilter.cc, spot/twaalgos/sccfilter.hh,
	spot/twaalgos/sccinfo.cc, spot/twaalgos/sccinfo.hh,
	spot/twaalgos/se05.cc, spot/twaalgos/se05.hh,
	spot/twaalgos/sepsets.cc, spot/twaalgos/simulation.cc,
	spot/twaalgos/simulation.hh, spot/twaalgos/stats.cc,
	spot/twaalgos/stats.hh, spot/twaalgos/strength.cc,
	spot/twaalgos/strength.hh, spot/twaalgos/stripacc.cc,
	spot/twaalgos/stutter.cc, spot/twaalgos/stutter.hh,
	spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc,
	spot/twaalgos/tau03opt.hh, spot/twaalgos/totgba.cc,
	spot/twaalgos/translate.cc, spot/twaalgos/word.cc, tests/core/acc.cc,
	tests/core/bitvect.cc, tests/core/checkpsl.cc, tests/core/checkta.cc,
	tests/core/consterm.cc, tests/core/emptchk.cc, tests/core/equalsf.cc,
	tests/core/graph.cc, tests/core/ikwiad.cc, tests/core/intvcmp2.cc,
	tests/core/intvcomp.cc, tests/core/kind.cc, tests/core/kripkecat.cc,
	tests/core/ltlrel.cc, tests/core/ngraph.cc, tests/core/randtgba.cc,
	tests/core/readltl.cc, tests/core/reduc.cc, tests/core/safra.cc,
	tests/core/syntimpl.cc, tests/ltsmin/modelcheck.cc: Replace tabulars by
	8 spaces.
	* tests/sanity/style.test: Add checks for no tabulars in *.cc *.hh *.hxx

2016-03-10  Laurent XU  <laurent.xu@lrde.epita.fr>

	python: add wrapper on twa_graph::edges()

	* spot/twa/twagraph.hh (edges): Do not hide from SWIG.
	* spot/graph/graph.hh: Hide stuff that SWIG do not understand.
	* python/spot/impl.i: Add some typemaps and fragment to
	iterate over the result of twa_graph::edges().

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	word: throw an exception when printing an empty word

	Fixes #146.

	* spot/twaalgos/word.cc: Here.
	* tests/python/word.ipynb: Add a test case.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --reject-word option

	* bin/autfilt.cc: Implement --reject-word.
	* NEWS, doc/org/autfilt.org: More doc.
	* tests/core/acc_word.test: More tests.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/word.ipynb: Add a new test and some comments.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	eval: Fix typography in error messages

	* spot/twaalgos/word.cc: Here.
	* tests/python/word.ipynb: Adjust.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/autfilt.cc: Mention --accepting-word if its argument is bogus.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* AUTHORS: Add Amaury Fauchille.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix --accept-word

	* bin/autfilt.cc: Translate each word as an automaton once,
	and do not make a global product of all of them.
	* spot/twaalgos/word.cc: Register the atomic propositions used by the
	word when converting it into an automaton.
	* tests/core/acc_word.test: Add a test case that used to fail, and
	another test that make sure some words are not accepted.

2016-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	eval: adjust to recent parser changes

	* spot/parsetl/fmterror.cc, spot/tl/parse.hh: Add an option to display
	shifted diagnostics.
	* spot/twaalgos/word.cc: Use the new parser interface and the above
	option.

2016-03-07  Amaury Fauchille  <amaury.fauchille@lrde.epita.fr>

	autfilt: add new option --accept-word

	Suggested by Matthias Heizmann. Fixes #109.

	* NEWS: notify the new option
	* THANKS: add Matthias Heizmann
	* bin/autfilt.cc: add new option --accept-word=WORD which filters
	automata that accept WORD
	* doc/org/autfilt.org: add an example of the new option
	* tests/Makefile.am: add core/acc_word.test to the list of test files
	* tests/core/acc_word.test: test some uses of the new option

2016-03-07  Amaury Fauchille  <amaury.fauchille@lrde.epita.fr>

	word: implement twa word parsing

	* spot/twaalgos/word.hh: add parse_word method and a new constructor
	* spot/twaalgos/word.cc: implement word parsing
	* python/spot/__init__.py: add parse_word method binding
	* tests/python/word.ipynb: add word parsing tests

2016-03-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_reachable_iterator as twa_reachable_iterator

	* spot/twaalgos/reachiter.cc, spot/twaalgos/reachiter.hh: Here.
	* spot/twaalgos/stats.cc, spot/twaalgos/lbtt.cc: Adjust.
	* doc/org/upgrade2.org, NEWS: Mention the renaming.

2016-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename two confusing methods of emptiness_check_instantiator

	* spot/twaalgos/emptiness.hh (emptiness_check_instantiator): rename
	min_acceptance_conditions and max_acceptance_conditions to
	min_sets and max_sets.
	* spot/twaalgos/emptiness.cc, python/ajax/spotcgi.in,
	tests/core/ikwiad.cc, tests/core/emptchk.cc, tests/core/randtgba.cc:
	Adjust.
	* doc/org/upgrade2.org, NEWS: Mention the change.

2016-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix installation of gtec.hh

	* spot/twaalgos/gtec/Makefile.am: install it in spot/twaalgos/gtec,
	not spot/tgbaalgos/gtec.
	* NEWS: Mention it.

2016-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/upgrade2.org: Discuss get_dict().

2016-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/upgrade2.org: More text.

2016-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add some help for upgrading old code

	* doc/org/upgrade2.org: New file.
	* doc/Makefile.am, doc/org/index.org: Add it.
	* doc/org/tut22.org: Add some custom id for reference.
	* doc/org/spot.css: Style the tables.
	* NEWS: Mention the new doc.

2016-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: rename as_var() as as_vars()

	* spot/twa/twa.hh, spot/twaalgos/stutter.cc: Here.
	* NEWS: Mention the change.

2016-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/kripke/fwd.hh: Typo.

2016-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Fix a section title.

	* doc/org/concepts.org: Fix a mistake reported by František Blahoudek.

2016-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* python/buddy.i: Add a hash function for BDDs.

2016-02-29  Etienne Renault  <renault@lrde.epita.fr>

	scanaut: add missing braces to please -Wdangling-else

	* spot/parseaut/scanaut.ll: here.

2016-02-29  Etienne Renault  <renault@lrde.epita.fr>

	Force casts to please clang on OSX

	* spot/twa/twagraph.hh, spot/twaalgos/minimize.cc,
	spot/twaalgos/remfin.cc: Here.

2016-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.8

	* NEWS, configure.ac, doc/org/setup.org: Update version number.

2016-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/index.org: Link to spot-sandbox.

2016-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* python/ajax/spotcgi.in: Thinko.

2016-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parsetl: change the interface to return a parsed_formula

	This gets the interface of all the functions parsing formula in line
	with the interface of the automaton parser: both return a "parsed_*"
	object (parsed_formula or parsed_automaton) that contains the said
	object and its list of errors.  Doing so avoid having to declare the
	parse_error_list in advance.

	* spot/tl/parse.hh, spot/parsetl/parsetl.yy: Do the change.
	* spot/parsetl/fmterror.cc: Adjust the error printer.
	* NEWS: Document it.
	* bin/common_finput.cc, bin/common_finput.hh, bin/ltlcross.cc,
	bin/ltldo.cc, bin/ltlfilt.cc, doc/org/tut01.org, doc/org/tut02.org,
	doc/org/tut10.org, doc/org/tut20.org, python/ajax/spotcgi.in,
	python/spot/impl.i, spot/parseaut/parseaut.yy, tests/core/checkpsl.cc,
	tests/core/checkta.cc, tests/core/consterm.cc, tests/core/emptchk.cc,
	tests/core/equalsf.cc, tests/core/ikwiad.cc, tests/core/kind.cc,
	tests/core/length.cc, tests/core/ltlprod.cc, tests/core/ltlrel.cc,
	tests/core/randtgba.cc, tests/core/readltl.cc, tests/core/reduc.cc,
	tests/core/safra.cc, tests/core/syntimpl.cc, tests/core/tostring.cc,
	tests/ltsmin/modelcheck.cc, tests/python/alarm.py,
	tests/python/interdep.py, tests/python/ltl2tgba.py,
	tests/python/ltlparse.py: Adjust all uses.

2016-02-17  Etienne Renault  <renault@lrde.epita.fr>

	Update paths to please Darwin

	Fixes #144.

	* doc/org/.dir-locals.el.in,
	doc/org/init.el.in,
	python/ajax/spotcgi.in,
	tests/run.in: Here.

2016-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/python3-spot.examples: Fix wildcard.

2016-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/Makefile.am: Move ltsmin.ipynb to TESTS_ipython.

2016-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: do not distribute _*.ipynb files

	* tests/Makefile.am (nb-html): Only work on the subset of the notebooks
	we want to show.
	* debian/python3-spot.examples: Ignore _*.ipynb files.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: do not compress notebooks

	So that they can be loaded by ipython directly.

	* debian/rules: Exclude *.ipynb from compressed files.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cleanup ltsmin bindings

	* python/spot/aux.py (rm_f): new function.
	* python/spot/ltsmin.i: Replace the %require magic by a simple function.
	Rewrite the %%dve magic.
	* tests/python/otfcrash.py: Simplify using spot.ltsmin.require()
	* tests/python/ltsmin.ipynb: Likewise, also add more text for the
	documentation.
	* NEWS: Adjust.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: fix race conditions in the test suite

	* tests/sanity/80columns.test, tests/sanity/includes.test,
	tests/sanity/private.test, tests/sanity/style.test: Have each test
	record failure in a separate file.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	otf_product: fix deletion of iter_cache_

	Fixes #152, reported by Valentin Iovene.

	* spot/twa/twaproduct.cc (~twa_product): Delete iter_cache_.
	* tests/python/otfcrash.py: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the bug.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Turn on some new warnings from GCC 6.0

	* m4/gccwarn.m4: Add the new warnings.
	* spot/ta/taexplicit.cc, spot/ta/taproduct.cc: Add missing asserts.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	satsolver: use precise fstream class for input or output

	* spot/misc/satsolver.cc: Here.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: report dot errors

	* python/spot/aux.py: Catch errors from dot and signal them.
	* tests/python/_aux.ipynb: New file.
	* tests/Makefile.am: Add it.
	* tests/sanity/ipynb.pl: Support the convention that tests starting with
	'_' should not be published on the web site.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: move auxiliary functions in a separate module

	* python/spot/aux.py: New file, with function extracted from...
	* python/spot/__init__.py: ... here.
	* python/.gitignore, python/Makefile.am: Adjust.

2016-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use more override and final keywords

	This patch is mostly focused on tagging most virtual methods that
	override as such.  I found a few methods that where not meant to be
	virtual this way, and tagged a few classes "final" along the way.

	* bin/common_output.cc, spot/kripke/fairkripke.hh,
	spot/kripke/kripke.hh, spot/kripke/kripkegraph.hh,
	spot/ltsmin/ltsmin.cc, spot/misc/formater.hh, spot/priv/bddalloc.hh,
	spot/ta/ta.hh, spot/ta/taexplicit.hh, spot/ta/taproduct.hh,
	spot/ta/tgta.hh, spot/ta/tgtaexplicit.cc, spot/ta/tgtaexplicit.hh,
	spot/ta/tgtaproduct.hh, spot/taalgos/emptinessta.hh, spot/tl/declenv.hh,
	spot/tl/defaultenv.hh, spot/tl/randomltl.hh, spot/tl/relabel.cc,
	spot/twa/bdddict.cc, spot/twa/taatgba.hh, spot/twa/twagraph.hh,
	spot/twa/twaproduct.hh, spot/twaalgos/gtec/ce.cc,
	spot/twaalgos/gtec/ce.hh, spot/twaalgos/gtec/gtec.hh,
	spot/twaalgos/gv04.cc, spot/twaalgos/ltl2taa.cc, spot/twaalgos/magic.cc,
	spot/twaalgos/minimize.cc, spot/twaalgos/ndfs_result.hxx,
	spot/twaalgos/reachiter.hh, spot/twaalgos/se05.cc,
	spot/twaalgos/stutter.cc, spot/twaalgos/tau03.cc: Add more override and
	final keywords.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add option --determinize

	* bin/ltlcross.cc: Implement it.
	* doc/org/ltlcross.org, NEWS: Document it.
	* tests/core/ltlcross.test, tests/core/ltlcrossce.test: Test it.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix two links

	Fixes #150.

	* doc/org/tut.org: Fix links to notebooks.
	* tests/sanity/ipynb.pl: Catch this type of errors in the future.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: implement an --ap=RANGE option

	Fixes #130.

	* bin/autfilt.cc: Implement the option.
	* NEWS: Mention it.
	* tests/core/readsave.test: Add a short test.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/.gitignore: Ignore safra.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: support --ap=RANGE instead of --ap=N

	Fixes #131.

	* bin/ltlfilt.cc: Implement the option.
	* tests/core/ltlfilt.test: Test it.
	* NEWS: Mention it.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: replace --[b]size-max/min by --[b]size

	* bin/ltlfilt.cc: Implement the new option, and hide the old
	ones.
	* doc/org/ltlfilt.org, NEWS: Document these options.
	* tests/core/ltl2dstar2.test, tests/core/randpsl.test: Adjust tests
	to the new syntax.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove twa::compute_support_conditions

	Fixes #148.

	* spot/twa/twa.hh, spot/twa/twa.cc, spot/kripke/fairkripke.hh,
	spot/kripke/fairkripke.cc, spot/ta/tgtaexplicit.hh,
	spot/ta/tgtaexplicit.cc, spot/twa/twagraph.hh, spot/twa/twaproduct.hh,
	spot/twa/twaproduct.cc, spot/twaalgos/stutter.cc, spot/twa/taatgba.hh,
	spot/twa/taatgba.cc: Remove the method.
	* spot/taalgos/tgba2ta.cc: Emulate it with a simple loop.
	* NEWS: Mention the removal.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove twa::transition_annotation

	Fixes #149.

	* spot/twa/twa.hh, spot/twa/twa.cc, spot/kripke/fairkripke.hh,
	spot/kripke/kripke.hh, spot/twa/twaproduct.cc, spot/twa/twaproduct.hh:
	Remove this method.
	* spot/twaalgos/emptiness.cc, spot/twaalgos/emptiness.hh,
	tests/ltsmin/finite.test: Adjust.
	* NEWS: Mention the removal.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: improve the twa class documentation

	* spot/twa/twa.hh: More documentation.
	* doc/Doxyfile.in: Allow same doc for groups of methods.

2016-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twa/twa.hh: Fix doxygen comments.

2016-02-15  Etienne Renault  <renault@lrde.epita.fr>

	Force cast to please clang on OSX

	Fixes #147.

	*  tests/core/trival.cc: Here.

2016-02-15  Etienne Renault  <renault@lrde.epita.fr>

	Provide support for %dve and %require

	* NEWS, python/spot/ltsmin.i,
	tests/python/ltsmin.ipynb: Here.

2016-02-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: mention the determinization on the main page

	Fixes #145.

	* doc/org/index.org: Here.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add support for --are-equivalent

	Fixes #17.

	* bin/autfilt.cc: Implement it.
	* tests/core/included.test: Test it.
	* NEWS: Mention it.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: typo

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add --included-in filter

	* bin/autfilt.cc: Implement the option.
	* tests/core/included.test: New file.
	* tests/Makefile.am: Add it.
	* NEWS: Mention the new option.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: complement of non-deterministic automata as well

	* bin/autfilt.cc: Determinize automata before complementation
	if needed.
	* tests/core/complement.test: Adjust.
	* NEWS: Mention the new feature.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get read of twa_safra_complement

	* spot/twa/twasafracomplement.cc, spot/twa/twasafracomplement.hh,
	tests/core/complementation.cc: Delete.
	* tests/Makefile.am, spot/twa/Makefile.am: Adjust.
	* tests/core/complementation.test: Rewrite using the new determinization
	code.
	* python/spot/impl.i: Do not mention twa_safra_complement anymore.
	* NEWS: Mention the removal.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add fine-tuning options for determinization

	* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh:
	Add options det-scc, det-simul, det-stutter.
	* bin/spot-x.cc: Document them.
	* doc/org/ltl2tgba.org: Illustrate one of them and link
	to the spot-x man page.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: more documentation

	* spot/twaalgos/postproc.hh: Here.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: more doc about determinization

	* doc/org/autfilt.org: Here.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: add tests for the bug Alexandre L fixed

	* tests/core/safra.test: More tests.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix translate's doc string

	* python/spot/__init__.py (translate): Mention 'generic' in doc string.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	determinize: Correct scc optimisation

	* spot/twaalgos/determinize.cc:  Don't reuse previous SCC's.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: integrate tgba_determinize()

	* spot/twa/acc.hh: Add a smaller version of is_parity().
	* spot/twaalgos/postproc.cc: Call tgba_determinize() if asked for
	Generic acceptance and Deterministic output.
	* bin/common_post.cc: Add 'G' as a shorthand for --generic.
	* doc/org/ltl2tgba.org: Illustrate =ltl2tgba -G -D=.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: do not work on deterministic automata

	* spot/twaalgos/determinize.cc: Here.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: rename the main function

	* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh,
	tests/core/safra.cc (tgba_determinisation): Rename as...
	(twa_determinisation): ... this.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: add some doc

	* spot/twaalgos/determinize.hh: Add documentaion and rename options.
	* spot/twaalgos/determinize.cc: Rename options as well.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/safra.cc (help): Simplify.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: remove superfluous options

	bisimulation and complete just trigger extra algorithms to be called at
	the end of this one, so they need not be part of this algorithm.

	* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh: Reduce
	the number of options.
	* tests/core/safra.cc: Implement those options here.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	determinize: hide private data structures

	* spot/twaalgos/determinize.hh: Move class definitions...
	* spot/twaalgos/determinize.cc: ... here.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	safra: rename as determinize

	* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh: Rename as...
	* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh: ... these.
	* spot/twaalgos/Makefile.am, tests/core/safra.cc: Adjust.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra:  Add stutter-invarience optimisation

	* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh: Here.
	* tests/core/safra.cc: Add option.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Add compute_succ function

	* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh:  Enables use to
	compute successor safra state for any edge.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Build safra-state after each AP

	* spot/twaalgos/safra.cc: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Iterate on APs to compute successors

	* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Add complete option and rename files

	* src/tests/safra.cc, src/twaalgos/safra.cc,
	src/twaalgos/safra.hh, src/tests/safra.test: Rename as...
	* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh, tests/core/safra.cc
	tests/core/safra.test: ... these.
	* tests/Makefile.am: Update.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Add bisimulation optimisation

	* src/tests/safra.cc, src/twaalgos/safra.cc,
	src/twaalgos/safra.hh, spot/twaalgos/simulation.cc,
	spot/twaalgos/simulation.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Fix properties and use new API

	* src/tests/safra.cc, src/twaalgos/safra.cc: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Nodes are grouped by SCC

	* src/tests/safra.cc, src/tests/safra.test: Update it.
	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: all nodes in a safra
	state are grouped by SCC. This is done by putting them in different
	braces.  The same SCC can have different ids depending on the safra
	state.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Give more explicit names to types

	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: SSC based construction

	* src/tests/safra.test: Update it.
	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: Acceptance is now MIN
	ODD.  We only track runs within an SCC and only consider accepting SCC.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Update pretty printer function

	* src/twaalgos/safra.cc: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Remove paths when leaving an SCC

	* src/tests/safra.cc:  Add option.
	* src/twaalgos/safra.cc, src/twaalgos/safra.hh:  When a node leaves an
	SCC, all the subpaths of that node are removed.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra:  Edges to accepting SCC are accepting

	*  src/twaalgos/safra.cc, src/twaalgos/safra.hh: Implement optimisation.
	Update function calls with new API.
	* src/tests/safra.cc, src/tests/safra.test: Use new API.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Add bisimulation option

	* src/tests/safra.cc, src/twaalgos/safra.cc,
	src/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Add pretty printer for states

	* src/tests/safra.cc, src/tests/safra.test: Add options and test.
	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Fix the nesting comparision function

	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Fix nesting comparision

	* src/tests/safra.cc:  Output error message for wrong ltl formula.
	* src/twaalgos/safra.cc:  Default comparision of vector does not
	correspond to the desired comparision.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Ensure parity min even acceptance

	* src/tests/safra.cc, src/tests/safra.test:  Use HOA format in tests.
	* src/twaalgos/safra.cc:  Make sure the number of sets are always odd so
	that cycles without any acceptance set are rejected.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra:  Use sub-transitions during determinization

	* src/tests/safra.cc, src/tests/safra.test:  Update results.
	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: The use of transitions
	resulted in non deterministic automata.  By using sub-transitions the
	problem is solved.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra:  Ensure automata is degeneralized

	* src/tests/safra.cc, src/tests/safra.test:  Update it.
	* src/twaalgos/safra.cc: Here;

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra:  Use std::map to represent macrostates

	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Add a couple of tests

	* src/tests/safra.cc, src/tests/safra.test: New.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: Output parity acceptance sets

	* src/twaalgos/safra.cc, src/twaalgos/safra.hh:  Note that the created
	automaton is not a true parity automaton as they are not handled yet
	by Spot.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: handle single accepting set

	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: Here.

2016-02-12  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	safra: implement powerset construction

	* spot/twaalgos/Makefile.am: Update it.
	* src/twaalgos/safra.cc, src/twaalgos/safra.hh: New.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix paths mentioning buddy/src/.libs

	Those had been incorrectly renamed to buddy/spot/.libs when we rename
	the main src/ directory into spot/.  This only affected the setting of
	DYLD_LIBRARY_PATH, that used to be needed on Darwin.

	* doc/org/.dir-locals.el.in, doc/org/init.el.in, python/ajax/spotcgi.in,
	tests/run.in: Fix the PATH.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: add missing recursion

	"1 U (a | Fb)" was not always reduced to "F(a | b)".

	Fixes #143.

	* spot/tl/simplify.cc: Add the missing recurse() call.
	* tests/core/reduc0.test: Add a test.
	* NEWS: Mention the bug.

2016-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo, ltl2tgba: support %< and %>

	* bin/common_aoutput.hh, bin/common_aoutput.cc,
	bin/ltl2tgba.cc, bin/ltldo.cc: Add support for %< and %>.
	* tests/core/ltl2tgba.test, tests/core/ltldo.test: Test it.
	* NEWS: Mention it.

2016-02-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix destruction order of global variables

	Fixes #142, reported by Joachim Klein.

	* bin/autfilt.cc, bin/ltlfilt.cc, bin/randaut.cc, bin/randltl.cc: Make
	sure all global variables that have a destructor are destructed in the
	main.  Otherwise they risk being destructed after the library's global
	structures are destructed, causing access to freed memory.
	* NEWS: Mention the bug.

2016-02-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/ltsmin/ltsmin.cc (format_state): Thinko.

2016-02-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/ltsmin/modelcheck.cc: Typo when printing accepting run.

2016-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_run: add a highlight method

	* spot/twaalgos/emptiness.hh, spot/twaalgos/emptiness.cc: Add
	the method.
	* tests/python/highlighting.ipynb: Add a small test.

2016-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add option C(COLOR)

	This fixes the output gliches visible in the previous patches,
	where highlighting a state would remove its fill color.

	* spot/twaalgos/dot.cc, spot/taalgos/dot.cc: Implement option C(COLOR).
	* bin/common_aoutput.cc, doc/org/oaut.org: Document it.
	* doc/org/.dir-locals.el.in, doc/org/init.el.in,
	python/spot/__init__.py: Use it.
	* tests/python/automata-io.ipynb, tests/python/automata.ipynb,
	tests/python/highlighting.ipynb: Test it.
	* tests/core/readsave.test: Adjust.
	* NEWS: Mention recent changes.

2016-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: highlighting functions for edges and states

	* python/spot/impl.i (highlight_state, highlight_edge): New function.
	* python/spot/__init__.py (highlight_states, highlight_edges): New
	functions.
	* spot/twaalgos/dot.cc: Add a '#' option.
	* spot/taalgos/dot.cc: Ignore '#'.
	* tests/python/highlighting.ipynb: New file to illustrate everything.
	* tests/Makefile.am, doc/org/tut.org: Add it.

2016-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/twaalgos/dot.cc: Rename a variable.

2016-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut, dot: install a highlighting framework

	* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll:
	Parse "spot.highlight.edges" and "spot.highlight.states" to
	fill the "highlight-edges" and "highlight-states" properties.
	* spot/twaalgos/dot.cc: Use these properties to highlight states.
	* tests/core/readsave.test: Add a small test.

2016-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parse_acc: cleanup error reporting

	* spot/twa/acc.cc: Factor all the error reporting code in a single
	place, and improve the error message at end of acceptance.
	* tests/core/randaut.test: Add more tests.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: run Doxygen twice to work around its bugs

	* doc/Makefile.am: Here.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not build ikwiad, randtgba, and modelcheck by default

	Fix #128.

	* tests/Makefile.am: Make these check_PROGRAMS.
	* bench/emptchk/Makefile.am: Adjust.
	* bench/emptchk/README, bench/emptchk/defs.in: Fix paths.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/emptchk/pml2tgba.pl: Fix to work with recent Spin.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename parse_print_test as kripkecat

	Fixes #135.

	* tests/core/parse_print_test.cc: Rename as...
	* tests/core/kripkecat.cc: ... this.
	* tests/Makefile.am, tests/core/.gitignore, tests/core/kripke.test,
	tests/ltsmin/kripke.test: Adjust.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove obsolete ACLOCAL_AMFLAGS definition.

	Fixes #138, reported by Valentin Iovene.

	* Makefile.am: Here.
	* THANKS: Add Valentin.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ltsmin.ipynb: Erase the model file.

2016-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot, hoa: enable "k" also for fair_kripke

	* spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc: Here.

2016-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: adjust PYTHONPATH after recent python changes

	Fixes #137.

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Search python modules
	in python/spot as well.

2016-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: make acc_ private

	* spot/twa/twa.hh: Here.
	* spot/ta/ta.hh, spot/twa/taatgba.cc, spot/twa/taatgba.hh,
	spot/twa/twagraph.hh, spot/twa/twasafracomplement.cc,
	spot/twaalgos/stutter.cc: Adjust.

2016-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Doxyfile.in: Tweak two options.

2016-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add missing documentation in twa.hh

	Fixes #136.

	* spot/twa/twa.hh: Document almost all members.

2016-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot, hoa: default to "k" for kripke structure

	* spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc: If a Kripke
	structure is passed, automatically enable the "k" option.
	* tests/core/parse_print_test.cc, tests/ltsmin/modelcheck.cc,
	tests/python/ltsmin.ipynb: Remove the explicit use of "k".
	* NEWS: Mention the change.

2016-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add option "k"

	Fixes #134.

	* spot/twaalgos/dot.cc: Implement it.
	* bin/common_aoutput.cc, spot/twaalgos/dot.hh, NEWS: Document it.
	* tests/core/readsave.test, tests/python/ltsmin.ipynb: Test it.

2016-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add missing bindings for twa_word and twa_run

	Fixes #133.

	* python/spot/impl.i: Add bindings for twa_word.  Add a __repr__
	for twa_run, and instantiate templates for twa_run's members.
	* tests/python/word.ipynb: New file with examples.
	* tests/Makefile.am, doc/org/tut.org: Add it.

2016-01-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: use circles if state names are all short

	* spot/twaalgos/dot.cc: Check for state names sizes.
	* tests/core/readsave.test: Test the change.
	* tests/core/tgbagraph.test: Adjust.

2016-01-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add a <N option

	* spot/twaalgos/dot.cc: Implement it.
	* spot/taalgos/dot.cc: Ignore it.
	* spot/twaalgos/copy.cc, spot/twaalgos/copy.hh: Add option
	to limit the number of states.
	* tests/python/ltsmin.ipynb: Improve test case.
	* tests/Makefile.am: Cleanup the files generated by ltsmin.ipynb.
	* python/spot/__init__.py (setup): Add a max_states argument
	that default to 50.
	* bin/common_aoutput.cc: Mention the <INT option.
	* NEWS: Likewise.

2016-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	copy: rewrite as a BFS without using reachiter

	* spot/twaalgos/copy.hh: Trim includes.
	* spot/twaalgos/copy.cc: Rewrite.
	* tests/python/ltsmin.ipynb: Adjust.

2016-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: introduce the state_map template alias

	* spot/twa/twa.hh: Introduce the type.
	* spot/taalgos/emptinessta.cc, spot/taalgos/emptinessta.hh,
	spot/taalgos/minimize.cc, spot/taalgos/reachiter.cc,
	spot/taalgos/reachiter.hh, spot/taalgos/tgba2ta.cc,
	spot/twa/twasafracomplement.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/emptiness.cc, spot/twaalgos/gtec/status.cc,
	spot/twaalgos/gtec/status.hh, spot/twaalgos/gv04.cc,
	spot/twaalgos/magic.cc, spot/twaalgos/minimize.cc,
	spot/twaalgos/minimize.hh, spot/twaalgos/reachiter.cc,
	spot/twaalgos/reachiter.hh, spot/twaalgos/se05.cc,
	spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc: Use it.

2016-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix installation

	* python/Makefile.am: Use nobase_ for installing python files.  This
	required removing the $(srcdir) prefix used almost everywhere in this
	file, which in turn enabled the use of subdir-objects to remove
	an Automake warning.  The downside is that the Makefile probably won't
	support VPATH builds with some inferior implementations of Make.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: fix setting of unambiguous property

	Report from Joachim Klein.

	* spot/twaalgos/ltl2tgba_fm.cc: Set the property, do not read it.
	* tests/core/unambig.test: Add a test.
	* NEWS: Mention the bug.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: add missing file

	* debian/libspotltlsmin0.install: Rename as...
	* debian/libspotltsmin0.install: ... this, and
	* Makefile.am: Actually distribute it!

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: add accessors for variable names and types

	* spot/ltsmin/ltsmin.hh, spot/ltsmin/ltsmin.cc: Expose more of the
	ltsmin interface.
	* python/spot/ltsmin.i: Add some helper functions on top of this
	new interface.
	* tests/python/ltsmin.ipynb: Test them.
	* NEWS: Mention it.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: implement a two-step loading

	* spot/ltsmin/ltsmin.cc, spot/ltsmin/ltsmin.hh: Split load_ltsmin() into
	ltsmin_model::load() and ltsmin_model::kripke().  Report errors using
	exceptions instead of on std::cerr.
	* python/spot/ltsmin.i: Deal with exceptions.
	* tests/ltsmin/modelcheck.cc, tests/python/ltsmin.ipynb: Adjust.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

	* python/.gitignore, tests/.gitignore: Here.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/run.in: Honor PREFIXCMD even without argument.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add bindings for ltsmin

	* python/spot/ltsmin.i: New file.
	* python/Makefile.am: Add it.
	* python/spot/impl.i: Add bindings for kripke and fair_kripke.
	* tests/python/ltsmin.ipynb: New file.
	* tests/Makefile.am, doc/org/tut.org: Add it.
	* tests/python/ipnbdoctest.py: Make it possible for notebook
	to exit(77).
	* debian/control: Make the Python package dependent
	on libspotltsmin0.
	* python/spot/__init__.py: Typo.

2016-01-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make spot.py a python package instead of a module

	* python/spot.py, python/spot_impl.i: Rename as...
	* python/spot/__init__.py, python/spot/impl.i: ... these.
	* python/Makefile.am, tests/run.in: Adjust for new paths.
	* tests/python/automata-io.ipynb, tests/python/automata.ipynb,
	tests/python/decompose.ipynb, tests/python/piperead.ipynb,
	tests/python/testingaut.ipynb: Adjust messages to refer to spot.impl
	instead of spot_impl.

2016-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/concepts.org: Fix a few typos.

2016-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: raise an exception if the dict are different

	Fixes #132.

	* python/spot.py (translate): Allow changing the dictionary.
	* tests/python/prodexpt.py: New file.
	* tests/Makefile.am: Add it.
	* spot/twa/twaproduct.cc, spot/twaalgos/product.cc: Add them.
	* NEWS: Mention the change.

2016-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Add a Concepts page.

	* doc/org/concepts.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/oaut.org: Add anchor.
	* doc/org/index.org, doc/org/tut.org: Add links to concepts.org.
	* doc/org/spot.css: Set up boxes for implementation details.
	* NEWS: Mention the new page.

2016-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	typos

	* bin/autfilt.cc, spot/twaalgos/degen.cc, spot/twaalgos/dtwasat.cc,
	spot/twaalgos/remfin.cc, spot/twaalgos/sccfilter.cc: "only work" ->
	"only works".

2016-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/.gitignore: Add sitemap.org.

2016-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* python/spot.py: Make it possible to call str('dot') on formula.

2016-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: generate a sitemap

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Enable sitemap
	generation.

2016-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/setup.org: Disable html postamble.

2016-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2016-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.7

	* NEWS, configure.ac, doc/org/setup.org: Bump version to 1.99.7.

2016-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* python/ajax/spotcgi.in: Rename acc.is_tt() to acc.is_t().

2016-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Minor cleanup.

2016-01-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/compile.org: Typos.

2016-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around core dump created by running ipython4

	* tests/Makefile.am (distclean-local): Erase python/core.

2016-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix complete

	Alexandre Lewkowicz reported a case where complete() would peek an
	existing state that is accepting, and wrongly use it as a sink.

	* spot/twaalgos/complete.cc: Fix the function.
	* tests/core/complete.test: Add two more tests.
	* NEWS: Mention the bug.

2016-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: add support for negated properties

	* spot/parseaut/parseaut.yy: Here.
	* tests/core/parseaut.test: Test it.
	* NEWS: Mention it.

2016-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: store property bits as trivals

	* spot/twa/twa.hh: Store property bits as trivals.
	* NEWS: Mention the change.
	* spot/parseaut/parseaut.yy, spot/twaalgos/are_isomorphic.cc,
	spot/twaalgos/complete.cc, spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/isdet.cc, spot/twaalgos/isunamb.cc, spot/twaalgos/lbtt.cc,
	spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/postproc.cc,
	spot/twaalgos/remfin.cc, spot/twaalgos/strength.cc,
	spot/twaalgos/stutter.cc, spot/twaalgos/stutter.hh,
	spot/twaalgos/totgba.cc, tests/core/ikwiad.cc,
	tests/python/product.ipynb, tests/python/remfin.py: Adjust.
	* doc/org/hoa.org, doc/org/tut21.org: Update documentation.

2016-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	trival: new class for tri-valued logic

	* spot/misc/trival.hh: New file.
	* spot/misc/Makefile.am: Add it.
	* python/spot_impl.i: Add Python bindings.
	* tests/core/trival.cc, tests/core/trival.test,
	tests/python/trival.py: New files, testing it.
	* tests/Makefile.am: Add them.

2016-01-12  Etienne Renault  <renault@lrde.epita.fr>

	Preserve named-states during defrag

	* spot/twa/twagraph.cc, spot/twa/twagraph.hh,
	tests/core/tgbagraph.test, tests/core/twagraph.cc,
	NEWS: here.

2016-01-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: call unregister_all_my_variables()

	Fixes #129.

	* spot/twa/twa.cc (~twa): call unregister_all_my_variables()
	* spot/twa/twagraph.hh, spot/twa/twaproduct.cc,
	spot/twaalgos/stutter.cc: Simplify.
	* NEWS: Mention the change.

2016-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: make HOA the default output

	* bin/common_aoutput.cc: Make HOA the default output.
	* NEWS: Mention this.
	* doc/org/autfilt.org, doc/org/dstar2tgba.org, doc/org/hoa.org,
	doc/org/ltl2tgba.org, doc/org/ltl2tgta.org, doc/org/ltlcross.org,
	doc/org/ltldo.org, doc/org/oaut.org, doc/org/randaut.org,
	doc/org/satmin.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut20.org, doc/org/tut21.org, doc/org/tut30.org,
	tests/core/dstar.test, tests/core/ltldo2.test, tests/core/monitor.test,
	tests/python/piperead.ipynb: Adjust.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add support for SPOT_DEFAULT_FORMAT

	* bin/common_aoutput.cc, bin/common_aoutput.hh, bin/common_setup.cc:
	Implement it.
	* NEWS, bin/man/spot-x.x: Document it.
	* tests/core/readsave.test: Test it.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add -d as a shorthand for --dot

	* bin/common_aoutput.cc: Here.
	* NEWS, doc/org/oaut.org: Mention it.
	* tests/core/readsave.test: Use it once.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: rename -d as -e

	This is so that we can have -d as an alias for --dot everywhere.

	* bin/randaut.cc: Rename -d as -e.
	* NEWS: Mention the change.
	* doc/org/autfilt.org, doc/org/oaut.org, doc/org/randaut.org,
	tests/core/parseaut.test, tests/core/readsave.test: Adjust.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix definition of PATH

	* doc/org/.dir-locals.el.in, doc/org/init.el.in: bin/ is no longer in
	spot/.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/core/randaut.test: Simplify calls to randaut/autfilt.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/README: Typo.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Minor updates to a few sections.

2016-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not run the Python tests when --disable-python.

	* tests/Makefile.am (TESTS_python): Define conditionally.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tools/test-driver-teamcity: Do not add tests/ in the output.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent directory moves.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bin/common_setup.cc: Bump copyright year.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use find to clean to test suite temporary directories

	* tests/Makefile.am (distclean-local): Here.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move the sanity tests in tests/sanity/

	* spot/sanity/: Move ...
	* tests/sanity/: ... here.
	* spot/sanity/Makefile.am: Merge with...
	* tests/Makefile.am: ... this.
	* tests/run.in: Learn to run perl tests.
	* README, configure.ac, spot/Makefile.am: Adjust.
	* spot/tl/mark.hh: Add missing SPOT_API detected by
	fixed private.test.

	* spot/twaalgos/weight.cc, spot/twaalgos/weight.hh: Move...
	* spot/priv/weight.cc, spot/priv/weight.hh: ... here, as
	suggested by fixed private.test.
	* spot/twaalgos/tau03opt.cc, spot/twaalgos/Makefile.am,
	spot/priv/Makefile.am: Adjust.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tests/python/ipnbdoctest.py: 80 columns.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move ltsmin tests to tests/ltsmin/

	* spot/ltsmin/defs.in: Delete.
	* spot/ltsmin/README, spot/ltsmin/beem-peterson.4.dve,
	spot/ltsmin/check.test, spot/ltsmin/elevator2.1.pm,
	spot/ltsmin/finite.dve, spot/ltsmin/finite.pm, spot/ltsmin/finite.test,
	spot/ltsmin/finite2.test, spot/ltsmin/kripke.test,
	spot/ltsmin/modelcheck.cc: Move...
	* tests/ltsmin/: ... here.
	* spot/ltsmin/README: Point to tests/ltsmin/README.
	* README, configure.ac, spot/ltsmin/Makefile.am, tests/.gitignore,
	tests/Makefile.am, tests/core/defs.in: Adjust.

2016-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/rules: Fix html conversion of notebooks.

2016-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge the core and python tests in the tests/ directory

	* tests/: Rename as...
	* tests/core/: ... this.
	* python/tests/: Rename as...
	* tests/python/: ... this.
	* python/tests/run.in: Move as...
	* tests/run.in: This, and adjust.
	* tests/Makefile.am: Adjust to run both core and python tests.
	* configure.ac, README, debian/python3-spot.examples, debian/rules,
	doc/org/tut.org, python/Makefile.am, spot/ltsmin/Makefile.am,
	spot/ltsmin/kripke.test, spot/sanity/ipynb.test: Adjust.

2015-12-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* spot/sanity/ipynb.test: Fix notebook detection.

2015-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut.org: Minor fixes.

2015-12-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move spot/bin/ and spot/tests/ up by one level

	* spot/bin/: Move...
	* bin/: ... here.
	* spot/tests/: Move...
	* tests/: ... here.
	* Makefile.am, README, bench/stutter/Makefile.am,
	bench/stutter/stutter_invariance_formulas.cc, doc/Makefile.am,
	configure.ac, debian/rules, spot/Makefile.am, spot/ltsmin/Makefile.am,
	spot/ltsmin/kripke.test, spot/sanity/style.test, python/tests/run.in:
	Adjust.

2015-12-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: more robust handling of %timeit in notebooks

	* python/tests/ipnbdoctest.py: Simply ignore %timeit blocks.

2015-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Move spot-if/ltsmin/ to spot/ltsmin/

	* spot-if/ltsmin/: Rename as...
	* spot/ltsmin/: ... this.
	* spot-if/: Delete.
	* Makefile.am, NEWS, README, configure.ac, debian/libspot-dev.install,
	doc/Doxyfile.in, spot/Makefile.am, spot/sanity/80columns.test,
	spot/sanity/style.test: Adjust.

2015-12-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename wrap/python/ to python/

	* wrap/python/: Rename to...
	* python/: ... this.
	* wrap/: Delete.
	* Makefile.am, README, configure.ac, debian/python3-spot.examples,
	debian/rules, doc/org/.dir-locals.el.in, doc/org/init.el.in,
	spot/sanity/ipynb.test: Adjust.

2015-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	show how to implement product in Python

	* wrap/python/tests/product.ipynb: New file.
	* wrap/python/tests/Makefile.am, doc/org/tut.org: Add it.
	* wrap/python/tests/ipnbdoctest.py: Ignore %timeit results.
	* wrap/python/spot_impl.i: Add bindings for
	set_state_names()/get_state_names().
	* spot/twaalgos/product.cc: Fix computation of properties.
	* doc/org/hoa.org: Name.
	* NEWS: Update.

2015-12-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: fix duplicate propositions in ap()

	Calling register_ap() with same atomic proposition several time, for
	instance via copy_ap() in a product, would create duplicate atomic
	propositions.  This fix will be exercised by the next patch.

	* spot/twa/twa.hh: Here.
	* spot/twaalgos/compsusp.cc, spot/twaalgos/ltl2taa.cc: Fix
	to correctly register atomic propositions.
	* NEWS: Mention it.

2015-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc_cond: get rid of generalized_buchi()

	It is already in acc_cond::acc_code::generalized_buchi() along with all
	other acceptance condition constructors.

	* spot/twa/acc.hh (acc_cond::generalized_buchi): Remove.
	* spot/tests/ikwiad.cc, spot/twaalgos/postproc.cc: Adjust.

2015-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc_code: parse from the constructor

	* spot/twa/acc.hh, spot/twa/acc.cc (parse_acc_code): Rename as...
	(acc_cond::acc_code): ... this, making it a lot easier to build
	acceptance conditions from strings.
	* NEWS: Mention the change.
	* spot/twaalgos/dtwasat.cc, spot/bin/randaut.cc, spot/tests/acc.cc:
	Adjust.
	* wrap/python/tests/acc_cond.ipynb, wrap/python/tests/accparse.ipynb,
	wrap/python/tests/accparse2.py: Simplify, but not completely to exercise
	all variants.
	* wrap/python/spot_impl.i: Make acc_code's constructor implicit.

2015-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc_cond: allow ctor from acc_code only + bind unsat_mark()

	* spot/twa/acc.hh: Here.
	* wrap/python/spot_impl.i: Adjust for the strange return type of
	unsat_mark().
	* wrap/python/tests/acc_cond.ipynb: Augment.

2015-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better swig options

	* wrap/python/Makefile.am: Use more modern swig flags.

2015-12-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better binding for is_parity()

	* wrap/python/spot_impl.i: Here.
	* wrap/python/tests/acc_cond.ipynb: Document it.
	* spot/twa/acc.cc (is_parity): Always initialize max.

2015-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: get rid of join()

	* spot/twa/acc.hh: Here.  Also make sure << takes an unsigned
	argument.
	* spot/twa/twaproduct.cc, spot/twaalgos/compsusp.cc,
	spot/twaalgos/product.cc, spot/twaalgos/remfin.cc,
	spot/twaalgos/totgba.cc, spot/tests/acc.cc: Adjust.

2015-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc_cond: rename is_tt/is_ff as is_t/is_f and add printer

	* spot/twa/acc.cc, spot/twa/acc.hh: Here.
	* spot/parseaut/parseaut.yy, spot/twa/acc.hh,
	spot/twaalgos/gtec/gtec.cc, spot/twaalgos/hoa.cc,
	spot/twaalgos/neverclaim.cc, spot/twaalgos/product.cc,
	spot/twaalgos/remfin.cc, spot/twaalgos/strength.cc: Adjust.
	* NEWS: Mention the changes.
	* wrap/python/spot_impl.i: Bind acc_cond the printer.
	* wrap/python/tests/acc_cond.ipynb: Add more examples.

2015-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add some doc & tests for the acceptance bindings

	* wrap/python/tests/acc_cond.ipynb: New file.
	* wrap/python/tests/Makefile.am, doc/org/tut.org: Add it.
	* wrap/python/spot_impl.i: Add printer for acc_cond::mark_t.

2015-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: simplify interface using operators

	* spot/twa/acc.hh, spot/twa/acc.cc: Here.  Also remove
	some redundant functions.
	* spot/parseaut/parseaut.yy, spot/priv/accmap.hh, spot/tests/acc.cc,
	spot/tests/twagraph.cc, spot/twa/taatgba.hh, spot/twa/twaproduct.cc,
	spot/twaalgos/dtwasat.cc, spot/twaalgos/hoa.cc, spot/twaalgos/lbtt.cc,
	spot/twaalgos/ltl2tgba_fm.cc, spot/twaalgos/product.cc,
	spot/twaalgos/remfin.cc, spot/twaalgos/simulation.cc,
	spot/twaalgos/tau03opt.cc, spot/twaalgos/weight.cc,
	spot/twaalgos/weight.hh: Adjust.
	* NEWS: Mention the changes.

2015-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: port the tut22.org example to Python

	* wrap/python/spot_impl.i: Extend acc_cond::mark_t to with a constructor
	that takes a vector.
	* doc/org/tut22.org: Add a Python version.
	* doc/org/tut.org: Adjust the list, we don't have any C++-specific
	example.
	* NEWS: Mention it.

2015-12-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: allow iterating over the successors of a state

	Fixes #118.

	* spot/twa/twagraph.hh: Avoid using graph_t::state to help Swig.
	* wrap/python/spot_impl.i: Add a __str__ function for acc_cond::mark_t.
	* doc/org/tut21.org: Add the Python version.
	* doc/org/tut.org: Move tut21.org to the Python/C++ section.
	* NEWS: Update.

2015-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: initial work on wrapping twa_graph::out(n)

	* spot/twa/twagraph.hh (out): Do not hide from SWIG.
	* spot/graph/graph.hh: Hide stuff that SWIG do not understand.
	* wrap/python/spot_impl.i: Add some typemaps and fragment to
	iterate over the result of twa_graph::out().

2015-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot_impl.i: We do not use False/True anymore in Spot.

2015-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: kill some Swig warnings

	* wrap/python/spot_impl.i: Get rid of some warnings about missing
	typecheck for spot::formula.

2015-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	speed up equivalence check for LTL formulas

	With this patch reduc.test goes from 4:57 down to 4:06 on my laptop.

	* spot/tl/contain.cc (equal): Use are_isomorphic() before testing
	for containment.
	* spot/twaalgos/are_isomorphic.hh, spot/twaalgos/are_isomorphic.cc:
	(are_isomorphic): New static method.

2015-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	decompose_strength: work with inherently weak SCCs

	* wrap/python/tests/decompose.ipynb: Adjust text.
	* spot/twaalgos/strength.hh, spot/twaalgos/strength.cc:
	Adjust to extract inherently weak SCCs instead of weak SCCs.  This gets
	rids of the special handling for the "corner cases".
	* spot/tests/strength.test: Adjust.
	* NEWS: Mention it.

2015-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: move unsat_mark in acc_cond

	so that we can optimize it when no Fin are used

	* spot/twa/acc.cc, spot/twa/acc.hh: Do it.
	* spot/twaalgos/complete.cc, spot/twaalgos/strength.cc: Adjust.

2015-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update Spot description on index page

	* doc/org/index.org: Here.

2015-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	introduce is_inherently_weak_automaton()

	* spot/twaalgos/strength.cc, spot/twaalgos/strength.hh
	(is_inherently_weak_automaton): New function.
	(is_type_automaton): Adjust to implement the above and
	set prop_inherently_weak().
	* spot/twaalgos/isweakscc.cc, spot/twaalgos/isweakscc.hh:
	Rewrite is_inherently_weak_scc() to not enumerate cycles.
	* spot/bin/autfilt.cc: Add a --is-inherently-weak option.
	* spot/tests/readsave.test: More tests.
	* spot/tests/strength.test: Adjust expected output.
	* doc/org/hoa.org: Adjust documentation of --check.
	* NEWS: Mention those changes.

2015-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: more bibliographic references

	* spot/bin/man/autfilt.x, spot/bin/man/dstar2tgba.x,
	spot/bin/man/ltlfilt.x: Add more bibliography.

2015-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename iface/ as spot-if/

	So that instead of having to do
	  #incluce <spot/iface/ltsmin/ltsmin.hh>
	for using installed the installed header, and
	  #incluce <iface/ltsmin/ltsmin.hh>
	for using the non-installed version, we now do
	  #incluce <spot-if/ltsmin/ltsmin.hh>
	in both cases.

	* iface/: Rename as...
	* spot-if/: ... this.
	* doc/Doxyfile.in, README, configure.ac, Makefile.am,
	spot/sanity/80columns.test, spot/sanity/style.test: Adjust.
	* NEWS: Mention the change.
	* spot-if/ltsmin/Makefile.am: Install headers in $includedir/spot-if.
	* debian/libspot-dev.install: Distribute that directory as well.

2015-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: some documentation about compiling C++

	* doc/org/compile.org: New file.
	* doc/Makefile.am: Add it.
	* NEWS: Mention it.
	* doc/org/tut.org, doc/org/tut01.org: Link to it.

2015-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename src/ as spot/ and use include <spot/...>

	* NEWS: Mention the change.
	* src/: Rename as ...
	* spot/: ... this, adjust all headers to include <spot/...> instead of
	"...", and adjust all Makefile.am to search headers from the top-level
	directory.
	* HACKING: Add conventions about #include.
	* spot/sanity/style.test: Add a few more grep to catch cases
	that do not follow these conventions.
	* .gitignore, Makefile.am, README, bench/stutter/Makefile.am,
	bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc, configure.ac,
	debian/rules, doc/Doxyfile.in, doc/Makefile.am,
	doc/org/.dir-locals.el.in, doc/org/g++wrap.in, doc/org/init.el.in,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
	doc/org/tut10.org, doc/org/tut20.org, doc/org/tut21.org,
	doc/org/tut22.org, doc/org/tut30.org, iface/ltsmin/Makefile.am,
	iface/ltsmin/kripke.test, iface/ltsmin/ltsmin.cc,
	iface/ltsmin/ltsmin.hh, iface/ltsmin/modelcheck.cc,
	wrap/python/Makefile.am, wrap/python/ajax/spotcgi.in,
	wrap/python/spot_impl.i, wrap/python/tests/ltl2tgba.py,
	wrap/python/tests/randgen.py, wrap/python/tests/run.in: Adjust.

2015-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Typo.

2015-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version number.

2015-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.6

	* NEWS, configure.ac, doc/org/setup.org: Update version and date.

2015-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spotcgi.in: Adjust for recent renamings.

2015-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Cleanup.

2015-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* elisp/hoa-mode.el: Update from its master.

2015-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/control: Fix some dependencdies.

2015-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: allow dots in identifiers

	As discussed at https://github.com/adl/hoaf/issues/56

	* src/parseaut/scanaut.ll: Allow dots.
	* src/tests/parseaut.test: Test it.
	* NEWS: Mention it.

2015-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: do not use -no-undefined

	This was added by mistake in 86abd6c1 but that makes no sense, because
	the library depends on all the symbols in libpython.  Reported by
	Étienne Renault.

	* wrap/python/Makefile.am: Here.

2015-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	word: store the bdd dict for easier printing

	* src/twaalgos/word.hh, src/twaalgos/word.cc: Store the
	bdd_dict, and replace the print() method by a << overload.
	* NEWS: Mention it.
	* src/bin/ltlcross.cc, src/bin/common_aoutput.hh: Adjust.

2015-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/hoa.org: Simplify wording in property table.

2015-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix constness of twa::get_init_state() and twa_succ_iterator::dst()

	Fixes #125.

	* src/kripke/kripkegraph.hh, 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/tgtaproduct.cc, src/ta/tgtaproduct.hh,
	src/taalgos/dot.cc, src/taalgos/emptinessta.cc,
	src/taalgos/emptinessta.hh, src/taalgos/minimize.cc,
	src/taalgos/reachiter.cc, src/taalgos/tgba2ta.cc, src/twa/twa.hh,
	src/twa/twagraph.hh, src/twa/twaproduct.cc, src/twa/twaproduct.hh,
	src/twaalgos/compsusp.cc, src/twaalgos/gtec/gtec.cc,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/reachiter.cc,
	src/twaalgos/stutter.cc: Adjust.

2015-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rewrite explicit Kripke structures and their parser

	Fixes #4 and fixes #5.

	* NEWS: Mention the change.
	* src/kripkeparse/: Delete.
	* README, src/Makefile.am, configure.ac: Adjust.
	* src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh: Delete.
	* src/kripke/kripkegraph.hh: New file.
	* src/kripke/Makefile.am: Adjust.
	* src/parseaut/parseaut.yy, src/parseaut/public.hh: Add
	an option to read kripke structures.
	* src/tests/bad_parsing.test: Delete.
	* src/tests/Makefile.am: Adjust.
	* src/tests/kripke.test, src/tests/parse_print_test.cc: Rewrite.
	* src/tests/ikwiad.cc, src/tests/parseaut.test,
	iface/ltsmin/modelcheck.cc, wrap/python/spot_impl.i: Adjust.

2015-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Only use -Bsymbolic-functions, not -Bsymbolic.

	* m4/symbolic.m4: Here.  The -Bsymbolic option causes
	segfault related to spot::formula::ff() returning a
	pointer to some global.

2015-11-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_hoa: add option "k"

	* src/twaalgos/hoa.cc, src/twaalgos/hoa.hh: Implement it.
	* NEWS, doc/org/hoa.org, src/bin/common_aoutput.cc: Document it.
	* src/tests/readsave.test: Test it.

2015-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtwa_sat_minimize: better selection of the reference automaton

	* src/twaalgos/dtwasat.cc: Choose the reference automaton based on its
	size.  With this change, the last example of my LPAR'15 talk goes from
	~7s to under 1s.
	* NEWS: Mention it.

2015-11-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: rename dtgbasat as dtwasat

	* src/twaalgos/dtgbasat.cc, src/twaalgos/dtgbasat.hh: Rename as...
	* src/twaalgos/dtwasat.cc, src/twaalgos/dtwasat.hh: ... these.
	* src/bin/autfilt.cc, src/tests/ikwiad.cc, src/twaalgos/Makefile.am,
	src/twaalgos/postproc.cc, wrap/python/spot_impl.i: Adjust.
	* NEWS: Mention the renamings.

2015-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more language tooltips in HTML output

	* doc/org/spot.css: add tooltips for Python and C++.

2015-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: syntax-highlight the HOA outputs

	* elisp/hoa-mode.el, elisp/Makefile.am, elisp/README: New files.
	* debian/copyright, configure.ac, README, Makefile.am: Adjust.
	* doc/org/init.el.in: Adjust to load hoa-mode.el.
	* doc/org/spot.css: Add entries for HOA mode.
	* doc/org/hoa.org, doc/org/ltldo.org, doc/org/oaut.org,
	doc/org/tut20.org, doc/org/tut21.org, doc/org/tut22.org,
	doc/org/tut30.org: Make the HOA outputs as HOA.

2015-11-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better interface for sat_minimize()

	* NEWS: Mention it.
	* wrap/python/spot.py: Rewrite the sat_minimize() function.
	* wrap/python/tests/satmin.py: New file.
	* wrap/python/tests/Makefile.am (TESTS): Add it.

2015-11-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: two typos

	* doc/mainpage.dox, doc/org/tut01.org: Here.

2015-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add support for option +N

	* src/twaalgos/dot.cc: Here.
	* NEWS, src/bin/common_aoutput.cc: Document it.
	* wrap/python/tests/automata.ipynb: Test it.

2015-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	workaround bad interactions between magit and whitespace-mode

	* .dir-locals.el: Use global-whitespace-mode instead of whitespace-mode.

2015-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: display pairs of states for products

	* src/twaalgos/dot.cc: Here.
	* wrap/python/tests/automata.ipynb: Test it.
	* NEWS: Document this.

2015-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add a show_default option to setup()

	* wrap/python/spot.py: Here.
	* wrap/python/tests/decompose.ipynb: Use it to simplify the code.

2015-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	make sure --dot=Bb is the same as --dot=b

	* NEWS: Mention the fixed bug.
	* src/twaalgos/dot.cc: Fix.
	* wrap/python/tests/decompose.ipynb: Use it.

2015-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_run as twa_run

	Fixes #122.

	* src/twaalgos/word.cc, src/twaalgos/word.hh: Here.
	* src/bin/ltlcross.cc, src/bin/common_aoutput.hh: Adjust.
	* NEWS: Mention the renaming.

2015-11-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hide trim() from the public interface

	* src/misc/escape.cc, src/misc/escape.hh (trim): Move...
	* src/priv/trim.cc, src/priv/trim.hh: ... in these new files.
	* src/priv/Makefile.am: Add them.
	* src/parseaut/scanaut.ll, src/parsetl/scantl.ll: Adjust.

2015-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use -Bsymbolic-functions and -Bsymbolic

	This avoids dynamic lookups to resolve symbols inside the library, but
	disallows symbol interposition.

	* m4/symbolic.m4: New file.
	* buddy/m4/symbolic.m4: New link.
	* configure.ac, buddy/configure.ac: Add AX_SYMBOLIC.
	* buddy/src/Makefile.am, iface/ltsmin/Makefile.am, src/Makefile.am,
	wrap/python/Makefile.am: Link with $(SYMBOLIC_LDFLAGS).

2015-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	activate c11 for gnulib tests

	* configure.ac: Here.

2015-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/parsetl/.gitignore: Adjust to no-that-recent renamings.

2015-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tools/.gitignore: Ignore ar-lib.

2015-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update gnulib.

	* lib/Makefile.am, lib/alloca.in.h, lib/argmatch.c, lib/argmatch.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/c-ctype.c, lib/c-ctype.h, lib/c-strcase.h,
	lib/c-strcasecmp.c, lib/c-strcaseeq.h, lib/c-strncasecmp.c,
	lib/config.charset, lib/dirname-lgpl.c, lib/dirname.h, lib/dosname.h,
	lib/errno.in.h, lib/error.c, lib/error.h, lib/exitfail.c,
	lib/exitfail.h, lib/fcntl.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/gettimeofday.c, lib/intprops.h,
	lib/isatty.c, lib/itold.c, lib/localcharset.c, lib/localcharset.h,
	lib/lstat.c, lib/malloc.c, lib/mbrtowc.c, lib/mbsinit.c, lib/memchr.c,
	lib/mempcpy.c, lib/mkstemp.c, lib/mkstemps.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/quote.h,
	lib/quotearg.c, lib/quotearg.h, lib/rawmemchr.c, lib/ref-add.sin,
	lib/ref-del.sin, lib/secure_getenv.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/stpcpy.c,
	lib/strcasecmp.c, lib/strchrnul.c, lib/streq.h, 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/strverscmp.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/unistd.c,
	lib/unistd.in.h, lib/vasnprintf.c, lib/vasnprintf.h, lib/verify.h,
	lib/vsnprintf.c, lib/wchar.in.h, lib/wctype.in.h, lib/xalloc-die.c,
	lib/xalloc-oversized.h, lib/xalloc.h, lib/xmalloc.c, lib/xsize.h,
	m4/00gnulib.m4, m4/absolute-header.m4, m4/alloca.m4, m4/argp.m4,
	m4/codeset.m4, m4/configmake.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/getopt.m4, m4/gettimeofday.m4, m4/glibc21.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/isatty.m4,
	m4/largefile.m4, m4/localcharset.m4, m4/locale-fr.m4, m4/locale-ja.m4,
	m4/locale-zh.m4, m4/longlong.m4, m4/lstat.m4, m4/malloc.m4,
	m4/math_h.m4, m4/mbrtowc.m4, m4/mbsinit.m4, m4/mbstate_t.m4,
	m4/memchr.m4, m4/mempcpy.m4, m4/mkstemp.m4, m4/mkstemps.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/quote.m4,
	m4/quotearg.m4, m4/rawmemchr.m4, m4/secure_getenv.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/stpcpy.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/strverscmp.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/unistd_h.m4, m4/vasnprintf.m4,
	m4/vsnprintf.m4, m4/warn-on-use.m4, m4/wchar_h.m4, m4/wchar_t.m4,
	m4/wctype_h.m4, m4/wint_t.m4, m4/xalloc.m4, m4/xsize.m4,
	tools/snippet/arg-nonnull.h, tools/snippet/c++defs.h,
	tools/snippet/warn-on-use.h: Update.

2015-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/tests/decompose.ipynb: Typos.

2015-11-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/autfilt.x: Fix description.

2015-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a notebook illustrating decompose_strength()

	* wrap/python/tests/decompose.ipynb: New file.
	* wrap/python/tests/Makefile.am: Add it.
	* src/twaalgos/strength.cc: Fix corner cases.
	* src/tests/strength.test: Adjust corner case.
	* NEWS, doc/org/tut.org: Mention the notebook.

2015-11-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a decompose_strength() function.

	* src/twaalgos/strength.cc, src/twaalgos/strength.hh
	(decompose_stregth): New function.
	* src/bin/autfilt.cc: Add a --decompose-strength option.
	* src/bin/man/autfilt.x: Add bibliography.
	* src/tests/strength.test: Test it.
	* NEWS: Mention it.

2015-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for --check=strength

	* src/twaalgos/strength.cc, src/twaalgos/strength.hh (check_strength):
	New function.
	* src/bin/common_aoutput.cc: Add --check=strength.
	* src/tests/strength.test: New file.
	* src/tests/Makefile.am: Add it.
	* doc/org/hoa.org, NEWS: Document it.

2015-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: Add --is-terminal and --is-weak.

	Fixes #47.

	* src/twaalgos/strength.cc, src/twaalgos/strength.hh
	(is_weak_automaton): New function.
	(is_terminal_automaton): Generalize slightly.
	* src/bin/autfilt.cc: Add options --is-terminal and --is-weak.
	* src/tests/readsave.test: Add a test.
	* NEWS: Update.

2015-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename safety.hh as strength.hh

	* src/twaalgos/safety.cc, src/twaalgos/safety.hh: Rename as ...
	* src/twaalgos/strength.cc, src/twaalgos/strength.hh: ... these.
	* src/bin/ltlfilt.cc, src/tests/ikwiad.cc, src/twaalgos/Makefile.am,
	src/twaalgos/compsusp.cc, src/twaalgos/minimize.cc,
	wrap/python/spot_impl.i: Adjust.

2015-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename is_guarantee_automaton() as is_terminal_automaton()

	* src/twaalgos/safety.hh, src/twaalgos/safety.cc: Here.
	* src/bin/ltlfilt.cc, src/tests/ikwiad.cc, src/twaalgos/minimize.cc,
	wrap/python/ajax/spotcgi.in: Adjust.
	* NEWS: Mention the change.

2015-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add support for the "terminal" property

	* src/twa/twa.hh: Store the terminal property.
	* src/twaalgos/hoa.cc, src/parseaut/parseaut.yy: Add I/O for "terminal".
	* src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/minimize.cc: Set terminal
	as apropriate.
	* src/twaalgos/safety.cc: Use it.
	* doc/org/tut21.org, doc/org/hoa.org, NEWS: Document it.
	* src/tests/complement.test, src/tests/monitor.test,
	wrap/python/tests/automata-io.ipynb: Adjust.

2015-11-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add support for the weak property

	This fixes #119.

	* doc/org/tut21.org, doc/org/hoa.org, NEWS: Document it.
	* src/twa/twa.hh: Support it in automata.
	* src/twaalgos/hoa.cc, src/parseaut/parseaut.yy: Add I/O support.
	* src/twaalgos/minimize.cc, src/twaalgos/totgba.cc: Set weak
	automata on output.
	* src/tests/complement.test, src/tests/parseaut.test,
	src/tests/readsave.test, src/tests/remfin.test, src/tests/sccsimpl.test,
	src/tests/wdba2.test, wrap/python/tests/automata-io.ipynb: Adjust.

2015-11-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more examples of accessing properties

	For the first part of #118.

	* doc/org/tut21.org: Here.

2015-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: output "unambiguous" only for non-deterministic automata by default

	* src/twaalgos/hoa.cc: Output do not output "unambiguous" if the
	automaton is deterministic.  Add option "v" to cancel this restriction,
	and also output "no-univ-branch".
	* src/twaalgos/hoa.hh: Document the "v" option.
	* src/tests/readsave.test: Test it.
	* src/tests/unambig.test: Adjust for unambiguous not being output
	if the automaton is deterministic.
	* src/bin/common_aoutput.cc, NEWS: Document it.
	* doc/org/hoa.org: Add a summary table about how properties are handled.
	* src/twa/twa.hh (prop_deterministic): Setting this should also
	set the unambiguous property.
	* src/twaalgos/isunamb.cc: Simplify the property check.

2015-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update description of support for HOA properties

	* doc/org/hoa.org: Here.  Also mention --trust-hoa.

2015-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add binding for is_unambiguous

	Fixes #117.

	* wrap/python/spot.py, wrap/python/spot_impl.i: Add binding.
	* wrap/python/tests/remfin.py: Add a small test case.
	* NEWS: Mention it.

2015-11-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: rename the is_* getters as prop_*

	This fixes #116.

	* src/twa/twa.hh: Rename those methods.
	* NEWS: Document the renamings.
	* doc/org/hoa.org, doc/org/tut21.org, src/parseaut/parseaut.yy,
	src/tests/ikwiad.cc, src/twa/twagraph.hh,
	src/twaalgos/are_isomorphic.cc, src/twaalgos/complete.cc,
	src/twaalgos/degen.cc, src/twaalgos/dot.cc, src/twaalgos/dtbasat.cc,
	src/twaalgos/dtgbasat.cc, src/twaalgos/hoa.cc, src/twaalgos/isdet.cc,
	src/twaalgos/isunamb.cc, src/twaalgos/lbtt.cc,
	src/twaalgos/minimize.cc, src/twaalgos/postproc.cc,
	src/twaalgos/product.cc, src/twaalgos/randomgraph.cc,
	src/twaalgos/remfin.cc, src/twaalgos/sbacc.cc,
	src/twaalgos/simulation.cc, src/twaalgos/stutter.cc,
	src/twaalgos/totgba.cc: Adjust.

2015-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: no default argument for property setters

	This is a preliminary for the renaming suggested in #116.

	* src/twa/twa.hh (prop_state_based_acc, prop_inherently_weak,
	prop_deterministic, prop_unambiguous, prop_stutter_invariant,
	prop_stutter_sensitive): Do not default the argument to true.
	* src/parseaut/parseaut.yy, src/twaalgos/degen.cc,
	src/twaalgos/dtbasat.cc, src/twaalgos/dtgbasat.cc,
	src/twaalgos/minimize.cc, src/twaalgos/randomgraph.cc,
	src/twaalgos/remfin.cc, src/twaalgos/sbacc.cc,
	src/twaalgos/simulation.cc, src/twaalgos/totgba.cc,
	wrap/python/tests/remfin.py: Adjust.

2015-11-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: do not ignore the "unambiguous" property

	Fixes #115.

	* src/parseaut/parseaut.yy: Set the property on the output automaton.
	* src/tests/unambig.test: Add a test case.
	* NEWS: Mention the fix.

2015-11-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.99.5a.

2015-11-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.5

	* NEWS, configure.ac, doc/org/setup.org: Update version.

2015-11-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: simply calls to parse_aut()

	* doc/org/tut20.org, doc/org/tut21.org, doc/org/tut30.org: Simplify
	the calls to parse_aut.

2015-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/control: Build-Depends on libltdl-dev.

2015-10-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix output of twa_run

	* src/twaalgos/emptiness.hh, src/twaalgos/emptiness.cc: Declare the
	operator<< for twa_run, not for twa_run_ptr (the shared_ptr
	automatically forward operator<<).
	* wrap/python/spot_impl.i: Add __str__ to twa_run, not twa_run_ptr.

2015-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_succ_iterator: rename accessors

	* src/twa/twa.hh, src/ta/ta.hh (current_state,
	current_acceptance_conditions, current_condition): Rename as...
	(dst, acc, cond): ... these.
	* iface/ltsmin/ltsmin.cc, 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/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc,
	src/ta/taproduct.hh, src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
	src/taalgos/dot.cc, src/taalgos/emptinessta.cc,
	src/taalgos/minimize.cc, src/taalgos/reachiter.cc,
	src/taalgos/tgba2ta.cc, src/twa/taatgba.cc, src/twa/taatgba.hh,
	src/twa/twagraph.hh, src/twa/twaproduct.cc,
	src/twa/twasafracomplement.cc, src/twaalgos/bfssteps.cc,
	src/twaalgos/bfssteps.hh, src/twaalgos/compsusp.cc,
	src/twaalgos/copy.cc, src/twaalgos/emptiness.cc,
	src/twaalgos/gtec/gtec.cc, src/twaalgos/gv04.cc,
	src/twaalgos/lbtt.cc, src/twaalgos/ltl2tgba_fm.cc,
	src/twaalgos/magic.cc, src/twaalgos/minimize.cc,
	src/twaalgos/ndfs_result.hxx, src/twaalgos/reachiter.cc,
	src/twaalgos/se05.cc, src/twaalgos/stats.cc,
	src/twaalgos/stutter.cc, src/twaalgos/tau03.cc,
	src/twaalgos/tau03opt.cc, wrap/python/tests/interdep.py: Adjust.
	* NEWS: Mention the renamings.

2015-10-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_post.cc: Fix description of --any.

2015-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor handling of -B/-C/-D/... output options

	* src/bin/common_post.cc: Handle the options
	for BA/TGBA/Monitor as well as Complete/SBAcc here,
	and in the same group.  Rename "Translation intent"
	and "Optimization level" to "Simplification goal" and
	"Simplification level" so that it makes sense even
	in autfilt.
	* src/bin/autfilt.cc, src/bin/dstar2tgba.cc,
	src/bin/ltl2tgba.cc: Remove common code.
	* doc/org/autfilt.org, doc/org/dstar2tgba.org,
	doc/org/ltl2tgba.org: Adjust sed invocations.

2015-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parse_aut: simplify the interface

	* src/parseaut/public.hh, src/parseaut/parseaut.yy,
	src/parseaut/fmterror.cc: Add a raise_errors options.  Remove the
	parse_strict() method.  Store parse errors and filename in the output
	parsed_aut to simplify usage.
	* doc/org/tut20.org, doc/org/tut21.org, doc/org/tut30.org,
	src/bin/autfilt.cc, src/bin/common_hoaread.cc, src/bin/dstar2tgba.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/tests/complementation.cc,
	src/tests/ikwiad.cc, src/tests/ltlcross3.test, src/tests/ltldo.test,
	wrap/python/spot.py, wrap/python/tests/parsetgba.py: Adjust usage.
	* NEWS: Mention the changes.

2015-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* lrde-upload.sh: Delete.

2015-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_run: swallow reduce_run, replay_twa_run, twa_run_to_tgba

	These now become twa_run::reduce, twa_run::replay, and
	twa_run::as_twa.

	* src/twaalgos/reducerun.cc, src/twaalgos/reducerun.hh,
	src/twaalgos/replayrun.cc, src/twaalgos/replayrun.hh: Delete.
	* src/twaalgos/Makefile.am: Adjust.
	* src/twaalgos/emptiness.cc, src/twaalgos/emptiness.hh: Move
	the above functions here, as method of twa_run.
	* src/bin/common_aoutput.hh, src/bin/ltlcross.cc,
	src/tests/emptchk.cc, src/tests/ikwiad.cc, src/tests/randtgba.cc,
	wrap/python/ajax/spotcgi.in, iface/ltsmin/modelcheck.cc: Adjust.
	* NEWS: List the renamings.

2015-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa_run: keep a pointer to the automaton

	This simplify all laters invocations, because we do not have to pass
	the automaton the run was generated on.

	This fixes #113 by allowing the __str__ function to be implemented on
	runs.

	* src/twaalgos/emptiness.cc, src/twaalgos/emptiness.hh (twa_run):
	Store the automaton.
	(prin_twa_run): Rewrite as an overloaded <<.
	* src/twaalgos/reducerun.cc, src/twaalgos/reducerun.hh (reduce_run):
	Do not like the automaton as a parameter.
	* src/twaalgos/replayrun.cc, src/twaalgos/replayrun.hh (replay_twa_run):
	Likewise.
	* src/bin/common_aoutput.hh, src/bin/ltlcross.cc,
	src/tests/complementation.cc, src/tests/ikwiad.cc,
	src/tests/randtgba.cc, src/twaalgos/gtec/ce.cc, src/twaalgos/gv04.cc,
	src/twaalgos/magic.cc, src/twaalgos/ndfs_result.hxx,
	src/twaalgos/se05.cc, src/twaalgos/projrun.cc: Adjust.
	* wrap/python/ajax/spotcgi.in: Add a __str__ function to twa_run_ptr.
	* wrap/python/spot_impl.i: Adjust.

2015-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tests/satmin2.test: Adjust for previous patch.

2015-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_run as twa_run

	Part of #113.

	* src/twaalgos/emptiness.cc, src/twaalgos/emptiness.hh (tgba_run):
	Rename as ...
	(twa_run): ... this.
	* NEWS: Mention it.
	* iface/ltsmin/modelcheck.cc, src/tests/complementation.cc,
	src/tests/emptchk.cc, src/tests/ikwiad.cc, src/tests/randtgba.cc,
	src/twa/twa.hh, src/twaalgos/bfssteps.cc, src/twaalgos/bfssteps.hh,
	src/twaalgos/gtec/ce.cc, src/twaalgos/gtec/ce.hh,
	src/twaalgos/gv04.cc, src/twaalgos/magic.cc, src/twaalgos/minimize.cc,
	src/twaalgos/ndfs_result.hxx, src/twaalgos/projrun.cc,
	src/twaalgos/projrun.hh, src/twaalgos/reducerun.cc,
	src/twaalgos/reducerun.hh, src/twaalgos/replayrun.cc,
	src/twaalgos/replayrun.hh, src/twaalgos/se05.cc, src/twaalgos/word.cc,
	src/twaalgos/word.hh, wrap/python/ajax/spotcgi.in,
	wrap/python/spot_impl.i: Adjust.

2015-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: rename structures and attribute for concistency

	* src/taalgos/stats.cc, src/taalgos/stats.hh
	(tgba_statistics::transitions, tgba_sub_statistics::sub_transitions):
	Rename ...
	(twa_statistics::edges, twa_sub_statistics::transitions): ... to
	these.
	* NEWS: Mention it.
	* src/bin/common_aoutput.hh, src/bin/ltlcross.cc,
	src/tests/checkta.cc, src/tests/complementation.cc,
	src/tests/ikwiad.cc, src/tests/ltl2tgba.test,
	src/tests/neverclaimread.test, src/tests/randtgba.cc,
	src/tests/renault.test, src/tests/wdba2.test, src/twaalgos/dtbasat.cc,
	src/twaalgos/dtgbasat.cc, src/twaalgos/stats.cc,
	src/twaalgos/stats.hh, wrap/python/ajax/spotcgi.in: Adjust.

2015-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tests/ltldo2.test: Honor $LTL2BA.

2015-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/randomgraph.hh: Fix comments.

2015-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: change postprocess to take an optional formula

	Doing so also work around some differences between Swig 3.0.2 and 3.0.7
	observed on our build farm.

	* wrap/python/spot.py: Here.
	* wrap/python/spot_impl.i: Recognize None as a null formula
	on input.

2015-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: show more metadata about automata

	* src/twa/bdddict.hh (varnum): New method.
	* doc/org/tut21.org: Show more metadata.

2015-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: Add a trust_hoa option.

	Fixes #114.

	* src/parseaut/public.hh: Add support for a trust_hoa option.
	* src/parseaut/parseaut.yy: If trust_hoa is set, recognize the
	"inherently-weak" and "stutter-invariant" properties.
	* src/bin/common_conv.cc, src/bin/common_conv.hh (read_automaton):
	Move...
	* src/bin/common_hoaread.cc, src/bin/common_hoaread.hh: ... in this
	new file, that also handle the --trust-hoa option.
	* src/bin/Makefile.am: Add them.
	* src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltlcross.cc,
	src/bin/ltldo.cc: Use them.
	* src/tests/parseaut.test, src/tests/ltldo.test: Adjust, and test
	--trust-hoa=no.
	* src/tests/complement.test, src/tests/prodor.test,
	src/tests/sbacc.test: Adjust.
	* wrap/python/spot.py (automata): Add option trust_hoa.
	* NEWS: Update.

2015-10-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: change the interface to allow new options

	* src/parseaut/public.hh, src/parseaut/parseaut.yy: Make it easier to
	pass new options to the parser.
	* src/tests/ikwiad.cc, wrap/python/spot.py: Adjust.

2015-10-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot.py: Check exit status also when timeout is used.

2015-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot.py: Kill the shell and its children on timeout.

2015-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix "input buffer overflow, can't enlarge buffer..."

	This occured when parsing the HOA automaton generated by Rabinizer3 for
	a very long LTL formula with many nested U.  State labels could easily
	be more than 40k characters.

	* src/parseaut/scanaut.ll: Fix that.
	* src/tests/parseaut.test: New test case.
	* NEWS: Mention the fix.

2015-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot.py (automata): Use universal_newlines.

2015-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	propagate the new minimum version of python

	* README, doc/org/install.org, m4/pypath.m4: We now require Python 3.3
	or later.

2015-10-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add a timeout argument to automaton() and automata()

	* wrap/python/spot.py: Implement it.  Also report non-zero
	exit using CalledProcessError.
	* wrap/python/tests/automata-io.ipynb, wrap/python/tests/piperead.ipynb:
	Adjust.
	* NEWS: Mention the change.

2015-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix bindings for scc_filter as a method

	* wrap/python/spot.py: Fix bindings for scc_filter.
	* wrap/python/tests/remfin.py: Test them.

2015-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix multiple examples

	I have to remember that org-mode does not evaluate something unless it
	is eventually exported.

	* doc/org/hoa.org, doc/org/ioltl.org, doc/org/tut21.org,
	doc/org/tut30.org: Adjust exports commands.

2015-10-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	is_unambiguous: fix detection of empty languages

	* src/tests/unambig.test: New test case.  Reported by Ming-Hsien Tsai.
	* src/twaalgos/sccfilter.cc: Always create an initial state.
	* src/twaalgos/isunamb.cc: Speed up on empty languages.
	* NEWS, THANKS: Update.

2015-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add code example using the postprocessor.

	* doc/org/tut30.org: New file.
	* doc/Makefile.am, doc/org/tut.org: Add it.

2015-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: introduce a spot.postprocess() function

	This simplifies the use of the spot.postprocessor object.

	* wrap/python/spot.py: Add it.
	* wrap/python/tests/automata.ipynb: Use it.
	* NEWS: Mention it.

2015-10-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix unabbreviate

	This is a bug:

	    % ltlfilt -f 'a W b' --unabbreviate=WR
	    a U (b | (a W b))

	* src/tl/unabbrev.cc: Here.
	* src/tests/unabbrevwm.test: Harden test case.
	* wrap/python/tests/randltl.ipynb: Adjust expected output.
	* NEWS: Mention the fix.

2015-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add get_name & set_name for automata

	* wrap/python/spot_impl.i (get_name, set_name): New methods for twa.
	* wrap/python/tests/remfin.py: Test them.
	* wrap/python/ajax/spotcgi.in: Use set_name().
	* NEWS: Mention it.

2015-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: rename ltl_simplifier to tl_simplifier

	* doc/org/tut01.org, doc/tl/tl.tex, src/bin/common_r.hh,
	src/bin/ltlfilt.cc, src/tests/equalsf.cc, src/tests/ikwiad.cc,
	src/tests/randtgba.cc, src/tests/reduc.cc, src/tests/syntimpl.cc,
	src/tl/nenoform.cc, src/tl/randomltl.cc, src/tl/randomltl.hh,
	src/tl/simplify.cc, src/tl/simplify.hh, src/twaalgos/ltl2tgba_fm.cc,
	src/twaalgos/ltl2tgba_fm.hh, src/twaalgos/stutter.cc,
	src/twaalgos/translate.cc, src/twaalgos/translate.hh,
	wrap/python/ajax/spotcgi.in, wrap/python/spot.py,
	wrap/python/tests/interdep.py: Rename ltl_simplifier to tl_simplifier.
	* NEWS: Mention it.

2015-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tl/simplify.hh: Fix comment.

2015-10-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: update the formulaiterator bindings

	* wrap/python/spot.py: Add the unabbreviate() method, and
	remove unabbrivate_ltl() and get_literal().
	* wrap/python/tests/randltl.ipynb: Demonstrate unabbreviate().

2015-10-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: fix bug in remove_fin_det_weak

	* wrap/python/tests/remfin.py: New file.
	* wrap/python/tests/Makefile.am: Add it.
	* src/twaalgos/remfin.cc (remove_fin_det_weak): Purge dead states.

2015-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: catch more MathJax uses

	* debian/rules: Fix notebooks to use the local mathjax.

2015-10-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: compile for all supported Python3 versions

	* debian/rules: Build for all supported python3 versions.
	* NEWS: Mention it.

2015-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: better diagnostic of unsupported versions

	* src/parseaut/parseaut.yy: Add and the a check_version() function.
	* src/tests/parseaut.test: Test it.
	* NEWS: Mention it.

2015-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlgrind: fix handling of FILENAME/COL

	This additionally fixes #107.

	* src/bin/ltlgrind.cc: Fix handling for FILEANAME/COL.  Document FORMAT
	in --help.  Assume -F for arguments given without options.
	* src/tests/ltlgrind.test: Add two tests.
	* NEWS: Mention this.

2015-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: easier simplification defaults

	This is motivated by an email from Fanda.

	* src/bin/common_post.cc, src/bin/common_post.hh: Add variables to
	detect when level or pref are sets.
	* src/bin/autfilt.cc: Adjust default for pref/sets.
	* src/tests/readsave.test: Add test cases.
	* NEWS: Mention it.

2015-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: implement --complement

	* src/bin/autfilt.cc: Add option --complete.
	* src/twaalgos/complete.cc: Better handling of 0-edge automata.
	* src/tests/complement.test: New file.
	* src/tests/Makefile.am: Add it.

2015-10-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix crash of randaut -Q0

	* src/twaalgos/randomgraph.cc: Replace an assertion by an exception.
	* src/bin/randaut.cc: Diagnose -Q0.
	* src/tests/randaut.test: Test it.
	* NEWS: Mention the bug.

2015-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter_states: also remove useless acceptance marks

	* src/twaalgos/sccfilter.hh,
	src/twaalgos/sccfilter.cc (scc_filter_states): Remove useless acceptance
	marks while preserving state-based acceptance.  Add a new argument
	to specify if all useless mark have to be removed, like for scc_filter.
	* src/twaalgos/simulation.cc: Use the new parameter.
	* src/twaalgos/postproc.cc: Likewise.  Also call do_scc_filter even
	after WDBA simplification to cleanup trivial SCCs.  Preserve state-based
	acceptance for weak automata.
	* src/tests/readsave.test: Add one test.
	* src/tests/dstar.test, src/tests/prodor.test, src/tests/remfin.test,
	src/tests/sim3.test, wrap/python/tests/automata.ipynb,
	wrap/python/tests/piperead.ipynb: Adjust expected output.
	* NEWS: Mention the change.

2015-10-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Update list of dependencies.

2015-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	restructure the complementation code

	The previous code was sometime doing the work of remove_fin() in
	addition to complementing the acceptance conditions.  This separate
	the two operations clearly.  Also the specialized code for
	complementing weak automata is now a specialized code for remove_fin()
	on weak automata.

	* src/twaalgos/dtgbacomp.hh, src/twaalgos/dtgbacomp.cc: Rename as ...
	* src/twaalgos/complement.hh, src/twaalgos/complement.cc: ... these.
	* src/twaalgos/Makefile.am: Adjust.
	* src/twaalgos/complement.hh (dtgba_complement): Rename as ...
	(dtwa_complement): ... this, and restrict the purpose to completion
	and accetance complementation.  Further acceptance simplification
	can be done with remove_fin() and to_generalized_buchi().
	* src/twaalgos/remfin.cc (remove_fin): Specialize handling of weak
	automata using the code that was originally in dtgba_complement().
	Also mark the output as state-based when the input has to Inf.
	* src/twaalgos/postproc.cc, src/twaalgos/postproc.hh: Make sure
	scc_filter is always called after to_generalized_buchi().
	* bench/stutter/stutter_invariance_randomgraph.cc,
	src/bin/ltlcross.cc, src/tests/ikwiad.cc, src/twaalgos/minimize.cc,
	src/twaalgos/powerset.cc, src/twaalgos/stutter.cc: Adjust usage.
	* src/tests/dstar.test, src/tests/ltl2dstar4.test,
	src/tests/remfin.test: Adjust expected outputs.
	* wrap/python/spot_impl.i: Export dtwa_complement().

2015-10-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcross.cc: Typo.

2015-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better way to extend existing classes

	* wrap/python/spot.py: Use a decorator to extend classes.
	* wrap/python/tests/formulas.ipynb: Adjust expected help text.

2015-10-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: docstrings cleanup

	* wrap/python/spot.py: Better docstrings.
	* wrap/python/tests/formulas.ipynb: Update.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot.py: Minor cleanups to follow PEP8.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: better syntax highlighting

	* doc/org/init.el.in: Activate CSS for code fragments.
	* doc/org/spot.css: Style relevant elements.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: implement formula.__format__

	Fixes #105.

	* src/bin/common_trans.cc (quote_shell_string): Move ...
	* src/misc/escape.cc, src/misc/escape.hh (quote_shell_string):
	... here.
	* wrap/python/spot_impl.i: Wrap escape.hh.
	* wrap/python/spot.py: Implement formula.__format__.
	* wrap/python/tests/ltlsimple.py: Test it.
	* NEWS, doc/org/tut01.org, wrap/python/tests/formulas.ipynb: Document
	it.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around weird Python 3.5 generator/iterator interaction

	* wrap/python/spot.py: Python 3.5 reports some unexpected SystemError
	messages when the stack of iterator(...(iterator(generator))) we build
	for random LTL generation raises a StopIteration.  The messages are
	attached either to delete_formula or delete_randltlgenerator, claiming
	that these functions exit with an error; but I have checked that they
	do not.  I've been unable to understand the cause of the issue.
	Replacing the generator by an iterator at least fixes the problem in a
	way that is transparent for our API.
	* wrap/python/tests/randltl.ipynb: Adjust expected formulas.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: do not crash when a function returns a null formula

	* wrap/python/spot_impl.i: Map null formulas to None.
	* wrap/python/tests/randgen.py: New file.
	* wrap/python/tests/Makefile.am: Add it.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bdddict: remove dead code

	* src/twa/bdddict.cc,
	src/twa/bdddict.hh (unregister_all_typed_variables, oneacc_to_formula,
	register_acceptance_variables): Remove these unused methods.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: default to an empty formula

	* src/twaalgos/postproc.hh: Allow the formula not to be specified.  The
	code already support that, as it is called with an explicit nullptr in
	autfilt (for example), but not requiring the nullptr is better for the
	Python bindings.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_complete: rename as complete and export in Python

	* src/twaalgos/complete.cc, src/twaalgos/complete.hh
	(tgba_complete, tgba_complete_here): Rename as...
	(complete, complete_here): ... these.  Also fix useless output of
	acceptance marks on transition leading to the sink when the automaton
	does not use state-based acceptance.
	* src/tests/ikwiad.cc, src/twaalgos/dtgbacomp.cc,
	src/twaalgos/dtgbasat.cc, src/twaalgos/postproc.cc,
	src/twaalgos/product.cc: Adjust.
	* wrap/python/spot_impl.i: Export these function.
	* wrap/python/tests/automata.ipynb: Test spot.complete().

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simpfg: remove this unused function

	* src/tl/simpfg.cc, src/tl/simpfg.hh: Delete.
	* src/tl/Makefile.am: Adjust.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* m4/gccwarn.m4: Add -Woverloaded-virtual.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add noexcept to various constructors related to graphs.

	* m4/gccwarn.m4: Enable -Wnoexcept.
	* src/graph/graph.hh, src/twa/acc.hh, src/twa/twagraph.hh: Add noexcept
	to various constructors.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Enable -Wmissing-declarations in development mode.

	* m4/gccwarn.m4: Add -Wmissing-declarations.
	* iface/ltsmin/ltsmin.cc, iface/ltsmin/modelcheck.cc,
	src/bin/common_trans.cc, src/bin/genltl.cc, src/bin/ltlgrind.cc,
	src/tests/acc.cc, src/tests/bitvect.cc, src/tests/checkpsl.cc,
	src/tests/checkta.cc, src/tests/complementation.cc,
	src/tests/consterm.cc, src/tests/emptchk.cc, src/tests/equalsf.cc,
	src/tests/graph.cc, src/tests/ikwiad.cc, src/tests/intvcmp2.cc,
	src/tests/intvcomp.cc, src/tests/kind.cc, src/tests/length.cc,
	src/tests/ltlprod.cc, src/tests/ltlrel.cc, src/tests/ngraph.cc,
	src/tests/randtgba.cc, src/tests/readltl.cc, src/tests/reduc.cc,
	src/tests/syntimpl.cc, src/tests/tostring.cc, src/tests/twagraph.cc,
	src/tl/contain.cc, src/twaalgos/dtgbacomp.cc, src/twaalgos/minimize.cc:
	Add "static" and move in anonymous namespace when appropriate.

2015-10-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* bench/stutter/stutter_invariance_formulas.cc: Remove useless include.

2015-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of SPOT_DELETED

	It was only needed with Swig versions older than what we have now.

	* src/misc/common.hh: Here.
	* src/misc/bitvect.hh, src/misc/common.hh, src/ta/taexplicit.hh,
	src/ta/taproduct.hh, src/tl/simplify.hh, src/twa/bdddict.hh,
	src/twa/taatgba.hh, src/twa/twaproduct.hh: Use = delete directly.

2015-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tl/formula.hh: Handle saturation of refs_.

2015-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spotcgi.in: Fix typo.

2015-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.99.4a.

2015-10-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Spot 1.99.4

	* NEWS, configure.ac, doc/org/setup.org: Bump version.
	* doc/org/index.org: Better wording of a link.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twa/acc.hh: Fix warning with newer clang++.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut03.org: Fix typos.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add some missing bits and cleanup.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: move in parsetl/, and declare in tl/parse.hh

	* src/ltlparse/public.hh: Rename as...
	* src/tl/parse.hh: ... this.
	* src/ltlparse/: Rename as...
	* src/parsetl/: ... this.
	* NEWS: Mention the change.
	* README, configure.ac, doc/org/tut01.org, doc/org/tut02.org,
	doc/org/tut03.org, doc/org/tut10.org, src/Makefile.am,
	src/bin/common_finput.cc, src/bin/common_finput.hh, src/bin/ltl2tgta.cc,
	src/kripkeparse/kripkeparse.yy, src/parseaut/parseaut.yy,
	src/tests/checkpsl.cc, src/tests/checkta.cc,
	src/tests/complementation.cc, src/tests/consterm.cc,
	src/tests/emptchk.cc, src/tests/equalsf.cc, src/tests/ikwiad.cc,
	src/tests/kind.cc, src/tests/length.cc, src/tests/ltlprod.cc,
	src/tests/ltlrel.cc, src/tests/randtgba.cc, src/tests/readltl.cc,
	src/tests/reduc.cc, src/tests/syntimpl.cc, src/tests/tostring.cc,
	src/tl/Makefile.am, src/twaalgos/lbtt.cc, wrap/python/spot_impl.i,
	iface/ltsmin/modelcheck.cc: Adjust.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: use -Wint-to-void-pointer-cast with clang

	* m4/gccwarn.m4: Test it.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tl/dot.cc: Fix assumption about call orders.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/ltsmin/kripke.test: Fix paths to test binaries.

2015-09-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dupexp: rename to copy, and preserve named states on request

	* src/twaalgos/dupexp.cc, src/twaalgos/dupexp.hh: Rename to...
	* src/twaalgos/copy.cc, src/twaalgos/copy.hh: ... these.
	Get rid of dupexp_bfs, rename dupexp_dfs as copy, and add
	an option to preserve named states.
	* src/twaalgos/Makefile.am, src/tests/dupexp.test,
	src/tests/ikwiad.cc, src/tests/sccsimpl.test,
	src/twa/twagraph.hh, src/twaalgos/dot.cc,
	src/twaalgos/stutter.cc, wrap/python/spot_impl.i: Adjust.
	* NEWS: Mention this change.

2015-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doxygen: improve formula documentation

	* doc/Doxyfile.in: Adjust to hide SPOT_API.
	* doc/mainpage.dox: Adjust like to parse_infix_psl().
	* src/tl/formula.hh: Document most methods of formula,
	and fix the definition of the comparisons operator.
	* src/ltlparse/public.hh, src/tl/apcollect.hh, src/tl/declenv.hh,
	src/tl/defaultenv.hh, src/tl/dot.hh, src/tl/environment.hh,
	src/tl/length.hh, src/tl/mark.hh, src/tl/nenoform.hh, src/tl/print.hh,
	src/tl/randomltl.hh, src/tl/relabel.hh, src/tl/simpfg.hh,
	src/tl/simplify.hh, src/tl/unabbrev.hh: Adjust doxygen group.

2015-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bddprint: do not store a global shared_ptr to the bdd_dict

	* src/twa/bddprint.cc: Do not store a global shared_ptr to the bdddict
	used for printing (a simple pointer is enough), otherwise it risks being
	the last shared_ptr to be destroyed, and it might be destroyed after the
	unicity maps of the formulas.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: more examples of the formula interface

	* src/tl/formula.hh, src/tl/formula.cc: Add an operator<< to print
	formulas.
	* doc/org/tut01.org, doc/org/tut02.org: Adjust.
	* doc/org/tut03.org: New file.
	* doc/org/tut.org, doc/Makefile.am: Add it.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	kill the ltl namespace

	* NEWS: Mention it.
	* bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc, doc/mainpage.dox,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut10.org, doc/tl/tl.tex,
	iface/ltsmin/ltsmin.cc, iface/ltsmin/ltsmin.hh,
	iface/ltsmin/modelcheck.cc, src/bin/autfilt.cc,
	src/bin/common_aoutput.cc, src/bin/common_aoutput.hh,
	src/bin/common_finput.cc, src/bin/common_finput.hh,
	src/bin/common_output.cc, src/bin/common_output.hh, src/bin/common_r.hh,
	src/bin/common_trans.cc, src/bin/common_trans.hh, src/bin/dstar2tgba.cc,
	src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/bin/ltlfilt.cc,
	src/bin/ltlgrind.cc, src/bin/randaut.cc, src/bin/randltl.cc,
	src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/kripkeparse/kripkeparse.yy, src/kripkeparse/public.hh,
	src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
	src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
	src/ltlparse/public.hh, src/parseaut/parseaut.yy,
	src/parseaut/public.hh, src/tests/checkpsl.cc, src/tests/checkta.cc,
	src/tests/complementation.cc, src/tests/consterm.cc,
	src/tests/emptchk.cc, src/tests/equalsf.cc, src/tests/ikwiad.cc,
	src/tests/kind.cc, src/tests/length.cc, src/tests/ltlprod.cc,
	src/tests/ltlrel.cc, src/tests/parse.test,
	src/tests/parse_print_test.cc, src/tests/randtgba.cc,
	src/tests/readltl.cc, src/tests/reduc.cc, src/tests/syntimpl.cc,
	src/tests/taatgba.cc, src/tests/tostring.cc, src/tests/tostring.test,
	src/tl/apcollect.cc, src/tl/apcollect.hh, src/tl/contain.cc,
	src/tl/contain.hh, src/tl/declenv.cc, src/tl/declenv.hh,
	src/tl/defaultenv.cc, src/tl/defaultenv.hh, src/tl/dot.cc,
	src/tl/dot.hh, src/tl/environment.hh, src/tl/exclusive.cc,
	src/tl/exclusive.hh, src/tl/formula.cc, src/tl/formula.hh,
	src/tl/length.cc, src/tl/length.hh, src/tl/mark.cc, src/tl/mark.hh,
	src/tl/mutation.cc, src/tl/mutation.hh, src/tl/nenoform.cc,
	src/tl/nenoform.hh, src/tl/print.cc, src/tl/print.hh,
	src/tl/randomltl.cc, src/tl/randomltl.hh, src/tl/relabel.cc,
	src/tl/relabel.hh, src/tl/remove_x.cc, src/tl/remove_x.hh,
	src/tl/simpfg.cc, src/tl/simpfg.hh, src/tl/simplify.cc,
	src/tl/simplify.hh, src/tl/snf.cc, src/tl/snf.hh, src/tl/unabbrev.cc,
	src/tl/unabbrev.hh, src/twa/bdddict.cc, src/twa/bdddict.hh,
	src/twa/bddprint.cc, src/twa/formula2bdd.cc, src/twa/formula2bdd.hh,
	src/twa/taatgba.cc, src/twa/taatgba.hh, src/twa/twa.hh,
	src/twa/twagraph.cc, src/twa/twagraph.hh, src/twaalgos/compsusp.cc,
	src/twaalgos/compsusp.hh, src/twaalgos/ltl2taa.cc,
	src/twaalgos/ltl2taa.hh, src/twaalgos/ltl2tgba_fm.cc,
	src/twaalgos/ltl2tgba_fm.hh, src/twaalgos/minimize.cc,
	src/twaalgos/minimize.hh, src/twaalgos/neverclaim.cc,
	src/twaalgos/postproc.cc, src/twaalgos/postproc.hh,
	src/twaalgos/powerset.cc, src/twaalgos/powerset.hh,
	src/twaalgos/randomgraph.cc, src/twaalgos/randomgraph.hh,
	src/twaalgos/relabel.cc, src/twaalgos/relabel.hh,
	src/twaalgos/remprop.cc, src/twaalgos/remprop.hh, src/twaalgos/stats.cc,
	src/twaalgos/stats.hh, src/twaalgos/stutter.cc, src/twaalgos/stutter.hh,
	src/twaalgos/translate.cc, src/twaalgos/translate.hh,
	wrap/python/spot_impl.i: Remove the ltl namespace.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	merge ltlvisit/ ltlast/ ltlenv/ into a single tl/ directory

	The ltl prefix does not make a lot of sens anymore (since we
	support psl as well).  ltlast/ and ltlenv/ were almost empty.
	And ltlvisit/ did not contain any visitor anymore.

	* src/ltlvisit/, src/ltlast/, src/ltlenv/: Merge into...
	* src/tl/: ...this.
	* NEWS: Mention the change.
	* README, bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc, configure.ac,
	doc/org/tut01.org, doc/org/tut02.org, doc/org/tut10.org, doc/tl/tl.tex,
	iface/ltsmin/ltsmin.hh, iface/ltsmin/modelcheck.cc, src/Makefile.am,
	src/bin/autfilt.cc, src/bin/common_output.cc, src/bin/common_output.hh,
	src/bin/common_r.hh, src/bin/common_trans.cc, src/bin/genltl.cc,
	src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc, src/bin/ltlcross.cc,
	src/bin/ltldo.cc, src/bin/ltlfilt.cc, src/bin/ltlgrind.cc,
	src/bin/randltl.cc, src/kripke/kripkeexplicit.hh,
	src/kripkeparse/public.hh, src/parseaut/public.hh, src/priv/accmap.hh,
	src/ta/taexplicit.hh, src/ta/tgtaexplicit.hh, src/tests/equalsf.cc,
	src/tests/ikwiad.cc, src/tests/length.cc, src/tests/ltlrel.cc,
	src/tests/randtgba.cc, src/tests/readltl.cc, src/tests/reduc.cc,
	src/tests/syntimpl.cc, src/tests/taatgba.cc, src/tests/tostring.cc,
	src/tests/twagraph.cc, src/twa/acc.hh, src/twa/bdddict.cc,
	src/twa/bdddict.hh, src/twa/bddprint.cc, src/twa/taatgba.cc,
	src/twa/taatgba.hh, src/twa/twa.hh, src/twa/twagraph.cc,
	src/twa/twagraph.hh, src/twa/twasafracomplement.cc,
	src/twaalgos/compsusp.cc, src/twaalgos/compsusp.hh,
	src/twaalgos/dtgbasat.cc, src/twaalgos/hoa.cc,
	src/twaalgos/isweakscc.cc, src/twaalgos/lbtt.cc,
	src/twaalgos/ltl2taa.cc, src/twaalgos/ltl2taa.hh,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/ltl2tgba_fm.hh,
	src/twaalgos/minimize.hh, src/twaalgos/neverclaim.cc,
	src/twaalgos/randomgraph.hh, src/twaalgos/relabel.hh,
	src/twaalgos/remprop.hh, src/twaalgos/stats.cc, src/twaalgos/stutter.cc,
	src/twaalgos/translate.hh, wrap/python/spot_impl.i,
	src/ltlparse/ltlparse.yy, src/ltlparse/public.hh: Adjust.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: work around old swig version

	Swig 3.0.2 (currently installed by Debian), install strongly typed
	enumerator in the main namespace instead of in its own namespace.
	This is fixed in latter versions of Swig.

	* wrap/python/spot.py: If spot.op does not exists, populated it with all
	operators from the spot namespace.
	* wrap/python/tests/ltlsimple.py: Use operators from spot.op.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: rename the constants for consistency

	False/True are problematic in Python, and I don't like that the
	enum is op::False but the constructor formula::ff().  So let's
	just use ff and tt everywhere, and also eword instead of EmptyWord.

	* src/ltlast/formula.hh (False, True, EmptyWord, AP, is_false, is_true):
	Rename to...
	(ff, tt, eword, ap, is_ff, is_tt): ... these.
	* iface/ltsmin/ltsmin.cc, src/ltlast/formula.cc,
	src/ltlvisit/apcollect.cc, src/ltlvisit/dot.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/mutation.cc, src/ltlvisit/print.cc,
	src/ltlvisit/relabel.cc, src/ltlvisit/simpfg.cc,
	src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc, src/ltlvisit/unabbrev.cc,
	src/twa/acc.cc, src/twa/acc.hh, src/twa/formula2bdd.cc,
	src/twaalgos/gtec/gtec.cc, src/twaalgos/hoa.cc, src/twaalgos/ltl2taa.cc,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/neverclaim.cc,
	src/twaalgos/product.cc, src/twaalgos/remfin.cc, src/twaalgos/safety.cc,
	src/tests/parseerr.test, src/tests/utf8.test, wrap/python/spot.py:
	Adjust.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: implement the map and transform functions for formulas

	* wrap/python/spot.py: Implement them.
	* wrap/python/tests/ltlsimple.py: New tests.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: replace nth() by operator[]()

	* src/ltlast/formula.hh (formula::nth): Replace by ...
	(formula::operator[]): ... this.
	* src/ltlvisit/mark.cc, src/ltlvisit/mutation.cc, src/ltlvisit/print.cc,
	src/ltlvisit/relabel.cc, src/ltlvisit/remove_x.cc,
	src/ltlvisit/simpfg.cc, src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc,
	src/ltlvisit/unabbrev.cc, src/twa/formula2bdd.cc,
	src/twaalgos/compsusp.cc, src/twaalgos/ltl2taa.cc,
	src/twaalgos/ltl2tgba_fm.cc, wrap/python/spot_impl.i: Adjust.

2015-09-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: implement __getitem__ for formula

	* wrap/python/spot_impl.i: Implement it.
	* wrap/python/tests/ltlsimple.py: Test a for loop.
	* src/ltlast/formula.hh: Remove superfluous assert().

2015-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: hide initializer lists from swig

	* src/ltlast/formula.hh: Here.

2015-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: save some work using a temporary variable.

	This is actually an attempt to workaround what might be a compiler bug.
	(valgrind complains about some uninitialized memory being read on this
	line).

	* src/ltlvisit/simplify.cc: Here.

2015-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	formula: speedup == and !=

	Allow < and > to work with nullptr as well.

	* src/ltlast/formula.hh: Here.

2015-09-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: simplify some constant checks

	* src/twaalgos/ltl2tgba_fm.cc: Use is_false() and is_true()
	instead of comparisons to formula::ff() and formula:tt().

2015-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	nullptr cleanup for -Wzero-as-null-pointer-constant

	Fixes #106.

	* m4/gccwarn.m4: Use -Wzero-as-null-pointer-constant if supported.
	* src/bin/autfilt.cc, src/bin/common_aoutput.cc,
	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_r.hh, src/bin/common_range.hh,
	src/bin/common_setup.cc, src/bin/common_trans.cc, src/bin/dstar2tgba.cc,
	src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/bin/ltlfilt.cc,
	src/bin/ltlgrind.cc, src/bin/randaut.cc, src/bin/randltl.cc,
	src/bin/spot-x.cc, src/kripke/kripkeexplicit.cc, src/ltlast/formula.cc,
	src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
	src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh,
	src/ltlvisit/simplify.cc, src/ltlvisit/snf.hh, src/misc/fixpool.hh,
	src/misc/mspool.hh, src/misc/hash.hh, src/misc/optionmap.cc,
	src/misc/satsolver.cc, src/misc/tmpfile.cc, src/misc/tmpfile.hh,
	src/priv/bddalloc.cc, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/tgtaexplicit.hh,
	src/ta/tgtaproduct.cc, src/taalgos/minimize.cc,
	src/taalgos/reachiter.cc, src/taalgos/tgba2ta.cc,
	src/tests/complementation.cc, src/tests/ikwiad.cc,
	src/tests/randtgba.cc, src/tests/reduc.cc, src/twa/bdddict.cc,
	src/twa/bddprint.cc, src/twa/taatgba.cc, src/twa/twa.cc,
	src/twa/twagraph.hh, src/twa/twaproduct.cc,
	src/twa/twasafracomplement.cc, src/twaalgos/bfssteps.cc,
	src/twaalgos/compsusp.cc, src/twaalgos/dtgbasat.cc,
	src/twaalgos/emptiness.cc, src/twaalgos/gtec/ce.cc,
	src/twaalgos/gv04.cc, src/twaalgos/ltl2taa.cc,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/ltl2tgba_fm.hh,
	src/twaalgos/magic.cc, src/twaalgos/minimize.cc,
	src/twaalgos/ndfs_result.hxx, src/twaalgos/postproc.cc,
	src/twaalgos/postproc.hh, src/twaalgos/reachiter.cc,
	src/twaalgos/reducerun.cc, src/twaalgos/safety.hh,
	src/twaalgos/sccfilter.hh, src/twaalgos/se05.cc,
	src/twaalgos/simulation.cc, src/twaalgos/tau03.cc,
	src/twaalgos/tau03opt.cc, src/twaalgos/translate.cc,
	src/twaalgos/translate.hh, utf8/utf8/core.h,
	bench/stutter/stutter_invariance_formulas.cc, iface/ltsmin/ltsmin.cc,
	iface/ltsmin/modelcheck.cc: Use nullptr to fix the warning.

2015-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: add a product_or variant

	* src/twaalgos/product.cc, src/twaalgos/product.hh: Implement
	the variance.
	* src/bin/autfilt.cc: Expose it.
	* src/tests/prodor.test: New file.
	* src/tests/Makefile.am: Add it.
	* NEWS: Mention it.

2015-09-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	revamp the formula hierarchy (montro-patch)

	Flatten the formula ltl::formula hiearchy into a single ltl::vnode that
	has an enumerator to distinguish the types of node, and a common
	interface to access children, update reference counts, etc.  The
	ltl::formula class is now a thin wrapper around an ltl::vnode pointer to
	keep track of reference counts automatically.  Visitor are not used
	anymore; we now have map() and traversor() methods that are more
	concise.

	This basically fixes #43, but should be followed by some fine tuning
	that should now be localized to the formula.hh and formula.cc files.

	Some statistics about this patch.  I started working on it on Sep 9, had
	a first compiling version two weeks later on Sep 22, and it then took 5
	days to fixes the ~70 distincts bugs that were introduced during the
	conversion.  About 13200 lines were modified, and one third of those
	were removed.

	* src/ltlast/formula.cc, src/ltlast/formula.hh: Complete rewrite,
	including what was in separate nearby files.
	* src/ltlast/allnodes.hh, src/ltlast/atomic_prop.cc,
	src/ltlast/atomic_prop.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, src/ltlvisit/dump.cc,
	src/ltlvisit/dump.hh, src/ltlast/predecl.hh: Delete these files.  Their
	feature have been merged in formula.hh and formula.cc.
	* src/ltlast/visitor.hh, src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
	src/ltlvisit/dump.hh, src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh:
	Delete these files, as we do not use visitors anymore.
	* bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc, doc/org/tut01.org,
	doc/org/tut02.org, doc/org/tut10.org, doc/org/tut22.org,
	iface/ltsmin/ltsmin.cc, iface/ltsmin/ltsmin.hh,
	iface/ltsmin/modelcheck.cc, src/bin/autfilt.cc,
	src/bin/common_aoutput.cc, src/bin/common_aoutput.hh,
	src/bin/common_finput.cc, src/bin/common_finput.hh,
	src/bin/common_output.cc, src/bin/common_output.hh,
	src/bin/common_trans.cc, src/bin/common_trans.hh, src/bin/dstar2tgba.cc,
	src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/bin/ltlfilt.cc,
	src/bin/ltlgrind.cc, src/bin/randaut.cc, src/bin/randltl.cc,
	src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/kripkeparse/kripkeparse.yy, src/ltlast/Makefile.am,
	src/ltlenv/declenv.cc, src/ltlenv/declenv.hh, src/ltlenv/defaultenv.cc,
	src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
	src/ltlparse/ltlparse.yy, src/ltlparse/public.hh,
	src/ltlvisit/Makefile.am, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/ltlvisit/contain.cc,
	src/ltlvisit/contain.hh, src/ltlvisit/dot.cc, src/ltlvisit/dot.hh,
	src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh,
	src/ltlvisit/length.cc, src/ltlvisit/length.hh, src/ltlvisit/mark.cc,
	src/ltlvisit/mark.hh, src/ltlvisit/mutation.cc,
	src/ltlvisit/mutation.hh, src/ltlvisit/nenoform.cc,
	src/ltlvisit/nenoform.hh, src/ltlvisit/print.cc, src/ltlvisit/print.hh,
	src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
	src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh,
	src/ltlvisit/remove_x.cc, src/ltlvisit/remove_x.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/unabbrev.cc, src/ltlvisit/unabbrev.hh,
	src/parseaut/parseaut.yy, src/ta/taexplicit.cc, src/ta/tgtaexplicit.cc,
	src/taalgos/minimize.cc, src/taalgos/tgba2ta.cc, src/tests/bare.test,
	src/tests/checkpsl.cc, src/tests/checkta.cc,
	src/tests/complementation.cc, src/tests/consterm.cc,
	src/tests/emptchk.cc, src/tests/equalsf.cc, src/tests/ikwiad.cc,
	src/tests/isop.test, src/tests/kind.cc, src/tests/length.cc,
	src/tests/ltldo.test, src/tests/ltlfilt.test, src/tests/ltlgrind.test,
	src/tests/ltlprod.cc, src/tests/ltlrel.cc,
	src/tests/parse_print_test.cc, src/tests/parseaut.test,
	src/tests/parseerr.test, src/tests/randtgba.cc, src/tests/readltl.cc,
	src/tests/reduc.cc, src/tests/syntimpl.cc, src/tests/taatgba.cc,
	src/tests/tostring.cc, src/tests/twagraph.cc, src/tests/utf8.test,
	src/twa/acc.cc, src/twa/bdddict.cc, src/twa/bdddict.hh,
	src/twa/bddprint.cc, src/twa/formula2bdd.cc, src/twa/formula2bdd.hh,
	src/twa/taatgba.cc, src/twa/taatgba.hh, src/twa/twa.cc, src/twa/twa.hh
	src/twa/twagraph.cc, src/twa/twagraph.hh, src/twa/twasafracomplement.cc,
	src/twaalgos/compsusp.cc, src/twaalgos/compsusp.hh,
	src/twaalgos/dtgbasat.cc, src/twaalgos/hoa.cc, src/twaalgos/lbtt.cc,
	src/twaalgos/ltl2taa.cc, src/twaalgos/ltl2taa.hh,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/ltl2tgba_fm.hh,
	src/twaalgos/minimize.cc, src/twaalgos/minimize.hh,
	src/twaalgos/neverclaim.cc, src/twaalgos/postproc.cc,
	src/twaalgos/postproc.hh, src/twaalgos/powerset.cc,
	src/twaalgos/powerset.hh, src/twaalgos/randomgraph.cc,
	src/twaalgos/remprop.cc, src/twaalgos/remprop.hh, src/twaalgos/stats.cc,
	src/twaalgos/stats.hh, src/twaalgos/stutter.cc, src/twaalgos/stutter.hh,
	src/twaalgos/translate.cc, src/twaalgos/translate.hh,
	wrap/python/ajax/spotcgi.in, wrap/python/spot.py,
	wrap/python/spot_impl.i, wrap/python/Makefile.am,
	wrap/python/tests/automata-io.ipynb, wrap/python/tests/formulas.ipynb,
	wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
	wrap/python/tests/ltlsimple.py, wrap/python/tests/randltl.ipynb: Adjust
	to use the new interface.
	* src/sanity/style.test: Accept more C++11 patterns.
	* NEWS: Mention the change.

2015-09-24  Etienne Renault  <renault@lrde.epita.fr>

	Remove useless register_propositions method

	* src/twa/bdddict.cc, src/twa/bdddict.hh,
	src/twaalgos/ltl2tgba_fm.cc: here.

2015-09-24  Etienne Renault  <renault@lrde.epita.fr>

	Ease atomic proposition manipulation for twa.

	* doc/org/tut22.org, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/parseaut/parseaut.yy,
	src/tests/ikwiad.cc, src/tests/tgbagraph.test,
	src/tests/twagraph.cc, src/twa/twa.cc,
	src/twa/twa.hh, src/twaalgos/ltl2tgba_fm.cc,
	src/twaalgos/randomgraph.cc, src/twaalgos/relabel.cc,
	src/twaalgos/stutter.cc, src/twaalgos/stutter.hh: here.

2015-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: store names from states in the dstar format

	* src/parseaut/parseaut.yy: Keep track of named states.
	* src/tests/parseaut.test: Test it.

2015-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: better recovery from dstar errors

	* src/parseaut/parseaut.yy: Do not call YYABORT on errors
	in headers.
	* src/tests/parseaut.test: Test this.

2015-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	help git --status by ignoring more files

	* .gitignore, bench/dtgbasat/.gitignore, debian/.gitignore,
	doc/org/.gitignore, src/tests/.gitignore, wrap/python/.gitignore: More
	files to ignore.
	* doc/org/ltlfilt.org: Erase some temporary files.

2015-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: better error recovery for dstar automata

	* src/parseaut/parseaut.yy: Here.
	* src/tests/parseaut.test: More tests.

2015-09-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust documentation for the merge of the dstar parser

	* NEWS: Mention the changes.
	* doc/org/autfilt.org, doc/org/dstar2tgba.org,
	doc/org/ltlcross.org, doc/org/tools.org, doc/org/tut20.org,
	src/bin/man/dstar2tgba.x, src/bin/man/ltlcross.x: Adjust
	documentation.
	* src/bin/common_trans.cc: Use %O instead of %D, but keep %D
	hidden for backward compatibility.

2015-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: support multiple dstar automata

	* src/parseaut/parseaut.yy, src/parseaut/scanaut.ll: All multiple
	dstar automata to be chained.
	* src/bin/dstar2tgba.cc: Loop over multiple automata in a file.
	* src/tests/dstar.test: Test that.

2015-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: swallow the dstarparser

	Note that the parser is still not able to reader multiple dstar
	automata.

	* src/dstarparse/: Delete.
	* configure.ac, src/Makefile.am, README: Adjust.
	* src/parseaut/parseaut.yy, src/parseaut/scanaut.ll: Merge in the
	dstarparser rules.
	* src/bin/common_trans.cc, src/bin/common_trans.hh,
	src/bin/dstar2tgba.cc, src/bin/ltlcross.cc, src/bin/ltldo.cc,
	src/tests/ikwiad.cc: Adjust usage.
	* src/tests/parseaut.test: Adjust expected output.

2015-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstarparse: preparation before merge with parse_aut

	* src/dstarparse/dstarparse.yy: Rename most of the
	rules, and adjust the result_ fields to better
	match those in src/parseaut/parseaut.yy.

2015-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: fix typo in error message

	* src/parseaut/parseaut.yy: Here.
	* src/tests/parseaut.test: Adjust.

2015-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	parseaut: keep track of the format of each parsed automaton

	* src/parseaut/public.hh (parsed_aut): Add a type field.
	* src/parseaut/parseaut.yy: Fill it.
	* src/dstarparse/dstarparse.yy: Use this field instead of
	the private enumeration.

2015-09-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sanity: soften the class.*{ check

	* src/sanity/style.test: Allow { on the same line as "enum class".

2015-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: fix two typo in the bibliography

	* doc/tl/tl.bib (babiak.12.tacas): Typos in authors.
	Reported by Jan Strejček.

2015-09-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgbasat: add a colored option

	This was suggested by one of the reviewers of our LPAR'15 paper.

	* src/twaalgos/dtgbasat.cc, src/twaalgos/dtgbasat.hh: Implement
	the colored option.
	* src/tests/satmin2.test: Test it.
	* doc/org/satmin.org, NEWS: Document it.

2015-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tools/man2html.pl: Fix copyright.

2015-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: add licenses for lib/*

	* debian/copyright: Here.
	* THANKS: Add Michael, who reported the problem.

2015-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac, NEWS: Bump version to 1.99.3a.

2015-08-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.3

	* NEWS, configure.ac, doc/org/setup.org: Update version.

2015-08-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/index.org: Avoid a "download it here" link.

2015-08-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/install.org: Suggest using the stable packages with Ubuntu.

2015-08-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: link to tl.pdf

	* doc/org/index.org, doc/org/ioltl.org: Add links.

2015-08-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Fix some typos.

2015-08-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix bitvect.test.

	* src/tests/bitvect.cc: Fix it, it was failing an assert() on 32bit
	architectures because the subset test was done in the wrong order.
	Reported by Christopher Ziegler.
	* NEWS: Mention it.

2015-08-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: recover from out-of-memory during state-space product

	Fixes #96, reported by Vitus Lam & Christopher Ziegler.

	* src/bin/ltlcross.cc: Catch std::bad_alloc, skip those
	products and the related tests.  Display a count of
	those skipped tests at the end.
	* NEWS: Mention it.
	* src/tests/ltlcross3.test: Adjust expected error
	message.

2015-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix spurious uniq.test failure.

	Reported by Christopher Ziegler.

	* src/tests/uniq.test: For LC_ALL=C before sort.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltldo.org: Another typo.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltldo.org: Improve English.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/unabbrev.cc: Missing break.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: mention the translate() typo.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	unabbreviate: enable removal of R

	This implies learning alternative rules for G, and W as well, since
	those would use R.

	Fixes #103.  Suggested by Joachim Klein.

	* src/ltlvisit/unabbrev.cc, src/ltlvisit/unabbrev.hh: Implement the
	new rules.
	* doc/tl/tl.tex: Document the rules.
	* src/tests/unabbrevwm.test: Test them.
	* src/bin/ltlfilt.cc, NEWS: Mention that --unabbreviate accepts R.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot.py: Typo.

2015-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tests/ltl2dstar.test: Fix for recent change to ltlcross.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: summarize recent changes.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstar2tgba: rewrite using common_aoutput

	Fixes #8.

	* src/bin/dstar2tgba.cc: Here.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	homogenize dstar_parse() and parse_aut() outputs

	* src/dstarparse/dstarparse.yy, src/dstarparse/dstarscan.ll
	src/dstarparse/parsedecl.hh, src/dstarparse/public.hh:
	Adjust to return the same return types as parse_aut.
	* src/dstarparse/fmterror.cc: Delete, we can use
	the one of parse_aut.
	* src/dstarparse/Makefile.am: Adjust.
	* src/tests/ikwiad.cc, src/bin/dstar2tgba.cc,
	src/bin/ltldo.cc: Adjust usage.
	* src/bin/ltlcross.cc: The the result of dstar_parse() as-is, now that
	it is a TωA like those produced by parse_aut().  As a consequence,
	get rid of all the code storing statistics about the input
	automaton.
	* src/tests/ltlcross3.test, src/tests/ltl2dstar.test: Adjust expected
	CSV output.
	* doc/org/ltlcross.org, src/bin/man/ltlcross.x: Adjust to not
	mention that %D performs a tranformation to Büchi.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove algorithms that where only used by dstar's dra2ba conversion

	Since we just removed that conversion, those can go as well.  Yay!

	* src/tests/kv.test, src/twa/twamask.cc,
	src/twa/twamask.hh, src/twa/twaproxy.cc,
	src/twa/twaproxy.hh, src/twaalgos/scc.cc,
	src/twaalgos/scc.hh: Delete.
	* src/twaalgos/Makefile.am, src/twa/Makefile.am,
	src/tests/Makefile.am, src/tests/ikwiad.cc: adjust.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstarparse: get rid of the deticated data structures and conversions

	* src/dstarparse/dstarparse.yy: Use the twa_graph_ptr to store the
	acceptance condition.
	* src/dstarparse/dra2ba.cc, src/dstarparse/dstar2tgba.cc,
	src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc: Delete
	all these conversion routines.
	* src/dstarparse/public.hh, src/dstarparse/Makefile.am: Adjust.
	* src/bin/dstar2tgba.cc: Adjust to call to_generalized_buchi()
	instead.
	* src/bin/ltlcross.cc: Adjust to call remove_fin() instead.
	* src/bin/ltldo.cc: Use the parsed automaton as-is.
	* src/tests/degenid.test, src/tests/dstar.test, src/tests/ikwiad.cc:
	Adjust test cases.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: deal with almost-Rabin automata

	I.e., automata that could be Rabin if we add some empty Fin(x) or full
	Inf(y) sets.   This way it does not matter when remove_fin() is called
	after cleanup_acceptance().

	* src/twaalgos/remfin.cc: Implement that.
	* src/tests/remfin.test: More tests.

2015-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: make sure Rabin automata are always converted to Büchi

	Because using multiple acceptance condition is pointless in this case.

	* src/twaalgos/remfin.cc (ra_to_ba): Extract most of the RA->BA code
	into this new function for clarity.
	* src/tests/remfin.test: Adjust.

2015-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: implement the BA-type check

	* src/twaalgos/remfin.cc: Here.
	* src/tests/remfin.test: Add a single test.
	* src/twa/acc.hh (mark_t::lowest): New function.

2015-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.tex: Refine note about {r} vs. r in PSL.

2015-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/mask.hh: Cleanup comments.

2015-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/tl/tl.bib: Properly quote PSL.

2015-08-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: allow \" and \\ in double-quoted atomic propositions

	* src/ltlparse/ltlscan.ll: Adjust parser.
	* src/ltlvisit/print.cc: Adjust printer.
	* src/tests/ltlfilt.test: Add some tests.
	* NEWS: Mention it.

2015-08-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: reorganize section 5

	* doc/tl/tl.tex: Here.

2015-08-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more final keywords

	* src/ltlvisit/mutation.cc, src/ltlvisit/relabel.cc,
	src/ltlvisit/remove_x.cc: Add final keyword to final classes.

2015-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	silence diagnostics from gcc-snapshot

	(Upcoming GCC 6.)

	* src/misc/intvcmp2.cc: Here.
	* NEWS: Mention it.

2015-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add --unabbreviate

	* src/bin/ltlfilt.cc: Add option --unabbreviate.
	* src/tests/ltlfilt.test: Add a test case.
	* NEWS: Mention it.

2015-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	merge tunnabrev/lunnabrev/wmunabbrev into a single function

	* src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
	src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
	src/ltlvisit/wmunabbrev.cc, src/ltlvisit/wmunabbrev.hh: Delete.
	* src/ltlvisit/unabbrev.cc, src/ltlvisit/unabbrev.hh: New files.
	* src/ltlvisit/Makefile.am: Adjust.
	* src/ltlvisit/print.cc, src/tests/equalsf.cc, src/tests/Makefile.am,
	src/twaalgos/ltl2taa.cc, wrap/python/spot_impl.i, src/bin/ltlfilt.cc:
	Adjust callers.
	* src/ltlvisit/contain.cc, src/tests/syntimpl.cc: Remove useless
	include.
	* wrap/python/tests/formulas.ipynb: New test cases.
	* doc/tl/tl.tex: Group all rules in a single section.
	* NEWS: Mention it.

2015-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/spot.css: improve style for printing.

2015-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	do not rewrite <-> and -> for Spin LTL output

	Fixes #39, reported by Joachim Klein.

	* src/ltlvisit/lunabbrev.hh, src/ltlvisit/lunabbrev.cc: Take an option
	to specify which of xor/equiv/implies should be rewritten.
	* src/ltlvisit/print.cc (print_spin): Rewrite only xor.
	* src/tests/ltlfilt.test: Add a test case.
	* NEWS: Mention this.

2015-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove a GCC 4.6 workaround

	* src/twa/twagraph.hh (namer): Use a template alias instead
	of a trait.
	* src/twa/twagraph.cc, src/parseaut/parseaut.yy,
	src/twaalgos/ltl2tgba_fm.cc: Adjust.

2015-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bdddict: remove register_clone_acc

	* src/twa/bdddict.cc, src/twa/bdddict.hh: Here.

2015-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix a spurious assertion

	* src/twaalgos/totgba.cc: Here.
	* NEWS: Mention it.

2015-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccsimpl: Remove Fin sets between SCCs

	We do not remove them in rejecting SCCs (as it might make the SCC
	accepting), but we can remove them between SCCs.

	Fixes #101.

	* src/twaalgos/sccfilter.cc: Here.
	* src/tests/sccsimpl.test: Add test case.
	* NEWS: Mention this.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix latex escaping

	* src/ltlvisit/print.cc: Property output the double
	quotes in latex mode, not only sclatex.
	* src/misc/escape.cc: Fix LaTeX escape to work in math mode.
	* src/tests/latex.test: Add a test.
	* wrap/python/tests/formulas.ipynb: Adjust expected output
	* NEWS: Mention the fix.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Add link to the Python notebooks.

	Fixes #100.

	* doc/org/tut.org: Link to the notebook.
	* src/sanity/ipynb.test: New test, to make sure we do not forget
	to document ipython notebook when we add some.
	* src/sanity/Makefile.am: Add it and run it.
	* NEWS: Mention it.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/ltlcross.x: Document %N, %T, %H.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/spot.css: Add padding at the bottom of man pages.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* tools/man2html.pl: Fix interlinking of man pages.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tools.org: Add links to man pages.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/man/ltl2tgba.x: Remove superfluous directory.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Mention that we now need groff.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: include the man pages in the generated userdoc

	* doc/Makefile.am (org-man): New target.
	* tools/man2html.pl: Adjust to distinguish source and destination
	directories.  Use relative links in genated files.
	* NEWS: Mention the html man pages.

2015-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: improve typesetting and prepare for html output

	* src/bin/man/autfilt.x, src/bin/man/dstar2tgba.x,
	src/bin/man/ltl2tgba.x, src/bin/man/ltlcross.x,
	src/bin/man/ltlgrind.x, src/bin/man/randltl.x, src/bin/man/spot-x.x:
	Improve typesetting and cross-references.
	* tools/help2man: Adjust to better detect the optional arguments.
	Detect options that are not separated from their description by two
	spaces.  Argp output some of those.
	* tools/man2html.pl: New file.
	* Makefile.am: Distribute it.
	* src/bin/ltlfilt.cc: Fix description of --define.
	* src/bin/ltlgrind.cc: Fix duplicate description for --help and
	--version.  Reorder --help output slightly.
	* NEWS: Mention the few fixes.

2015-08-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix detection of ipython

	* configure.ac: Use AC_CHECK_PROGS instead of AC_CHECK_PROG.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: use optipng to compress png files

	* doc/Makefile.am: If optipng is present, run it in dist-hook.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: cleanup css files

	* doc/org/syntax.css: Delete this useless file.
	* doc/org/spot.css: Cleanup.
	* doc/org/init.el.in, doc/org/.dir-locals.el.in: Only load spot.css.
	* doc/Makefile.am: Only distribute spot.css.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: Distribute the html version of the ipython notebooks

	* configure.ac: Check for ipython.
	* wrap/python/tests/Makefile.am (nb-html): New rule, using ipython.
	* debian/control: Depend on ipython.
	* debian/rules: Run nb-html.
	* debian/python3-spot.examples: Install the genrated html files.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spotcgi.in: Output .hoa as text/x-hoa.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Summarize recent changes.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: add a HOA output

	* wrap/python/ajax/spotcgi.in: In addition to dot & svg, provide a HOA
	output.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: Display a message for weak TGBA.

	* wrap/python/ajax/spotcgi.in: If a weak BA is output as a TGBA, add a
	hint that this is pointless.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: force transition-based acceptance output for TGBA

	* wrap/python/ajax/spotcgi.in: Force transition-based acceptance in the
	output when a TGBA is required, even if the WDBA-minimization return a
	BA.

2015-08-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/trans.html: Remove some debugging statements.

2015-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: do not display Inf(0) for state-based BA

	* wrap/python/ajax/spotcgi.in: If the output is a state-based BA, i.e.,
	displayed with double circles, then do not output "Inf(0)" as acceptance
	condition as that is confusing.  Print "Büchi" instead.

2015-07-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	print_hoa: diagnose unknown options

	* src/twaalgos/hoa.cc: Here.
	* src/tests/readsave.test: Test it.
	* NEWS: Mention it.
	* src/twaalgos/dot.cc, src/twaalgos/neverclaim.cc: Fix the
	error message.

2015-07-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twa/twasafracomplement.cc: Remove two unused methods.

2015-07-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: fix detection of generalized-Rabin

	Fixes #99.

	* src/tests/parseaut.test: New test case.
	* src/twa/acc.cc (is_generalized_rabin): Fix detection
	of Fin(0)|Fin(1)|Fin(2)&Inf(3).
	* NEWS: Mention it.

2015-07-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.99.2a.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.2

	* NEWS, configure.ac, doc/org/setup.org: Bump version number.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Really fix example generation

	* doc/org/autfilt.org, doc/org/dstar2tgba.org, doc/org/hoa.org,
	doc/org/ltlcross.org: Fix several typos.  In particular ":results" and
	":exports" both end with s.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix example generation

	* doc/org/autfilt.org, doc/org/dstar2tgba.org: Here.  Many examples
	failed because the code generating the input was not run.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: simplify the calls to ltl2dstar

	* doc/org/dstar2tgba.org, doc/org/satmin.org: Here.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix many dead links.

	Also change http:// to https:// for url that would automatically
	redirect to the later.

	* doc/mainpage.dox, doc/org/dstar2tgba.org, doc/org/ltl2tgba.org,
	doc/org/ltlcross.org, doc/org/satmin.org, doc/org/tools.org,
	src/ltlvisit/dot.hh, src/misc/hashfunc.hh, wrap/python/ajax/trans.html:
	Here.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Reorganize.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more typos

	* doc/org/setup.org: Fix link to tarball.
	* doc/org/ltlcross.org: Missing s.

2015-07-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: fix dependency between libspot-dev and libspotltlsmin0

	* debian/control: Here.

2015-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: better shell quoting for ltlcross and ltldo

	* src/bin/common_trans.cc: Use double-quotes when single-quotes
	cannot do.
	* src/tests/ltlcross3.test: Add a test case.
	* NEWS: Mention it.

2015-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: document %% for ltldo and ltlcross

	I had no idea this was working...
	Reported by Joachim Klein.

	* src/bin/common_trans.cc: Document it.
	* src/tests/ltlcross3.test: Test it.

2015-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix broken links to GraphViz

	* doc/org/dstar2tgba.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org:
	Here.

2015-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: typos

	Reported by Joachim Klein.

	* doc/org/ltl2tgba.org: Broken link.
	* doc/org/ltlcross.org: Two typos.

2015-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: make it clear that -B produces state-based acceptance

	* src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc: Here.

2015-07-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: avoid some loops in SCC that do not intersect any Fin

	* src/twaalgos/remfin.cc: Here.

2015-07-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	new conversion for Streett->GBA

	* src/twaalgos/totgba.hh, src/twaalgos/totgba.cc: Implement
	the new function.
	* NEWS: Mention this new function.
	* src/bin/man/spot-x.x: Document SPOT_STREETT_CONV_MIN.
	* src/tests/ltl2dstar4.test: Add tests.
	* src/tests/Makefile.am: Add it.
	* src/bin/autfilt.cc: Do do call remove_fin explicitely
	when --tgba is used, let the postprocessor do it.
	* src/twa/acc.hh: Add shift operators for acceptance marks.
	* src/twaalgos/remfin.cc: Use the new algorithm.
	* src/twaalgos/sccinfo.cc, src/twaalgos/sccinfo.hh: Add
	a new method to supply the acceptance sets visited by an SCC.

2015-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes.

2015-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: remove useless fields from the root stack

	* src/twaalgos/sccinfo.cc: Here.

2015-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: do not accumulate successors during merge

	The command in #96 now takes 1min 16s.

	* src/twaalgos/sccinfo.cc: Only gather successor SCCs when popping an
	SCC.
	* wrap/python/tests/automata.ipynb: Adjust.

2015-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: store live states in a separate stack

	Suggested by Etienne.

	The command in #96 now takes 9min 35s.

	* src/twaalgos/sccinfo.cc, src/twaalgos/sccinfo.hh: Here.

2015-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: stop keeping track of conditions between SCCs

	They are unused.

	* src/twaalgos/sccinfo.cc, src/twaalgos/sccinfo.hh: Do
	not keep track of conditions between two SCCs.
	* src/twaalgos/minimize.cc, src/twaalgos/ltl2tgba_fm.cc:
	Adjust.

2015-07-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	document that libraries have their own Debian packages

	* NEWS, doc/org/install.org: Here.

2015-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: install the library

	Fixes #94.

	* iface/ltsmin/Makefile.am: Install libspotltsmin.
	* debian/libspotltlsmin0.install: New file.
	* debian/control (libspotltlsmin0): New package.
	* debian/libspot-dev.install: Add the linspotltlsmin0.so symlink.

2015-07-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: move libraries into separate packages

	* debian/control (libbddx-dev, libbddx0, libspot0): New packages.
	(libspot-dev): Make it "Architecture: any".
	* debian/libspot-dev.install: Include the .so symlink.
	* debian/spot.install: Remove the libraries.
	* debian/libbddx-dev.install, debian/libbddx0.install,
	debian/libspot0.install: New files.
	* Makefile.am: Distribute them.

2015-07-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/ltlcross.cc: Fix 80 columns.

2015-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: be more verbose about product size

	This helps diagnosing #96.

	* src/bin/ltlcross.cc (process_formula): Print product sizes if
	--verbose.

2015-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: diagnose missing Python.h

	Fixes #95, reported by Vitus Lam.

	* m4/pypath.m4: Check for Python.h and print some advice if missing.
	* NEWS: Mention this.
	* THANKS: Add Vitus.

2015-06-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_filter: do not remove Fin sets from rejecting SCCs

	* src/twaalgos/sccfilter.cc (acc_filter_some, acc_filter_all): Merge
	into...
	(acc_filter_mask): ... this single parametrized class, and only
	remove sets that are only used as Inf.
	* src/twa/acc.hh: Add missing operator~.
	* src/tests/sccsimpl.test: Add test case.
	* src/tests/sccdot.test: Adjust.
	* NEWS: Mention the bug.

2015-06-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: fix detection of some siPSL formulas

	* src/ltlast/bunop.cc: Fix detection of f[:*2] as siPSL if f is siPSL
	* src/tests/kind.test: Test it.
	* NEWS: Mention it.

2015-06-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.99.1a

2015-06-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.99.1

	* NEWS, configure.ac, doc/org/setup.org: Bump version number.

2015-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: improve TOC display and specify viewport

	* doc/org/spot.css: Improve TOC.
	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Specify viewport.

2015-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/trans.html: Handle clicks on circled arrows.

2015-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Doxyfile.in: Upgrade to Doxygen 1.8.9.1.

2015-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/ltl2tgba_fm.hh: Typo in comment.

2015-06-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doxygen: fix membership to misc_tools module

	* src/misc/bareword.hh, src/misc/bitvect.hh, src/misc/escape.hh,
	src/misc/hashfunc.hh, src/misc/intvcmp2.hh, src/misc/intvcomp.hh,
	src/misc/random.hh, src/misc/timer.hh, src/misc/tmpfile.hh: Use ingroup
	rather than addtogroup.

2015-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: relabel formula and automata around ltl3ba

	Fixes #53.

	* wrap/python/ajax/spotcgi.in: Do that.
	* wrap/python/ajax/trans.html: Fixup jquery code to
	avoid looping over tabs.
	* wrap/python/spot_impl.i: Wrap the automaton relabeling code.
	* NEWS: Update.

2015-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: fix UTF-8 output

	* wrap/python/ajax/spotcgi.in: Here.

2015-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: remove is_eltl_formula()

	* doc/tl/tl.tex, src/ltlast/atomic_prop.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:
	Remove is_eltl_formula().
	* src/tests/kind.test: Adjust.

2015-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut20.org: Make sure the cleanup is run.

2015-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/syntax.css: Do not set the body colors.

2015-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/spot.css: Point to new website.

2015-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/syntax.css: Fix syntax.

2015-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: really fix the satmin.org example

	* doc/org/satmin.org: Fix export.  We need both 'results: silent' and
	'exports: both' for the code to be run and shown.

2015-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	doc: make clean should not need latexmk

	Report from Joachim Klein.

	* doc/tl/Makefile.am (mostlyclean-local): Rename as...
	(maintainer-clean-local): ... this.

2015-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix SAT example

	* doc/org/satmin.org: Do not use ":export code" on
	code that must be run on export.

2015-06-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Simplify build

	* doc/Makefile.am (org): Remove the useless temporary directory.

2015-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix recursive compilation

	* doc/Makefile.am (org): Use $(MAKE), not make.
	(org-deploy): Remove this obsolete rule.

2015-06-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: fix Python3 error in check for ltl3ba

	* wrap/python/ajax/spotcgi.in: Here.

2015-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: fetch the UI theme online, do not distribute it

	* wrap/python/ajax/css/ui-lightness/: Delete.
	* wrap/python/ajax/Makefile.am: Adjust.
	* wrap/python/ajax/trans.html: Fetch the UI theme from Google's CDN.
	* wrap/python/ajax/css/trans.css: Add the tweaks locally.

2015-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/index.org: Remove up/home links.

2015-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ajax: Upgrade to jquery-ui 1.10.1

	This is the version currently in Debian.

	* wrap/python/ajax/trans.html: Adjust to
	the newer version.

2015-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Doxyfile.in: Fix input encoding.

2015-06-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: link to Doxygen documentation, and to on-line translator

	* doc/org/index.org: Here.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/mainpage.dox: Update URL.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: simplify calls to ltl2dstar

	* doc/org/satmin.org: Here.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/install.org: Do not use {{{LASTRELEASE}}} in <code>.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update for recent changes.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: test formulas for stutter invariance

	* wrap/python/ajax/spotcgi.in: Here.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: fix cached output for Python3

	* wrap/python/ajax/spotcgi.in: Fix.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spotcgi.in: Simplify using spot.setup().

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename the on-line translator to avoid conflicts with the doc

	* wrap/python/ajax/css/ltl2tgba.css, wrap/python/ajax/spot.in,
	wrap/python/ajax/ltl2tgba.html: Rename ...
	* wrap/python/ajax/css/trans.css, wrap/python/ajax/spotcgi.in,
	wrap/python/ajax/trans.html: ... as these.
	* wrap/python/ajax/Makefile.am, wrap/python/ajax/README: Adjust.

2015-06-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix documentation of degeneralization option

	Reported by Jan Strejček.

	* src/bin/spot-x.cc: Fix documentation.
	* src/twaalgos/degen.cc, src/twaalgos/degen.hh: Fix comments.

2015-06-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: skip product that require too much acceptance sets

	Reported by Fanda when he was testing ltl3dra 0.2.2.

	* src/bin/ltlcross.cc: Here.
	* src/tests/ltl3dra.test: New file.
	* src/tests/Makefile.am: Add it.

2015-06-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: typo in ltl3dra shorthand

	Reported by Fanda.

	* src/bin/common_trans.cc: Here.

2015-06-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add utf-8 markers

	* doc/org/index.org, doc/org/ltl2tgta.org, doc/org/randltl.org,
	doc/org/satmin.org, doc/org/tut.org, doc/org/tut01.org,
	doc/org/tut02.org, doc/org/tut10.org, doc/org/tut20.org,
	doc/org/tut21.org, doc/org/tut22.org: Here.

2015-06-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cgi: update for recent changes

	* wrap/python/ajax/spot.in: Adjust to recent changes.

2015-06-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: new example

	Fixes #14.

	* doc/org/tut22.org: New file.
	* doc/Makefile.am, doc/org/tut.org: Add it.

2015-06-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut21.org: Show the initial state number.

2015-06-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename src/tests/ltl2tgba as src/tests/ikwiad.

	Fixes #23.

	* src/tests/ltl2tgba.cc: Rename as ...
	* src/tests/ikwiad.cc: ... this.
	* src/tests/Makefile.am, src/tests/babiak.test, src/tests/checkta.cc,
	src/tests/complementation.test, src/tests/cycles.test,
	src/tests/dbacomp.test, src/tests/degendet.test,
	src/tests/degenid.test, src/tests/det.test, src/tests/dfs.test,
	src/tests/dstar.test, src/tests/dupexp.test, src/tests/emptchke.test,
	src/tests/kv.test, src/tests/ltl2neverclaim-lbtt.test,
	src/tests/ltl2neverclaim.test, src/tests/ltl2tgba.test,
	src/tests/ltlcounter.test, src/tests/ltlcross.test,
	src/tests/neverclaimread.test, src/tests/obligation.test,
	src/tests/parseaut.test, src/tests/randaut.test,
	src/tests/randpsl.test, src/tests/renault.test,
	src/tests/satmin2.test, src/tests/sccsimpl.test, src/tests/sim2.test,
	src/tests/simdet.test, src/tests/spotlbtt.test, src/tests/wdba.test,
	src/tests/wdba2.test, bench/emptchk/README, bench/emptchk/defs.in,
	bench/ltlclasses/run, bench/ltlcounter/run, bench/wdba/run: Adjust.

2015-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: new example

	* doc/org/tut21.org: New file.
	* doc/Makefile.am, doc/org/tut.org: Add it.

2015-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: rename num_transitions() as num_edges()

	And in fact, rename most "trans*" as "edges*", because that what they
	really are.

	* src/bin/autfilt.cc, src/bin/ltlcross.cc, src/bin/randaut.cc,
	src/dstarparse/dra2ba.cc, src/dstarparse/dstarparse.yy,
	src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc,
	src/graph/graph.hh, src/graph/ngraph.hh, src/ltlvisit/exclusive.cc,
	src/parseaut/parseaut.yy, src/tests/complementation.cc,
	src/tests/graph.cc, src/tests/ltl2tgba.cc, src/tests/ngraph.cc,
	src/tests/twagraph.cc, src/twa/twagraph.cc, src/twa/twagraph.hh,
	src/twa/twamask.hh, src/twaalgos/are_isomorphic.cc,
	src/twaalgos/are_isomorphic.hh, src/twaalgos/canonicalize.cc,
	src/twaalgos/cleanacc.cc, src/twaalgos/complete.cc,
	src/twaalgos/compsusp.cc, src/twaalgos/cycles.cc,
	src/twaalgos/degen.cc, src/twaalgos/dot.cc, src/twaalgos/dtbasat.cc,
	src/twaalgos/dtgbacomp.cc, src/twaalgos/dtgbasat.cc,
	src/twaalgos/dupexp.cc, src/twaalgos/emptiness.cc,
	src/twaalgos/isunamb.cc, src/twaalgos/isweakscc.cc,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/mask.hh,
	src/twaalgos/minimize.cc, src/twaalgos/postproc.cc,
	src/twaalgos/powerset.cc, src/twaalgos/product.cc,
	src/twaalgos/randomgraph.cc, src/twaalgos/randomize.cc,
	src/twaalgos/randomize.hh, src/twaalgos/relabel.cc,
	src/twaalgos/remfin.cc, src/twaalgos/safety.cc, src/twaalgos/sbacc.cc,
	src/twaalgos/sccfilter.cc, src/twaalgos/sepsets.cc,
	src/twaalgos/simulation.cc, src/twaalgos/stutter.cc,
	src/twaalgos/totgba.cc: Rename these.

2015-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut20.org: Cleanup.

2015-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	twa: forward num_sets() to acc_.

	* src/twa/twa.hh (num_sets): New method.  Delegating to acc_.
	* src/twa/twagraph.hh, src/twa/twaproduct.cc, src/twa/twaproxy.cc,
	src/twaalgos/degen.cc, src/twaalgos/dot.cc, src/twaalgos/dtgbacomp.cc,
	src/twaalgos/dtgbasat.cc, src/twaalgos/gv04.cc, src/twaalgos/hoa.cc,
	src/twaalgos/lbtt.cc, src/twaalgos/magic.cc, src/twaalgos/mask.cc,
	src/twaalgos/ndfs_result.hxx, src/twaalgos/postproc.cc,
	src/twaalgos/powerset.cc, src/twaalgos/product.cc,
	src/twaalgos/remfin.cc, src/twaalgos/se05.cc,
	src/twaalgos/simulation.cc, src/twaalgos/stats.cc,
	src/twaalgos/stutter.cc, src/twaalgos/tau03.cc,
	src/twaalgos/tau03opt.cc, src/twaalgos/totgba.cc: Simplify
	acc().num_sets() into num_sets().

2015-06-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: rename to parseaut

	Because this parser is not specific to HOA anymore.

	* src/hoaparse/Makefile.am, src/hoaparse/fmterror.cc,
	src/hoaparse/hoaparse.yy, src/hoaparse/parsedecl.hh,
	src/parseaut/public.hh, src/hoaparse/hoascan.ll,
	src/tests/hoaparse.test: Rename to...
	* src/parseaut/Makefile.am, src/parseaut/fmterror.cc,
	src/parseaut/parseaut.yy, src/parseaut/parsedecl.hh,
	src/hoaparse/public.hh, src/parseaut/scanaut.ll,
	src/tests/parseaut.test: ... these, and also adjust the name internally.
	For instance hoa_aut_ptr is now parsed_aut_ptr; hoa_stream_parser is now
	automaton_stream_parser, and hoa_parse() has become parse_aut().
	* NEWS, README, configure.ac, doc/org/tut20.org, src/Makefile.am,
	src/bin/autfilt.cc, src/bin/common_aoutput.cc,
	src/bin/common_aoutput.hh, src/bin/common_conv.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/tests/Makefile.am,
	src/tests/complementation.cc, src/tests/ltl2tgba.cc,
	src/tests/readsave.test, wrap/python/ajax/spot.in,
	wrap/python/spot.py, wrap/python/spot_impl.i,
	wrap/python/tests/automata-io.ipynb, wrap/python/tests/parsetgba.py:
	Adjust.

2015-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a new code example

	This addresses on item of #14.

	* doc/org/tut20.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/tut.org: Link to it.
	* doc/org/.dir-locals.el.in, doc/org/init.el.in: Fix some PATH
	issues.

2015-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbtt: take options as a string like other print functions

	* src/twaalgos/lbtt.hh (print_lbtt): Take a const char* opt argument.
	* src/twaalgos/lbtt.cc: Use it, select state-based
	vs. transition-based using automaton property, and implement output
	for generalized state-based acceptance.
	* src/bin/common_aoutput.cc, src/bin/common_aoutput.hh,
	src/bin/dstar2tgba.cc: Adjust usage.  We do not need to handle
	--lbtt=t as a special case anymore.
	* src/tests/lbttparse.test, wrap/python/spot.py,
	wrap/python/tests/automata-io.ipynb, wrap/python/tests/piperead.ipynb:
	Adjust.

2015-06-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/hoa.hh (print_hoa): Add default value for opt.

2015-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename hoa_reachable as print_hoa

	As actually claimed (but not done) by
	738f939ff834a5cb57094a26192aac77aa93cec9.

	* src/twaalgos/hoa.hh, src/twaalgos/hoa.cc: Rename it.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc,
	src/bin/ltlcross.cc, src/tests/complementation.cc,
	src/tests/ltl2tgba.cc, src/tests/randtgba.cc, src/twaalgos/hoa.cc,
	wrap/python/spot.py: Adjust.

2015-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/hoaparse/public.hh: Typo.

2015-06-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: catch non-Boolean guard in LBTT format

	Fixes #90.

	* src/hoaparse/hoaparse.yy: Here.
	* src/tests/hoaparse.test: Test it.

2015-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add installation instructions

	* doc/org/install.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/index.org: Link to it.
	* doc/org/setup.org: Add macro for
	various version numbers.
	* doc/org/tools.org: Update version number.
	* NEWS, README, bench/ltl2tgba/README, debian/control,
	debian/copyright: Update URLs to website.

2015-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tut10.org: Typo.

2015-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tests/ltl2dstar.test: Fix after recent change to relabeling_map.

2015-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add an index page

	* doc/org/index.org, doc/org/tut.org: New files.
	* doc/Makefile.am: Add them.
	* doc/org/setup.org: Adjust HOME link.
	* doc/org/tools.org: Adjust UP link.
	* debian/spot-doc.doc-base: The root is now index.html.

2015-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add example of LTL->BA translation

	This addresses one item in #14.

	* doc/org/tut10.org: New file.
	* doc/Makefile.am: Add it.
	* src/twaalgos/translate.hh: Fix inclusion of types from
	postprocessor.
	* wrap/python/spot.py (translate): Fix typo in doc string.

2015-06-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix Python bindings for relabeling_map, and document them

	This fixes #61, and addresses one item of #14.

	* src/ltlvisit/relabel.hh: Use a map rather than a unordered_map,
	because the Swig binding for unordered_map do not seem functional.
	* wrap/python/spot_impl.i: Adjust.
	* wrap/python/tests/relabel.py: New file.
	* wrap/python/tests/Makefile.am: Add it.
	* doc/org/tut02.org: New file.
	* doc/Makefile.am: Add it.

2015-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Update tut01

	* doc/org/tut01.org: Update.
	* doc/org/g++wrap.in: Include BuDDy's header.

2015-06-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	adjust names for automata printers

	The following renamings are made:

	  never_claim_reachable -> print_never_claim
	  hoa_reachable   -> print_hoa
	  lbtt_reachable  -> print_lbtt
	  dotty_reachable -> print_dot
	  ltl::dotty      -> print_dot_psl

	Fixes #89.

	* src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh, src/taalgos/dotty.cc,
	src/taalgos/dotty.hh src/twaalgos/dotty.cc, src/twaalgos/dotty.hh:
	Rename...
	* src/ltlvisit/dot.cc, src/ltlvisit/dot.hh src/taalgos/dot.cc,
	src/taalgos/dot.hh src/twaalgos/dot.cc, src/twaalgos/dot.hh:
	... those.
	* bench/stutter/stutter_invariance_randomgraph.cc,
	iface/ltsmin/modelcheck.cc, src/bin/common_aoutput.cc,
	src/bin/dstar2tgba.cc, src/bin/ltl2tgta.cc, src/dstarparse/dra2ba.cc,
	src/ltlvisit/Makefile.am, src/taalgos/Makefile.am,
	src/tests/checkpsl.cc, src/tests/checkta.cc,
	src/tests/complementation.cc, src/tests/emptchk.cc,
	src/tests/ltl2tgba.cc, src/tests/ltlprod.cc, src/tests/randtgba.cc,
	src/tests/readltl.cc, src/tests/taatgba.cc, src/tests/twagraph.cc,
	src/twa/twa.hh, src/twa/twasafracomplement.cc,
	src/twaalgos/Makefile.am, src/twaalgos/dtbasat.cc,
	src/twaalgos/dtgbasat.cc, src/twaalgos/dupexp.cc,
	src/twaalgos/lbtt.cc, src/twaalgos/lbtt.hh,
	src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/neverclaim.cc,
	src/twaalgos/neverclaim.hh, wrap/python/ajax/spot.in,
	wrap/python/spot.py, wrap/python/spot_impl.i,
	wrap/python/tests/ltl2tgba.py, wrap/python/tests/parsetgba.py: Adjust.

2015-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlvisit: rename tostring.hh as print.hh and rename printer functions

	This actually performs three related changes, but separating them
	would be quite inconvenient.

	1) rename tostring.hh to print.hh a welcome side-effect is that
	I could fix several files that included this file for not reason.

	2) de-overload some of the to_string functions, and rename them
	as follow:

	  to_string -> print_psl, print_sere, str_psl, str_sere
	  to_utf8_string -> print_utf8_psl, print_utf8_sere,
	                    str_utf8_psl, str_utf8_sere
	  to_spin_string -> print_spin_ltl, str_spin_ltl
	  to_wring_string -> print_wring_ltl, str_wing_ltl
	  to_lbt_string -> print_lbt_ltl, str_lbt_ltl
	  to_latex_string -> print_latex_psl, str_latex_psl
	  to_sclatex_string -> print_sclatex_psl, str_sclatex_psl

	Now it is clearer what these functions do, and their restrictions.

	3) all those print_* functions now take the stream to write onto
	as their first argument.  This fixes #88.

	* src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh: Rename into...
	* src/ltlvisit/print.cc, src/ltlvisit/print.hh: ... those, and make
	the changes listed above.
	* doc/org/tut01.org, src/bin/common_output.cc,
	src/bin/common_trans.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/bin/ltlfilt.cc,
	src/bin/randltl.cc, src/ltlparse/ltlparse.yy,
	src/ltlvisit/Makefile.am, src/ltlvisit/mark.cc,
	src/ltlvisit/relabel.cc, src/ltlvisit/simplify.cc,
	src/ltlvisit/snf.cc, src/ta/taexplicit.cc, src/ta/tgtaexplicit.cc,
	src/taalgos/tgba2ta.cc, src/tests/equalsf.cc, src/tests/ltl2tgba.cc,
	src/tests/ltlrel.cc, src/tests/randtgba.cc, src/tests/reduc.cc,
	src/tests/syntimpl.cc, src/tests/tostring.cc, src/twa/bdddict.cc,
	src/twa/bddprint.cc, src/twa/taatgba.cc, src/twa/taatgba.hh,
	src/twa/twagraph.cc, src/twaalgos/compsusp.cc, src/twaalgos/lbtt.cc,
	src/twaalgos/ltl2taa.cc, src/twaalgos/ltl2tgba_fm.cc,
	src/twaalgos/neverclaim.cc, src/twaalgos/remprop.cc,
	src/twaalgos/stats.cc, wrap/python/ajax/spot.in, wrap/python/spot.py,
	wrap/python/spot_impl.i: Adjust.

2015-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter bench: fix so that is compile again

	* bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc: Adjust after the
	tgba->twa changes.

2015-06-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: rename the main functions

	parse         -> parse_infix_psl
	parse_lbt     -> parse_prefix_ltl
	parse_sere    -> parse_infix_sere
	parse_boolean -> parse_infix_boolean

	Fixes #87.

	* src/ltlparse/ltlparse.yy, src/ltlparse/public.hh:
	Do the above changes.
	* doc/mainpage.dox, doc/org/tut01.org, iface/ltsmin/modelcheck.cc,
	src/bin/common_finput.cc, src/hoaparse/hoaparse.yy,
	src/kripkeparse/kripkeparse.yy, src/tests/checkpsl.cc,
	src/tests/checkta.cc, src/tests/complementation.cc,
	src/tests/consterm.cc, src/tests/emptchk.cc, src/tests/equalsf.cc,
	src/tests/kind.cc, src/tests/length.cc, src/tests/ltl2tgba.cc,
	src/tests/ltlprod.cc, src/tests/ltlrel.cc, src/tests/randtgba.cc,
	src/tests/readltl.cc, src/tests/reduc.cc, src/tests/syntimpl.cc,
	src/tests/tostring.cc, wrap/python/ajax/spot.in,
	wrap/python/tests/alarm.py, wrap/python/tests/interdep.py,
	wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py: Adjust.

2015-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlvisit: merge lbt.hh into tostring.hh

	Fixes #86.

	* src/ltlvisit/lbt.hh, src/ltlvisit/lbt.cc: Delete and move contents
	into...
	* src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc: ... these.
	* doc/org/tut01.org, src/bin/common_output.cc,
	src/bin/common_trans.cc, src/bin/ltlcross.cc,
	src/ltlvisit/Makefile.am, src/twaalgos/lbtt.cc,
	wrap/python/spot_impl.i: Adjust.

2015-06-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add a first code example

	The difficulty is not the example, but setting up org-mode to allow
	Python and C++ example that use the local libraries, not those
	installed system-wide.

	* doc/org/.dir-locals.el: Rename as...
	* doc/org/.dir-locals.el.in: ... this, so we can easily define
	PYTHONPATH and other environment variables.
	* doc/org/init.el.in: Enable C++, and make sure but Python
	and C++ use the local libraries.
	* doc/org/g++wrap.in, doc/org/tut01.org: New files.
	* doc/Makefile.am, configure.ac: Adjust.
	* wrap/python/spot.py (to_str): Take a parenth argument.

2015-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: Do not restrict acceptance codes to small vectors.

	* src/twa/acc.hh (acc_word): This is a 32-bit structure, so
	we can use short for both size and op.

2015-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: generalized shorthands for ltldo and ltlcross

	* src/bin/common_trans.cc: Skip leading directories, and
	do not require that the prefix is followed by space of 0.
	* src/tests/ltldo.test: Add a test.
	* doc/org/ltlcross.org: Update.

2015-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: Use --output-format=hoa by default when calling ltl2dstar

	* src/bin/common_trans.cc: Here.
	* doc/org/ltlcross.org: Adjust examples.

2015-06-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document HOA handling for missing initial states

	* doc/org/hoa.org: Here.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: add a --colored option

	Fixes #83.

	* src/bin/randaut.cc: Add option.
	* src/twaalgos/randomgraph.cc, src/twaalgos/randomgraph.hh: Honor it.
	* src/tests/randaut.test: Add tests.
	* doc/org/randaut.org: Document it.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: detect colored automata

	Fixes #84.

	* src/twaalgos/hoa.cc: Detect and output the colored property.
	* src/tests/hoaparse.test, src/tests/satmin2.test: Update.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	random: fix rounding in barand()

	This fixes #85.

	* src/misc/random.hh (barand): Use round() before casting.
	* doc/org/oaut.org: Recompute example.
	* src/tests/randaut.test, wrap/python/tests/randaut.ipynb: Adjust.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: clear temporary files on termination signals

	This is particularly important for src/tests/satmin.test, where ltl2tgba
	might be killed while writing a huge temporary file used for SAT-based
	minimization.  Before this patch, the temporary files would remain in
	src/tests/satmin.dir/, easily overflowing the 100GB limit of the docker
	containers we use on the build farm.

	* src/bin/common_setup.cc: Catch termination signals for all tools,
	even those that do not yet clear temporary files.
	* configure.ac: Check for sigaction.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_trans.cc: Fix wording in error message.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_trans.cc: Use nullptr instead of 0.

2015-06-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: rename -S as -Q for consistency

	This way -S means --state-based-acc like with other tools
	producing automata.   This fixes #82.

	* src/bin/randaut.cc: Rename -S as -Q, rename --state-acc as
	--state-based-acc (with --sbacc as a synonym), and declare -S as the
	short version of --state-based-acc.
	* doc/org/autfilt.org, doc/org/oaut.org, doc/org/randaut.org,
	src/tests/isomorph.test, src/tests/randaut.test,
	src/tests/randtgba.test, src/tests/readsave.test, src/tests/uniq.test,
	wrap/python/tests/randaut.ipynb: Adjust all calls to randaut.

2015-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Typo.

2015-05-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document HOA support

	* doc/org/hoa.org: New file.
	* doc/org/oaut.org, doc/org/tools.org: Link to it.
	* doc/Makefile.am: Distribute it.

2015-05-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: fix errors observed with gcc-snapshot

	gcc version 6.0.0 20150516 (experimental) [trunk revision 223239]
	(Debian 20150516-1)

	* src/hoaparse/hoaparse.yy (state_info): Initialize used and declared,
	otherwise they are uninitialized after a vector resize.

2015-05-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/randaut.org: Update for recent changes.

2015-05-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: better generation of acceptance conditions

	* src/bin/randaut.cc: Replace the --acc-type and --acc-sets
	options by a more general --acceptance option, that take either
	an acceptance formula, or an acceptance name parametred by ranges.
	Also accept a range for the number of atomic propositions.
	* src/twaalgos/randomgraph.cc (random_acceptance): Move...
	* src/twa/acc.cc, src/twa/acc.hh (random): ... here.
	(parse_acc_code): Generalize to accept ranges instead of
	numbers whenever sensible, and accept a 'random' acceptance.
	* src/tests/randaut.test: Adjust tests and add more.
	* wrap/python/tests/randaut.ipynb: Adjust call to randaut.

2015-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Update.

2015-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add a complete column

	* src/bin/ltlcross.cc: Add the column.
	* NEWS: Update.

2015-05-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add --automata option

	* src/bin/ltlcross.cc: Implement it.
	* src/tests/ltlcross3.test: Use it.
	* NEWS: Mention it.

2015-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: Adjust generalition of parity acceptance

	According to https://github.com/adl/hoaf/issues/46

	* src/twa/acc.cc (parity): Adjust generation.
	* src/tests/hoaparse.test, wrap/python/tests/accparse.ipynb:
	Adjust existing test cases.
	* wrap/python/tests/accparse2.py: New test cases.

2015-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Typo, reported by Joachim.

2015-05-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix check of is_parity()

	* wrap/python/tests/accparse2.py: Do not check max and odd if
	is_parity is False, as this "argout" parameters are not initialized by
	SWIG.

2015-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: some documentation and associated fixes

	* doc/org/satmin.org: Document the new DTωA-minimization procedure.
	* doc/org/tools.org: Fix link.
	* src/bin/autfilt.cc: Pass -S to sat_minimize().
	* src/twa/twagraph.hh: (state_acc_sets) New method.
	* src/twaalgos/dotty.cc: Use it to correctly display co-Büchi automata.
	* src/twaalgos/dtbasat.cc: Set the deterministic property on the result.
	* src/twaalgos/dtgbasat.cc: Likewise, and preprocess the input automaton
	in sat_minimize().
	* src/twaalgos/dtgbasat.hh: Fix documentation, and take the state-based
	information as an argument.
	* src/twaalgos/postproc.cc: Do not call simulation-based reduction
	on non-separated acceptances.
	* src/tests/satmin2.test: Use -S rather than 'state-based'.
	* NEWS: Update.

2015-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: typo in parse_acc_code for generalized_co_buchi

	* src/twa/acc.cc: Fix it.
	* wrap/python/tests/accparse.ipynb: Adjust.

2015-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/simulation.cc: Preserve the unambiguous flag.

2015-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Missing name on dot output.

2015-05-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: better Rabin/Streett detection

	* src/twa/acc.cc: Allow duplicate and reordered pairs.  Also recognize
	the single-pair cases.
	* src/twaalgos/hoa.cc: When Rabin or Streett is detected, canonicalize
	the Acceptance: line.
	* src/tests/hoaparse.test, wrap/python/tests/accparse2.py: More tests.
	* src/tests/sbacc.test: Adjust.

2015-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: recognize parity acceptance

	It has two modes: strict or not.  In strict mode (tested in
	hoaparse.test), the acceptance formula has to match exactly the one
	given in the HOA spec.  In non-strict mode (tested in accparse2.py)
	any equivalent formula is accepted.

	* src/twa/acc.cc, src/twa/acc.hh (acc_cond::is_parity): New method.
	* src/twaalgos/hoa.cc: Use it.
	* src/tests/hoaparse.test: Test it.
	* wrap/python/spot_impl.i: Bind it.
	* wrap/python/tests/accparse2.py: New file.
	* wrap/python/tests/Makefile.am: Add it.

2015-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: add support for generating parity conditions

	* src/twa/acc.cc, src/twa/acc.hh: Here.
	* wrap/python/tests/accparse.ipynb: Test it.

2015-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: output acc-name for several acceptance types

	So far the HOA output would emit an acc-name only
	for generalized-Buchi or inferior types (Buchi, all).
	It now knows about none, co-Buchi, generalized-co-Buchi,
	Rabin, Streett, and generalized-Rabin as well.

	* src/twa/acc.cc, src/twa/acc.hh: Add detection code.
	* src/twaalgos/hoa.cc: Use it.
	* src/tests/remfin.test, src/tests/maskacc.test,
	src/tests/complete.test, src/tests/sim3.test,
	src/tests/ltl2dstar.test: Adjust tests.
	* src/tests/hoaparse.test: Adjust and add more tests.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: parse standard acceptance names

	* src/twa/acc.cc, src/twa/acc.hh: Add method to create
	standard acceptance conditions, and adjust the parse_acc_code
	to recognize them
	* wrap/python/spot_impl.i (acc_cond::acc_code): Add a printer.
	* wrap/python/tests/accparse.ipynb: New test file.
	* wrap/python/tests/Makefile.am: Add it.
	* src/tests/satmin2.test: Use the new syntax.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: add a max-states option

	* src/twaalgos/dtbasat.cc, src/twaalgos/dtbasat.hh,
	src/twaalgos/dtgbasat.cc, src/twaalgos/dtgbasat.hh: Add it.
	* src/tests/satmin2.test: Add couple of tests.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: ignore silly histories

	If the target acceptance is Fin(0)&Inf(1), there is no need to
	distinguish between an history of {0,1} and an history of {0}, as a
	cycle with either history will be rejected.  This implements this
	simplification.  If both the canditate and reference automata
	are Rabin automata with n pairs, then we now use at most
	  Q * Q' * Q * Q' * 3^n * 3^n
	variables to encode the partial cycles histories, versus
	  Q * Q' * Q * Q' * 4^n * 4^n
	before.

	* src/twaalgos/dtgbasat.cc: Implement this.
	* src/tests/satmin2.test: More tests.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: export the sat-minimization routines

	* wrap/python/spot_impl.i: Here.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twa/acc.hh (mark_t::clear): New method.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twa/acc.cc: Fix BDD conversion in case of unused sets.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: allow different acceptances as input and output

	* src/twaalgos/dtgbasat.cc (sat_minimize): Use any arbitrary
	acceptance condition passed via the "acc" option.
	* src/twa/acc.hh (mark_t::max_set): New method.
	* src/tests/satmin2.test: Add two test cases with DRA as input
	and DSA as output.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: preserve input order in parse_acc_code()

	* src/twa/acc.cc: Here.
	* src/tests/acc.test: Adjust.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: omit impossible histories

	When the reference acceptance condition is complex enough, some
	accepting SCCs may not use all acceptance sets.  In that case
	we don't have to encode all possible histories for this SCC.

	* src/twaalgos/dtgbasat.cc: Improve the encoding by omitting
	histories involving sets that are not used in a reference SCC.

2015-05-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat-minimize: generalize to any acceptance

	This is still missing tests.

	* src/bin/autfilt.cc: Add a --sat-minimize option.
	* src/misc/optionmap.cc, src/misc/optionmap.hh: Allow passing strings.
	* src/twa/acc.cc, src/twa/acc.hh: Add helper functions needed
	by the SAT-encoder.
	* src/twaalgos/complete.hh: Typos.
	* src/twaalgos/dtbasat.hh: Adjust comment.
	* src/twaalgos/dtgbasat.cc, src/twaalgos/dtgbasat.hh: Generalize
	to take the target acceptance as input.
	* src/twaalgos/postproc.cc, src/tests/ltl2tgba.cc: Adjust calls.
	* src/twaalgos/sbacc.cc, src/twaalgos/sbacc.hh: Don't pass
	the pointer by reference.
	* src/tests/acc.cc, src/tests/acc.test: More tests
	for the acceptance helper function.

2015-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: rewrite translate() to deal with unambiguous and sbacc

	and make it easier to extend and use.

	* src/twaalgos/postproc.hh, src/twaalgos/translate.cc,
	src/twaalgos/translate.hh: Incorporate the Unambiguous option
	with the other preferences.  It's cleaner this way, and the
	previous setup did not work well with Python.
	* src/bin/ltl2tgba.cc: Adjust to this change.
	* wrap/python/spot.py (translate): Rewrite.
	* wrap/python/tests/automata.ipynb: Adjust existing cases, and
	add more as well as some comments.

2015-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	translate: remove arbitrary restriction on -U and -D

	* src/twaalgos/translate.cc, src/bin/ltl2tgba.cc: Do not assume that
	unambiguous is incompatible with deterministic.

2015-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: add a SBAcc option

	Producing state-based acceptance is now part of the postprocessing
	routines.  That means we can more easily simplify automata with
	state-based acceptance (using autfilt -S --small --high, for instance)
	and as as side-effect, ltl2tgba can produce GBA.  However the result of
	ltl2tgba -S is often larger than that of ltl2tgba -B.

	* src/twaalgos/postproc.cc, src/twaalgos/postproc.hh: Implement
	the SBAcc option.
	* src/bin/common_post.cc, src/bin/common_post.hh: Implement -S.
	* src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
	src/bin/ltl2tgta.cc, src/bin/ltldo.cc: Adjust.
	* src/tests/sim3.test: Augment test case.
	* NEWS, doc/org/ltl2tgba.org, doc/org/autfilt.org: Document it -S.

2015-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	wdba: adjust to work on any TωA

	* src/twaalgos/minimize.cc, src/twaalgos/safety.cc,
	src/twaalgos/safety.hh: Adjust.
	* src/tests/wdba2.test: More tests.

2015-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: work on TωA

	* src/twaalgos/simulation.cc, src/twaalgos/simulation.hh: Adjust
	to work on TωA.  This only require separate acceptance sets.
	* src/tests/sim3.test: New test.
	* src/tests/Makefile.am: Add it.

2015-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: preserve generic acceptance

	* src/bin/ltldo.cc: Default to generic acceptance.
	* src/tests/ltl2dstar.test: Add a test.

2015-05-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: new --separate-sets option

	* src/twaalgos/sepsets.cc, src/twaalgos/sepsets.hh: New files.
	* src/twaalgos/Makefile.am: Add them.
	* src/twa/acc.hh (get_acceptance): Add a non-const version.
	* src/bin/autfilt.cc: Add the --separate-sets option.
	* src/tests/sepsets.test: New file.
	* src/tests/Makefile.am: Add it.

2015-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: document the ambiguous_aut column of --csv.

2015-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/isunamb.cc: Simplify.

2015-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc_info: determine accepting/rejecting-SCCs for any acceptance

	* src/twaalgos/sccinfo.cc, src/twaalgos/sccinfo.hh
	(determine_unknown_acceptance): New function to call explicitly
	in case one want to know whether the accepting/rejecting status
	of all SCCs regardless of the acceptance.
	* src/twaalgos/dotty.cc src/twaalgos/sccfilter.cc,
	src/twaalgos/sccfilter.hh: Use it.
	* src/tests/unambig.test, src/tests/sccdot.test: Add more tests.
	* doc/org/oaut.org: Adjust doc for --dot=s, orange is not output
	anymore.

2015-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	allow scc_filter() and scc_filter_states() on any TωA

	Note however that scc_info does not provide a precise accept/reject
	characterization for SCCs when using Fin acceptance.  However whenever
	it tells that an SCC is rejecting, scc_filter_states() may safely remove
	it.

	* src/twaalgos/sccfilter.cc (scc_filter_states): Allow on any TωA.
	(scc_filter): Only use acceptance simplifications on TGBA.
	* src/tests/unambig.test: Add a co-Büchi test.

2015-05-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	document -U

	* doc/org/.dir-locals.el, doc/org/init.el.in: Use 'B' instead of 'b' for
	default Dot output.
	* doc/org/oaut.org: Adjust.
	* NEWS, doc/org/ltl2tgba.org: Document -U.
	* src/bin/common_post.cc, src/bin/ltl2tgba.cc: Fix location of help text
	for -U.

2015-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: produce unambiguous automata for PSL as well

	* src/twaalgos/ltl2tgba_fm.cc: Fix the PSL operators.
	* src/tests/unambig.test: Add more tests.

2015-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: make it easier to preserve state names

	* src/twa/twagraph.cc, src/twa/twagraph.hh (create_formula_namer,
	release_formula_namer): New functions.
	* src/twaalgos/ltl2tgba_fm.cc: Use it.

2015-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add --check=unambiguous

	* src/bin/common_aoutput.cc: Add --check=unambiguous.
	* src/twa/twa.hh: New unambiguous property.
	* src/twaalgos/hoa.cc: Print it.
	* src/twaalgos/ltl2tgba_fm.cc: Set it.
	* src/twaalgos/isunamb.cc, src/twaalgos/isunamb.hh
	(check_unambiguous): New function.
	* src/tests/unambig.test: More tests.

2015-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add an is_unambiguous() function, use it in ltlcross and autfilt

	* src/twaalgos/isunamb.hh, src/twaalgos/isunamb.cc: New files.
	* src/twaalgos/Makefile.am: Add them.
	* src/tests/unambig.test: New file.
	* src/tests/Makefile.am: Add it.
	* src/bin/ltlcross.cc: Record whether each produced automaton is
	ambiguous.
	* src/bin/autfilt.cc: Add a --is-unambiguous option.
	* NEWS: Mention it.

2015-05-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add support for unambiguous automata

	* src/twaalgos/ltl2tgba_fm.hh, src/twaalgos/ltl2tgba_fm.cc: Implement
	generation of unambiguous automata.
	* src/tests/ltl2tgba.cc: Add option -fu to test it.
	* src/bin/common_post.cc: Adjust the group of options so we can easily
	add more from ltl2tgba.cc.
	* src/bin/ltl2tgba.cc: Add support for -U and --unambigous.
	* src/twaalgos/translate.cc, src/twaalgos/translate.hh: Add support
	for Unambiguous.
	* src/tests/ltlcross.test, src/tests/ltlcross2.test: Test both
	bin/ltl2tgba and tgbatest/ltl2tgba.
	* NEWS: Mention the change.

2015-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlgrind: fix two bugs related to PSL formulas

	* src/ltlvisit/mutation.cc: Do not bindly rewrite e[]->f and
	e<>->f as e, since e is not a valid PSL formula.  Use !{e}
	and {e} instead.  Also fix a memory leak in the handling of
	bunops, discovered while testing the previous change.
	* src/tests/ltlgrind.test: Add a test case.

2015-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document -0

	* doc/org/ioltl.org: Add an example with xargs -0.
	* src/bin/common_aoutput.hh (statistics): Do not print nullptr if %F is
	empty.

2015-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_aoutput.cc: Remove duplicate include.

2015-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/stats.hh: Typo in comment.

2015-05-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add -0 option for LTL output

	* src/bin/common_output.cc: Add option -0.
	* src/tests/ltlfilt.test: Test it.
	* NEWS: Document it.

2015-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent change, and fix typos.

2015-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add a stutter-sensitive property

	* src/twa/twa.hh: Support this new property.
	* src/twaalgos/stutter.cc: Set it if needed.
	* src/twaalgos/hoa.cc: Output it.
	* src/tests/stutter-tgba.test: More tests.

2015-05-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add a --check option for automata outputs

	This currently only allows extra check for stutter invariance.

	* src/bin/common_aoutput.cc: Add check option,
	and test stutter invariance.
	* src/twaalgos/stutter.cc, src/twaalgos/stutter.hh
	(check_stutter_invariance): New function.
	* src/tests/stutter-tgba.test: Test it.

2015-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: do not simplify BA via transitions-based simulation

	This addresses the easy part of #79.

	* src/twaalgos/postproc.cc: If the input is already BA and we want a BA
	as output, do not try the transition-based simulation only to
	degeneralize the result.
	* src/tests/optba.test: New file.
	* src/tests/Makefile.am: Add it.

2015-05-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix segfault when input has initial alternation

	* src/hoaparse/hoaparse.yy: Do not check initial alternating state
	number until we support alternation.
	* src/tests/hoaparse.test: Add a test case.

2015-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: heuristic to switch between circles and ellipses

	* src/twaalgos/dotty.cc: Add an option (e) to force elliptic shape, and
	a heuristic to choose between circle and ellipse by default.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Document 'e'.
	* src/taalgos/dotty.cc: Ignore 'e'.
	* wrap/python/spot.py (setup): Do not force circular states.  The
	default should be fine.
	* src/tests/det.test, src/tests/dstar.test, src/tests/monitor.test,
	src/tests/neverclaimread.test, src/tests/readsave.test,
	src/tests/sccdot.test, src/tests/tgbagraph.test: Adjust expected
	results.
	* NEWS: Adjust.

2015-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: --dot=B to use bullets for all automata but Büchi and co-Büchi

	* src/twaalgos/dotty.cc: Add option 'B'.
	* src/taalgos/dotty.cc: Ignore it.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Document it.
	* wrap/python/spot.py (setup): Use it by default, and rewrite
	the function to be a bit more flexible.
	* wrap/python/tests/automata-io.ipynb, wrap/python/tests/automata.ipynb,
	wrap/python/tests/piperead.ipynb, wrap/python/tests/randaut.ipynb,
	wrap/python/tests/testingaut.ipynb: Use setup() everywhere.

2015-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: --dot=1 to ignore names and force numbered states

	Fixes #78.

	* src/twaalgos/dotty.cc: Add option '1'.
	* src/taalgos/dotty.cc: Ignore '1'.
	* src/bin/dstar2tgba.cc, src/bin/common_aoutput.cc: Document it.
	* src/tests/readsave.test: Test it.

2015-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/twaalgos/remfin.cc: Fix comment.

2015-04-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: -uc should count the number of non-isomorphic automata

	* src/bin/autfilt.cc: Fix it.
	* src/tests/isomorph.test: Test it.

2015-04-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: make it possible to read from a string

	* src/hoaparse/public.hh, src/hoaparse/parsedecl.hh,
	src/hoaparse/hoascan.ll, src/hoaparse/hoaparse.yy: Implement this new
	interface.
	* wrap/python/spot.py (automata): Use it when the argument contains
	a newline.
	* wrap/python/tests/automata-io.ipynb: Test it.

2015-04-24  Etienne Renault  <renault@lrde.epita.fr>

	Update documentation.

	* iface/ltsmin/README: here.

2015-04-24  Etienne Renault  <renault@lrde.epita.fr>

	Remove all cvsignore files.

	* .cvsignore, bench/.cvsignore,
	bench/emptchk/.cvsignore, bench/emptchk/models/.cvsignore,
	bench/ltl2tgba/.cvsignore, buddy/.cvsignore,
	buddy/doc/.cvsignore, buddy/examples/.cvsignore,
	buddy/examples/adder/.cvsignore,
	buddy/examples/bddcalc/.cvsignore,
	buddy/examples/bddtest/.cvsignore,
	buddy/examples/calculator/.cvsignore,
	buddy/examples/cmilner/.cvsignore,
	buddy/examples/fdd/.cvsignore,
	buddy/examples/internal/.cvsignore,
	buddy/examples/milner/.cvsignore,
	buddy/examples/money/.cvsignore,
	buddy/examples/queen/.cvsignore,
	buddy/examples/solitare/.cvsignore,
	buddy/src/.cvsignore, buddy/tools/.cvsignore,
	doc/.cvsignore, iface/.cvsignore,
	src/.cvsignore, src/ltlast/.cvsignore,
	src/ltlenv/.cvsignore, src/ltlparse/.cvsignore,
	src/ltlvisit/.cvsignore, src/misc/.cvsignore,
	src/sanity/.cvsignore, src/tests/.cvsignore,
	src/twa/.cvsignore, tools/.cvsignore,
	wrap/.cvsignore, wrap/python/.cvsignore,
	wrap/python/tests/.cvsignore: here.

2015-04-24  Etienne Renault  <renault@lrde.epita.fr>

	Fix unused parameter.

	*  src/tests/parse_print_test.cc: here.

2015-04-24  Etienne Renault  <renault@lrde.epita.fr>

	Merge kripketest, graphtest and ltltest into tests

	* README, configure.ac, iface/ltsmin/Makefile.am,
	src/tests/defs.in, src/tests/.gitignore, src/tests/Makefile.am,
	src/Makefile.am: update references.
	* src/kripketest/.gitignore, src/kripketest/Makefile.am,
	src/kripketest/defs.in, src/graphtest/.gitignore,
	src/graphtest/Makefile.am,
	src/graphtest/defs.in, src/ltltest/.cvsignore,
	src/ltltest/.gitignore, src/ltltest/Makefile.am,
	src/ltltest/defs.in:: remove files.
	* src/kripketest/bad_parsing.test, src/kripketest/kripke.test,
	src/kripketest/origin, src/kripketest/parse_print_test.cc,
	src/ltltest/bare.test, src/ltltest/consterm.cc,
	src/ltltest/consterm.test, src/tests/defs.in,
	src/ltltest/equals.test, src/ltltest/equalsf.cc,
	src/ltltest/eventuniv.test, src/ltltest/exclusive-ltl.test,
	src/graphtest/graph.cc, src/graphtest/graph.test,
	src/ltltest/isop.test, src/ltltest/kind.cc,
	src/ltltest/kind.test, src/ltltest/latex.test,
	src/ltltest/lbt.test, src/ltltest/length.cc,
	src/ltltest/length.test, src/ltltest/lenient.test,
	src/ltltest/ltlcrossgrind.test, src/ltltest/ltlfilt.test,
	src/ltltest/ltlgrind.test, src/ltltest/ltlrel.cc,
	src/ltltest/ltlrel.test, src/ltltest/lunabbrev.test,
	src/ltltest/nenoform.test, src/graphtest/ngraph.cc,
	src/graphtest/ngraph.test, src/ltltest/parse.test,
	src/ltltest/parseerr.test, src/ltltest/rand.test,
	src/ltltest/readltl.cc, src/ltltest/reduc.cc,
	src/ltltest/reduc.test, src/ltltest/reduc0.test,
	src/ltltest/reduccmp.test, src/ltltest/reducpsl.test,
	src/ltltest/remove_x.test, src/ltltest/stutter-ltl.test,
	src/ltltest/syntimpl.cc, src/ltltest/syntimpl.test,
	src/graphtest/tgbagraph.test, src/ltltest/tostring.cc,
	src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
	src/ltltest/tunenoform.test, src/graphtest/twagraph.cc,
	src/ltltest/unabbrevwm.test,src/ltltest/utf8.test,
	src/ltltest/uwrm.test: rename as...
	* src/tests/bad_parsing.test, src/tests/kripke.test,
	src/tests/origin, src/tests/parse_print_test.cc,
	src/tests/bare.test, src/tests/consterm.cc,
	src/tests/consterm.test, src/tests/equals.test,
	src/tests/equalsf.cc, src/tests/eventuniv.test,
	src/tests/exclusive-ltl.test, src/tests/graph.cc,
	src/tests/graph.test, src/tests/isop.test,
	src/tests/kind.cc, src/tests/kind.test,
	src/tests/latex.test, src/tests/lbt.test,
	src/tests/length.cc, src/tests/length.test,
	src/tests/lenient.test, src/tests/ltlcrossgrind.test,
	src/tests/ltlfilt.test, src/tests/ltlgrind.test,
	src/tests/ltlrel.cc, src/tests/ltlrel.test,
	src/tests/lunabbrev.test, src/tests/nenoform.test,
	src/tests/ngraph.cc, src/tests/ngraph.test,
	src/tests/parse.test, src/tests/parseerr.test,
	src/tests/rand.test, src/tests/readltl.cc,
	src/tests/reduc.cc, src/tests/reduc.test,
	src/tests/reduc0.test, src/tests/reduccmp.test,
	src/tests/reducpsl.test, src/tests/remove_x.test,
	src/tests/stutter-ltl.test, src/tests/syntimpl.cc,
	src/tests/syntimpl.test, src/tests/tgbagraph.test,
	src/tests/tostring.cc, src/tests/tostring.test,
	src/tests/tunabbrev.test, src/tests/tunenoform.test,
	src/tests/twagraph.cc, src/tests/unabbrevwm.test,
	src/tests/utf8.test, src/tests/uwrm.test: ...these!

2015-04-24  Etienne Renault  <renault@lrde.epita.fr>

	Rename tgbatest into tests.

	* src/Makefile.am, README, configure.ac: update references.
	* src/tgbatest/: rename as...
	* src/tests/: ...this!

2015-04-24  Etienne Renault  <renault@lrde.epita.fr>

	Ensure that all tests have different names.

	* src/ltltest/Makefile.am, src/tgbatest/Makefile.am: update references.
	* src/ltltest/exclusive.test, src/ltltest/stutter.test,
	src/tgbatest/exclusive.test, src/tgbatest/stutter.test: rename as...
	* src/ltltest/exclusive-ltl.test, src/ltltest/stutter-ltl.test,
	src/tgbatest/exclusive-tgba.test,
	src/tgbatest/stutter-tgba.test: ...these

2015-04-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bddprint: remove some never used functions

	* src/twa/bddprint.cc, src/twa/bddprint.hh (bdd_print_acc,
	bdd_print_dot, bdd_print_table): Remove.

2015-04-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tmpfile: fix out-of-memory check

	another catch by cppcheck

	* src/misc/tmpfile.cc: Here.

2015-04-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove some unused variables

	as reported by cppcheck

	* src/taalgos/emptinessta.cc, src/taalgos/tgba2ta.cc, src/twa/acc.cc,
	src/twaalgos/minimize.cc, src/twaalgos/neverclaim.cc,
	src/twaalgos/remprop.cc, src/twaalgos/sccinfo.cc: Here.

2015-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix some cppcheck errors

	* src/twaalgos/hoa.cc, src/twaalgos/ltl2tgba_fm.cc: Remove some
	useless declarations of iterators, as detected by cppcheck.

2015-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of tgta.cc

	Fixes #76.

	* src/ta/tgta.cc: Delete, and move the empty
	constructor and destructor...
	* src/ta/tgta.hh: ... here.
	* src/ta/Makefile.am: Adjust.

2015-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of the deprecated std::auto_ptr

	Fixes #77.  g++ 5.1 warns about auto_ptr.

	* src/twaalgos/ltl2tgba_fm.cc: replace auto_ptr by unique_ptr.

2015-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: do not install the library

	For some reason, we used to install the library (causing the warning
	from Lintian while building the Debian packages) and not the binary.
	Let's not install any of these: the user interface is not nice enough.

	* iface/ltsmin/Makefile.am: Do not install libspotltsmin.la.

2015-04-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: fix two lintian errors

	* debian/control (libspot-dev): Do not depend on an exact version of
	spot.
	(spot-doc): depend on libjs-mathjax.
	* debian/rules: Patch doc/userdoc/ to use the local version of MathJax.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Update to mention TωA.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Update paragraph about LTO.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename src/tgbaalgos/ as src/twaalgos/

	Automatic mass renaming.

	* src/tgbaalgos/: Rename as...
	* src/twaalgos/: ... this.
	* README, configure.ac, iface/ltsmin/modelcheck.cc, src/Makefile.am,
	src/bin/autfilt.cc, src/bin/common_aoutput.cc,
	src/bin/common_aoutput.hh, src/bin/common_output.hh,
	src/bin/common_post.hh, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
	src/bin/ltl2tgta.cc, src/bin/ltlcross.cc, src/bin/ltldo.cc,
	src/bin/ltlfilt.cc, src/bin/randaut.cc, src/dstarparse/dra2ba.cc,
	src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc,
	src/graphtest/twagraph.cc, src/kripke/kripkeprint.cc,
	src/ltlvisit/contain.cc, src/ltlvisit/contain.hh,
	src/ltlvisit/exclusive.cc, src/taalgos/emptinessta.hh,
	src/tgbatest/checkpsl.cc, src/tgbatest/checkta.cc,
	src/tgbatest/complementation.cc, src/tgbatest/emptchk.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
	src/tgbatest/randtgba.cc, src/tgbatest/taatgba.cc, src/twa/twa.cc,
	src/twa/twagraph.hh, src/twa/twasafracomplement.cc,
	wrap/python/spot_impl.i: Adjust.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba files as twa

	Automatic mass renaming.

	* src/graphtest/tgbagraph.cc, src/tgba/acc.cc, src/tgba/acc.hh,
	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/fwd.hh, src/tgba/Makefile.am,
	src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.cc,
	src/tgba/tgbagraph.cc, src/tgba/tgbagraph.hh, src/tgba/tgba.hh,
	src/tgba/tgbamask.cc, src/tgba/tgbamask.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgba/.cvsignore: Rename as...
	* src/graphtest/twagraph.cc, src/twa/acc.cc, src/twa/acc.hh,
	src/twa/bdddict.cc, src/twa/bdddict.hh, src/twa/bddprint.cc,
	src/twa/bddprint.hh, src/twa/formula2bdd.cc, src/twa/formula2bdd.hh,
	src/twa/fwd.hh, src/twa/Makefile.am, src/twa/taatgba.cc,
	src/twa/taatgba.hh, src/twa/twa.cc, src/twa/twagraph.cc,
	src/twa/twagraph.hh, src/twa/twa.hh, src/twa/twamask.cc,
	src/twa/twamask.hh, src/twa/twaproduct.cc, src/twa/twaproduct.hh,
	src/twa/twaproxy.cc, src/twa/twaproxy.hh,
	src/twa/twasafracomplement.cc, src/twa/twasafracomplement.hh,
	src/twa/.cvsignore: ... these.
	* README, bench/stutter/stutter_invariance_randomgraph.cc,
	configure.ac, iface/ltsmin/modelcheck.cc, src/Makefile.am,
	src/bin/common_aoutput.cc, src/bin/common_conv.hh,
	src/bin/common_trans.hh, src/bin/dstar2tgba.cc, src/bin/ltl2tgta.cc,
	src/bin/randaut.cc, src/dstarparse/dra2ba.cc,
	src/dstarparse/public.hh, src/graphtest/Makefile.am,
	src/graphtest/ngraph.cc, src/hoaparse/hoaparse.yy,
	src/hoaparse/public.hh, src/kripke/fairkripke.hh,
	src/kripke/kripkeexplicit.cc, src/kripke/kripkeprint.cc,
	src/kripkeparse/kripkeparse.yy, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/ltlvisit/exclusive.hh,
	src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh,
	src/priv/accmap.hh, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/ta/tgta.hh, src/ta/tgtaexplicit.cc,
	src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.hh, src/taalgos/dotty.cc,
	src/taalgos/emptinessta.cc, src/taalgos/minimize.cc,
	src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh,
	src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh,
	src/tgbaalgos/bfssteps.cc, src/tgbaalgos/canonicalize.cc,
	src/tgbaalgos/canonicalize.hh, src/tgbaalgos/cleanacc.hh,
	src/tgbaalgos/complete.hh, src/tgbaalgos/compsusp.cc,
	src/tgbaalgos/compsusp.hh, src/tgbaalgos/degen.cc,
	src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.cc,
	src/tgbaalgos/dotty.hh, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtbasat.hh, src/tgbaalgos/dtgbacomp.hh,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dtgbasat.hh,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/gtec/sccstack.hh, src/tgbaalgos/gtec/status.hh,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh, src/tgbaalgos/hoa.cc,
	src/tgbaalgos/hoa.hh, src/tgbaalgos/isdet.hh, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2taa.hh,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh, src/tgbaalgos/mask.hh,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/powerset.hh, src/tgbaalgos/product.cc,
	src/tgbaalgos/product.hh, src/tgbaalgos/projrun.cc,
	src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/randomgraph.hh, src/tgbaalgos/randomize.hh,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.cc,
	src/tgbaalgos/reducerun.hh, src/tgbaalgos/relabel.hh,
	src/tgbaalgos/remfin.hh, src/tgbaalgos/remprop.hh,
	src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/sbacc.hh, src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh,
	src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccinfo.cc,
	src/tgbaalgos/sccinfo.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/stripacc.hh,
	src/tgbaalgos/stutter.cc, src/tgbaalgos/stutter.hh,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
	src/tgbaalgos/totgba.cc, src/tgbaalgos/totgba.hh,
	src/tgbaalgos/weight.hh, src/tgbaalgos/word.cc, src/tgbatest/acc.cc,
	src/tgbatest/complementation.cc, src/tgbatest/emptchk.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/taatgba.cc,
	wrap/python/spot_impl.i: Adjust.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename Doxygen groups

	Automatic mass renaming.

	* src/dstarparse/public.hh, src/hoaparse/public.hh,
	src/kripke/fairkripke.hh, src/kripke/kripkeprint.hh,
	src/tgba/bdddict.hh, src/tgba/tgba.hh, src/tgba/tgbamask.cc,
	src/tgba/tgbamask.hh, src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgbaalgos/are_isomorphic.hh, src/tgbaalgos/bfssteps.hh,
	src/tgbaalgos/canonicalize.hh, src/tgbaalgos/degen.hh,
	src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/hoa.hh,
	src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.hh,
	src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2taa.hh,
	src/tgbaalgos/ltl2tgba_fm.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/replayrun.hh,
	src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.hh,
	src/tgbaalgos/stripacc.hh, src/tgbaalgos/translate.hh:
	Rename all documention group starting with tgba_ as
	group starting with twa_.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Rename tgba_mask and tgba_mask_keep as twa_mask and twa_mask_keep

	Automatic mass renaming.

	* src/dstarparse/dra2ba.cc, src/tgba/tgbamask.cc, src/tgba/tgbamask.hh:
	Rename tgba_mask and tgba_mask_keep as twa_mask and twa_mask_keep.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_proxy into twa_proxy

	Automatic mass renaming.

	* src/tgba/tgbamask.cc, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh:
	Rename tgba_proxy into twa_proxy.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_graph_state and tgba_graph_trans_data as twa_...

	Automatic mass renaming.

	* src/tgba/tgbagraph.hh, src/tgbaalgos/powerset.cc: Rename
	tgba_graph_state and tgba_graph_trans_data as twa_graph_state and
	twa_graph_trans_data.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_ptr into twa_ptr

	Automatic mass renaming.

	* iface/ltsmin/modelcheck.cc, src/dstarparse/dra2ba.cc,
	src/dstarparse/nra2nba.cc, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/ta/taexplicit.cc, src/ta/taexplicit.hh,
	src/ta/tgtaexplicit.cc, src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.hh,
	src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh, src/tgba/fwd.hh,
	src/tgba/tgba.cc, src/tgba/tgba.hh, src/tgba/tgbagraph.hh,
	src/tgba/tgbamask.cc, src/tgba/tgbamask.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh,
	src/tgbaalgos/bfssteps.cc, src/tgbaalgos/bfssteps.hh,
	src/tgbaalgos/complete.cc, src/tgbaalgos/complete.hh,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/dotty.cc,
	src/tgbaalgos/dotty.hh, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh, src/tgbaalgos/hoa.cc,
	src/tgbaalgos/hoa.hh, src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
	src/tgbaalgos/magic.cc, src/tgbaalgos/magic.hh,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/projrun.cc, src/tgbaalgos/projrun.hh,
	src/tgbaalgos/reachiter.cc, src/tgbaalgos/reachiter.hh,
	src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh,
	src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh, src/tgbaalgos/se05.cc,
	src/tgbaalgos/se05.hh, src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh,
	src/tgbaalgos/stutter.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03.hh, src/tgbaalgos/tau03opt.cc,
	src/tgbaalgos/tau03opt.hh, src/tgbatest/checkta.cc,
	src/tgbatest/complementation.cc, src/tgbatest/emptchk.cc,
	src/tgbatest/ltl2tgba.cc, wrap/python/spot_impl.i: Rename tgba_ptr as
	twa_ptr.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_succ_iterator as twa_succ_iterator

	Automatic mass renaming.

	* src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
	src/kripke/fairkripke.hh, src/kripke/kripke.hh,
	src/kripke/kripkeprint.cc, src/ta/ta.hh, src/ta/taproduct.hh,
	src/ta/tgta.hh, src/ta/tgtaexplicit.cc, src/ta/tgtaexplicit.hh,
	src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
	src/taalgos/emptinessta.cc, src/taalgos/reachiter.hh,
	src/taalgos/tgba2ta.cc, src/tgba/taatgba.cc, src/tgba/taatgba.hh,
	src/tgba/tgba.cc, src/tgba/tgba.hh, src/tgba/tgbagraph.hh,
	src/tgba/tgbamask.cc, src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
	src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgbaalgos/bfssteps.hh, src/tgbaalgos/compsusp.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gv04.cc,
	src/tgbaalgos/lbtt.cc, src/tgbaalgos/magic.cc,
	src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/replayrun.cc,
	src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh, src/tgbaalgos/se05.cc,
	src/tgbaalgos/stats.cc, src/tgbaalgos/stutter.cc,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Rename
	tgba_succ_iterator as twa_succ_iterator.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_product as twa_product

	Automatic mass renaming.

	* iface/ltsmin/finite.test, src/ta/tgtaproduct.cc,
	src/ta/tgtaproduct.hh, src/tgba/fwd.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, wrap/python/spot_impl.i: Rename tgba_product
	as twa_product.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename tgba_digraph as twa_graph

	Automatic mass renaming.

	* src/bin/autfilt.cc, src/bin/common_aoutput.cc,
	src/bin/common_aoutput.hh, src/bin/common_conv.cc,
	src/bin/common_conv.hh, src/bin/common_output.hh, src/bin/dstar2tgba.cc,
	src/bin/ltlcross.cc, src/bin/ltldo.cc, src/bin/randaut.cc,
	src/dstarparse/dra2ba.cc, src/dstarparse/dstar2tgba.cc,
	src/dstarparse/dstarparse.yy, src/dstarparse/nra2nba.cc,
	src/dstarparse/nsa2tgba.cc, src/dstarparse/public.hh,
	src/graphtest/tgbagraph.cc, src/hoaparse/hoaparse.yy,
	src/hoaparse/public.hh, src/ltlvisit/contain.hh,
	src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh,
	src/priv/accmap.hh, src/taalgos/minimize.cc, src/tgba/fwd.hh,
	src/tgba/tgba.cc, src/tgba/tgbagraph.cc, src/tgba/tgbagraph.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh,
	src/tgbaalgos/canonicalize.cc, src/tgbaalgos/canonicalize.hh,
	src/tgbaalgos/cleanacc.cc, src/tgbaalgos/cleanacc.hh,
	src/tgbaalgos/complete.cc, src/tgbaalgos/complete.hh,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh,
	src/tgbaalgos/cycles.hh, src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtbasat.hh, src/tgbaalgos/dtgbacomp.cc,
	src/tgbaalgos/dtgbacomp.hh, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/dtgbasat.hh, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/hoa.cc,
	src/tgbaalgos/isdet.cc, src/tgbaalgos/isdet.hh, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/mask.cc, src/tgbaalgos/mask.hh, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/product.cc, src/tgbaalgos/product.hh,
	src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh,
	src/tgbaalgos/randomize.cc, src/tgbaalgos/randomize.hh,
	src/tgbaalgos/relabel.cc, src/tgbaalgos/relabel.hh,
	src/tgbaalgos/remfin.cc, src/tgbaalgos/remfin.hh,
	src/tgbaalgos/remprop.cc, src/tgbaalgos/remprop.hh,
	src/tgbaalgos/safety.cc, src/tgbaalgos/safety.hh,
	src/tgbaalgos/sbacc.cc, src/tgbaalgos/sbacc.hh,
	src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh,
	src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh,
	src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh,
	src/tgbaalgos/stripacc.cc, src/tgbaalgos/stripacc.hh,
	src/tgbaalgos/stutter.cc, src/tgbaalgos/stutter.hh,
	src/tgbaalgos/totgba.cc, src/tgbaalgos/totgba.hh,
	src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh,
	src/tgbatest/checkpsl.cc, src/tgbatest/complementation.cc,
	src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/randtgba.cc, wrap/python/spot_impl.i,
	wrap/python/tests/automata-io.ipynb, wrap/python/tests/automata.ipynb,
	wrap/python/tests/piperead.ipynb, wrap/python/tests/testingaut.ipynb:
	Rename tgba_digraph as twa_graph.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename the spot::tgba class as spot::twa

	Now that we support any type of omega-accetpance, not just "Generalized
	Büchi", it is time to move away from GB and replace it by "ω", written
	just w in ASCII.

	This just change the name of the tgba class.  This part has to be done
	by hand because the word "tgba" occurs in many contexts and a mass
	replacement would be wrong.

	This will be followed by some automatic renaming of all the derived
	types and more.

	* src/bin/autfilt.cc, src/bin/randaut.cc, src/kripke/fairkripke.hh,
	src/ta/tgta.cc, src/ta/tgta.hh, src/tgba/fwd.hh, src/tgba/taatgba.cc,
	src/tgba/taatgba.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
	src/tgba/tgbagraph.hh, src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
	src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/cleanacc.cc,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/dupexp.hh, src/tgbaalgos/hoa.cc,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/stutter.cc, src/tgbatest/checkpsl.cc,
	src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc, wrap/python/spot.py,
	wrap/python/spot_impl.i: Rename the tgba class into twa.

2015-04-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add a --define option

	* src/bin/ltlfilt.cc: Implement it.
	* src/bin/common_output.cc, src/bin/common_output.hh: export the
	stream_formula function.
	* src/ltltest/ltlfilt.test: Test it.
	* src/ltlvisit/relabel.hh: Make it possible to clear the
	relabeling map.
	* NEWS, doc/org/ltlfilt.org: Mention --define.

2015-04-21  Etienne Renault  <renault@lrde.epita.fr>

	Add remove_fin Python binding.

	* wrap/python/spot_impl.i: here.
	* wrap/python/tests/automata.ipynb: tests here.

2015-04-20  Etienne Renault  <renault@lrde.epita.fr>

	Add setup method for spot.

	* wrap/python/spot.py: here.
	* wrap/python/tests/automata.ipynb: tests here.

2015-04-20  Etienne Renault  <renault@lrde.epita.fr>

	Use bdd dictionnary during translation.

	* wrap/python/spot.py: here
	* wrap/python/tests/automata.ipynb: tests here.

2015-04-20  Etienne Renault  <renault@lrde.epita.fr>

	Ignore difference in graphviz versions.

	* wrap/python/tests/ipnbdoctest.py: here.

2015-04-20  Etienne Renault  <renault@lrde.epita.fr>

	Force Clang and GCC to have the same behaviour.

	* src/ltlvisit/remove_x.cc, src/ltltest/remove_x.test: here.

2015-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --remove-unreachable-states, --remove-dead-states

	Add these two options as an answer to comments in
	https://github.com/adl/hoaf/issues/39

	* src/bin/autfilt.cc: Add those options.  Also
	make --keep-state use --remove-unreachable-states
	instead of the less efficient --remove-dead-states
	by default.
	* src/tgbatest/readsave.test: Test them.

2015-04-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: diagnose undefined states that appear as destination

	This was discussed in the comments of
	https://github.com/adl/hoaf/issues/39

	* src/hoaparse/hoaparse.yy: Rename defined_states as info_states
	and keep additional information about states in this vector to
	diagnose undefined states.
	* src/tgbatest/hoaparse.test: Add a test case.

2015-04-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: new variant of Etessami's check

	* src/tgbaalgos/stutter.cc: Add a new variant of Etessami's check,
	closer to his original paper in IPL.
	* src/ltltest/stutter.test: Add more tests.
	* bench/stutter/user.sh: Include this new variant in the benchmark.

2015-04-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add option to number transitions

	* src/tgbaalgos/dotty.cc: Add option 'o'.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Document it.
	* src/taalgos/dotty.cc: Ignore this option.
	* src/tgbatest/readsave.test: Test it.

2015-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: add a parser for string -> acc_code

	* src/tgba/acc.cc, src/tgba/acc.hh (parse_acc_code): New function.
	* src/tgbatest/acc.cc, src/tgbatest/acc.test: Test it.

2015-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: more helper functions

	* src/tgba/acc.hh: Make it possible to call acc_cond::mark_t({1,2,3}),
	and acc_code::fin({1,2,3}).

2015-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix non-determinism in the test suite.

	Some tests calling spot.automaton('non-existing|') where failing either
	with a "process returned 127", or, under heavier load, with "failed to
	read from...".  The latter occur if we poll() the exit status before the
	children has had the tame to finish.

	* wrap/python/spot.py: Make sure we wait for the child process if we
	reach EOF, so that we can report the error status.
	* wrap/python/tests/automata-io.ipynb, wrap/python/tests/piperead.ipynb:
	Update.

2015-04-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: avoid some locking errors with the history

	* wrap/python/tests/ipnbdoctest.py: Store all the history
	in memory.

2015-04-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more final keywords

	For #42.

	* src/graph/graph.hh, src/ltlast/multop.hh, src/ltlenv/defaultenv.hh,
	src/misc/tmpfile.hh, src/tgba/taatgba.hh, src/tgba/tgbagraph.hh,
	src/tgba/tgbaproduct.hh, src/tgbaalgos/gtec/gtec.hh: Declare more
	classes as final.

2015-04-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix error handling while reading automata

	* wrap/python/tests/run.in: Make it easier to run python with gdb.
	* wrap/python/tests/automata-io.ipynb: Add test case.
	* wrap/python/spot.py (spot.automata): Make sure p is defined in all
	cases.
	* src/hoaparse/hoascan.ll: Make sure we do not close a file that
	hasn't been opened.

2015-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: ship the ipython notebooks as examples

	Fixes #73.

	* debian/python3-spot.examples: New file.
	* Makefile.am: Distribute it.

2015-04-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	totgba: fix conversion of false acceptance

	* src/tgbaalgos/totgba.cc: false must become true...
	* src/tgbatest/remfin.test: adjust.

2015-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	new transformation from Fin-less to TGBA

	Fixes #72.

	* src/tgbaalgos/totgba.cc, src/tgbaalgos/totgba.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add
	a Generic output type, and call to_generalized_buchi() if
	this type is not selected.
	* src/tgbatest/remfin.test: Add some tests.
	* src/bin/autfilt.cc: Add a --generic option, and set it
	by default.

2015-04-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: better bindings for testing automata

	* src/taalgos/dotty.cc, src/taalgos/dotty.hh: Add an interface
	similar to that of tgba/dotty.hh, even if we have to ignore
	most options.
	* src/taalgos/tgba2ta.cc, src/taalgos/tgba2ta.hh: Add an option
	to display the intermediate automaton with explicit stuttering
	transitions, for the purpose of making demonstrations.
	* src/tgba/tgbagraph.hh: Tweak the file so that SWIG can
	read it.
	* wrap/python/spot.py: Add wrappers for testing automata.
	* wrap/python/spot_impl.i: Fix support for
	atomic_prop_collect_as_bdd, and include a few more files.
	* wrap/python/tests/testingaut.ipynb: New file.
	* wrap/python/tests/Makefile.am: Add it.

2015-04-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: add a lowinit option

	* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: New argument
	to disable the "jump to the accepting level if the entering
	state as an accepting self-loop" optimization.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Check
	the degen-lowinit option and pass it on to degeneralize().
	* src/bin/spot-x.cc: Document it.
	* src/tgbatest/degenlskip.test: Add some tests.
	* src/tgbatest/ltl2ta.test: Update value.  We output less
	accepting states now.

2015-04-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: do not mark initial trivial SCCs as accepting

	Doing so is not wrong, but it's superfluous, and the extra accepting
	state will cause additional work in emptiness checks based on NDFS.
	Report from Jan Strejček.

	* src/tgbaalgos/degen.cc: Here.
	* src/tgbatest/degenid.test: Add a test case.

2015-04-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: LRU cache for the dot->svg conversion

	* wrap/python/spot.py: Here.

2015-04-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python 2 is no longer supported

	* m4/pypath.m4: Check for Python 3.2+.
	* README, NEWS, HACKING: Reflect this change.

2015-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: improve closure

	if a transition with the same label already exist, reuse it

	* src/tgbaalgos/stutter.cc: Here.
	* src/tgbatest/stutter.test: Add a test case.

2015-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: add option --acc-type=random

	Fixes #71.

	* src/bin/randaut.cc: Implement option --acc-type.
	* src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/randomgraph.hh (random_acceptance): New function.
	* src/tgbatest/randaut.test, wrap/python/tests/randaut.ipynb: Test it.

2015-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: binding and example for cleanup_acceptance

	* wrap/python/spot_impl.i: Include cleanacc.hh.
	* wrap/python/tests/randaut.ipynb: New file.
	* wrap/python/tests/Makefile.am: Add it.

2015-03-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename cleanup_acceptance() as cleanup_acceptance_here()

	And add a cleanup_acceptance() version that copies.

	* src/tgbaalgos/cleanacc.cc, src/tgbaalgos/cleanacc.hh: Rename
	and add the second version.
	* src/bin/autfilt.cc, src/bin/ltlcross.cc,
	src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/remfin.cc: Use
	cleanup_acceptance_here.

2015-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: Update default options of ltl3dra

	* src/bin/common_trans.cc: Update to expect HOA by default.
	* doc/org/ltlcross.org, doc/org/ltldo.org: Adjust.

2015-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: read automata from pipes

	* src/hoaparse/hoaparse.yy, src/hoaparse/hoascan.ll,
	src/hoaparse/parsedecl.hh, src/hoaparse/public.hh:
	Add a way to read automata from a file descriptor.
	* wrap/python/spot.py: Add machinery to read from
	pipes.
	* wrap/python/tests/piperead.ipynb: New file.
	* wrap/python/tests/Makefile.am: Add it.
	* wrap/python/tests/run.in: Setup PATH.

2015-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/defs.in: Unset SPOT_DOTDEFAULT and SPOT_DOTEXTRA.

2015-03-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --simplify-exclusive-ap option

	* src/bin/autfilt.cc: Add option.
	* src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh: implement it.
	* src/tgbatest/exclusive.test: Test it.
	* src/misc/minato.cc, src/misc/minato.hh: Add an interface to
	simplify a Boolean function with don't care.

2015-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add a spot.automata(filename) interface, yielding automata

	* src/hoaparse/fmterror.cc, src/hoaparse/public.hh,
	src/hoaparse/hoaparse.yy (hoa_stream_parser::parse_strict): New method
	that raises an exception whenever a syntax error is encountered.
	* src/ltlparse/public.hh (parse_error): Move ...
	* src/misc/common.hh: ... here.
	* wrap/python/spot_impl.i: Wrap the hoa output.
	* wrap/python/spot.py: Implement spot.automata.
	* wrap/python/tests/automata-io.ipynb: New test.
	* wrap/python/tests/Makefile.am: Add it.

2015-03-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: uses nice dot arrows

	Suggested by Akim Demaille.  Fixes #69.

	* doc/org/.dir-locals.el, doc/org/init.el.in,
	wrap/python/tests/automata.ipynb: Set arrowhead and arrowsize.
	* doc/org/autfilt.org, doc/org/dstar2tgba.org,
	doc/org/ltl2tgba.org, doc/org/oaut.org: Adjust.

2015-03-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: disable -flto for binaries

	This work around what appears to be an exception handling bug, causing
	binaries to not always catch excepting thrown by the library.

	* debian/rules: Here.

2015-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make --keep-states more useful by actually removing states.

	Fixes #70.

	We don't modify the behavior of mask_keep_states(), because it is
	actually useful in some algorithm to remove states without renumbering
	all the other states.

	* src/bin/autfilt.cc: Call purge_dead_states().
	* src/tgbatest/maskkeep.test: Adjust.

2015-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: Fix completion of automata using Fin-acceptance

	* src/tgba/acc.cc, src/tgba/acc.hh: Add a way to extract
	an unstatisfiable mark, and fix the eval() function for
	Fin acceptance.
	* src/tgbaalgos/complete.cc: Label the sink state using
	an unsatisfiable mark.  Do not assume generalized Büchi.
	* src/tgbatest/complete.test: New test.
	* src/tgbatest/Makefile.am: Add it.

2015-03-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cleanacc: better cleanup

	Sometimes, simplifying the acceptance condition (because it refers to
	sets that do not appear in the automaton) cause more sets to be removed
	from the acceptance condition, and therefore warrant another pass to
	remove those sets from the automaton.

	* src/tgbaalgos/cleanacc.cc: Here.
	* src/tgbatest/hoaparse.test: Add a test case.

2015-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/tests/automata.ipynb: Update for recent changes.

2015-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --remove-ap option

	* src/tgbaalgos/remprop.cc, src/tgbaalgos/remprop.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/remprop.test: New test.
	* src/tgbatest/Makefile.am: Add it.
	* src/bin/autfilt.cc: Implement the option.
	* doc/org/autfilt.org: Document it.

2015-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	maskacc: reverse the way the acceptance condition is stripped

	It makes more sense to assume that the removed set cannot be visited.

	* src/tgbaalgos/mask.cc: Flip a Boolean.
	* src/tgbatest/maskacc.test: Adjust test case.
	* doc/org/autfilt.org: Add an example.

2015-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove_fin: remove useless states

	* src/tgba/tgbagraph.cc (purge_dead_states): Using a DFS to compute a
	topological order, allowing to remove useless using a second
	pass (instead of iterating the passes until there is nothing to remove).
	* src/tgbaalgos/remfin.cc: Call purge_dead_states().
	* src/tgbatest/remfin.test, src/tgbatest/det.test: Adjust expected
	output.
	* doc/org/autfilt.org: Update example.

2015-03-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more examples for autfilt

	* doc/org/oaut.org: Some typos.
	* doc/org/autfilt.org: Add some examples.

2015-03-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: better support of state-based acceptance

	* src/tgbaalgos/dotty.cc: Here.
	* src/tgbaalgos/sbacc.cc: Make the produced automata as state-based.
	* src/tgbatest/readsave.test: Add a test.

2015-03-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --exclusive-ap option

	* src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh: Implement
	constrain() for automata.
	* src/bin/autfilt.cc: Add --exclusive-ap option.
	* src/tgba/bdddict.cc, src/tgba/bdddict.hh: Add a
	has_registered_proposition() method.
	* src/tgbatest/exclusive.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2015-03-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add a --exclusive-ap option

	* src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh: New files.
	* src/ltlvisit/Makefile.am: Add them.
	* src/bin/ltlfilt.cc: Implement the --exclusive-ap option.
	* NEWS: Mention it.
	* src/ltltest/exclusive.test: New file.
	* src/ltltest/Makefile.am: Add it.

2015-03-23  Etienne Renault  <renault@lrde.epita.fr>

	Replace guards by pragma once.

	* iface/ltsmin/ltsmin.hh, src/bin/common_aoutput.hh,
	src/bin/common_conv.hh, src/bin/common_cout.hh,
	src/bin/common_file.hh, src/bin/common_finput.hh,
	src/bin/common_output.hh, src/bin/common_post.hh,
	src/bin/common_r.hh, src/bin/common_range.hh,
	src/bin/common_setup.hh, src/bin/common_sys.hh,
	src/bin/common_trans.hh, src/dstarparse/parsedecl.hh,
	src/dstarparse/public.hh, src/graph/graph.hh,
	src/graph/ngraph.hh, src/hoaparse/parsedecl.hh,
	src/hoaparse/public.hh, src/kripke/fairkripke.hh,
	src/kripke/fwd.hh, src/kripke/kripke.hh,
	src/kripke/kripkeexplicit.hh, src/kripke/kripkeprint.hh,
	src/kripkeparse/parsedecl.hh, src/kripkeparse/public.hh,
	src/ltlast/allnodes.hh, src/ltlast/atomic_prop.hh,
	src/ltlast/binop.hh, src/ltlast/bunop.hh,
	src/ltlast/constant.hh, src/ltlast/formula.hh,
	src/ltlast/multop.hh, src/ltlast/predecl.hh,
	src/ltlast/unop.hh, src/ltlast/visitor.hh,
	src/ltlenv/declenv.hh, src/ltlenv/defaultenv.hh,
	src/ltlenv/environment.hh, src/ltlparse/parsedecl.hh,
	src/ltlparse/public.hh, src/ltlvisit/apcollect.hh,
	src/ltlvisit/clone.hh, src/ltlvisit/contain.hh,
	src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh,
	src/ltlvisit/lbt.hh, src/ltlvisit/length.hh,
	src/ltlvisit/lunabbrev.hh, src/ltlvisit/mark.hh,
	src/ltlvisit/mutation.hh, src/ltlvisit/nenoform.hh,
	src/ltlvisit/postfix.hh, src/ltlvisit/randomltl.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,
	src/misc/bareword.hh, src/misc/bddlt.hh, src/misc/bitvect.hh,
	src/misc/casts.hh, src/misc/common.hh, src/misc/escape.hh,
	src/misc/fixpool.hh, src/misc/formater.hh, src/misc/hash.hh,
	src/misc/hashfunc.hh, src/misc/intvcmp2.hh,
	src/misc/intvcomp.hh, src/misc/location.hh, src/misc/ltstr.hh,
	src/misc/memusage.hh, src/misc/minato.hh, src/misc/mspool.hh,
	src/misc/optionmap.hh, src/misc/position.hh, src/misc/random.hh,
	src/misc/satsolver.hh, src/misc/timer.hh, src/misc/tmpfile.hh,
	src/misc/version.hh, src/priv/accmap.hh, src/priv/bddalloc.hh,
	src/priv/freelist.hh, 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,
	src/tgba/acc.hh, src/tgba/bdddict.hh,
	src/tgba/bddprint.hh, src/tgba/formula2bdd.hh, src/tgba/fwd.hh,
	src/tgba/taatgba.hh, src/tgba/tgba.hh, src/tgba/tgbagraph.hh,
	src/tgba/tgbamask.hh, src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.hh,
	src/tgba/tgbasafracomplement.hh, src/tgbaalgos/are_isomorphic.hh,
	src/tgbaalgos/bfssteps.hh, src/tgbaalgos/canonicalize.hh,
	src/tgbaalgos/cleanacc.hh, src/tgbaalgos/complete.hh,
	src/tgbaalgos/compsusp.hh, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
	src/tgbaalgos/dtbasat.hh, src/tgbaalgos/dtgbacomp.hh,
	src/tgbaalgos/dtgbasat.hh, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/emptiness_stats.hh,
	src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gtec/sccstack.hh, src/tgbaalgos/gtec/status.hh,
	src/tgbaalgos/gv04.hh, src/tgbaalgos/hoa.hh, src/tgbaalgos/isdet.hh,
	src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.hh,
	src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
	src/tgbaalgos/magic.hh, src/tgbaalgos/mask.hh,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.hh,
	src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/product.hh, src/tgbaalgos/projrun.hh,
	src/tgbaalgos/randomgraph.hh, src/tgbaalgos/randomize.hh,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.hh,
	src/tgbaalgos/relabel.hh, src/tgbaalgos/remfin.hh,
	src/tgbaalgos/replayrun.hh, src/tgbaalgos/safety.hh,
	src/tgbaalgos/sbacc.hh, src/tgbaalgos/scc.hh,
	src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccinfo.hh,
	src/tgbaalgos/se05.hh, src/tgbaalgos/simulation.hh,
	src/tgbaalgos/stats.hh, src/tgbaalgos/stripacc.hh,
	src/tgbaalgos/stutter.hh, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.hh, src/tgbaalgos/translate.hh,
	src/tgbaalgos/weight.hh, src/tgbaalgos/word.hh,
	src/sanity/includes.test, src/tgbaalgos/ndfs_result.hxx: here.

2015-03-23  Etienne Renault  <renault@lrde.epita.fr>

	Fix mac OSX support for echo -n.

	* configure.ac: here.

2015-03-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: add a release_named_properties() method

	Fixes #67.

	* src/tgba/tgba.cc, src/tgba/tgba.hh: Here.
	* src/tgbaalgos/complete.cc, src/tgbaalgos/stripacc.cc: Use it.

2015-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ipnbdoctest: ignore transform=".*"

	This is another part of the SVG output thay may change
	with different versions of graphviz.

	* wrap/python/tests/ipnbdoctest.py: Here.

2015-03-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	configure: disable Python when --disable-shared

	Fixes #68.

	* configure.ac: Here.

2015-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Do not store getenv() pointers in static variables.

	... or the pointer might be invalidated if the environments
	changes.  Fixes #63.

	* src/taalgos/dotty.cc, src/tgbaalgos/dotty.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc:
	Copy the environment in strings instead.
	* wrap/python/tests/automata.ipynb: Adjust comment.

2015-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix an assert() when initial states are not declared

	* src/hoaparse/hoaparse.yy: Make sure initial states are
	declared.
	* src/tgbatest/hoaparse.test: Test it.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of prop_single_acc_set() and set_single_acc_set()

	Fixes #64.

	* src/tgba/tgba.hh: Here.
	* src/tgbaalgos/complete.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/mask.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/remfin.cc,
	src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/stutter.cc: Adjust.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move set_generalized_buchi and set_buchi to tgba

	* src/tgba/tgbagraph.hh (set_generalized_buchi, set_buchi): Move...
	* src/tgba/tgba.hh: ... here.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename set_single_acceptance_set() to set_buchi()

	Fixes #66.

	* src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
	src/hoaparse/hoaparse.yy, src/tgba/tgbagraph.hh,
	src/tgbaalgos/complete.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbacomp.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/postproc.cc: Here.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	move copy_acceptance_of and copy_ap_of to tgba.hh

	Fixes #65.

	* src/tgba/tgbagraph.hh (copy_acceptance_of, copy_ap_of): Move...
	* src/tgba/tgba.hh: ... here.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename copy_acceptance_conditions_of()

	... into copy_acceptance_of().  For #65.

	* src/tgba/tgbagraph.hh, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/mask.cc,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/sbacc.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/stutter.cc: Here.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: more automata examples

	* wrap/python/tests/automata.ipynb: Restrict dot size, and more
	examples.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbagraph.hh: Remove orphaned prototype.

2015-03-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: fix some lintian warnings and errors

	* debian/control: Update standars-version.  Add missing ${misc:Depends}.
	Use Depends: ${source:Version} for libspot-dev.  Fix description of
	spot.
	* debian/spot-doc.doc-base: Move the doc to Science/Mathematics.

2015-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sat: add missing prop_state_based_acc() call

	Fixes #62.

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Add call to
	prop_state_based_acc() when building an automaton with state-based
	acceptance.
	* src/tgbatest/satmin2.test: New test.
	* doc/org/satmin.org: Update.

2015-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: fix section number of spot-x.7

	* src/bin/man/Makefile.am: Make sure the header of spot-x.7 refers to
	section 7, not 1.  This error was caught by lintian on the Debian
	packages.

2015-03-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: colored acceptance sets

	This implement several new options for --dot in order to
	allow emptiness sets to be output as colored ⓿ or ❶...
	Also add a SPOT_DOTDEFAULT environment variable.

	* NEWS, src/bin/man/spot-x.x, src/bin/common_aoutput.cc,
	src/bin/dstar2tgba.cc: Document the new options.
	* doc/org/.dir-locals.el, doc/org/init.el.in: Setup
	SPOT_DOTEXTRA and SPOT_DOTDEFAULT for all documents.
	* doc/org/autfilt.org, doc/org/dstar2tgba.org, doc/org/ltl2tgba.org,
	doc/org/ltldo.org, doc/org/oaut.org, doc/org/randaut.org,
	doc/org/satmin.org: Adjust to this new setup.
	* src/misc/escape.cc, src/misc/escape.hh (escape_html): New function.
	* src/tgba/acc.cc, src/tgba/acc.hh (to_text, to_html): New method.
	* src/tgbaalgos/dotty.cc: Implement the new options.
	* src/tgbatest/readsave.test, wrap/python/tests/automata.ipynb: More
	tests.
	* wrap/python/spot.py: Make sure the default argument for
	dotty_reachable is None, so that SPOT_DOTDEFAULT is honored.

2015-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: allow extra configuration via environment

	* src/tgbaalgos/dotty.cc, src/taalgos/dotty.cc: Honnor the SPOT_DOTEXTRA
	environement variable.
	* src/tgbatest/readsave.test, wrap/python/tests/automata.ipynb: Test it.
	* NEWS, src/bin/man/spot-x.x: Document it.

2015-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/spot.py: Typo.

2015-03-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: More fixes for GraphViz variations

	One of our ArchLinux build produice slightly different SVG.

	* wrap/python/tests/ipnbdoctest.py: Strip larger parts of SVG outputs.

2015-03-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: some bindings for translating formulas and diplaying automata

	* wrap/python/spot.py: Introduce spot.translate (and
	spot.formula.translate) as well, as a wrapper around the
	spot.translator class.  Also implement spot.tgba.show()
	to allow passing argument to dotty_reachable() before
	the result is converted to SVG.
	* wrap/python/tests/automata.ipynb: New test file.
	* wrap/python/tests/Makefile.am: Add it.

2015-03-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/tests/ipnbdoctest.py: Typo.

2015-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: be more robust to different graphviz version in tests

	* wrap/python/tests/ipnbdoctest.py: Ignore anything that look like an
	SVG coordinate to compare outputs.

2015-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: get ipnbdoctest to work with ipython 3.0

	With great help from the first two commits in
	https://github.com/paulgb/runipy/pull/49/commits

	* wrap/python/tests/ipnbdoctest.py: Update.

2015-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: improve handling of formulas

	* src/misc/escape.hh, src/misc/escape.cc (escape_latex): New function.
	* src/ltlvisit/tostring.cc: Escape atomic proposition in LaTeX output.
	* wrap/python/spot.py: Make it easy to output formulas in different
	syntaxes.  Also allow the AST to be shown.
	* wrap/python/spot_impl.i: Catch std::runtime_error.
	* wrap/python/tests/formulas.ipynb: New file.
	* wrap/python/tests/Makefile.am: Add it.

2015-03-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: harden version requirements

	* debian/control: Make sure libspot-dev and spot have
	the same versions.

2015-03-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* debian/rules: Do not hard-code the path to the LTO plugin.

2015-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: build a python3 package

	* debian/python3-spot.install: New file.
	* Makefile.am: Ship it.
	* debian/control, debian/rules, debian/spot.install: Adjust.

2015-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: some code cleanup

	* src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh: Throw
	invalid_argument exceptions consistently (not std::string), and use
	forwarding constructors to avoid the construct() method.
	* src/bin/randltl.cc: Catch the above exceptions.  Destroy
	the opts variable right after its use, so that we don't need
	explicit destructor calls.
	* src/ltltest/rand.test: Add a test.

2015-03-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/tests/ipnbdoctest.py: Skip if IPython is missing.

2015-03-07  Thibaud Michaud  <michau_n@epita.fr>

	Adding python functions to mirror the functionalities found in src/bin

	* wrap/python/spot.i: Rename to...
	* wrap/python/spot_impl.i: ...this, and import spot_impl from spot.py so
	that it is not needed to recompile everything when modifying python
	code.
	* wrap/python/spot.py: Adding python functions to mirror the
	functionalities found in src/bin.
	* src/bin/common_r.cc: Move simplification level...
	* src/ltlvisit/simplify.hh: ... here as a constructor of
	ltl_simplifier_options, to make it available in wrap/python.
	* src/bin/ltlfilt.cc: Set simplification level using the new
	ltl_simplifier_options constructor.
	* src/bin/randltl.cc: Move most of the code...
	* src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh: ... here, as a
	class named randltlgenerator.
	* wrap/python/tests/bddnqueen.py, wrap/python/tests/minato.py: Avoid
	calling bdd_init twice by moving 'import spot' after bdd initialization.
	* wrap/python/Makefile.am: Rename spot to spot_impl
	* wrap/python/tests/Makefile.am: Add ipnbdoctest.py.
	* wrap/python/.gitignore: Rename spot.py to spot_impl.py
	* src/ltlvisit/tostring.cc: \ttrue and \ffalse should be \top and \bot.
	* wrap/python/tests/ipnbdoctest.py: Run code cells of a python notebook
	and compare the output to the actual content of the notebook.
	* wrap/python/tests/randltl.ipynb: Document and test randltl.
	* wrap/python/tests/run.in: Call ipnbdoctest.py to run ipython
	notebooks.

2015-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix -o example

	* doc/org/oaut.org: Adjust the parameters of randaut so that we get a
	mix of deterministic and nondeterministic automata.

2015-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: add a to_cnf() function

	* src/tgba/acc.cc, src/tgba/acc.hh (to_cnf, is_cnf): New functions.
	* src/bin/autfilt.cc: Add a --cnf-acceptance option.
	* src/tgbatest/acc2.test: Test it.

2015-03-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: fix is_dnf()

	A Fin() terms with multiple sets should not appear under an And.

	* src/tgba/acc.cc (is_dnf): Fix it.
	* src/tgbatest/acc.cc, src/tgbatest/acc.test: Augment test case.

2015-03-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: implement to_dnf() using BDDs

	This way we have for instance
	  (Inf(1) | Fin(2)) & (Fin(1) | Inf(3)) & Inf(0)
	converted into just
	  (Fin(1) & Fin(2) & Inf(0)) | (Inf(0)&Inf(1)&Inf(3))
	while previously we would produce 4 terms:
	  (Fin(2) & Fin(1) & Inf(0)) | (Fin(2) & (Inf(0)&Inf(3)))
	  | (Fin(1) & (Inf(0)&Inf(1))) | (Inf(0)&Inf(1)&Inf(3))

	* src/tgba/acc.cc (to_dnf): Recode it.
	* src/tgbatest/acc2.test: Adjust.

2015-03-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: introduce is_rejecting()

	Because scc_info does not perform a full emptiness check, it is not
	always able to tell whether an SCC is accepting if the acceptance
	condition use Fin primitives.  This introduce is_rejecting_scc() in
	addition to to is_accepting_scc().  Only one of them may be true, but
	they can both be false if scc_info has no idea whether the SCC is
	accepting.

	* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh: Implement
	is_rejecting_scc().
	* src/bin/ltlcross.cc, src/tgba/acc.cc, src/tgba/acc.hh,
	src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/isweakscc.cc,
	src/tgbaalgos/remfin.cc, src/tgbaalgos/safety.cc,
	src/tgbaalgos/sccfilter.cc: Use it.
	* src/tgbaalgos/dotty.cc: Use is_rejecting_scc() and is_accepting_scc()
	to color SCCs.
	* doc/org/oaut.org: Document the colors used.
	* src/tgbatest/neverclaimread.test, src/tgbatest/readsave.test: Adjust
	tests.
	* src/tgbatest/sccdot.test: New test case.
	* src/tgbatest/Makefile.am: Add it.

2015-03-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: use enums instead of #define for option codes

	* src/bin/autfilt.cc, src/bin/common_aoutput.cc,
	src/bin/common_finput.cc, src/bin/common_output.cc,
	src/bin/common_post.cc, src/bin/common_setup.cc,
	src/bin/common_trans.cc, src/bin/dstar2tgba.cc, src/bin/genltl.cc,
	src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc, src/bin/ltlcross.cc,
	src/bin/ltlfilt.cc, src/bin/ltlgrind.cc, src/bin/randaut.cc,
	src/bin/randltl.cc: Here.

2015-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a bug seen with link-time optimizations enabled.

	* src/tgbaalgos/simulation.cc (direct_simulation): Do not store the
	original_ automaton as a reference. Otherwise with LTO (+ probably NRVO)
	we get a situation where the result automaton (that will be stored in
	original_) copies the properties of itself.

2015-03-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter.test: Fix for failure seen on arch linux.

	* src/ltltest/stutter.test: Reverse the logic for the test for time, in
	case the shell has a builtin version.

2015-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/stutter.test: Run time only if present.

2015-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: include the number of git patches in the version

	* configure.ac, debian/changelog.in: Adjust.
	* debian/source/format: Distribute this.
	* Makefile.am (deb): New target.

2015-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add a stutter-invariant property to automata

	... and show it in the HOA output.  Fixes #60.

	* src/tgba/tgba.hh: Add is_stutter_invariant().
	* src/tgbaalgos/hoa.cc: Print stutter-invariant
	and inherently-weak.
	* src/tgbaalgos/ltl2tgba_fm.cc: Set both.
	* src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/complete.cc,
	src/tgbaalgos/degen.cc, src/tgbaalgos/dtgbacomp.cc,
	src/tgbaalgos/mask.cc, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/remfin.cc, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/stutter.cc,
	src/tgbatest/hoaparse.test, src/tgbatest/ltldo.test,
	src/tgbatest/monitor.test, src/tgbatest/randomize.test,
	src/tgbatest/remfin.test, src/tgbatest/sbacc.test: Adjust.

2015-02-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add option to output implicit labels

	Fixes #59.

	* src/tgbaalgos/hoa.cc: Add option i.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc,
	src/tgbaalgos/hoa.hh: Document it.
	* src/tgbatest/hoaparse.test: Test it.

2015-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/isweakscc.cc (is_inherently_weak_scc): Allow Fin.

2015-02-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	debian: First attempt at creating Debian packages

	* debian/: New directory.
	* Makefile.am, README: Add it.
	* configure.ac: Generate debian/changelog.

2015-02-27  Etienne Renault  <renault@lrde.epita.fr>

	Clang needs explicit copy-initialization for sets.

	* src/tgba/acc.cc: here.

2015-02-27  Etienne Renault  <renault@lrde.epita.fr>

	random: Get rid of uniform_distribution (non-portable).

	* src/misc/random.cc, src/misc/random.hh,
	src/tgbaalgos/randomgraph.cc, src/tgbatest/randaut.test,
	src/tgbatest/randomize.test, src/tgbatest/readsave.test,
	src/ltlvisit/simplify.cc, src/tgbaalgos/randomize.cc,
	src/graph/graph.hh, src/tgbatest/randpsl.test: here.

2015-02-27  Etienne Renault  <renault@lrde.epita.fr>

	simplify: resolve assertion failed.

	* src/ltltest/reduc0.test, src/ltlvisit/simplify.cc: here.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/remfin.cc: Purge unreachable states.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More files to ignore

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Bump version to 1.99b to celebrate support for generic acceptance

	* configure.ac: Bump version.
	* NEWS: Update description of HOA support.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: more documentation

	* doc/org/oaut.org: Mention --dot=a.
	* doc/org/autfilt.org: Update list of transformations.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: better documentation for --hoaf=s

	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Here.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: add an option to display the acceptance

	* src/tgbaalgos/dotty.cc: Display the acceptance if "a" is used.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc,
	src/tgbaalgos/dotty.hh: Document it.
	* src/tgbatest/readsave.test: Test it.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: make sure WDBA have an acceptance set if BA is desired

	* src/tgbaalgos/postproc.cc: Here.
	* src/tgbatest/ltl2tgba.test: Make sure ltl2tgba -B 0 has one
	acceptance set.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Prefix many algorithms with runtime_error for unexpected acceptance

	* src/tgba/tgbagraph.cc (merge_transitions): Disable acceptance
	merging if Fin acceptance is used.
	* src/tgbaalgos/degen.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/isweakscc.cc,
	src/tgbaalgos/lbtt.cc, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/safety.cc,
	src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc: Throw an
	exception if an unsupported type of acceptance is received.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/hoa.cc: Use is_buchi() and is_true().

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: refactor strip() routines

	* src/tgba/acc.cc, src/tgba/acc.hh: Move the strip() routine from
	acc_cond into acc_cond::mark_t, and the strip() routine from
	cleanacc.cc into acc_cond::acc_code.  Introduce helper functions
	to create inf()/fin()/t()/f() at the acc_code level.
	* src/tgbaalgos/cleanacc.cc: Simplify, using the strip() function
	from acc_code.
	* src/tgbaalgos/mask.cc (mask_acc_sets): Use the strip() function
	from acc_code so that it work on non-Buchi acceptance.
	* src/tgbatest/maskacc.test: Add a test for the latter change.
	* src/tgbaalgos/sccfilter.cc, src/tgbatest/acc.cc: Adjust the
	use mark_t::strip().

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: adjust to work with generic acceptance

	* src/bin/ltlcross.cc: Remove Fin-acceptance before
	doing checks.  More --verbose output.
	* src/tgba/acc.cc, src/tgba/acc.hh: Add an eval_sets() function
	to find the set of acceptance sets needed to satisfy the condition
	in an accepting SCC.
	* src/tgbaalgos/gtec/ce.cc: Use eval_sets() when computing
	a counter example.
	* src/tgbaalgos/gtec/gtec.cc: Raise an exception when called
	on an acceptance that contains Fin.
	* src/tgbatest/ltl2dstar3.test, src/tgbatest/ltlcrossce2.test:
	New files.
	* src/tgbatest/Makefile.am: Add them.
	* src/tgba/tgba.cc (is_empty): Call remove_fin if needed.
	* src/tgbaalgos/product.cc, src/tgbaalgos/dtgbacomp.cc: Adjust
	to work with generic acceptance.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: introduce less acceptance sets for interferences

	Instead of adding one set per term in the DNF, reuse the
	removed Fin(x) sets as Inf(x) sets.

	* src/tgbaalgos/remfin.cc: Here.
	* src/tgbatest/remfin.test: Additional test.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remfin: cleanup acceptance

	* src/tgbaalgos/remfin.cc: Call cleanup_acceptance().
	* src/tgbatest/remfin.test: Adjust.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make it easy to complement an acceptance condition

	* src/tgba/acc.cc, src/tgba/acc.hh (complement): New method.
	* src/bin/autfilt.cc: Add a --complement-acceptance option.
	* src/tgbatest/acc2.test: Test it.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a cleanup_acceptance() algorithm

	* src/tgbaalgos/cleanacc.cc, src/tgbaalgos/cleanacc.hh: New file.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgba/acc.hh, src/tgba/tgba.hh (get_acceptance): Return a
	reference.
	* src/bin/autfilt.cc: Add a --cleanup-acceptance option.
	* src/tgbatest/hoaparse.test: Test it.

2015-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add a remove_fin() algorithm

	* src/bin/autfilt.cc: Add remove_fin().
	* src/tgba/acc.cc, src/tgba/acc.hh: Add is_dnf() and simplify eval().
	* src/tgbaalgos/remfin.cc, src/tgbaalgos/remfin.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/remfin.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2015-02-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: add a to_dnf() method

	* src/tgba/acc.cc, src/tgba/acc.hh: Implement a to_dnf()
	method.
	* src/bin/autfilt.cc: Add option --dnf-acceptance.
	* src/tgbatest/acc2.test: Test it.

2015-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stats: use %g to print the (generic) acceptance condition

	* src/tgbaalgos/stats.cc, src/tgbaalgos/stats.hh: Implement %g.
	* src/bin/common_aoutput.cc, src/bin/common_aoutput.hh:
	Document it, and also implement %G.
	* src/tgbatest/acc2.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2015-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: Add operators == and != for acc_code

	and make sure are_isomorphic does not look only at the number of
	acceptance sets

	* src/tgba/acc.hh: Here.
	* src/tgbaalgos/are_isomorphic.cc: Use it to ensure two automata
	have the same acceptance condition.
	* src/tgbatest/explpro4.test: Test product between Büchi and co-Büchi,
	and make sure the isomorphic check look at the acceptance condition.

2015-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sbacc: Make sure it also work for non-TGBA

	* src/tgbatest/sbacc.test: Adjust test case.

2015-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: avoid superfluous parentheses when printing acceptance

	* src/tgba/acc.cc: Do not output (Inf(x)) or (Fin(x)).
	* src/tgbatest/acc.test: Adjust.

2015-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	rename set_acceptance_conditions as set_generalized_buchi

	* src/hoaparse/hoaparse.yy, src/tgba/tgbagraph.hh,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/mask.cc, src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/stripacc.cc, src/tgba/tgba.hh: Here.

2015-02-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Preliminirary support for generic acceptance.

	* src/tgba/acc.hh: Add creation and printing of generic acceptance
	code.
	* src/tgba/acc.cc: New file.
	* src/tgba/Makefile.am: Add it.
	* src/tgbatest/acc.cc: More tests.
	* src/tgbatest/acc.test: Update.
	* src/tgba/tgba.hh (set_acceptance, get_acceptance): New methods.
	* src/tgba/tgbagraph.hh: Store acceptance code.
	* src/hoaparse/hoaparse.yy: Read any acceptance.
	* src/dstarparse/nsa2tgba.cc, src/ta/taexplicit.cc,
	src/tgba/tgbaproduct.cc, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/degen.cc, src/tgbaalgos/hoa.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/product.cc, src/tgbaalgos/stutter.cc,
	src/tgbatest/hoaparse.test: Adjust.

2015-02-19  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	transform: copy and accessible versions

	* src/tgbaalgos/mask.cc, src/tgbaalgos/mask.hh: Rename transform_mask
	to accessible_mask. Add Copy version and use it in mask_keep_states().
	* src/tgbatest/maskkeep.test: Update.

2015-02-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: fix destruction order for static variables

	Depending on whether the global atomic proposition map was destroyed
	after the global automata declared in autfilt, we could get
	double-free errors.

	* src/bin/autfilt.cc: Force destruction of automata in main().

2015-02-16  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	maskkeep:  Add a tgba_digraph version

	* src/bin/autfilt.cc: Add option --keep-states.
	* src/tgbaalgos/mask.cc, src/tgbaalgos/mask.hh: Keep the selected states
	and update the initial state.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/maskkeep.test: New file.

2015-02-16  Alexandre Lewkowicz  <lewkow_a@epita.fr>

	common_conv:  Parse comma and space separated numbers

	* src/bin/common_conv.cc, src/bin/common_conv.hh: Here.

2015-02-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add the --output to tools that output formulas

	* src/bin/common_output.cc, src/bin/common_output.hh: Add option
	--output.
	* src/ltltest/ltlfilt.test, src/ltltest/rand.test: Add tests.
	* NEWS, doc/org/ioltl.org: Document it.

2015-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add a --count option, like autfilt

	* src/bin/common_output.cc, src/bin/common_output.hh:
	Add count_output.
	* src/bin/ltlfilt.cc: Add the --count option.
	* src/ltltest/ltlfilt.test: Test it.
	* NEWS: Mention it.

2015-02-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: implement --output for automata

	Fixes #56.

	* src/bin/common_aoutput.cc, src/bin/common_aoutput.hh,
	src/bin/dstar2tgba.cc: Implement it.
	* src/bin/autfilt.cc, src/bin/ltl2tgba.cc, src/bin/ltldo.cc,
	src/bin/randaut.cc: Fix main() to catch exceptions from the
	constructor of the automaton printer as well.
	* src/tgbatest/randaut.test: Add a test case.
	* doc/org/oaut.org: Document it.

2015-02-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: allow appending to files via >>FILENAME

	Suggested by Joachim Klein.  Fixes #57.

	* src/bin/common_file.hh, src/bin/common_file.cc: New file.
	* src/bin/Makefile.am: Build them.
	* src/bin/ltlcross.cc: Use the output_file class.
	* src/tgbatest/ltlcross3.test: Test >>.
	* NEWS: mention it.

2015-02-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: Fix routines for 64-width vectors

	* src/misc/bitvect.hh: Here.
	* src/tgbatest/det.test, src/ltltest/ltlfilt.test: Add test cases.

2015-02-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlfilt.org: Update description of --stutter-invariant.

2015-02-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench/stutter: add a "user" benchmark

	* bench/stutter/user.sh: New bench.
	* bench/stutter/Makefile.am: Add it.
	* bench/stutter/README: Mention it.
	* bench/stutter/stutter_bench.sh: Run it.

2015-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: Improve sl2.

	* src/tgbaalgos/stutter.cc (sl2): Detect selfloops, and merge
	intermediate states when possible.

2015-02-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bench/stutter: Update

	* bench/stutter/stutter_invariance_randomgraph.cc: Update to recent
	changes.  If an algorithm took more that 30s on an average for a set of
	parameters, avoid running it with more states.  Take the density and
	ap count as parameter.  Output all the algorithms on the same line.
	Add additional statistics about automata.
	* bench/stutter/stutter_invariance_formulas.cc: Update to recent
	changes.  Output all the algorithms on the same line.
	Add additional statistics about automata.
	* bench/stutter/stutter_bench.sh: Use a Makefile to manage concurrency.
	* bench/stutter/README: Update.

2015-02-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgba_complement: take a tgba_digraph_ptr as input

	* src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/dtgbacomp.hh: Here.
	* src/tgbatest/ltl2tgba.cc: Adjust.

2015-02-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: Add --ignore-execution-failures.

	Suggested by Joachim Klein.

	* src/bin/ltlcross.cc: Add --ignore-execution-failures.
	* src/tgbatest/ltlcross3.test: Test it.
	* NEWS: Mention it.

2015-02-09  Etienne Renault  <renault@lrde.epita.fr>

	hoaparse: Fix non-posix warnings.

	*  src/hoaparse/Makefile.am: here.

2015-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: cleanup temporary files

	* src/bin/ltldo.cc: Here.

2015-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: Make perfect forwarding imperfect.

	Make sure the constructors with perfect forwarding for states and
	transitions do not take the place of copy constructors.  Thanks to Akim
	Demaille for its help.  This should fix a bug observed by Joachim Klein
	and David Muller.

	* src/graph/graph.hh: Disable forwarding constructors for states and
	transitions if the first argument is a subclass of the current class.

2015-02-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Add (void) casts for variables used only in assert()s.

	Report from Akim Demaille.

	* src/ltlvisit/snf.cc, src/ta/taexplicit.cc, src/taalgos/tgba2ta.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/stutter.cc: Here.

2015-02-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	nra2nba: Fix initial state construction.

	This bug caused tgbatest/ltl2dstar.test to fail but because I had
	no ltl2dstar on my computer for a while, I only discovered it after
	David Müller and Joachim Klein reported a bug against ltlcross.
	It might be the case that their bug is different (I can't reproduce it
	using their format), but I hope it was caused by this as well.

	* src/dstarparse/nra2nba.cc: Revert 57cda2d9, with a comment.
	* THANKS: Add David.

2015-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	acc: do not store a bdd_dict

	Fixes #55.

	* src/tgba/acc.hh: Do not store a bdd_dict_ptr, it is not used.
	* src/tgba/tgba.hh, src/tgba/tgba.cc, src/ta/ta.hh,
	src/tgba/tgbagraph.hh, src/tgbaalgos/dtgbasat.cc,
	src/tgbatest/acc.cc: Adjust.

2015-02-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make the compiler requirement clearer.

	* configure.ac: Check for g++ 4.6 bugs, so we catch
	the error at compile time, not make time.
	* README: Mention the minimal g++ and clang++ versions.

2015-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --strip-acceptance option

	* src/bin/autfilt.cc: New option.
	* src/tgbatest/sbacc.test: Test it.

2015-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --sbacc option

	... to force automata into state-based acceptance.

	* src/tgbaalgos/sbacc.cc, src/tgbaalgos/sbacc.hh,
	src/tgbatest/sbacc.test: New files.
	* src/tgbaalgos/Makefile.am, src/tgbatest/Makefile.am: Add
	them.
	* src/tgba/tgbagraph.hh (copy_acceptance_conditions_of):
	Call set_acceptance_conditions().
	* src/bin/autfilt.cc: Add option --sbacc.

2015-02-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: detect duplicate atomic propositions

	Reported by Joachim Klein.

	* src/hoaparse/hoaparse.yy: Add a std::set to keep track of duplicate
	propositions.
	* src/tgbatest/hoaparse.test: Test it.

2015-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: fix parsing of LBTT with non 0-based states

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/lbttparse.test: Add test cases.
	* src/tgbatest/hoaparse.test: Adjust.

2015-02-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: diagnose empty automata in ltlcross and ltldo

	* src/bin/ltlcross.cc, src/bin/ltldo.cc: Make sure
	the result of hoa_parse() is non-empty.
	* src/tgbatest/ltlcross3.test, src/tgbatest/ltldo.test:
	Add test cases.

2015-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: improve documentation

	* src/bin/autfilt.cc: Tweak --help.
	* doc/org/autfilt.org: More documentation.

2015-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/dstarparse/nra2nba.cc: Simplify construction of initial state.

2015-02-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: replace %H,%T,%N by %O

	Also get rid of the lbt_parser, and fix the LBT support of the HOA
	parser.

	* doc/org/ltlcross.org, doc/org/ltldo.org: Update.
	* src/bin/common_trans.cc, src/bin/common_trans.hh: Add support for
	%O, and keep %T,%N,%H as hidden aliases without disabling them.
	* src/bin/ltlcross.cc, src/bin/ltldo.cc, src/tgbatest/ltl2tgba.cc:
	Call hoa_parse instead of lbt_parse.
	* src/hoaparse/hoaparse.yy: Improve error reporting from LBT.
	* src/hoaparse/hoascan.ll: Fix typos preventing parsing of
	LBT files with more than 10 states.
	* src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh: Delete the lbt
	parser.
	* src/tgbatest/lbttparse.test: Adjust the expected error message.
	* NEWS: Update.

2015-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	save: remove

	Get rid of the output in Spot's format.

	This finally fixes #1.

	* src/tgbaalgos/save.cc, src/tgbaalgos/save.hh: Delete.
	* src/tgbaalgos/Makefile.am: Adjust.
	* src/ltlvisit/contain.cc: Remove useless includes.
	* src/bin/dstar2tgba.cc, src/bin/common_aoutput.cc,
	src/bin/common_aoutput.hh: Remove the "Spot" output.
	* doc/org/dstar2tgba.org, doc/org/ioltl.org,
	doc/org/ltl2tgba.org, doc/org/oaut.org: Update doc.
	* NEWS: Mention that Spot i/o is gone.
	* src/tgbatest/randtgba.cc: Output in HOA.
	* src/tgbatest/randtgba.test: Use randaut instead of
	randtgba.
	* wrap/python/spot.i: Do not provide binding for save.hh

2015-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbaparse: remove this parser

	For issue #1 (nearly done).

	* src/tgbaparse/: Delete.
	* configure.ac, src/Makefile.am, README: Adjust.
	* src/tgbatest/randtgba.cc: Remove useless #include.

2015-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	maskacc: Add a tgba_digraph version

	* src/tgbaalgos/mask.cc, src/tgbaalgos/mask.hh: New files.
	* src/tgbaalgos/Makefile.am: Adjust.
	* src/tgba/acc.hh (mark_t::set): New method.
	* src/bin/autfilt.cc: Add option --mask-acc.
	* src/tgbatest/maskacc.test: Rewrite.
	* src/tgbatest/maskacc.cc: Delete.
	* src/tgbatest/Makefile.am: Adjust.

2015-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: remove the unused powerset source

	* src/tgbatest/powerset.cc: Delete.
	* src/tgbatest/Makefile.am: Adjust.

2015-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: get rid of tgbaread

	since it's only purpose is to test a parser we
	want to get rid of (#1)

	* src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test: Delete.
	* src/tgbatest/Makefile.am: Adjust.

2015-01-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: drop support of Spot's legacy format from ltl2tgba

	This is progress for #1.

	* src/tgbatest/ltl2tgba.cc: Remove options -b and -X.  Change
	-P to read HOA files instead.
	* src/tgbatest/complementation.cc: Replace option -b by -H for
	HOA output, and read files in HOA.
	* src/tgbatest/complementation.test, src/tgbatest/cycles.test,
	src/tgbatest/dbacomp.test, src/tgbatest/degenid.test,
	src/tgbatest/dfs.test, src/tgbatest/emptchke.test,
	src/tgbatest/ltl2tgba.test, src/tgbatest/renault.test,
	src/tgbatest/satmin2.test, src/tgbatest/sccsimpl.test,
	src/tgbatest/sim2.test: Adjust.

2015-01-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: correctly deal with "Acceptance: 1 t"

	Report from Tomáš Babiak and František Blahoudek

	See also https://github.com/adl/hoaf/issues/36

	Also fix a typo in the handling of Fin(1)&Fin(!1) while we are at it.

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Add tests.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: use hoa_parse instead of tgba_parse

	* src/hoaparse/public.hh: Cope with SWIG.
	* wrap/python/spot.i: Bind hoa_parse instead of tgba_parse.
	Remove the binding for tgba_parse because it will be removed
	soon from Spot (cf. #1).
	* wrap/python/ajax/spot.in: Use the HOA output of ltl3ba.
	* wrap/python/tests/parsetgba.py: Adjust test case.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix compilation on mingw

	* src/bin/common_trans.cc: Fix conditional compilation.
	* src/bin/ltldo.cc, src/bin/ltlcross.cc: Include sys/wait.h.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: rounds start at 1

	* src/bin/ltldo.cc: Start at 1.
	* src/tgbatest/ltldo.test: Adjust.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: add shorthands for ltlcross and ltldo

	* src/bin/common_trans.cc: Implement shorthands.
	* doc/org/ltlcross.org, doc/org/ltldo.org: Document them.
	* src/tgbatest/ltldo2.test: Quick test.
	* NEWS: Mention it.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: automatic renaming of AP

	* src/bin/ltldo.cc: Relabel formula and output automata as needed.
	* src/tgbaalgos/relabel.cc, src/tgbaalgos/relabel.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltldo.test: Add some tests.
	* doc/org/ltldo.org: Document this.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: keep track of spin-compatible AP

	* src/misc/bareword.cc, src/misc/bareword.hh (is_spin_ap): New function.
	* src/ltlast/formula.cc, src/ltlast/formula.hh (is_spin_atomic_props):
	New method and boolean.
	* src/ltlast/atomic_prop.cc, src/ltlast/constant.cc: Update it.
	* src/ltltest/kind.test: Test it.

2015-01-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltldo: new binary

	* src/bin/common_trans.cc, src/bin/common_trans.hh: New files,
	extracted from...
	* src/bin/ltlcross.cc: ... here, so that ltldo can use them.
	* src/bin/ltldo.cc: New file.
	* src/bin/Makefile.am: Adjust.
	* src/bin/common_aoutput.cc, src/bin/common_aoutput.hh: Make
	it possible to add new statistics.
	* doc/org/ltldo.org: New file.
	* doc/Makefile.am, doc/org/tools.org: Adjust.
	* src/bin/man/ltldo.x: New file.
	* src/bin/man/Makefile.am: Adjust.
	* src/bin/man/ltlcross.x, src/bin/man/ltlfilt.x: Mention ltldo(1).
	* src/tgbatest/ltldo.test, src/tgbatest/ltldo2.test: New files.
	* src/tgbatest/Makefile.am: Add them.
	* NEWS: Mention ltldo.

2015-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	never: use state-names as comments

	* src/tgbaalgos/neverclaim.cc: Here.
	* src/hoaparse/hoaparse.yy: Use set_acceptance_conditions() to set
	the number of acceptance sets.  Otherwise, the single_acc_set property
	is not set.
	* src/tgbaalgos/postproc.cc: When expecting a BA or a monitor, do not do
	anything if the input is already a BA or a monitor.
	* src/tgbatest/hoaparse.test: Add a test case.
	* src/tgbatest/readsave.test: Adjust.

2015-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: declare utf8 everwhere and fix some typos

	* doc/org/autfilt.org, doc/org/csv.org, doc/org/dstar2tgba.org,
	doc/org/genltl.org, doc/org/ioltl.org, doc/org/ltl2tgba.org,
	doc/org/ltlfilt.org, doc/org/ltlgrind.org, doc/org/oaut.org,
	doc/org/randaut.org, doc/org/tools.org: Update.

2015-01-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	update to ltl3ba 1.1.1

	Compared to 1.1.0, -L/-M have been renamed to -M0,-M1.

	* bench/ltl2tgba/tools, bench/spin13/README,
	bench/spin13/run.sh, doc/org/ltlcross.org,
	wrap/python/ajax/spot.in: Adjust all references.

2015-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor common conversion functions

	* src/bin/common_conv.cc, src/bin/common_conv.hh: New files.
	* src/bin/Makefile.am: Add them.
	* src/bin/autfilt.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
	src/bin/ltlgrind.cc, src/bin/randaut.cc, src/bin/randltl.cc: Use them.

2015-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/spot.in: Replace call to dupex by ensure_digraph.

2015-01-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: get rid of the decorated version

	* src/tgbaalgos/dottydec.cc, src/tgbaalgos/dottydec.hh,
	src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh: Delete.
	* src/tgbaalgos/Makefile.am, wrap/python/spot.i: Adjust.
	* src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh: Remove the
	decorated version, and the related arguments.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/complementation.cc,
	src/tgbatest/emptchk.cc: Adjust calls.
	* wrap/python/ajax/spot.in: Draw the accepting run as an
	automaton instead of painting it.
	* wrap/python/ajax/ltl2tgba.html: Update help text.

2015-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add an --intersect filter

	* src/bin/autfilt.cc: Add option --intersect.  Factor the code to read
	automata.
	* src/tgbatest/neverclaimread.test: Rewrite the tests, replacing 3 calls
	to ltl2tgba by a single call to autfilt.

2015-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: fix handling of --complete

	* src/tgbaalgos/postproc.cc: Here.
	* src/tgbatest/readsave.test: Test it.

2015-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randomize: reorder state names

	* src/tgbaalgos/randomize.cc: Reorder state names.
	* src/tgbatest/randomize.test: Add a new test.

2015-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa,dot: propagate state names

	* src/hoaparse/hoaparse.yy: Store state names.
	* src/tgbaalgos/dotty.cc, src/tgbaalgos/hoa.cc: Output them.
	* src/tgbatest/readsave.test: Test this.
	* src/tgbatest/hoaparse.test: Update.

2015-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: output label for unreachable state even if SCCs are shown

	* src/tgbaalgos/dotty.cc: Fix output of unreachable states.
	* src/tgbatest/readsave.test: Add test.

2015-01-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Adjust for ltl3ba 1.1.0

	ltl3ba 1.1.0 was released today

	* wrap/python/ajax/spot.in: Use -T3 instead of -U.
	* wrap/python/ajax/README: Adjust version.
	* wrap/python/ajax/ltl2tgba.html: Turn on improved determinism
	of ltl3ba by default.
	* bench/ltl2tgba/tools, bench/spin13/run.sh: Adjust options.
	* bench/spin13/README: Mention the update.

2015-01-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltltest: speed kind.test and consterm.test up

	Fixes #52.

	* src/ltltest/consterm.cc, src/ltltest/kind.cc: Rewrite to read a list
	of input and expected output.
	* src/ltltest/kind.test, src/ltltest/consterm.test: Adjust.

2015-01-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: make the scanner interactive when reading from a pipe

	Otherwise autfilt will not start processing input automata before its
	input buffer is full.

	* src/hoaparse/hoascan.ll: Here.

2015-01-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: do not mark codeterministic automata as deterministic

	* src/tgbaalgos/simulation.cc: Here.
	* src/tgbatest/det.test: Test it.

2015-01-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: do not add a fake initial state when possible

	* src/hoaparse/hoaparse.yy: If we have multiple initial states, but
	one of them has no incoming edge, use this state instead of the fake
	initial state we normally add.
	* src/tgbatest/hoaparse.test: Add test case.

2015-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dot: output marked states only for SBA

	* src/tgbaalgos/dotty.cc: Do not output marked states if
	an automaton has 0 acceptance set (like a monitor).
	* src/tgbatest/monitor.test, src/tgbatest/dstar.test: Adjust.

2015-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: validate trans-acc and state-acc

	and also set prop_state_based_acc() on input

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Add tests.

2015-01-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix parsing of label-expr with parentheses

	Report from Tomáš Babiak.

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Add example from a development version
	of ltl3ba.

2015-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dupexp: remove the version that fills a vector

	Fixes #45.

	* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Remove unused code.

2015-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: take a tgba_digraph as input

	Issue #45.

	* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Take
	a tgba_digraph is input.
	* src/tgbatest/ltl2tgba.cc: Adjust.

2015-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: get rid of the "don't care" simulation reductions

	Those where never really publicized because they were slow and we failed
	to fix what we hopped to fix with them.  They where never used by
	default.  Getting rid of them will make it easier to cleanup the
	simulation code.

	* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Remove
	the simulation code.
	* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh,
	src/tgbatest/ltl2tgba.cc: Do not call it.
	* src/bin/spot-x.cc: Update doc.
	* src/tgbatest/sim.test: Delete this file.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/spotlbtt.test, bench/ltl2tgba/tools.sim:
	Remove uses to don't care simulation.

2015-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: rename is_X_free() into is_syntactic_stutter_invariant()

	and adjust it to detect siPSL formulas, as in the paper of Dax et
	al. (ATVA'09).  For issue #51.

	* src/ltlast/atomic_prop.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: Rename
	the property, and adjust its computation on siSERE.
	* src/ltlvisit/remove_x.cc, src/ltlvisit/simplify.cc,
	src/tgbaalgos/stutter.cc: Adjust to new names.
	* src/bin/ltlfilt.cc: Add option --syntactic-sutter-invariant.
	* src/ltltest/kind.test: Update tests and add some new.

2015-01-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tl: formul\ae -> formulas

	* doc/tl/tl.tex: Use "formulas" everywhere in this file.

2015-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	scc: get rid of scc_stats

	* src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh: Here.
	* src/tgbatest/ltl2tgba.cc: Remove option -k.
	* src/tgbatest/sccsimpl.test: Move the only -k test...
	* src/tgbatest/scc.test:... here.

2015-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	test: simplify scc.test

	Fixes #49.

	* src/tgbatest/scc.test: Rewrite using ltl2tgba --stats.

2015-01-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	cycles: rewrite using the tgba_digraph interface

	Fixes #50.

	* src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh: Rewrite using
	unsigned instead of state*, and std::vector instead of std::map.
	* src/tgbaalgos/isweakscc.cc, src/tgbaalgos/powerset.cc: Adjust.

2015-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: add a --max-count/-n option

	This fixes #44.

	* src/bin/ltlfilt.cc: Implement -n/--max-count.
	* doc/org/ltlfilt.org, src/tgbatest/randpsl.test: Use it
	* NEWS: Document it.

2015-01-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: remove -n.

	* src/bin/ltlfilt.cc: Remove short option -n for --negate.

2015-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	never: fix output of accepting initial states

	* src/tgbaalgos/neverclaim.cc: Make sure the any accepting initial state
	is not output as an accept_all state.  This bug caused ltl2dstar.test to
	fail.

2015-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use ltl2tgba -Ds instead of ltl2tgba -sD in the test suite

	Because -s can now take arguments.

	* src/tgbatest/ltl2dstar2.test: Here.

2015-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	minimize: cosmetics

	* src/tgbaalgos/minimize.cc (minimize_monitor): Simplify the call to
	tgba_powerset.

2015-01-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: rewrite the determinization construction using bitvectors

	This helps issue #26 considerably, but I'm not closing it because there
	are a few places here and there that can be cleaned up.  For instance
	build_state_set in minimize.cc should be rewritten.

	* src/misc/bitvect.hh (bitvector_array::clear_all): New method.
	* src/tgbaalgos/powerset.cc (tgba_powerset): Rewrite it.
	* src/tgbaalgos/powerset.hh (power_map): Simplify.

2015-01-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: tiny speedup

	* src/tgbaalgos/powerset.cc: Replace std::deque by vector, and take
	the return of aut->out(s) by reference.

2015-01-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: simplify an implication check

	* src/tgbaalgos/powerset.cc: Use bdd_implies.

2015-01-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	isdet: rewrite using the tgba_digraph interface

	* src/tgbaalgos/isdet.cc, src/tgbaalgos/isdet.hh: Rewrite
	using the tgba_digraph interface.
	* src/tgbatest/ltl2tgba.cc: Adjust call.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltltest: get rid of equals.cc

	* src/ltltest/equals.cc: Delete.
	* src/ltltest/Makefile.am: Adjust.
	* src/ltltest/unabbrevwm.test: Rewrite using ltlfilt.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	never: add an option to output in Spin's 6.2.4 style

	Fixes #46.

	* src/tgbaalgos/neverclaim.cc: Add option '6'.
	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Make it
	possible to use the option.
	* NEWS, doc/org/oaut.org: Document it.
	* src/tgbatest/ltlcross2.test: Test it.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	postproc: use scc_filter_states on SBA

	* src/tgbaalgos/postproc.cc: Here.  Otherwise, reading
	a neverclaim with autfilt would loose the SBA property
	and degeneralize again.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: remove two useless casts

	* src/tgbaalgos/degen.cc: Here.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverclaim: rewrite the output using the tgba_digraph interface

	* src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh: Here.
	Also take a string to supply options.
	* src/tgbatest/ltl2tgba.cc: Adjust call.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: rewrite using the tgba_digraph interface

	Fixes #48.

	* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh: Here.
	* src/tgbaalgos/minimize.cc: Adjust usage.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: add another example

	* doc/org/oaut.org: Show another way to perform the last computation.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	style: make sure we do not have SPOT_API in *.cc files

	* src/sanity/style.test: Check for it.
	* src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc,
	src/tgbaalgos/randomize.cc, src/tgbaalgos/stutter.cc: Fix all those.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstarparse, hoaparse: rename inline namespace to please clang

	The namespace dstaryy was declared inline and then reopened as
	non-inline.  Likewise for hoayy.  Let's use different names.

	* src/dstarparse/dstarparse.yy, src/hoaparse/hoaparse.yy: Here.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: fix determinism

	* src/ltlvisit/randomltl.cc: Make sure generation of binary operator is
	done in a deterministic order.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlgrind: fix indeterminism

	* src/ltlvisit/mutation.cc: Force order of evaluation of arguments of
	binops.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccinfo: make it easier to iterate over all SCCs

	* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh: add
	scc_info::begin() and scc_info::end() methods to iterate over the
	node_ vector.   Tidy the scc_node structure that that its member
	are accessed via methods.
	* src/tgbaalgos/safety.cc, src/bin/ltlcross.cc: Simplify using
	this interface.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	add missing utf-8 header to many source files

	* src/sanity/style.test: Test for the missing header.
	* iface/ltsmin/check.test, src/kripketest/kripke.test,
	src/kripketest/parse_print_test.cc, src/ltlparse/fmterror.cc,
	src/ltltest/consterm.test, src/ltltest/kind.test,
	src/ltltest/length.test, src/ltltest/ltlfilt.test,
	src/ltltest/reduc.cc, src/ltltest/reduc.test,
	src/ltltest/reduc0.test, src/ltltest/reducpsl.test,
	src/ltltest/remove_x.test, src/ltltest/unabbrevwm.test,
	src/ltltest/utf8.test, src/ltltest/uwrm.test, src/ltlvisit/dump.cc,
	src/ltlvisit/remove_x.cc, src/misc/casts.hh, src/misc/fixpool.hh,
	src/misc/hashfunc.hh, src/misc/ltstr.hh, src/sanity/readme.test,
	src/taalgos/tgba2ta.cc, src/tgbaalgos/bfssteps.cc,
	src/tgbaalgos/stats.cc, src/tgbatest/acc.test,
	src/tgbatest/bitvect.test, src/tgbatest/complementation.test,
	src/tgbatest/cycles.test, src/tgbatest/degendet.test,
	src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
	src/tgbatest/emptchkr.test, src/tgbatest/intvcomp.test,
	src/tgbatest/ltl2ta.test, src/tgbatest/ltl2ta2.test,
	src/tgbatest/ltlprod.test, src/tgbatest/maskacc.test,
	src/tgbatest/obligation.test, src/tgbatest/randpsl.test,
	src/tgbatest/readsat.cc, src/tgbatest/readsat.test,
	src/tgbatest/scc.test, src/tgbatest/sccsimpl.test,
	src/tgbatest/taatgba.test, src/tgbatest/tgbaread.test,
	src/tgbatest/tripprod.test, src/tgbatest/uniq.test,
	src/tgbatest/wdba.test: Add it.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	projrun: modernize

	* src/tgbaalgos/emptiness.hh (step): Add constructors...
	* src/tgbaalgos/projrun.cc: ... to simplify this.

2015-01-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	product: rename the one-the-fly version as otf_product

	This avoid compiler errors about ambiguous calls and make sure we are
	calling the intended algorithms everywhere (this wasn't the case).

	* src/tgba/tgbaproduct.hh (product, product_at): Rename as...
	(otf_product, otf_product_at): ... this.
	* iface/ltsmin/modelcheck.cc, src/bin/autfilt.cc, src/bin/ltlfilt.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/checkpsl.cc,
	src/tgbatest/complementation.cc, src/tgbatest/ltlprod.cc: Adjust
	callers.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	contain: adjust to use explicit product

	* src/ltlvisit/contain.cc, src/ltlvisit/contain.hh: Here.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: gather all code in one place

	* src/tgba/tgbasl.cc, src/tgba/tgbasl.hh, src/tgbaalgos/closure.cc,
	src/tgbaalgos/closure.hh, src/tgbaalgos/stutter_invariance.cc,
	src/tgbaalgos/stutter_invariance.hh, src/tgbaalgos/stutterize.cc,
	src/tgbaalgos/stutterize.hh: Delete these files, and merge their
	contents into...
	* src/tgbaalgos/stutter.cc, src/tgbaalgos/stutter.hh: ... these two.
	* src/tgba/Makefile.am, src/tgbaalgos/Makefile.am: Adjust.
	* wrap/python/spot.i: Adjust.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/weight.hh: Remove useless status.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/emptiness_stats.hh: Modernize.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix symbol collision, seen with clang-3.5

	autfilt would segfault after reading any file, because the local result_
	structure used in hoaparse has the same name as the local result_
	structure used in dstarparse.  For some reason I can only see this
	problem using clang-3.5, not with gcc.

	* src/dstarparse/dstarparse.yy, src/hoaparse/hoaparse.yy: Declare both
	structures in a different namespace.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/tools.org: Adjust colors in text.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove obsolete comments

	* src/tgbaalgos/lbtt.hh, src/tgbaalgos/neverclaim.hh: Remove obsolete
	comments.  Reported by Claire Parquier.

2015-01-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/dstarparse/dstarscan.ll: Fix encoding.

2015-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: factor headers into setup.org

	* doc/org/setup.org: New file.
	* doc/Makefile.am: Distribute it.
	* doc/org/autfilt.org, 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/ltlgrind.org, doc/org/oaut.org, doc/org/randaut.org,
	doc/org/randltl.org, doc/org/satmin.org, doc/org/tools.org: Use
	setup.org.

2015-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: update randltl.org

	* doc/org/randltl.org: The first example used to output '1' as
	only random formula.  This is not very sexy.

2015-01-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: use a white background and ship the CSS

	* doc/org/spot.css: New file.
	* doc/Makefile.am: Distribute it.
	* doc/org/init.el.in, doc/org/.dir-locals.el: Adjust links.

2015-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Update results to new output

	The dotty output changed to be horizontal, and also
	the acceptance sets are now numbers.

	* doc/org/dstar2tgba.org, doc/org/ltl2tgba.org, doc/org/ltl2tgta.org,
	doc/org/satmin.org: Adjust these four.

2015-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: fix EMAIL link

	* doc/org/autfilt.org, 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/ltlgrind.org, doc/org/oaut.org, doc/org/randaut.org,
	doc/org/randltl.org, doc/org/satmin.org, doc/org/tools.org: Here.

2015-01-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Update HACKING

	* HACKING: Update Swig requirement, as reported by Soheib.

2015-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutterize: fix sl2() to keep the correct properties

	Combined with 87c2b29, this fixes #7.

	* src/tgbaalgos/stutterize.cc: Call keep_props().
	* src/tgbaalgos/closure.cc: Just specify the encoding.
	* src/bin/autfilt.cc: Add a --instut=2 option.
	* src/tgbatest/stutter.test: More test.

2015-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add two asserts

	* src/tgbaalgos/hoa.cc: Here.

2015-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: validate use of deterministic and complete

	* src/hoaparse/hoaparse.yy: validate deterministic and
	complete when parsing HOA.  Also set the deterministic
	property on the TGBA.
	* src/tgbatest/hoaparse.test: Test errors.

2015-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: validate use of explicit-labels and implicit-labels

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Test it.

2015-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: validate use of state-labels and trans-labels

	* src/hoaparse/hoaparse.yy: Fix a map with properties, and use it to
	report error when state-label or trans-label are misused.
	* src/tgbatest/hoaparse.test: Test that.

2015-01-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	more files to ignore

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: use the tgba_digraph interface to save automata

	* src/tgbaalgos/hoa.cc: Here.
	* src/tgbatest/det.test, src/tgbatest/hoaparse.test,
	src/tgbatest/monitor.test, doc/org/oaut.org: Adjust.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverclaim: do not pass the formula

	* src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh: Do not
	pass the formula.  Use the automaton name instead.
	* src/tgbatest/ltl2tgba.cc: Adjust.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: simplify the interface of hoa_reachable()

	* src/tgbaalgos/hoa.cc, src/tgbaalgos/hoa.hh: Only
	keep one function public, and do not pass the formula.
	* src/tgbatest/ltl2tgba.cc: Adjust.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: document common output options for automata

	* doc/org/oaut.org: New file.
	* doc/Makefile.am: Add it.
	* doc/org/autfilt.org, doc/org/ltl2tgba.org, doc/org/randaut.org,
	doc/org/tools.org: Link to it.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: fix combination of 's' with 'n'

	* src/tgbaalgos/dotty.cc: Add empty label to each cluster
	if both 's' and 'n' are used.
	* src/tgbatest/neverclaimread.test: Test it.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: fix help text for --dot

	* src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Here.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstar2tgba: add support for --name and --stats=%m

	* src/bin/dstar2tgba.cc: Here.
	* src/tgbatest/dstar.test: Test them.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: fix output of name and detection of state-based acceptance

	* src/tgbaalgos/dotty.cc: Do not output name by default.  Display
	accepting states by default no acceptance set are used.
	Avoid copying the automaton when possible.
	* src/tgbatest/dstar.test: Exercise --dot=t.

2015-01-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba, randaut: better error reporting

	* src/bin/ltl2tgba.cc, src/bin/randaut.cc: Catch exceptions
	in main loop.
	* src/tgbatest/ltl2tgba.test, src/tgbatest/randaut.test: Test
	errors with unknown --dot argument.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ioltl.org: Typo.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	More files to ignore.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: --dot=s display SCCs

	* src/tgbaalgos/dotty.cc: Add option 's' to display SCCs.
	* src/bin/dstar2tgba.cc, src/bin/common_aoutput.cc: Document it.
	* src/tgbatest/neverclaimread.test: Test it.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around a swig issue on Arch Linux

	destroy_atomic_prop_set() takes a parameter named 'as', and aparently
	Swig reuses this name as-is, although it is a Python keyword.

	* src/ltlvisit/apcollect.hh (destroy_atomic_prop_set): Rename the
	parameter to please Swig on Arch Linux.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/sanity/style.test: Do not use the deprecated GREP_OPTIONS.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: use common_aoutput in ltl2tgba

	* src/bin/common_aoutput.hh, src/bin/common_aoutput.cc: Adjust to
	support three kind of statistics printer, depending on whether the
	tool input formulas, automata, or nothing.
	* src/bin/randaut.cc, src/bin/autfilt.cc: Adjust.
	* src/bin/ltl2tgba.cc: Use the common_aoutput printers.  The
	--csv-escape option disappeared along the way, but it was not honored
	anyway...

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: factor output options of autfilt and randaut

	* src/bin/autfilt.cc: Move output options handling...
	* src/bin/common_aoutput.cc, src/bin/common_aoutput.hh:... here.
	* src/bin/randaut.cc: Use them.
	* src/tgbatest/randaut.test: Test --name and --stats for randaut.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_setup.cc: bump copyright year to 2015.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlgrind: cosmetics

	* src/bin/ltlgrind.cc: Adjust help text to match other tools.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba: rename --hoa to --hoaf

	for consistency with autfilt, randaut, and dstar2tgba

	* src/bin/ltl2tgba.cc: Here.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt, randaut: rename --uniq to --unique

	for consistency with ltlfilt

	* src/bin/autfilt.cc, src/bin/randaut.cc: Here.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bin: tooling and documentation about option names

	* src/bin/options.py: New file.
	* src/bin/Makefile.am: Distribute it.
	* src/bin/README: New file.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: fix --uniq

	* src/bin/autfilt.cc: Also accept '-u' for '--uniq'.
	* src/bin/randaut.cc: Likewise, plus fix the unicity check.
	* src/tgbatest/uniq.test: Really test it.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: move output functions to a separate file

	* src/bin/common_aoutput.cc, src/bin/common_aoutput.hh: New files...
	* src/bin/autfilt.cc: ... extracted from here.
	* src/bin/Makefile.am: Add them.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* iface/ltsmin/Makefile.am: Fix location of -lpthread.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: force selection of properties kept on copy

	* src/tgba/tgba.hh: Declare a prop_set to specify the types.
	* src/tgba/tgbagraph.hh: Use prop_set for all copy constructors.
	* iface/ltsmin/ltsmin.cc, src/bin/autfilt.cc, src/bin/randaut.cc,
	src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/closure.cc,
	src/tgbaalgos/complete.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dtgbacomp.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
	src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/stutterize.cc, src/tgbatest/checkpsl.cc,
	src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc,
	wrap/python/spot.i,src/graphtest/tgbagraph.test: Adjust all uses.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: Specialize for tgba_digraph_ptr

	* src/tgbaalgos/dotty.cc: Specialize for tgba_digraph_ptr.
	* src/tgba/tgbagraph.hh, src/tgbaalgos/dupexp.cc: Copy properties by
	default when cloning an automaton.
	* src/tgbatest/det.test, src/tgbatest/dstar.test,
	src/tgbatest/ltl2tgba.test, src/tgbatest/monitor.test,
	src/tgbatest/neverclaimread.test, src/tgbatest/tgbaread.test: Adjust
	tests.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbagraph.hh: Add a format_state for unsigned.

2015-01-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dotty: switch to horizontal output and add options

	* src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh: Add an options
	parameter.
	* src/bin/randaut.cc, src/bin/autfilt.cc, src/bin/dstar2tgba.cc,
	src/bin/ltl2tgba.cc, wrap/python/ajax/spot.in: Use it.
	* src/tgbatest/det.test, src/tgbatest/dstar.test,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/monitor.test,
	src/tgbatest/neverclaimread.test, src/tgbatest/tgbaread.test,
	src/graphtest/tgbagraph.test: Adjust
	because automata are now output horizontally.
	* NEWS: Mention the change.

2014-12-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/autfilt.cc: Missing std::move.

2014-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/Makefile.am: Run and distribute uniq.test.

2014-12-17  Thibaud Michaud  <michau_n@epita.fr>

	option --uniq in autfilt and randaut

	* src/bin/autfilt.cc: add option --uniq.
	* src/bin/randaut.cc: add option --uniq.
	* src/tgbatest/uniq.test: Test it.

2014-12-17  Thibaud Michaud  <michau_n@epita.fr>

	Wrap are_isomorphic inside a class and optimize when deterministic

	* src/bin/autfilt.cc: Use isomorphism_checker.
	* src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh: Wrap
	are_isomorphic inside a class to keep the canonic version of the first
	automaton between two calls, and use a more efficient algorithm in case
	both automata are deterministic.
	* src/tgbatest/isomorph.test: Add tests for deterministic automata.

2014-12-17  Thibaud Michaud  <michau_n@epita.fr>

	Adding function to canonicalize an automaton.

	* src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh,
	src/bin/autfilt.cc: are_isomorphic now uses canonicalize. It returns a
	bool, because the mapping cannot be deduced easily from the
	canonicalized automaton.
	* src/graph/graph.hh: Add equality operator to trans_storage_t
	for easy comparison of transition vectors.
	* src/tgba/tgbagraph.hh: Add equality operator to tgba_graph_trans_data
	and to tgba_digraph.
	* src/tgbaalgos/canonicalize.cc, src/tgbaalgos/canonicalize.hh:
	New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/isomorph.test: Test them.

2014-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: %w shows an accepting word

	* src/bin/autfilt.cc: Support %w.
	* src/tgbatest/readsave.test: Test it.

2014-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --instut, --destut, --is-empty

	* src/bin/autfilt.cc: Add these new options.
	* src/tgbaalgos/stutterize.cc, src/tgbaalgos/stutterize.hh: Make it
	possible to call sl() and sl2() without passing the set of atomic
	propositions.
	* src/tgbatest/stutter.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2014-12-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	merge transitions: also merge transitions with same conditions

	* src/tgba/tgbagraph.cc (merge_transition): Do it.
	* src/tgbatest/readsave.test: Test it.
	* src/bin/autfilt.cc: Fix statistics about the original
	automaton when using --stats or --name.

2014-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --edges --acc-sets

	* src/bin/autfilt.cc: Add these new options.
	* src/tgbatest/readsave.test: Test them.

2014-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: support -n,--max-count

	* src/bin/autfilt.cc: Implement this new option.
	* src/tgbatest/readsave.test: Test it.

2014-12-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add support for --name, %M, and %m

	* src/bin/autfilt.cc: Here.
	* src/tgbaalgos/stats.cc: Do not segfault if format is nullptr.
	* src/tgbatest/readsave.test: Exercise --name, %M, and %m.

2014-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --count

	* src/bin/autfilt.cc: Add a --count option.
	* src/tgbatest/randaut.test: Test autfilt's --count and --states.

2014-12-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: --states=RANGE

	* src/bin/autfilt.cc: Add a --states=RANGE option.
	* src/bin/common_range.cc, src/bin/common_range.hh: Generalize
	range_parse to allow an optional upper bound.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: improve reporting of errors in LBTT guards

	* src/hoaparse/hoaparse.yy: forward the error messages
	from lbt_parse().
	* src/hoaparse/hoascan.ll: Minor cleanups.
	* src/tgbatest/lbttparse.test: Test it.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlparse: allow comments

	* src/ltlparse/ltlscan.ll: Skip comments.
	* src/ltltest/ltlfilt.test: Test this.
	* NEWS: Mention it.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add options --is-deterministic --is-complete and -v

	* src/bin/autfilt.cc: Here.
	* src/tgbatest/hoaparse.test: More tests.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: support --stats=%L to display the automaton location

	* src/bin/autfilt.cc: Add support for %L.
	* src/tgbatest/hoaparse.test: Test it.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfilt: implement -q/--quiet as in grep

	the existing -q/--quiet option is renamed to --ignore-errors

	* src/bin/ltlfilt.cc: Adjust option.
	* src/bin/common_output.cc, src/bin/common_output.hh: Add a
	quiet_output.
	* bench/dtgbasat/prepare.sh: Rename -q to --ignore-errors..
	* src/ltltest/remove_x.test: Use -q.
	* NEWS: Mention this change.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --quiet option

	* src/bin/autfilt.cc: Add option.
	* src/tgbatest/det.test: Test it.

2014-12-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	are-isomorphic: speed it up

	* src/tgbaalgos/are_isomorphic.cc: inline is_isomorphism() into
	are_isomorphic() so that the reference vector is only sorted once,
	and both vectors are only allocated once.

2014-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaparse: also accept LBTT input

	This is probably the worse grammar I wrote: the LBTT format is designed
	to be scanned with scanf, and very inconvenient to parse with
	bison/flex.  Here the scanner basically has to emulate a parser to
	classify the different INTs as tokens with different types.

	* src/hoaparse/hoaparse.yy, src/hoaparse/hoascan.ll: Add rules for LBTT.
	* src/hoaparse/parsedecl.hh: Add a way to reset the parser between each
	automata.
	* src/tgbatest/hoaparse.test, src/tgbatest/lbttparse.test: Add more
	tests.

2014-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbaparse, lbttparse: do not pass an environment for acceptance sets

	* src/priv/accmap.hh, src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/tgbaread.cc: Do not pass any
	environment parameter to parse acceptance sets.  This is not used
	anymore since we moved to int-labeled acceptance sets.

2014-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	are-isomorphic: small simplifications

	* src/tgbaalgos/are_isomorphic.cc (is_isomorphism): Do not copy
	trans_storage_t elements as they contain more than what we use.
	Remap the states of a1 before the sort, not during the sort.
	(are_trivially_different): Also catch the case where the
	number of acceptance sets are different.
	* src/tgbaalgos/are_isomorphic.hh: Improve doxygen.

2014-12-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: some cleanup around --are-isomorphic

	* src/bin/autfilt.cc: Do not use -I for --are-isomorphic.
	Fix --help.
	* src/tgbatest/isomorph.test: Adjust to use --are-isomorphic, and speed
	it up 5-fold.

2014-12-10  Thibaud Michaud  <michau_n@epita.fr>

	are_isomorphic: do not try to map initial state to a non-initial state

	* src/tgbaalgos/are_isomorphic.cc: Here.

2014-12-10  Thibaud Michaud  <michau_n@epita.fr>

	autfilt: rename --isomorph to --are-isomorphic

	* src/bin/autfilt.cc: Here.

2014-12-10  Thibaud Michaud  <michau_n@epita.fr>

	autfilt: return with exit code 1 if there is no match

	* src/bin/autfilt.cc: Return with exit code 1 if no match found.
	* src/tgbaalgos/are_isomorphic.cc,src/tgbatest/degenlskip.test
	src/tgbatest/explpro2.test,src/tgbatest/explpro3.test
	src/tgbatest/explpro4.test,src/tgbatest/explprod.test
	src/tgbatest/neverclaimread.test, src/tgbatest/readsave.test
	src/tgbatest/tripprod.test: Use exit status to check for output
	emptiness instead of 'test -n'.
	* src/tgbatest/isomorph.test: Simplify test.

2014-12-10  Thibaud Michaud  <michau_n@epita.fr>

	Use autfilt --isomorph instead of a diff in some tests

	* src/tgbatest/degenlskip.test, src/tgbatest/explpro2.test
	src/tgbatest/explpro3.test, src/tgbatest/explpro4.test
	src/tgbatest/explprod.test, src/tgbatest/neverclaimread.test
	src/tgbatest/tripprod.test, src/tgbatest/readsave.test: Here.

2014-12-10  Thibaud Michaud  <michau_n@epita.fr>

	are_isomorphic: return the mapping found, not just true or false

	* src/bin/autfilt.cc: Here.
	* src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh:
	Here.

2014-12-10  Thibaud Michaud  <michau_n@epita.fr>

	Adding function to test if two büchi automata are isomorphic.

	And add the corresponding --isomorphic=FILENAME option to autfilt.

	* src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/are_isomorphic.hh:
	New.
	* src/tgbaalgos/Makefile.am: Add it.
	* src/bin/autfilt.cc: Add --isomorphic option.
	* src/tgbatest/isomorph.test: Test it.
	* src/tgbatest/Makefile.am: Add it.

2014-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: simplify usage of named properties

	* src/tgba/tgba.hh, src/tgba/tgba.cc (set_named_prop): Add a template
	version.
	(get_named_prop): Hide the old version, and supply a template version
	that casts.
	* src/bin/ltlcross.cc, src/hoaparse/hoaparse.yy, src/tgbaalgos/hoa.cc,
	src/tgbaalgos/product.cc: Adjust usage.

2014-12-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: store the automaton name as a property

	* src/hoaparse/hoaparse.yy: Store the automaton name.
	* src/tgbaalgos/hoa.cc: Output it if it exists.
	* src/tgbatest/hoaparse.test: Adjust tests.

2014-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: mordenize printer slightly

	* src/tgbaalgos/hoa.cc: Here.

2014-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --merge-transitions option

	* src/bin/randaut.cc: Fix memory leak.
	* src/bin/autfilt.cc: Add a --merge-transitions option.
	* src/tgbatest/readsave.test: Rewrite using randaut and autfilt.

2014-12-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: let transitions() iterate only on valid transitions

	This fixes #6.

	* src/graph/graph.hh: Rename the old transitions() as
	transition_vector(), and implement a new transitions() that iterates
	only on non-dead transitions.
	* src/tgba/tgbagraph.hh, src/tgba/tgbagraph.cc, src/graph/ngraph.hh:
	Adjust wrappers.
	* src/hoaparse/hoaparse.yy, src/tgbaalgos/complete.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/randomize.cc, src/tgbaalgos/safety.cc: Adjust calls.

2014-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: add a --product option

	* src/bin/autfilt.cc: Implement the --product option.
	* src/tgbatest/explprod.cc, src/tgbatest/tripprod.cc: Delete.
	* src/tgbatest/Makefile.am: Adjust.
	* src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
	src/tgbatest/explpro4.test, src/tgbatest/explprod.test,
	src/tgbatest/tripprod.test: Rewrite using autfilt --product.

2014-12-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltsmin: fix test cases and naming.

	* iface/ltsmin/kripke.test: Fix detection of divine's ltsmin option.
	* iface/ltsmin/finite.test: Likewise.  Also extra the Spins test
	into...
	* iface/ltsmin/finite2.test: ... this new file, so that we
	can test the divine and spins interfaces independently.
	* iface/ltsmin/Makefile.am: Distribute finite2.test and finite.pm.
	* iface/ltsmin/ltsmin.cc, iface/ltsmin/ltsmin.hh,
	iface/ltsmin/modelcheck.cc: Adjust function names.

2014-12-06  Thibaud Michaud  <michau_n@epita.fr>

	Adding support for promela models via SpinS.

	* configure.ac, iface/Makefile.am: Adjust.
	* iface/dve2/finite.test, iface/dve2/.gitignore, iface/dve2/Makefile.am,
	iface/dve2/README, iface/dve2/beem-peterson.4.dve,
	iface/dve2/dve2check.test, iface/dve2/defs.in, iface/dve2/finite.dve,
	iface/ltsmin/finite.test, iface/dve2/kripke.test, iface/dve2/dve2.cc,
	iface/dve2/dve2.hh, iface/dve2/dve2check.cc: Move to iface/ltsmin.
	* iface/ltsmin/.gitignore, iface/ltsmin/Makefile.am,
	iface/ltsmin/README, iface/ltsmin/beem-peterson.4.dve,
	iface/ltsmin/check.test, iface/ltsmin/defs.in, iface/ltsmin/finite.dve,
	iface/ltsmin/finite.test, iface/ltsmin/kripke.test,
	iface/ltsmin/ltsmin.cc, iface/ltsmin/ltsmin.hh,
	iface/ltsmin/modelcheck.cc: Factorize dve2 and spins interface in
	iface/ltsmin/
	* iface/ltsmin/elevator2.1.pm, iface/ltsmin/finite.pm: Test promela
	models.
	* README: Document iface/ltsmin/ directory.

2014-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	delete two unused files

	* src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh: Delete.
	* src/tgbaalgos/gtec/Makefile.am: Adjust.

2014-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

	Conflicts:
		NEWS
		configure.ac
		src/kripketest/bad_parsing.test
		src/ltltest/reduccmp.test
		src/neverparse/neverclaimscan.ll
		src/tgba/futurecondcol.cc
		src/tgba/tgbasafracomplement.cc
		src/tgbaalgos/hoa.cc
		src/tgbaalgos/ltl2tgba_fm.cc
		src/tgbatest/neverclaimread.test
		src/tgbatest/readsave.test

2014-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2.6a.

2014-12-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.6.

	* NEWS, configure.ac, doc/org/tools.org: Bump version number.

2014-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Mention the new gitlab page and repository.

2014-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around BSD sed not interpreting \r in s/$/\r/

	* src/kripketest/bad_parsing.test, src/tgbatest/neverclaimread.test,
	src/tgbatest/readsave.test: Use Perl for the unix2dos conversion.

2014-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: remove an incorect SERE simplification

	* src/ltlvisit/simplify.cc, doc/tl/tl.tex: Remove the rule.
	* src/ltltest/reduc0.test: Add a regression test.
	* src/ltltest/reduccmp.test: Adjust test cases for its removal.
	* NEWS: Mention it.

2014-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	work around BSD sed not interpreting \r in s/$/\r/

	* src/kripketest/bad_parsing.test, src/tgbatest/neverclaimread.test,
	src/tgbatest/readsave.test, src/tgbatest/hoaparse.test: Use Perl for the
	unix2dos conversion.

2014-12-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simplify: remove an incorect SERE simplification

	* src/ltlvisit/simplify.cc, doc/tl/tl.tex: Remove the rule.
	* src/ltltest/reduc0.test: Add a regression test.
	* src/ltltest/reduccmp.test: Adjust test cases for its removal.
	* NEWS: Mention it.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/hoaf.hh: Fix comment.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: remove the useless Finish operator

	* src/ltlast/unop.cc, src/ltlast/unop.hh src/ltlvisit/lbt.cc,
	src/ltlvisit/mark.cc, src/ltlvisit/simplify.cc,
	src/ltlvisit/tostring.cc, src/ltlvisit/tunabbrev.cc,
	src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc: Remove Finish.
	* src/tgbaalgos/ltl2taa.cc: Remove Finish, and simply use an empty
	destination to code the sink.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	how: fix multi-line incomplete strings

	Location tracking was incorrect for multi-line
	strings/comments/parentheses.  This also fixes and tests recovery on
	inclosed strings/comments/parentheses.

	* src/hoaparse/hoaparse.yy: Abort on expected EOF.
	* src/hoaparse/hoascan.ll: Track newlines inside strings and comments.
	Do not use unput() to close incomplete parentheses.
	* src/tgbatest/neverclaimread.test, src/tgbatest/hoaparse.test: Add
	more tests.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverclaim: fix reporting of parse_boolean() errors

	* src/hoaparse/hoaparse.yy: Correctly adjust the
	location of error messagges.
	* src/tgbatest/neverclaimread.test: Add test case.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverclaim: fix parsing of aliased states

	* src/graph/ngraph.hh (alias_states): Deal with the case
	of aliasing two existing states.
	* src/hoaparse/hoaparse.yy: Fix handling of aliased states.
	* src/tgbatest/neverclaimread.test: Augment test case.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: swallow the neverclaim parser

	This way we can easily parse a stream of HOAs intermixed with
	neverclaims.

	* src/hoaparse/hoaparse.yy, src/hoaparse/hoascan.ll: Add rules
	for neverclaims, adjusted from src/neverparse/neverclaimparse.yy
	and src/neverparse/neverclaimparse.ll.
	* src/hoaparse/public.hh, NEWS: Update documentation.
	* src/neverparse/: Remove this directory.
	* README, configure.ac, src/Makefile.am: Adjust accordingly.
	* src/tgbatest/ltl2tgba.cc, src/bin/ltlcross.cc: Use HOA
	parser to read neverclaims.
	* src/tgbatest/hoaparse.test, src/tgbatest/neverclaimread.test: Adjust.

2014-12-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Prefer swig-3.0 when available.

2014-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/random.cc: Declare the generator as static.

2014-12-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randomize: new function

	* src/tgbaalgos/randomize.cc, src/tgbaalgos/randomize.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/graph/graph.hh (rename_states_): New method.
	* src/bin/autfilt.cc: Add options --randomize and --seed.
	* src/tgbatest/randomize.test: Test them.
	* src/tgbatest/Makefile.am: Add randomize.test.
	* NEWS: Mention randomize().

2014-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: store the source indices in the transition vector

	... and use it to sort transitions.

	* src/graph/graph.hh: Adjust storage of source index.  Provide
	remove_dead_transitions_(), sort_transitions_() and
	chain_transitions_() methods.
	* src/tgba/tgbagraph.cc (merge_transitions): Rewrite using
	above methods.
	* src/tgba/tgbagraph.hh: Add a comparison operator for
	transitions.
	* src/tgbatest/degenlskip.test, src/tgbatest/det.test,
	src/tgbatest/ltl2ta.test, src/tgbatest/neverclaimread.test,
	src/tgbatest/readsave.test: Adjust expected transition order in test
	cases.

2014-12-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	satminimization: do not assume the initial state is 0

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Here.

2014-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	countstates: remove unused file

	* src/priv/countstates.cc, src/priv/countstates.hh: Delete.
	* src/priv/Makefile.am, src/tgbaalgos/postproc.cc: Adjust.

2014-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bddop: remove unused file

	* src/misc/bddop.cc, src/misc/bddop.hh: Delete.
	* src/misc/Makefile.am, src/ta/taexplicit.cc, src/ta/tgtaexplicit.cc,
	src/taalgos/tgba2ta.cc, src/tgba/taatgba.cc, src/tgba/tgbagraph.hh:
	Adjust.

2014-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	accconv, acccompl: remove unused files

	* src/priv/acccompl.cc, src/priv/acccompl.hh,
	src/priv/accconv.cc, src/priv/accconv.hh: Delete.
	* src/priv/Makefile.am: Adjust.
	* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/scc.cc,
	src/tgbaalgos/sccinfo.cc, src/tgbaalgos/simulation.cc: Remove unused
	includes.

2014-12-01  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlfile: remove unused file

	* src/ltlparse/ltlfile.cc, src/ltlparse/ltlfile.hh: Delete.
	* src/ltlparse/Makefile.am: Adjust.

2014-11-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	defaultenv: simplify usage

	* src/ltlenv/defaultenv.hh, src/ltlenv/defaultenv.cc (require): Return
	an atomic_prop*, not a formula*.
	* src/bin/randaut.cc, src/bin/randltl.cc, src/ltlvisit/apcollect.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Do not cast
	the return of require().

2014-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/randltl.cc: Fix typos in examples.

2014-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	document autfilt and randaut

	* NEWS: Mention these tools.
	* doc/org/autfilt.org, doc/org/randaut.org: New files.
	* doc/org/tools.org, doc/Makefile.am: Add them.

2014-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randaut: new binary

	* src/bin/randaut.cc, src/bin/man/randaut.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Adjust.
	* src/tgbaalgos/randomgraph.hh, src/tgbaalgos/randomgraph.cc:
	Add an option to output state-based acceptance, and update
	the TGBA properties.
	* src/tgbatest/randaut.test: New test.
	* src/tgbatest/Makefile.am: Add it.

2014-11-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/randltl.cc: Fix typos in examples.

2014-11-29  Thibaud Michaud  <michau_n@epita.fr>

	Add documentation for is_stutter_invariant.

	* src/tgbaalgos/stutter_invariance.hh: Add documentation.

2014-11-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: fix spot.py script for new acceptance interface

	* wrap/python/ajax/spot.in: Adjust to the new interface.
	* wrap/python/spot.i: Work around missing support for nested classes.
	* wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test: More
	test.

2014-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter: fiddle with the benchmark

	* bench/stutter/stutter_bench.sh: Add headers in the CSV files, and also
	run stutter_invariance_randomgraph.
	* bench/stutter/stutter_invariance_formulas.cc: Remove space from CSV
	output.
	* bench/stutter/stutter_invariance_randomgraph.cc: Likewise, plus fix
	the call to is_stutter_invariant(), and return an average time.
	* bench/stutter/stutter.ipynb: Adjust.
	* bench/stutter/README: Simplify.
	* bench/stutter/Makefile.am: Distribute the script and python notebook.

2014-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/closure.cc: Fix invalid read.

2014-11-26  Thibaud Michaud  <michau_n@epita.fr>

	Adding README in bench/stutter/.

	* bench/stutter/README: Document stutter-invariance benchmarks.

2014-11-26  Thibaud Michaud  <michau_n@epita.fr>

	Adding ipython notebook to visualize stutter-invariance benchmarks.

	* bench/stutter/stutter_bench.sh: Collect benchmarks for different
	number of atomic propositions in a single csv file.
	* bench/stutter/stutter.ipynb: Visualize benchmarks generated by
	stutter_bench.sh.

2014-11-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	export a create_atomic_prop_set() function

	* src/ltlvisit/apcollect.hh,
	src/ltlvisit/apcollect.cc (create_atomic_prop_set): New function.
	* src/bin/randltl.cc, bench/stutter/stutter_invariance_randomgraph.cc:
	Use it.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: rename hoaf_reachable() to hoa_reachable()

	* src/tgbaalgos/hoaf.cc, src/tgbaalgos/hoaf.hh: Rename to...
	* src/tgbaalgos/hoa.cc, src/tgbaalgos/hoa.hh: ... these, and
	fix the function names.
	* src/tgbaalgos/Makefile.am, src/bin/autfilt.cc,
	src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/tgbatest/ltl2tgba.cc:
	Adjust all calls.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlparse/ltlscan.ll: Mark as non-interactive.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix handling of escaped characters in atomic propositions

	(No test, this is just a simple backport of a fix from the development
	branch, where it is tested.)

	* src/tgbaalgos/hoaf.cc: Do not call to_string() to display names, as
	this would add another level of escaping.
	* NEWS: Mention it.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: more coverage for the parser

	* src/tgbatest/hoaparse.test: More tests.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: check parsing from stdin

	* src/tgbatest/hoaparse.test: More test.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: test DOS-style input

	* src/tgbatest/hoaparse.test: Add test.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix handling of escaped characters in atomic propositions

	* src/hoaparse/hoascan.ll: Remove superfluous line.
	* src/tgbaalgos/hoaf.cc: Do not call to_string() to display names, as
	this would add another level of escaping.
	* src/tgbatest/hoaparse.test: Test it.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: diagnose non-existant files

	* src/bin/autfilt.cc: Catch exception.
	* src/tgbatest/hoaparse.test: Test it.

2014-11-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: improve parser and scanner

	* src/hoaparse/hoaparse.yy: Improve error reporting
	in case labeled edges are mixed with unlabeled edges.
	* src/hoaparse/hoascan.ll: Fix handling of nested comments.
	* src/tgbatest/hoaparse.test: More coverage.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention the HOA parser.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add some error recovery

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: More tests.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: diagnose unsupported Headers

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Test it.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add support for multiple initial states

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Add tests.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: report aborted HOA files

	* src/bin/ltlcross.cc: Here.
	* src/tgbatest/ltlcross3.test: Add test case.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add support for --ABORT--

	* src/hoaparse/parsedecl.hh (hoa_abort): New structure.
	* src/hoaparse/hoascan.ll: Throw hoa_abort on --ABORT--.
	* src/hoaparse/hoaparse.yy: Deal with this exception.
	* src/hoaparse/public.hh: Add a boolean flag to mark aborted automata.
	* src/bin/autfilt.cc: Report aborted automata.
	* src/tgbatest/hoaparse.test: Add test case.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: allocate the states once, after parsing the header

	* src/hoaparse/hoaparse.yy: Allocate state after parsing the entire
	header, not right after passing "States:".
	* src/tgbatest/hoaparse.test: Reflect improved error message
	about initial state.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: support Inf(!x)

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: More tests.
	* src/tgba/acc.hh (operator^=): New method.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add alias support

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Test it.

2014-11-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: catch redefinition of states

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: More test.

2014-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: add support for unlabeled transitions

	* src/hoaparse/hoaparse.yy: Here.
	* src/tgbatest/hoaparse.test: Add tests.

2014-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: make the parser more resilient to errors

	* src/hoaparse/hoaparse.yy: Improve error recovery,
	and fix location tracking in streams.
	* src/hoaparse/public.hh: Store the last location so
	that the next parse start at the correct position.
	* src/bin/autfilt.cc: Stop parsing a stream on irrecoverable errors.
	* src/tgbatest/hoaparse.test: Adjust tests.

2014-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	monitor: add a few tests

	* src/tgbatest/monitor.test: New file.
	* src/tgbatest/Makefile.am: Add it.
	* src/tgbaalgos/minimize.cc (minimize_monitor): Mark
	the output automaton as state-based.
	* src/tgba/tgbagraph.hh: Assume automata with 0 acceptance sets are also
	state-based.

2014-11-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt, dstar2tgba: fix --help

	* src/bin/autfilt.cc, src/bin/dstar2tgba.cc: Do not reference the
	formula in --help.

2014-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: make it possible to read a stream of automata

	* src/bin/autfilt.cc: Loop over all automata in a file.
	* src/hoaparse/public.hh: Turn the parser into an object.
	* src/hoaparse/hoaparse.yy: Adjust.

2014-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	autfilt: first stub

	* src/bin/autfilt.cc, src/bin/man/autfilt.x: New files.
	* src/bin/Makefile.am, src/bin/man/Makefile.am: Add them.
	* src/bin/common_post.cc, src/bin/common_post.hh: Adjust.

2014-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/dstar2tgba.cc: Remove a useless include.

2014-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add support for reading TGBA as HOA

	* src/bin/ltlcross.cc: Add a %H modifier.
	* src/tgbatest/ltlcross2.test: Exercise it.

2014-11-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: preliminary implementation of a parser

	* src/hoaparse/Makefile.am, src/hoaparse/fmterror.cc,
	src/hoaparse/hoaparse.yy, src/hoaparse/hoascan.ll,
	src/hoaparse/parsedecl.hh, src/hoaparse/public.hh: New files.
	* src/Makefile.am, configure.ac, README: Adjust.
	* src/tgbatest/ltl2tgba.cc: Add a -XH option.
	* src/tgbatest/hoaparse.test: New file.
	* src/tgbatest/Makefile.am: Adjust.
	* buddy/src/bddx.h: Add a bdd_from_int() function.

2014-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoa: fix output

	* src/tgbaalgos/hoaf.cc: Do not initialize acc_cond::mark_t with -1U.

2014-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix line number tracking in files with DOS newlines

	* src/dstarparse/dstarscan.ll, src/kripkeparse/kripkescan.ll,
	src/neverparse/neverclaimscan.ll, src/tgbaparse/tgbascan.ll:
	Distinguish between 1-sized EOL and 2-sized EOL.
	* src/kripketest/bad_parsing.test, src/tgbatest/neverclaimread.test,
	src/tgbatest/readsave.test: Add more tests.
	* NEWS: Mention it.
	* src/kripkeparse/scankripke.ll: Remove this unused file.

2014-11-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix line number tracking in files with DOS newlines

	* src/dstarparse/dstarscan.ll, src/kripkeparse/kripkescan.ll,
	src/neverparse/neverclaimscan.ll, src/tgbaparse/tgbascan.ll:
	Distinguish between 1-sized EOL and 2-sized EOL.
	* src/kripketest/bad_parsing.test, src/tgbatest/neverclaimread.test,
	src/tgbatest/readsave.test: Add more tests.
	* NEWS: Mention it.
	* src/kripkeparse/scankripke.ll: Remove this unused file.

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention the new stutter invariance check

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/remove_x.test: More tests.

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the stutter test from tgbatest/.

	Because src/ltltest/stutter.test is stronger.

	* src/tgbatest/stutter_invariant.test: Remove.
	* src/tgbatest/Makefile.am: Adjust.

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	stutter check: cleanup and add test cases

	* src/ltltest/ltlfilt.test: Add more tests.
	* src/ltltest/stutter.test: New test.
	* src/ltltest/Makefile.am: Adjust.
	* src/bin/ltlfilt.cc: Catch std::runtime_error.
	* src/tgba/tgbasl.hh (make_tgbasl): New function.
	* src/tgba/tgbagraph.hh (make_tgba_graph): Add another overload.
	* src/tgbaalgos/stutter_invariance.cc,
	src/tgbaalgos/stutter_invariance.hh: Take the algorithm version as an
	optional integer, and call getenv() only once.
	* bench/stutter/stutter_invariance_randomgraph.cc,
	bench/stutter/stutter_invariance_formulas.cc: Simplify using the
	above functions.

2014-11-14  Thibaud Michaud  <michau_n@epita.fr>

	Optimizing closure and sl.

	* src/tgbaalgos/closure.cc, src/tgbaalgos/closure.hh: Using vectors
	instead of sets and unordered maps, adding an overload to handle rvalue
	references.
	* src/tgbaalgos/stutterize.cc, src/tgbaalgos/stutterize.hh: Adding
	an overload to handle rvalue references.
	* bench/stutter/stutter_invariance_formulas.cc,
	bench/stutter/stutter_invariance_randomgraph.cc: Automata are modified
	in-place by is_stutter_invariant so they have to be copied before being
	processed.
	* src/tgbaalgos/stutter_invariance.cc,
	src/tgbaalgos/stutter_invariance.hh: Use the in-place version of
	closure and sl.

2014-11-14  Thibaud Michaud  <michau_n@epita.fr>

	Remove const qualifier in translator::run return type

	* src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh: Remove const
	qualifier in translator::run return type.

2014-11-14  Thibaud Michaud  <michau_n@epita.fr>

	Adding tgba-based stutter-invariance checking

	* src/tgbaalgos/closure.cc, src/tgbaalgos/closure.hh:
	Add closure function.
	* src/tgbaalgos/stutterize.cc, src/tgbaalgos/stutterize.hh:
	Add two implementations of "self-loopize" function.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgba/tgbasl.cc, src/tgba/tgbasl.hh: On-the-fly implementation of
	self-loopize.
	* src/tgba/Makefile.am: Add it.
	* src/tgbatest/ltl2tgba.cc, src/tgbatest/stutter_invariant.test: Test
	closure and sl.
	* src/tgbatest/Makefile.am: Adjust.
	* src/bin/ltlfilt.cc: Modify stutter-invariant option to use
	automaton-based checking rather than syntactic-based checking.
	* src/ltlvisit/remove_x.cc, src/ltlvisit/remove_x.hh:
	Remove is_stutter_insensitive function.
	* src/tgbaalgos/stutter_invariance.cc,
	src/tgbaalgos/stutter_invariance.hh: Check if a formula is
	stutter-invariant using closure and sl.
	* wrap/python/spot.i: Add closure and sl bindings.
	* bench/stutter/stutter_invariance_formulas.cc: Generate benchmarks from
	given formulas.
	* bench/stutter/stutter_invariance_randomgraph.cc: Generate benchmarks
	from random automata.
	* bench/stutter/Makefile.am: Add them.
	* configure.ac: Add bench/stutter/Makefile.
	* bench/Makefile.am: Add stutter subdirectory.
	* README: Document bench/stutter directory.

2014-11-14  Thibaud Michaud  <michau_n@epita.fr>

	Adding trans_storage methods to tgbagraph.hh

	* src/tgba/tgbagraph.hh: Adding trans_storage methods to access
	the underlying trans_storage_t struct.

2014-11-14  Thibaud Michaud  <michau_n@epita.fr>

	random_graph: add option to generate complete deterministic automaton

	* src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh:
	Add option to generate a complete deterministic automaton.
	* src/tgbatest/randtgba.cc: Test it.

2014-11-14  Thibaud Michaud  <michau_n@epita.fr>

	Adding option to filter by number of atomic propositions in ltlfilt.

	* src/bin/ltlfilt.cc: Add --ap=N option.

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention the std::set assignment workaround.

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: fix non-deterministic output

	The ltl_to_tgba_fm() translation function was using a hash_map of
	maps (ugh!) to merge transitions on output.  However recent libstd++
	changed the implementation of hash_map (a.k.a. unordered_map) causing
	transitions to be output in a different order.  This
	implementation-dependent order caused the ltl2ta.test to fail because
	the BA->TA transformation can produce TA of different sizes if you
	simply change the order of transitions in the input BA! This does not
	sound like a nice property for the BA->TA transformation, but Ala Eddine
	isn't sure how to fix it yet.  In the meantime, this patch makes sure
	ltl_to_tgba_fm() will return the same output regardless of the
	implementation of hash_map.

	The ltl2ta.test failure has been observed with g++ 4.9.2 on Arch Linux,
	and with gcc-snapshot (5.0.0 20141016) on Debian.

	* src/tgbaalgos/ltl2tgba_fm.cc: Rewrite the transition merging
	using a std::vector and std::sort instead of nested maps tables.
	* src/tgbatest/ltl2ta.test: Adjust sizes to the new order.
	* NEWS: Mention the fix.

2014-11-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention the std::set assignment workaround.

2014-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	futurecondcol: avoid gcc-snapshot bug

	* src/tgba/futurecondcol.cc: Use swap instead of assignement.  It is
	more efficient, and it avoid the bug of gcc-snapshot mentionned two
	commits below.

2014-11-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: fix non-deterministic output

	The ltl_to_tgba_fm() translation function was using a hash_map of
	maps (ugh!) to merge transitions on output.  However recent libstd++
	changed the implementation of hash_map (a.k.a. unordered_map) causing
	transitions to be output in a different order.  This
	implementation-dependent order caused the ltl2ta.test to fail because
	the BA->TA transformation can produce TA of different sizes if you
	simply change the order of transitions in the input BA! This does not
	sound like a nice property for the BA->TA transformation, but Ala Eddine
	isn't sure how to fix it yet.  In the meantime, this patch makes sure
	ltl_to_tgba_fm() will return the same output regardless of the
	implementation of hash_map.

	The ltl2ta.test failure has been observed with g++ 4.9.2 on Arch Linux,
	and with gcc-snapshot (5.0.0 20141016) on Debian.

	* src/tgbaalgos/ltl2tgba_fm.cc: Rewrite the transition merging
	using a std::vector and std::sort instead of nested maps tables.
	* NEWS: Mention the fix.

2014-11-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbasafracomplement: avoid some std::set copies

	* src/tgba/tgbasafracomplement.cc: Here.  Beside being more efficient,
	the use of std::swap instead of an assignment also protects us from a
	bug recently introduced in the development version of G++.
	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63698

2014-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: use "final" and "override" in the AST classes

	* src/ltlast/atomic_prop.hh, src/ltlast/binop.hh, src/ltlast/bunop.hh,
	src/ltlast/constant.hh, src/ltlast/unop.hh: Here.
	* src/misc/common.hh: Disable final for swig3.0.

2014-11-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Prefer swig-3.0 when available.

2014-10-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbasafracomplement: avoid some std::set copies

	* src/tgba/tgbasafracomplement.cc: Here.  Beside being more efficient,
	the use of std::swap instead of an assignment also protects us from a
	bug recently introduced in the development version of G++.
	https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63698

2014-10-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	buddy: rename libbdd to libbddx

	* buddy/src/bdd.h, buddy/src/bvec.h, buddy/src/fdd.h: Rename as...
	* buddy/src/bddx.h, buddy/src/bvecx.h, buddy/src/fddx.h: ... these.
	* buddy/src/Makefile.am: Build libbddx.la instead of libbdd.la.
	* buddy/examples/Makefile.def: Use it.
	* Makefile.am, buddy/src/bddtest.cxx, buddy/src/bvec.c,
	buddy/src/cppext.cxx, buddy/src/fdd.c, buddy/src/imatrix.h,
	buddy/src/kernel.h, buddy/examples/adder/adder.cxx,
	buddy/examples/bddcalc/parser_.h, buddy/examples/bddtest/bddtest.cxx,
	buddy/examples/cmilner/cmilner.c, buddy/examples/fdd/fdd.cxx,
	buddy/examples/milner/milner.cxx, buddy/examples/money/money.cxx,
	buddy/examples/queen/queen.cxx, buddy/examples/solitare/solitare.cxx,
	m4/buddy.m4, src/ltlvisit/apcollect.hh, src/ltlvisit/simplify.hh,
	src/misc/bddlt.hh, src/misc/bddop.hh, src/misc/minato.hh,
	src/priv/acccompl.hh, src/priv/accconv.hh, src/priv/accmap.hh,
	src/priv/bddalloc.cc, src/tgba/bdddict.hh, src/tgba/bddprint.hh,
	src/tgba/tgbamask.hh, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/sccstack.hh,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccinfo.hh,
	src/tgbaalgos/weight.hh, wrap/python/buddy.i: Adjust.
	* NEWS, README: Document it.

2014-10-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: speedup purge_unreachable_states slightly

	* src/tgba/tgbagraph.cc (purge_unreachable_states): Rewrite using
	only one vector.

2014-10-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	misc: define SPOT_LIKELY and SPOT_UNLIKELY

	* src/misc/common.hh: Here.
	* src/misc/intvcmp2.cc, src/misc/intvcomp.cc: Adjust to use them.

2014-10-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: add a copy constructor, and obsolete dupexp

	* src/tgba/tgbagraph.hh, src/tgba/tgbagraph.cc: Add a copy constructor,
	and some method to purge unreachable states.
	* src/graph/graph.hh (defrag_states): Erase transition of removed
	states.
	* src/tgbaalgos/complete.cc, src/tgbaalgos/compsusp.cc,
	src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/simulation.cc,
	src/tgbatest/checkpsl.cc, src/tgbatest/emptchk.cc,
	src/tgbatest/ltl2tgba.cc: Adjust to use make_tgba_digraph() instead
	of tgba_dupexp_dfs() or tgba_dupexp_bfs().
	* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Use
	make_tgba_digraph() when possible.
	* src/tgbatest/det.test, src/tgbatest/sim.test: Adjust expected results.

2014-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: get rid of formula_ptr_hash

	* src/ltlast/formula.hh: Specialize std::hash<>.
	* src/ltlvisit/contain.hh, src/ltlvisit/relabel.cc,
	src/tgba/taatgba.hh, src/tgbaalgos/ltl2tgba_fm.cc: Do
	not pass formula_ptr_hash to unordered_map.

2014-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	fix compilation with clang++-3.6 -Wdocumentation

	* src/tgba/tgbasafracomplement.cc: Remove documentation of inexisting
	argument.
	* src/tgbaalgos/hoaf.hh: Fix typo in documentation.

2014-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lib: remove the gethrxtime module

	Since we are now using std::chrono from C++11.

	* lib/gethrxtime.c, lib/gethrxtime.h, lib/gettime.c, lib/timespec.c,
	lib/timespec.h, lib/xtime.c, lib/xtime.h, m4/clock_time.m4,
	m4/gethrxtime.m4, m4/gettime.m4, m4/timespec.m4: Delete these files.
	* lib/Makefile.am, m4/gnulib-cache.m4, m4/gnulib-comp.m4: Adjust.

2014-10-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	timer: add a stopwatch for timing a simple operation

	* src/misc/timer.hh (stopwatch): New class, implemented on top
	of C++11's std::chrono::high_resolution_clock.
	* src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/bin/ltlcross.cc:
	Use it in lieu of gethrxtime(), so we do not need to distribute
	gethrxtime anymore.

2014-10-25  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: get rid of ltl::ref_formula

	Instead, manage all reference counting from ltl::formula.
	It ridance of virtual calls to clone() and destroy() easily compensate
	the extra test in destroy() to not delete constant nodes.

	* src/ltlast/refformula.cc, src/ltlast/refformula.hh: Delete.
	* src/ltlast/Makefile.am, wrap/python/spot.i: Adjust.
	* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
	src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/bunop.cc,
	src/ltlast/bunop.hh, src/ltlast/formula.cc, src/ltlast/formula.hh,
	src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
	src/ltlast/unop.hh: Ajust the reference counting code.

2014-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl: rename formula::count_ as formula::serial_.

	* src/ltlast/formula.hh, src/ltlast/formula.cc: Here.

2014-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: add a purge_dead_states() method

	* src/tgba/tgbagraph.hh, src/tgba/tgbagraph.cc (purge_dead_states): New.
	* src/graph/graph.hh (defrag_states): New methods.
	* src/tgbaalgos/dtgbacomp.cc: Use it.
	* src/tgbatest/det.test: Fix state number.

2014-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: compatibility with org 8

	* doc/org/init.el.in: Add compatibility with org 8.
	* NEWS: Mention it.

2014-10-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: compatibility with org 8

	* doc/org/init.el.in: Add compatibility with org 8.
	* NEWS: Mention it.

2014-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace most uses of scc_map by scc_info.

	This involves reimplementing some algorithms using tgba_digraph, and
	implementing an explicit product that takes two tgba_digraphs and
	produces a tgba_digraph.

	* src/tgbaalgos/product.cc, src/tgbaalgos/product.hh: New files.
	* src/tgbaalgos/Makefile.am: Adjust.
	* src/bin/ltlcross.cc, src/tgba/tgba.cc, src/tgba/tgba.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh,
	src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/minimize.hh,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/safety.cc, src/tgbaalgos/safety.hh,
	src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh,
	src/tgbatest/complementation.cc, src/tgbatest/emptchk.cc,
	src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/randtgba.cc: Update to use scc_info and/or tgba_digraph.

2014-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/tgbagraph.cc: Improve comment.

2014-10-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbagraph: fix detection of dead transitions

	* src/graph/graph.hh (digraph::digraph): Mark transition 0 as dead.
	(digraph::is_dead_transition): Fix prototype.
	* src/tgba/tgbagraph.hh (tgba_digraph::is_dead_transition): Fix
	prototype.

2014-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Some cleanup of Thibaud's patches.

	* AUTHORS: Add Thibaud.
	* NEWS: Mention ltlgrind and ltlcross --grind.
	* src/ltlvisit/mutation.hh, src/ltlvisit/mutation.cc:
	Use an enum instead of #define.  Rename get_mutations()
	into mutate().  Other minor cosmetic changes.
	* src/bin/ltlgrind.cc: Adjust.
	* src/bin/ltlcross.cc: Slight changes the the output
	* doc/org/ltlcross.org, doc/org/ltlgrind.org: Minor
	rewordings and fix for org-mode syntax.
	* src/ltltest/ltlcrossgrind.test,
	src/ltltest/ltlgrind.test: Fix copyright year.

2014-10-06  Thibaud Michaud  <michau_n@epita.fr>

	ltlcross: adding option --grind=FILENAME

	Suggested by Joachim Klein.

	When a bogus formula is found by ltlcross, the --grind=FILENAME option
	tries to find a smaller formula for which the bug is still present, and
	outputs it in FILENAME.

	* src/bin/ltlcross.cc: Add the --grind option.
	* doc/org/ltlcross.org: Document the --grind option.
	* src/ltltest/ltlcrossgrind.test: Test it.
	* src/ltltest/Makefile.am: Add test.

2014-10-06  Thibaud Michaud  <michau_n@epita.fr>

	Adding ltlgrind as a command-line tool

	* src/bin/ltlgrind.cc: New file, command-line tool to get mutations of a
	formula.
	* src/bin/Makefile.am: Add it.
	* src/ltlvisit/mutation.hh, src/ltlvisit/mutation.cc:
	New files providing the get_mutations function.
	* src/ltlvisit/Makefile.am: Add it.
	* src/ltltest/ltlgrind.test: Test it.
	* src/ltltest/Makefile.am: Add it.
	* src/bin/man/ltlgrind.x: Document it.
	* src/bin/man/Makefile.am: Add it.
	* doc/org/ltlgrind.org: Document it.
	* doc/org/tools.org: Add link to ltlgrind documentation page.

2014-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove support for state-based alternating automata.

	This was never actually used and we have a new implementation of
	alternating automata coming.

	* src/saba/, src/sabaalgos/, src/sabatest/: Remove.
	* src/Makefile.am, configure.ac, README: Adjust.
	* NEWS: Mention it.

2014-10-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Store membership to acceptance sets using bitsets, not BDDs.

	This is a huge patch, that took over a month to complete.  The bit sets
	are currently restricted to what 'unsigned can store', but it should be
	easy to extend it to 'uint64_t' should we need it.

	* NEWS: Update.
	* src/tgba/acc.hh: New file.
	* src/tgbatest/acc.cc, src/tgbatest/acc.test: Test it.
	* src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.hh,
	src/tgba/tgbasgba.cc, src/tgba/tgbasgba.hh: Delete.  The KV
	complementation is too slow to be used in practice, and I somehow broke
	it during the conversion to bitsets.  The tgba->sgba conversion was only
	used for the KV complementation, and should be better redone on
	tgba_digraph_ptr should it be needed again.
	* src/bin/ltlcross.cc, src/dstarparse/dra2ba.cc,
	src/dstarparse/nsa2tgba.cc, src/graphtest/tgbagraph.cc,
	src/graphtest/tgbagraph.test, 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/misc/hash.hh, src/neverparse/neverclaimparse.yy, src/priv/accmap.hh,
	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/dotty.cc,
	src/taalgos/emptinessta.cc, src/taalgos/minimize.cc,
	src/taalgos/tgba2ta.cc, src/tgba/Makefile.am, src/tgba/fwd.hh,
	src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.cc,
	src/tgba/tgba.hh, src/tgba/tgbagraph.cc, src/tgba/tgbagraph.hh,
	src/tgba/tgbamask.cc, src/tgba/tgbamask.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
	src/tgbaalgos/bfssteps.cc, src/tgbaalgos/complete.cc,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/ce.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/hoaf.cc,
	src/tgbaalgos/isweakscc.cc, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
	src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/postproc.cc, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh,
	src/tgbaalgos/reducerun.cc, src/tgbaalgos/replayrun.cc,
	src/tgbaalgos/safety.cc, src/tgbaalgos/save.cc, src/tgbaalgos/scc.cc,
	src/tgbaalgos/scc.hh, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh,
	src/tgbaalgos/se05.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.cc,
	src/tgbaalgos/stripacc.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/weight.cc,
	src/tgbaalgos/weight.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/Makefile.am, src/tgbatest/complementation.cc,
	src/tgbatest/complementation.test, src/tgbatest/degenlskip.test,
	src/tgbatest/det.test, src/tgbatest/dstar.test, src/tgbatest/emptchk.cc,
	src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
	src/tgbatest/explpro4.test, src/tgbatest/explprod.test,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltl2tgba.test,
	src/tgbatest/maskacc.cc, src/tgbatest/maskacc.test,
	src/tgbatest/neverclaimread.test, src/tgbatest/randtgba.cc,
	src/tgbatest/readsave.test, src/tgbatest/sim.test,
	src/tgbatest/sim2.test, src/tgbatest/spotlbtt.test,
	src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
	iface/dve2/dve2.cc: Adjust or use to the new acceptance interface.

2014-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/graphtest/tgbagraph.cc: Add parentheses to please gcc-snapshot.

2014-09-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

	* configure.ac, NEWS: Bump version to 1.99a at the same time.

2014-09-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaf: rename I(i) as Inf(i).

	We just changed the format specification today.

	* src/tgbaalgos/hoaf.cc: Here.
	* NEWS: mention it.

2014-08-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverparse: diagnose redefinition of state labels

	Reported by Joachim Klein.

	* src/neverparse/neverclaimparse.yy: Store labels and the
	location of their first definition in a global map to catch
	redefinitions.
	* src/tgbatest/neverclaimread.test: Test it.
	* NEWS: Mention it.

2014-08-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: fix missing check for complement of negative automata

	* src/bin/ltlcross.cc: Fix it.
	* src/tgbatest/ltl2dstar.test: Test it.
	* NEWS: Mention it.

2014-08-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: add --verbose option

	* src/bin/ltlcross.cc: Implement it.
	* NEWS: Mention it.

2014-08-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/ltlcross.org: Typos.

2014-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove wdbacomp.cc and wdbacomp.hh

	The weak complementation is now implemented by dtgba_complement(), with
	dispatch based on the automaton property.

	* src/tgba/wdbacomp.cc, src/tgba/wdbacomp.hh: Remove.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbaalgos/dtgbacomp.cc: Implement the weak version.
	* src/tgbaalgos/dtgbacomp.hh: Document it.
	* src/tgbaalgos/minimize.cc: Use dtgba_complement() instead.

2014-08-30  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove futurecondcol and tgbascc.

	They are not used in Spot, and their interface is really horrible.  They
	are used in SOG-ITS to implement the SLAP product from TACAS'11, so we
	should support the functionality eventually, but maybe using the new
	kind of properties that can be attached to automata.  In the meantime,
	these classes are making refactoring harder.

	* src/tgba/futurecondcol.cc, src/tgba/futurecondcol.hh,
	src/tgba/tgbascc.cc, src/tgba/tgbascc.hh: Delete.
	* src/tgba/Makefile.am, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/checkpsl.cc, src/tgbatest/emptchk.cc: Adjust.

2014-08-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	python: add an SVG printer for automata

	* wrap/python/spot.i (tgba._repr_svg_): Call dot to
	output SVG using the same logic as in Vaucanson 2.

2014-08-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Better formula I/O for ipython.

	* src/ltlparse/public.hh, src/ltlparse/ltlparse.yy,
	src/ltlparse/ltlscan.ll (parse_error): New class.
	(parse_formula): New function that raises a parse_error
	exception on error.
	* src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc:
	(to_sclatex_string): New method.
	* wrap/python/spot.i: Catch the parser_error exception,
	and use the to_sclatex_string for MathJax rendering.
	* wrap/python/tests/run.in: Start ipython on demand.

2014-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use shared_ptr for the emptiness check interfaces.

	At the same time, this adds a is_empty() method to the tgba class,
	simplifying many places that ran emptiness checks.

	* iface/dve2/dve2check.cc, src/bin/ltlcross.cc,
	src/dstarparse/dra2ba.cc, src/ltlvisit/contain.cc, src/tgba/tgba.cc,
	src/tgba/tgba.hh, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/ce.cc,
	src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gv04.cc,
	src/tgbaalgos/gv04.hh, src/tgbaalgos/magic.cc,
	src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/projrun.cc, src/tgbaalgos/projrun.hh,
	src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh,
	src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh,
	src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh,
	src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
	src/tgbaalgos/word.cc, src/tgbaalgos/word.hh,
	src/tgbatest/checkpsl.cc, src/tgbatest/complementation.cc,
	src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/randtgba.cc, wrap/python/ajax/spot.in,
	wrap/python/spot.i: Use shared_ptr.

2014-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	apcollect: Fix prototype.

	* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh: Take automaton
	by reference.

2014-08-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove useless forward declarations of class tgba.

	* src/tgbaalgos/compsusp.hh, src/tgbaalgos/dotty.hh,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/hoaf.hh,
	src/tgbaalgos/neverclaim.hh, src/tgbaalgos/randomgraph.hh,
	src/tgbaalgos/simulation.hh: Here.

2014-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/hoaf.hh: Typos in comments.

2014-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/hoaf.hh: Typos in comments.

2014-08-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch master (Spot 1.2.5) into next.

	* src/bin/dstar2tgba.cc, src/bin/ltlcross.cc, src/bin/randltl.cc,
	src/ltltest/reduccmp.test, src/neverparse/neverclaimparse.yy,
	src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/ltlcross.test, src/tgbatest/neverclaimread.test,
	wrap/python/ajax/ltl2tgba.html: Fix conflicts.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2.5a.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.2.5.

	* configure.ac, doc/org/tools.org, NEWS: Bump version to 1.2.5.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbatest/ltlcross.test: More formulas from Joachim.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: fix translation of !{f} as done last year for {f}

	* src/tgbaalgos/ltl2tgba_fm.cc: Fix.
	* src/tgbatest/randpsl.test: Rewrite using ltlcross and add a testcase.
	* NEWS: Mention it.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/org/satmin.org: Tweak so org-mode does not botch the output.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Separate the ltl3ba tabs from the others.

	Suggested by Joachim Klein.

	* wrap/python/ajax/ltl2tgba.html: Name the tab.
	* wrap/python/ajax/css/ltl2tgba.css: Give it some space.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba.html: Add option to output LBT format.

	Suggested by Joachim Klein.

	* wrap/python/ajax/ltl2tgba.html: New option.
	* wrap/python/ajax/protocol.txt, NEWS: Document it.
	* wrap/python/ajax/spot.in: Implement it.
	* wrap/python/spot.i: Export src/ltlvisit/lbt.hh.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* wrap/python/ajax/ltl2tgba.html: Update tooltips.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: implement a --save-bogus=FILENAME option

	Suggested by Joachim Klein.

	* src/bin/ltlcross.cc: Implement it.
	* src/tgbatest/ltlcross3.test: Test it.
	* doc/org/ltlcross.org, NEWS: Document it.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: do not reset the seed between formulas

	Reported by Joachim Klein.

	* src/bin/randltl.cc: Here.
	* NEWS: Mention the fix.

2014-08-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randltl: accept a number of atomic propositions

	Suggested by Joachim Klein.

	* src/bin/randltl.cc: Implement it.
	* src/ltltest/rand.test: Test it.
	* doc/org/randltl.org, NEWS: Document it.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hoaf: first implementation of the HOA Format output.

	The specifications are at http://adl.github.io/hoaf/

	* src/tgbaalgos/hoaf.cc, src/tgbaalgos/hoaf.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
	src/tgbatest/ltl2tgba.cc: Add option to output HOA.
	* NEWS: Mention it.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Support LBT formula in ltl2tgba.html.

	Suggested by Joachim Klein.

	* wrap/python/ajax/spot.in: Try parse_lbt() when parse() fails.
	* NEWS: Mention it.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: display formulas in blue instead of white

	So that people using white-background terminal can still read them...
	Reported by Joachim Klein.

	* src/bin/ltlcross.cc: Adjust.
	* NEWS: Mention it.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl2tgba_fm: Fix incorrect simplification of promises for M

	The bug was reported by Joachim Klein.

	* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::register_a_variable):
	Reduce P(a M b) to P(a & b), not to P(a).
	* src/tgbatest/ltlcross.test: Test Joachim's formula.
	* src/tgbatest/ltl2ta.test: Adjust some expected values.
	* NEWS: Mention the bug.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtbasat,dtgbasat: rewrite using the tgba_digraph interface

	This gets rid of many state*/int conversions.  We now use scc_info
	instead of scc_map.  Finally the loops are now all 0-based.

	* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh (weak_sccs): New
	method.
	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtbasat.hh,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dtgbasat.hh: Use the
	tgba_digraph interface.
	* src/tgbatest/ltl2tgba.cc: Adjust calls.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/complete.cc: Introduce a sink state only if needed.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: Add a is_dead_transition method.

	* src/graph/graph.hh, src/tgba/tgbagraph.hh (is_dead_transition): New
	method.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh: Cleanup.

2014-08-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	use scc_info instead of scc_map in a couple of easy places

	* src/bin/dstar2tgba.cc, src/bin/ltlcross.cc, src/tgbaalgos/stats.cc,
	src/tgbaalgos/simulation.cc: Use scc_info instead of scc_map.
	* src/tgbaalgos/stats.hh, src/bin/common_output.hh: Change parameters
	types to be tgba_digraph_ptr instead tgba_ptr, so that scc_info can be
	used.

2014-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bivect: workaround flexible arrays not being standard C++

	This is a -pedantic warning from gcc.

	* src/misc/bitvect.cc, src/misc/bitvect.hh (storage_): Remove.
	(storage): New method to access past the end of the struct.

2014-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: merge succiter.hh, state.hh, and tgba.hh

	It makes it easier to browse tgba/.

	* src/tgba/state.hh, src/tgba/succiter.hh: Delete, and
	move the contents...
	* src/tgba/tgba.hh: ... here.
	* src/tgba/Makefile.am: Adjust.
	* src/graphtest/ngraph.cc, src/kripke/fairkripke.hh,
	src/saba/sabacomplementtgba.cc, src/ta/ta.hh,
	src/tgba/tgbakvcomplement.cc, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/bfssteps.hh, src/tgbaalgos/emptiness.hh,
	src/tgbaalgos/gtec/explscc.hh, src/tgbaalgos/gtec/sccstack.hh,
	src/tgbaalgos/rundotdec.cc, wrap/python/spot.i: Adjust includes.

2014-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/bitvect.hh (bitvect_array): Make as SPOT_DELETED.

2014-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Add more news.

2014-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	man: more doc about TGBA and monitors

	This was prompted by an exchange of emails with Caroline Lemieux.

	* src/bin/man/ltl2tgba.x: Add notes and references.
	* NEWS, THANKS: Update.

2014-08-19  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/common_setup.cc: Disable sync_with_stdio to boost I/O.

2014-08-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: rewrite emptchk.test in C++

	So that its run time goes from 10min+ to ~5s.

	* src/tgbatest/emptchk.cc: New file.
	* src/tgbatest/Makefile.am: Add it.
	* src/tgbatest/emptchk.test: Use it.

2014-08-18  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: speed ltl2ta.test up!

	Again instead of calling ltl2tgba dozen of times with different options
	for various formulas, this implements a single executable that reads
	formulas from a file, translate them using the different setups, and
	dump statistics for comparison.  Valgrind now only has to be started
	once.

	* src/tgbatest/checkta.cc: New file.
	* src/tgbatest/Makefile.am: Use it.
	* src/tgbatest/ltl2ta.test: Rewrite using checkta.
	* src/tgbatest/ltl2tgba.cc: Remove a unused variable.

2014-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbatest: implement a large part of ltl2tgba.test in c++

	So that running valgrind is a lot more efficient.  Running
	ltl2tgba.test using to take more than 15min.  We are now down to
	25sec.

	* src/tgbatest/checkpsl.cc: New file.
	* src/tgbatest/Makefile.am: Add it.
	* src/tgbatest/ltl2tgba.test: Adjust.

2014-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltltest: speedup more tests

	This generalizes the previous patch.

	* src/ltltest/equalsf.cc: Allow escaped '\,' and
	negated result.
	* src/ltltest/Makefile.am: Use equalsf.cc for
	almost all tests that used equals.cc.
	(nequals): New.
	* src/ltltest/equals.test, src/ltltest/eventuniv.test,
	src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
	src/ltltest/parseerr.test, src/ltltest/tunabbrev.test,
	src/ltltest/tunenoform.test: Adjust.

2014-08-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Speedup reduccmp.test

	This test used to take more than 10min because an instance of valgrind
	was launched for each separate equivalence check.  The list of
	equivalences to checks are not given in a file, and only two valgrind
	instances are run.  The test takes less than 15sec.

	* src/ltltest/equalsf.cc: New file.
	* src/ltltest/Makefile.am (reduccmp, reductaustr): Build using
	equalsf.cc.
	* src/ltltest/reduccmp.test: Rewrite.
	* src/ltltest/uwrm.test: Also rewrite, and use valgrind.

2014-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: move boolean properties from tgba_digraph to tgba

	* src/tgba/tgbagraph.hh: Remove the set_bprop/get_bprop interface.
	* src/tgba/tgba.cc, src/tgba/tgba.hh: Add a new interface for
	setting/querying/copying the following properties: single_acc_set,
	state_based_acc, inherently_weak, deterministic.
	* src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
	src/neverparse/neverclaimparse.yy, src/saba/sabacomplementtgba.cc,
	src/tgba/tgbagraph.cc, src/tgbaalgos/degen.cc, src/tgbaalgos/dotty.cc,
	src/tgbaalgos/isdet.cc, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/postproc.cc, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/simulation.cc, src/tgbatest/degenlskip.test,
	src/tgbatest/ltl2tgba.cc: Adjust to the new interface, or use
	it to bypass some useless work.

2014-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	degen: return input if it is already degeneralized

	* src/tgbaalgos/degen.cc (degeneralize, degeneralize_tba): Shortcut
	degeneralization if the automaton is already degeneralized.

2014-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix some bdd_dict_ptr not being passed by const reference.

	* iface/dve2/dve2.cc, iface/dve2/dve2.hh,
	src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/ltlvisit/contain.cc, src/ltlvisit/contain.hh,
	src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh,
	src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/formula2bdd.cc,
	src/tgba/formula2bdd.hh, src/tgba/taatgba.cc, src/tgba/taatgba.hh,
	src/tgba/tgbagraph.hh, src/tgbaalgos/compsusp.cc,
	src/tgbaalgos/compsusp.hh, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/randomgraph.hh, src/tgbaalgos/translate.cc,
	src/tgbaalgos/translate.hh, src/tgbaalgos/word.cc,
	src/tgbaalgos/word.hh: Pass shared_ptr to functions by const ref.

2014-08-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Handle all automata through shared_ptr.  (monstro patch)

	A type such as 'const tgba_digraph*' and 'tgba_digraph*' are replaced
	by 'const_tgba_digraph_ptr' and 'tgba_digraph_ptr'.  Additionally 'new
	tgba_digraph(...)' is replaced by 'make_tgba_digraph(...)'.

	This convention is followed by all automata types. Those smart
	pointers should normally be passed by const reference as input of
	function to avoid the atomic increments/decrements, but I probably
	missed a few, as this huge patch took me nearly 12h.

	* src/kripke/fwd.hh, src/tgba/fwd.hh: New files.
	* src/kripke/Makefile.am, src/tgba/Makefile.am: Adjust.
	* iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc,
	src/bin/common_output.hh, src/bin/dstar2tgba.cc,
	src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc, src/bin/ltlcross.cc,
	src/bin/ltlfilt.cc, src/dstarparse/dra2ba.cc,
	src/dstarparse/dstar2tgba.cc, src/dstarparse/dstarparse.yy,
	src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc,
	src/dstarparse/public.hh, src/graphtest/tgbagraph.cc,
	src/kripke/fairkripke.hh, src/kripke/kripke.hh,
	src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
	src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh,
	src/kripkeparse/kripkeparse.yy, src/kripkeparse/public.hh,
	src/kripketest/parse_print_test.cc, src/ltlvisit/apcollect.cc,
	src/ltlvisit/apcollect.hh, src/ltlvisit/contain.cc,
	src/ltlvisit/contain.hh, src/neverparse/neverclaimparse.yy,
	src/neverparse/public.hh, src/priv/accmap.hh,
	src/priv/countstates.cc, src/priv/countstates.hh, src/saba/saba.hh,
	src/saba/sabacomplementtgba.cc, src/saba/sabacomplementtgba.hh,
	src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
	src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
	src/sabatest/sabacomplementtgba.cc, src/ta/ta.hh,
	src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc,
	src/ta/taproduct.hh, src/ta/tgta.hh, src/ta/tgtaexplicit.cc,
	src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.cc,
	src/ta/tgtaproduct.hh, 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/bdddict.cc, src/tgba/bdddict.hh,
	src/tgba/formula2bdd.hh, src/tgba/futurecondcol.cc,
	src/tgba/futurecondcol.hh, src/tgba/taatgba.hh, src/tgba/tgba.cc,
	src/tgba/tgba.hh, src/tgba/tgbagraph.hh,
	src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.hh,
	src/tgba/tgbamask.cc, src/tgba/tgbamask.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc,
	src/tgba/tgbaproxy.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/wdbacomp.cc, src/tgba/wdbacomp.hh,
	src/tgbaalgos/bfssteps.cc, src/tgbaalgos/bfssteps.hh,
	src/tgbaalgos/complete.cc, src/tgbaalgos/complete.hh,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh,
	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/dtbasat.cc,
	src/tgbaalgos/dtbasat.hh, src/tgbaalgos/dtgbacomp.cc,
	src/tgbaalgos/dtgbacomp.hh, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/dtgbasat.hh, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gtec/gtec.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/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/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/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/sccinfo.cc, src/tgbaalgos/sccinfo.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/stripacc.cc, src/tgbaalgos/stripacc.hh,
	src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
	src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh,
	src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
	src/tgbatest/complementation.cc, src/tgbatest/explprod.cc,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
	src/tgbatest/maskacc.cc, src/tgbatest/powerset.cc,
	src/tgbatest/randtgba.cc, src/tgbatest/taatgba.cc,
	src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc,
	wrap/python/ajax/spot.in, wrap/python/spot.i,
	wrap/python/tests/interdep.py: Use shared pointers for automata.

2014-08-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_union: Remove this unused class.

	* src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh: Delete.
	* src/tgba/Makefile.am: Adjust.

2014-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Make bdd_dict a shared pointer.

	* src/tgba/bdddict.hh (bdd_dict_ptr): New type.
	(make_bdd_dict): New function.
	* iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc,
	src/bin/dstar2tgba.cc, src/bin/ltlcross.cc,
	src/dstarparse/dstarparse.yy, src/dstarparse/public.hh,
	src/graphtest/tgbagraph.cc, src/kripke/kripkeexplicit.cc,
	src/kripke/kripkeexplicit.hh, src/kripke/kripkeprint.cc,
	src/kripkeparse/kripkeparse.yy, src/kripkeparse/public.hh,
	src/kripketest/parse_print_test.cc, src/ltlvisit/apcollect.cc,
	src/ltlvisit/contain.cc, src/ltlvisit/contain.hh,
	src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh,
	src/neverparse/neverclaimparse.yy, src/neverparse/public.hh,
	src/priv/accmap.hh, src/saba/saba.hh, src/saba/sabacomplementtgba.cc,
	src/saba/sabacomplementtgba.hh, src/sabatest/sabacomplementtgba.cc,
	src/ta/ta.hh, src/ta/taexplicit.cc, src/ta/taexplicit.hh,
	src/ta/taproduct.cc, src/ta/taproduct.hh, src/ta/tgtaexplicit.cc,
	src/ta/tgtaexplicit.hh, src/taalgos/dotty.cc, src/tgba/bddprint.cc,
	src/tgba/bddprint.hh, src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh,
	src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.hh,
	src/tgba/tgbagraph.hh, src/tgba/tgbakvcomplement.cc,
	src/tgba/tgbakvcomplement.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.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/tgbaunion.cc, src/tgba/tgbaunion.hh,
	src/tgba/wdbacomp.cc, src/tgbaalgos/compsusp.cc,
	src/tgbaalgos/compsusp.hh, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/emptiness.cc, 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/randomgraph.cc,
	src/tgbaalgos/randomgraph.hh, src/tgbaalgos/save.cc,
	src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh,
	src/tgbaalgos/word.cc, src/tgbaalgos/word.hh, src/tgbaparse/public.hh,
	src/tgbaparse/tgbaparse.yy, src/tgbatest/complementation.cc,
	src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/ltlprod.cc, src/tgbatest/maskacc.cc,
	src/tgbatest/powerset.cc, src/tgbatest/randtgba.cc,
	src/tgbatest/taatgba.cc, src/tgbatest/tgbaread.cc,
	src/tgbatest/tripprod.cc, wrap/python/ajax/spot.in,
	wrap/python/tests/alarm.py, wrap/python/tests/ltl2tgba.py,
	wrap/python/tests/parsetgba.py: Update to use bdd_dict_ptr and
	make_bdd_dict().

2014-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify copying of atomic propositions in new tgba_digraph.

	* src/tgba/bdddict.cc, src/tgba/bdddict.hh
	(register_all_propositions_of): New method.
	* src/tgba/tgbagraph.hh (copy_ap_of): New method.
	* src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
	src/dstarparse/nsa2tgba.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/dupexp.cc, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/stripacc.cc: Simplify using copy_ap_of.

2014-08-13  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: add a set_single_acceptance_set() method.

	* src/tgba/tgbagraph.cc: New file.
	* src/tgba/Makefile.am: Adjust.
	* src/tgba/tgbagraph.hh (set_single_acceptance_set,
	new_acc_transition): New methods.
	(set_acceptance_conditions, merge_transitions): Move body
	to tgbagraph.cc.
	* src/tgbaalgos/complete.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbacomp.cc,
	src/neverparse/neverclaimparse.yy, src/dstarparse/dra2ba.cc,
	src/dstarparse/nra2nba.cc: Simplify using these new methods.

2014-08-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of tgba_tba_proxy

	Replace it by a new degeneralize_tba(), that use the same tricks as
	degeneralize().

	* src/tgba/tgbatba.cc, src/tgba/tgbatba.hh: Delete.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: Implement
	a degeneralize_tba() function sharing its code
	with degeneralize().
	* src/tgbatest/ltl2tgba.cc: Rename -D to -DT so that we can pass it the
	same option as -DS.
	* src/tgbatest/degenid.test, src/tgbatest/emptchk.test,
	src/tgbatest/emptchke.test, src/tgbatest/ltlcounter.test,
	src/tgbatest/ltlcross.test, src/tgbatest/spotlbtt.test,
	src/tgbatest/ltl2tgba.test: Adjust.
	* src/tgbatest/det.test, src/tgbatest/emptchk.test: Adjust numbers to
	the smaller output.
	* src/saba/sabacomplementtgba.cc, src/saba/sabacomplementtgba.hh,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/neverclaim.hh, src/tgbaalgos/postproc.cc,
	src/tgbatest/randtgba.cc, src/tgbatest/complementation.cc,
	wrap/python/spot.i, wrap/python/tests/ltl2tgba.py,
	src/sabatest/sabacomplementtgba.cc: Adjust to the removal
	of tgba_tba_proxy, using degeneralize_tba() if needed.

2014-08-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove the sba interface

	* src/tgba/tgbagraph.hh: Automatize the setting of the SingleAccSet
	property.
	* src/tgbaalgos/minimize.cc: Do not bother setting SingleAccSet.
	* src/tgba/sba.hh: Delete.
	* src/tgba/Makefile.am, wrap/python/spot.i: Adjust.
	* src/taalgos/tgba2ta.cc: Do not include sba.hh.
	* src/neverparse/neverclaimparse.yy: Set the SBA property on the output.
	* src/tgbaalgos/lbtt.cc (lbtt_read_gba): Set the StateBasedAcc property
	on output.
	* src/tgbaalgos/dotty.cc, src/tgbaalgos/neverclaim.cc: Do not rely on
	the sba interface.
	* src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/sccfilter.cc: Set
	tgba_digraph::StateBasedAcc as appropriate.
	* src/tgbatest/ltl2tgba.cc: Add extra assert.

2014-08-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	get rid of tgba_sba_proxy

	* src/saba/sabacomplementtgba.cc, src/saba/sabacomplementtgba.hh,
	src/tgba/tgbatba.cc, src/tgba/tgbatba.hh, src/tgbaalgos/degen.hh,
	src/tgbatest/complementation.cc, src/tgbatest/ltl2tgba.cc: Here.

2014-08-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove deprecated algorithms.

	* src/ltlvisit/destroy.cc, src/ltlvisit/destroy.hh,
	src/ltlvisit/reduce.cc, src/ltlvisit/reduce.hh: Delete.
	* src/ltlvisit/Makefile.am: Adjust.
	* src/ltlvisit/clone.cc, src/ltlvisit/clone.hh (clone): Remove.
	* src/ltlvisit/contain.hh (reduce_tau03): Remove.

2014-08-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	remove tgba_explicit variants and the old scc_filter

	* src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Delete.
	* src/tgba/Makefile.am: Adjust.
	* src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh:
	Delete these obsoleted algorithms.
	* src/tgbaalgos/Makefile.am: Adjust.
	* src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
	src/tgbatest/explicit2.cc, src/tgbatest/explicit2.test,
	src/tgbatest/explicit3.cc, src/tgbatest/explicit3.test:
	Delete.
	* src/tgbatest/Makefile.am: Adjust.
	* src/bin/ltl2tgba.cc, src/priv/countstates.cc,
	src/tgbaalgos/isweakscc.cc, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/powerset.hh, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/sccfilter.hh, src/tgbaalgos/simulation.cc,
	src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/powerset.cc, src/tgbatest/tgbaread.cc,
	src/tgbatest/tripprod.cc, wrap/python/ajax/spot.in,
	wrap/python/spot.i: Remove all remaining references to
	tgba_explicit.

2014-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	replace sba_explicit_* by tgba_digraph, and use tgba_digraph is postproc

	This is a huge patch.  tgba_digraph are equiped with some boolean
	properties that can be used to indicate whether they represent SBA
	(and will carry more informations later).  All algorithms that produce
	or use sba_explicit_* automata are changed to use tgba_digraph.
	postproc has been rewritten using only tgba_digraph, and this required
	changing the return types of many algorithms from tgba* to
	tgba_digraph*.

	* src/bin/dstar2tgba.cc, src/bin/ltlfilt.cc, src/dstarparse/dra2ba.cc,
	src/dstarparse/dstar2tgba.cc, src/dstarparse/nra2nba.cc,
	src/dstarparse/nsa2tgba.cc, src/dstarparse/public.hh,
	src/tgba/tgbagraph.hh, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh,
	src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/minimize.hh, src/tgbaalgos/postproc.cc,
	src/tgbaalgos/postproc.hh, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/sccinfo.cc, src/tgbaalgos/stripacc.cc,
	src/tgbaalgos/stripacc.hh, src/tgbaalgos/translate.cc,
	src/tgbaalgos/translate.hh, src/tgbatest/ltl2tgba.cc,
	wrap/python/spot.i: Update.

2014-08-11  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	compsusp: Use new implem of scc_filter to remove suspended variables

	* src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh: Rewrite all
	composable filters in a way that allow arguments to be passed.
	(scc_filter_susp): New function.
	* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh (scc_ap_support):
	New method.
	* src/tgbaalgos/compsusp.cc: Adjust to use tgba_digraph, and
	call the new scc_filter_susp().

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.cc: Get rid of tgba_explicit_formula.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/graph/ngraph.hh (names): Fix constness.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/ltl2tgba_fm.hh: Fix comment.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/bin/dstar2tgba.cc: Do not try to enable utf-8 on automata.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/priv/countstates.hh: Disallow calls using tgba_digraph.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/taalgos/minimize.cc: Replace tgba_explicit_number by tgba_digraph.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove is_syntactic_weak_scc and is_syntactic_terminal_scc

	Those cannot work now that automata are not labeled by formulas
	anymore.

	* src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh
	(is_syntactic_weak_scc, is_syntactic_terminal_scc): Remove.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgbacomp: Rewrite using tgba_digraph instead of tgba_explicit_number

	* src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/dtgbacomp.hh: Rewrite.
	Also prefer simple loops over reachiter.
	* src/tgbatest/det.test: Adjust.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/minimize.cc: Get rid of tgba_explicit_number.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	complete: get rid of tgba_explicit_number

	* src/tgbaalgos/complete.cc, src/tgbaalgos/complete.hh
	(tgba_complete_here): New method for tgba_digraph.
	(tgba_complete): Rewrite using dupexp and the above.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: Simplify declaration of forwarded methods.

	* src/misc/common.hh (SPOT_RETURN): New macro.
	* src/tgba/tgbagraph.hh (out, states, transitions): Use it.

2014-08-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/graph/graph.hh (transitions): New method.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl_to_tgba_fm: Build a tgba_digraph instead of a tgba_explicit_formula

	The conversion is not complete, because the conversion from SERE to DRA
	used for the closure operator is still building a tgba_explicit_formula.

	* src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh: Return
	a tgba_digraph.
	* src/priv/acccompl.cc: Simplify.
	* src/graph/ngraph.hh: Add a way to iterate over all names.
	* src/tgba/tgbagraph.hh (compute_support_conditions): Return something
	useful.  It's actually used by the constructor of testing automata.
	* src/tgbatest/wdba.test: Adjust to the fact that state are not
	labeled by formulas anymore.
	* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc: Do not try to enable
	UTF8 on automata anymore.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/compsusp.cc: Use tgba_digraph.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltlvisit/contain.cc: Do not mention tgba_explicit_number.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/neverparse/public.hh: Typo in comment.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dra2ba: Use tgba_digraph.

	* src/dstarparse/dra2ba.cc: Use tgba_digraph instead of
	tgba_explicit_number.
	* src/tgbatest/dstar.test: Adjust.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	nra2nba: Produce a tgba_digraph.

	* src/dstarparse/nra2nba.cc: Produce tgba_digraph instead
	of tgba_explicit_number.
	* src/tgbaalgos/sccinfo.hh (is_useful_state): Make sure
	it is reachable.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	nsa2tgba: Construct a tgba_digraph.

	* src/priv/accmap.hh (acc_mapper_consecutive_int): New class.
	* src/dstarparse/nsa2tgba.cc: Build a tgba_digraph, and simplify
	using acc_mapper_consecutive_int.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dstarparse: Build a tgba_digraph instead of tgba_explicit_number.

	* src/dstarparse/dstarparse.yy, src/dstarparse/public.hh: Adjust the
	parser to build a tgba_digraph.
	* src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
	src/dstarparse/nsa2tgba.cc: Temporarily adjust these functions to the
	new type until they are rewritten.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverparse: build a tgba_digraph

	* src/neverparse/neverclaimparse.yy, src/neverparse/public.hh,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/neverclaimread.test: Adjust.

2014-08-06  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_digraph: Fix handling of initial state.

	* src/tgba/tgbagraph.hh: Store the number of the initial state, not a
	pointer to it, because if the state vector is reallocated due to some
	later calls to new_state(), this pointer will be invalid.
	* src/graphtest/tgbagraph.cc, src/graphtest/tgbagraph.test: Test
	for this.

2014-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use emplace() for associative containers.

	* HACKING: Adjust requirements.  g++4.8 is now OK
	for all our targets.
	* iface/dve2/dve2.cc, src/dstarparse/dstarparse.yy
	src/dstarparse/nsa2tgba.cc, src/graph/ngraph.hh,
	src/ltlast/atomic_prop.cc, src/ltlast/binop.cc, src/ltlast/bunop.cc,
	src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/relabel.cc, src/taalgos/emptinessta.cc,
	src/taalgos/tgba2ta.cc, src/tgba/tgbaexplicit.hh, src/tgba/tgbagraph.hh,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbatba.cc,
	src/tgbaalgos/cycles.cc, src/tgbaalgos/degen.cc,
	src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
	src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/scc.cc, src/tgbaalgos/sccfilter.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc, src/tgbaalgos/weight.cc: Use emplace()
	instead of insert(make_pair(...)) or insert(...::value_type(...)).

2014-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent removals.

2014-07-31  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Delete the cutscc algorithms.

	These were used in old experiments, but have not turned useful in
	practice.  Not worth keeping and maintaining.

	* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh: Delete.
	* bench/scc-stats/, bench/split-product/: Delete.
	* configure.ac, src/tgbaalgos/Makefile.am, README, bench/Makefile.am:
	Adjust.

2014-07-10  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbadigraph: delegate useful graph methods

	* src/tgba/tgbagraph.hh (new_state, new_states, new_transitions, out,
	trans_data): Delegate these useful graph methods so we do not have to
	call get_graph().
	* src/graphtest/tgbagraph.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dupexp.cc,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/sccinfo.cc,src/tgbaalgos/simulation.cc: Simplify.

2014-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bdddict: remove now/next variables.

	These were only used by the BDD-based implementation of TGBA, which has
	been removed.

	* src/tgba/bdddict.cc, src/tgba/bdddict.hh, src/tgba/bddprint.cc: Remove
	support for now/next variables.

2014-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/taatgba.cc: Fix a memory leak.

2014-07-09  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove ltl2tgba_lacim and all supporting classes.

	This translator algorithm is seldom used in practice because we work
	with explicit automata everywhere, and this is only useful to build
	symbolic automata.  Furthermore, the symbolic automata produced by this
	algorithm are larger (when looked at explicitly) than those produced by
	ltl2tgba_fm or other explicit translators.

	The nice side effect of this removal is that we can also remove a lot of
	supporting classes, that were relying a lot on BDDs.

	* src/tgba/public.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
	src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.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/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbatest/bddprod.test,
	src/tgbatest/mixprod.cc, src/tgbatest/mixprod.test: Delete all these
	files.
	* bench/ltlcounter/Makefile.am, bench/ltlcounter/README,
	bench/ltlcounter/plot.gnu, bench/ltlcounter/run, src/tgba/Makefile.am,
	src/tgbaalgos/Makefile.am, src/tgbatest/Makefile.am,
	src/tgbatest/cycles.test, src/tgbatest/dupexp.test,
	src/tgbatest/emptchk.test, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/ltl2tgba.test, src/tgbatest/ltlcross.test,
	src/tgbatest/ltlprod.cc, src/tgbatest/spotlbtt.test,
	src/tgbatest/wdba.test, src/tgbatest/wdba2.test,
	src/tgba/tgbaexplicit.hh, wrap/python/ajax/ltl2tgba.html,
	wrap/python/ajax/spot.in, wrap/python/spot.i,
	wrap/python/tests/interdep.py, wrap/python/tests/ltl2tgba.py,
	wrap/python/tests/ltl2tgba.test: Adjust.

2014-07-08  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgba/taatgba.cc: Fix a memory leak.

2014-07-07  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	powerset: use tgba_digraph instead of tgba_explicit_number.

	* src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh:
	Use tgba_digraph.
	* src/tgba/tgbagraph.hh: Improve interface.
	* src/tgbaalgos/minimize.cc, src/tgbatest/powerset.cc: Adjust.

2014-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	automatop: remove this type of formula operator.

	This was only used in ELTL stuff, which I just removed because it was
	unused.

	* src/ltlast/automatop.cc, src/ltlast/automatop.hh,
	src/ltlast/formula_tree.cc, src/ltlast/formula_tree.hh,
	src/ltlast/nfa.cc, src/ltlast/nfa.hh: Delete.
	* src/ltlast/Makefile.am: Adjust.
	* src/ltlast/allnodes.hh, src/ltlast/formula.hh, src/ltlast/predecl.hh,
	src/ltlast/visitor.hh, src/ltltest/equals.cc, src/ltltest/ltlrel.cc,
	src/ltltest/reduc.cc, src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
	src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
	src/ltlvisit/relabel.cc, src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc,
	src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
	src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbatest/ltl2tgba.cc,
	iface/dve2/dve2check.cc: Remove all references to automatop.

2014-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	eltl2tgba: remove this unused code.

	* src/eltlparse/.gitignore, 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/.gitignore,
	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/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/eltl2tgba_lacim.hh,
	src/tgbatest/eltl2tgba.test: Delete these files.
	* src/Makefile.am, src/tgbaalgos/Makefile.am, src/tgbatest/Makefile.am,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlcross.test,
	src/tgbatest/spotlbtt.test, README, configure.ac: Adjust.

2014-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	.gitignore: More files to ignore.

2014-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dtgbasat: replace tgba_explicit_number by tgba_digraph

	* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtbasat.hh,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dtgbasat.hh: Use tgba_digraph
	and modernize syntax slightly.

2014-07-04  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	emptiness: Upgrade to tgba_digraph.

	* src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh: Use
	tgba_digraph instead of tgba_explicit_string.

2014-07-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/priv/countstates.cc: Handle tgba_digraph.

2014-07-03  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	lbtt: build an explicit automaton on input.

	* src/priv/accmap.hh (acc_mapper): Rename into...
	(acc_mapper_string): ... this, and add
	(acc_mapper_int): ... this variant.
	* src/tgbaparse/tgbaparse.yy: Adjust to renaming.
	* src/tgbaalgos/lbtt.cc: Use acc_mapper_int and build an explicit
	automaton.
	* src/tgbaalgos/lbtt.hh: Adjust return type.
	* src/tgbatest/ltl2tgba.cc: Adjust to new return type.

2014-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/randomgraph.cc: Update comment.

2014-07-02  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaparse/tgbaparse.yy: Cosmetics.

2014-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	common: introduce SPOT_UNREACHABLE and SPOT_UNIMPLEMENTED.

	* src/misc/common.hh (SPOT_UNIMPLEMENTED, SPOT_UNREACHABLE,
	SPOT_UNREACHABLE_BUILTIN): New macros.
	* src/bin/dstar2tgba.cc, src/bin/ltlcross.cc,
	src/dstarparse/dstar2tgba.cc, src/eltlparse/eltlparse.yy,
	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/unop.cc, src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc,
	src/ltlvisit/lunabbrev.cc, src/ltlvisit/mark.cc,
	src/ltlvisit/randomltl.cc, src/ltlvisit/simpfg.cc,
	src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc, src/ltlvisit/tostring.cc,
	src/misc/intvcomp.cc, src/misc/minato.cc, src/tgba/bdddict.cc,
	src/tgba/formula2bdd.cc, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
	src/tgbaalgos/simulation.cc, src/tgbatest/ltl2tgba.cc:  Use them.
	* src/sanity/style.test: Catch assert(0) and assert(!"text");

2014-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	randomgraph: Use tgba_digraph.

	* src/graph/graph.hh (new_states): Call reserve().
	* src/tgbaalgos/randomgraph.cc: Use tgba_digraph
	instead of tgba_string_explicit.

2014-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbaparse: Return a tgba_digraph.

	* src/tgbaparse/parsedecl.hh, src/tgbaparse/public.hh,
	src/tgbaparse/tgbaparse.yy: Adjust to return a tgba_digraph.
	* src/priv/accmap.hh: New file to help creating acceptance
	conditions from strings.
	* src/priv/Makefile.am: Add accmap.hh
	* src/tgba/tgbagraph.hh (tgba_digraph::named_t): New typedef.
	* wrap/python/spot.i: Declare that tgba_digraph inherits from tgba.
	* src/tgbatest/complementation.cc, src/tgbatest/explpro2.test,
	src/tgbatest/explpro3.test, src/tgbatest/explpro4.test,
	src/tgbatest/explprod.cc, src/tgbatest/explprod.test,
	src/tgbatest/ltl2tgba.cc, src/tgbatest/maskacc.cc,
	src/tgbatest/maskacc.test, src/tgbatest/mixprod.cc,
	src/tgbatest/powerset.cc, src/tgbatest/randtgba.test,
	src/tgbatest/readsave.test, src/tgbatest/tgbaread.cc,
	src/tgbatest/tgbaread.test, src/tgbatest/tripprod.cc,
	src/tgbatest/tripprod.test: Adjust to the change.

2014-06-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltl::environment: correctly declare name() as const

	* src/ltlenv/declenv.cc, src/ltlenv/declenv.hh,
	src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
	src/ltlenv/environment.hh, src/tgbaalgos/compsusp.cc: Declare name as
	const.

2014-06-22  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/sccfilter.cc: Work around g++ 4.6.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Adjust some uses of bddtrue/bddfalse.

	* src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03opt.cc: Fix
	cases where bddtrue and bddfalse where used in a ternary operator.
	* src/sanity/style.test: Allow bdd_true()/bdd_false() to be
	used in ternary operators.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccfilter: improve the new version to simplify acceptance sets

	* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh: Implement
	the acc_filter_simplify filter, and generalize composition to
	be n-ary.
	* src/tgbaalgos/sccfilter.cc (used_acc): New method.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/graph/graph.hh, src/tgba/tgbagraph.hh: Cosmetic fixes.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	sccfilter: implement a new version of tgba_digraph

	The new version currently supports removal of useless state as well as
	removal of acceptance sets from non-accepting SCCs (the two versions).
	It does not yet support simplifation of acceptance sets and removal of
	suspendable formulae.  However the design, using filters that are
	composed before being applied, should make it easier to implement.

	* src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh: Implement
	the new scc_filter and supporting classes.
	* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Use it.
	The simulation now always return a tgba_digraph.
	* src/tgbatest/sim.test: Adjust.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: build tgba_digraph

	* src/tgbaalgos/simulation.cc: Buid a tgba_digraph as the result of the
	simulation.
	* src/tgba/tgbagraph.hh (create_namer): New function.
	* src/tgbatest/basimul.test: Add an additional test case that caused a
	bug fixed in a previous patch.
	* src/tgbatest/sim.test: Adjust.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ngraph: support aliasing states

	* src/graph/ngraph.hh (alias_state): New method.
	* src/graphtest/ngraph.cc: Use it.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbagraph: add a merge_transitions() method.

	* src/graph/graph.hh: Add some framework to erase transitions, and
	defrag the resulting transitions_ vector on demand.  Also remove
	the nb_states() and nb_transitions() because num_states() and
	num_transitions() already exist.
	* src/graphtest/graph.cc, src/graphtest/ngraph.cc: Adjust to
	use num_states().
	* src/tgba/tgbagraph.hh (merge_transitions): New method.
	* src/misc/hash.hh: Add a pair_hash class, needed by
	merge_transitions().
	* src/graphtest/tgbagraph.cc, src/graphtest/tgbagraph.test: Add states
	for transitions removal and merge_transitions().

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	implement scc_filter_states for tgba_digraph

	* src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/sccfilter.hh (scc_filter_states): New overload taking
	a tgba_digraph and some scc_info.

2014-06-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Implement an scc_info class that should eventually replace scc_map.

	* src/graph/graph.hh (trans_iterator): Add operator->() and operator
	bool().
	* src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh: New files.
	* src/tgbaalgos/Makefile.am: Add them.
	* src/tgbatest/ltl2tgba.cc: Use the new dump_scc_info_dot() function.

2014-05-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Prevent a race on the buildfarm.

	* doc/org/init.el.in (org-publish-timestamp-directory): Use a build
	directory, not $HOME.

2014-05-29  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	neverparse: Fix parsing of Modella's neverclaims.

	Reported by František Blahoudek.

	* src/neverparse/neverclaimparse.yy: Fix.
	* src/tgbatest/neverclaimread.test: Test it.
	* NEWS: Mention the fix.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/graph/graph.hh (trans_iterator): Respect the forward_iterator API.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/simulation.cc: More map->vector conversions.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dupexp, simulation: more simplifications.

	* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Return the
	association between new states and old states in a vector instead of a
	map.
	* src/tgbaalgos/simulation.cc: Adjust.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: simplify using tgba_digraph more

	* src/graph/graph.hh (new_states): New.
	* src/tgba/tgbagraph.hh (graph_t): Make it public.
	* src/tgbaalgos/simulation.cc: Get read of the acc_compl_automaton
	class and replace it by a loop over all states of a tgba_digraph.
	Remove some useless data structures.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/compsusp.cc: Ignore useless suspendable subformulae.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	dupexp, simulation: use tgba_digraph.

	* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Produce
	a tgba_digraph instead of a tgba_explicit_number.
	* src/tgbaalgos/simulation.cc: First pass to adjust to the use of
	tgba_digraph as a return of tgba_dupexp_dfs() and tgba_dupexp_bfs().
	Some maps have been replaced by vectors because states are indexed,
	but more simplifications could be done.

2014-05-23  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: Implement a tgbagraph subclass

	* src/tgba/tgbagraph.hh: New file.
	* src/tgba/Makefile.am: Add it.
	* src/graph/graph.hh: Add methods needed by tgbagraph.hh.
	* src/graphtest/tgbagraph.cc, src/graphtest/tgbagraph.test: New files.
	* src/graphtest/Makefile.am: Add them.

2014-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: add SPOT_API on public classes.

	* src/graph/graph.hh, src/graph/ngraph.hh: Here.

2014-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: Add a test close to the tgba_explicit_string setup.

	* src/graph/graph.hh (boxed_label): If State_Data==void, inherit from
	std::tuple<> and implement a data() method.
	(digraph::state_data): Return by reference.
	* src/graphtest/ngraph.cc, src/graphtest/ngraph.test: Test the
	case where State_Data implements the spot::state interface.

2014-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: Add a named_graph class.

	* src/graph/ngraph.hh: New file.
	* src/graph/Makefile.am: Add it.
	* src/graphtest/ngraph.cc, src/graphtest/ngraph.test: New files.
	* src/graphtest/Makefile.am: Add them

2014-05-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	graph: Implement a directed graph.

	* src/graph/graph.hh, src/graph/Makefile.am, src/graphtest/graph.cc,
	src/graphtest/graph.test, src/graphtest/defs.in,
	src/graphtest/Makefile.am: New files.
	* src/Makefile.am, configure.ac: Add graph/ and graphtest/.
	* README: Mention these directories.

2014-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent fix.

2014-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/equals.cc: Fix style.

2014-05-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	snf: Fix the handling of bounded repetition.

	star_normal_form() used to be called under bounded
	repetitions like [*0..4], but some of these rewritings
	are only correct for [*0..].  For instance
	     (a*|1)[*]      can be rewritten to    1[*]
	but  (a*|1)[*0..1]  cannot be rewritten to 1[*0..1]
	it would be correct to rewrite the latter as (a[+]|1)[*0..1],
	canceling the empty word in a*.

	Also (a*;b*)[*]     can be rewritten to    (a|b)[*]
	but  (a*;b*)[*0..1]  cannot be rewritten to (a|b)[*0..1]
	and it cannot either be rewritten to (a[+]|b[+])[*0..1].

	This patch introduces a new function to implement
	rewritings under bounded repetition.

	* src/ltlvisit/snf.hh, src/ltlvisit/snf.cc (star_normal_form_unbounded):
	New function.
	* src/ltlvisit/simplify.cc: Use it.
	* src/ltltest/reduccmp.test: Add tests.
	* doc/tl/tl.tex: Document the rewritings implemented.

2014-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/ltltest/equals.cc: Fix style.

2014-05-16  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	snf: Fix the handling of bounded repetition.

	star_normal_form() used to be called under bounded
	repetitions like [*0..4], but some of these rewritings
	are only correct for [*0..].  For instance
	     (a*|1)[*]      can be rewritten to    1[*]
	but  (a*|1)[*0..1]  cannot be rewritten to 1[*0..1]
	it would be correct to rewrite the latter as (a[+]|1)[*0..1],
	canceling the empty word in a*.

	Also (a*;b*)[*]     can be rewritten to    (a|b)[*]
	but  (a*;b*)[*0..1]  cannot be rewritten to (a|b)[*0..1]
	and it cannot either be rewritten to (a[+]|b[+])[*0..1].

	This patch introduces a new function to implement
	rewritings under bounded repetition.

	* src/ltlvisit/snf.hh, src/ltlvisit/snf.cc (star_normal_form_unbounded):
	New function.
	* src/ltlvisit/simplify.cc: Use it.
	* src/ltltest/reduccmp.test: Add tests.
	* doc/tl/tl.tex: Document the rewritings implemented.

2014-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Merge branch 'master' into next

	Conflicts:
		src/ltlvisit/simplify.cc
		src/tgbatest/Makefile.am

2014-05-15  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS, configure.ac: Bump version to 1.2.4a.

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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	org: Prevent a race on the buildfarm.

	* doc/org/init.el.in (org-publish-timestamp-directory): Use a build
	directory, not $HOME.

2014-04-24  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Simplify the code of a test case.

	* src/tgbatest/maskacc.cc: Simplify iteration on acceptance sets.
	* src/tgbatest/maskacc.test: Adjust expected order.

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-04-03  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-03-27  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgbamask: implement a build_tgba_mask_acc_ignore() function.

	* src/tgba/tgbamask.hh (build_tgba_mask_acc_ignore): New function.
	(tgba_mask::wanted): Take an acc argument.
	* src/tgba/tgbamask.cc: Implement the above.
	* src/tgbatest/maskacc.cc, src/tgbatest/maskacc.test: New files.
	* src/tgbatest/Makefile.am: Add them.

2014-03-20  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Fix a regression in tgbamask.cc, reported by Alexandre Lewkowicz.

	* src/tgba/tgbamask.cc (recycle): Clear the transition list.
	* src/tgbatest/dra2dba.test: New file.
	* src/tgbatest/Makefile.am: Add it.

2014-02-26  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/dstarparse/nra2nba.cc: Fix comment.

2014-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: remove the global_state and global_automaton argument of succ_iter

	* iface/dve2/dve2.cc, src/kripke/kripkeexplicit.cc,
	src/kripke/kripkeexplicit.hh, src/ta/tgtaexplicit.cc,
	src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
	src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.hh,
	src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
	src/tgba/tgbakvcomplement.hh, src/tgba/tgbamask.cc,
	src/tgba/tgbamask.hh, src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
	src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.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:
	Here.
	* NEWS: Mention it.

2014-02-17  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba: remove the support_variable() method.

	* src/kripke/fairkripke.cc, src/kripke/fairkripke.hh,
	src/ta/tgtaexplicit.cc, src/ta/tgtaexplicit.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/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
	src/tgba/tgbakvcomplement.hh, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.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:
	Remove anything related to support_variables() and
	compute_support_variables().
	* NEWS: Mention it.
	* src/tgbaalgos/powerset.cc: Adjust the computation of all possible
	conditions.

2014-02-14  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent changes.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gtec: replace nsheap by a simple unordered_map

	nsheap was an horror full of virtual functions required to
	customize gtec to implement inclusion-based emptiness-check
	in GreatSPN support.  Since this support has been removed, we
	can remove the nsheap cruft as well.  Note that nsheap was
	also used in emptinessta for no good reason (the code from
	emptinessta was simply copied from gtec without cleanup).

	* src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh:
	Delete.
	* src/tgbaalgos/gtec/Makefile.am: Adjust.
	* src/taalgos/emptinessta.cc, src/taalgos/emptinessta.hh,
	src/taalgos/tgba2ta.cc, src/tgbaalgos/gtec/ce.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
	src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh:
	Use a simple unordered_map.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	gspn: remove the interface with GreatSPN

	It hasn't been tested for several year, may not even compile, has
	to be linked with source code that isn't even publicly available,
	and its presence was the only reason to keep some inefficient
	code in gtec.cc and friends.

	* iface/gspn/: Delete this directory.
	* iface/Makefile.am, configure.ac, README: Adjust.
	* m4/gspnlib.m4: Delete.
	* src/sanity/Makefile.am: Do not use LIBGSPN_CPPFLAGS.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	simulation: use tuple and emplace_back for constraints

	* src/tgbaalgos/simulation.cc: Here.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Replace << "c" by << 'c', and check for it in style.sh

	* src/sanity/style.test: Add a test.
	* iface/dve2/dve2.cc, iface/dve2/dve2check.cc, src/bin/common_output.cc,
	src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/bin/ltlcross.cc,
	src/dstarparse/dra2ba.cc, src/dstarparse/fmterror.cc,
	src/dstarparse/nsa2tgba.cc, src/kripke/kripkeprint.cc,
	src/kripkeparse/fmterror.cc, src/ltlast/atomic_prop.cc,
	src/ltlast/bunop.cc, src/ltltest/ltlrel.cc, src/ltltest/reduc.cc,
	src/ltltest/syntimpl.cc, src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc,
	src/ltlvisit/randomltl.cc, src/ltlvisit/relabel.cc,
	src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc, src/misc/bitvect.cc,
	src/misc/optionmap.cc, src/misc/timer.cc, src/neverparse/fmterror.cc,
	src/priv/freelist.cc, src/saba/sabacomplementtgba.cc,
	src/sabaalgos/sabadotty.cc, src/taalgos/dotty.cc,
	src/taalgos/minimize.cc, src/tgba/bdddict.cc, src/tgba/bddprint.cc,
	src/tgba/futurecondcol.cc, src/tgba/taatgba.hh,
	src/tgba/tgbakvcomplement.cc, src/tgba/tgbasafracomplement.cc,
	src/tgbaalgos/compsusp.cc, src/tgbaalgos/cycles.cc,
	src/tgbaalgos/dotty.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gv04.cc,
	src/tgbaalgos/lbtt.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/replayrun.cc,
	src/tgbaalgos/save.cc, src/tgbaalgos/scc.cc, src/tgbaalgos/sccfilter.cc,
	src/tgbaalgos/weight.cc, src/tgbaalgos/word.cc,
	src/tgbaparse/fmterror.cc, src/tgbatest/bitvect.cc,
	src/tgbatest/complementation.cc, src/tgbatest/intvcmp2.cc,
	src/tgbatest/intvcomp.cc, src/tgbatest/ltl2tgba.cc,
	src/tgbatest/randtgba.cc: Replace << "c" by << 'c' when
	appropriate.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: replace push(Type(args...)) by emplace(args...)

	This of course concerns push_back and push_front as well.

	* src/bin/common_finput.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
	src/bin/ltl2tgta.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
	src/dstarparse/dstarparse.yy, src/kripkeparse/kripkeparse.yy,
	src/ltlast/formula.cc, src/ltlparse/ltlparse.yy, src/misc/minato.cc,
	src/neverparse/neverclaimparse.yy, src/priv/bddalloc.cc, src/ta/ta.cc,
	src/taalgos/emptinessta.cc, src/tgba/taatgba.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/sccstack.cc,
	src/tgbaalgos/magic.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/rundotdec.cc, src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc, src/tgbaparse/tgbaparse.yy: Use emplace
	to make the code less verbose and avoid creating temporaries.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: more range-based for

	* src/ltlvisit/simplify.cc, src/tgbaalgos/replayrun.cc: Here.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Avoid calling done(), as enabled by last patch.

	* src/tgbaalgos/bfssteps.cc, src/tgbaalgos/complete.cc,
	src/tgbaalgos/cycles.cc, src/tgbaalgos/dtgbacomp.cc,
	src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gv04.cc,
	src/tgbaalgos/isweakscc.cc, src/tgbaalgos/lbtt.cc,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/replayrun.cc, src/tgbaalgos/safety.cc,
	src/tgbaalgos/save.cc: Avoid calls to done().

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	tgba_succ_iterator: have first() and next() return a bool

	The returned Boolean indicates whether there is a successor or not.
	This way

	|  for (i->first(); !i->done(); i->next())
	|    {
	|       ...
	|    }

	can be replaced by

	| if (i->first()) do
	|   {
	|      ...
	|   }
	| while (i->next());

	avoiding all the virtual calls to done().

	* iface/dve2/dve2.cc, src/kripke/kripkeexplicit.cc,
	src/kripke/kripkeexplicit.hh, src/ta/ta.hh, src/ta/taexplicit.cc,
	src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh,
	src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh, src/tgba/succiter.hh,
	src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
	src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.hh,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
	src/tgba/tgbamask.cc, src/tgba/tgbaproduct.cc,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
	src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh,
	src/tgba/wdbacomp.cc: Implement and adjust to this new interface.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Introduce tgba::release_iter().

	Instead of "delete iter;" we now do "aut->release_iter(iter);" to
	give the iterator back to the automaton.  The TGBA classes now
	reuse a previously returned tgba_succ_iterator to answer a succ_iter()
	call, therefore avoiding (1) memory allocation, as well as (2) vtable
	and other constant member initialization.

	* src/tgba/tgba.hh, src/tgba/tgba.cc (release_iter, iter_cache_):
	Implement a release_iter() that stores the released iterator
	in iter_cache_.
	* src/tgba/succiter.hh (internal::succ_iterable): Move...
	* src/tgba/tgba.hh (tgba::succ_iterable): ... here. And use
	release_iter().

	* iface/dve2/dve2.cc, src/kripke/kripke.cc, src/kripke/kripke.hh,
	src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
	src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbamask.cc, src/tgba/tgbaproduct.cc,
	src/tgba/tgbaproxy.cc, src/tgba/tgbascc.cc, src/tgba/tgbatba.cc,
	src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc,
	src/tgbaalgos/bfssteps.cc, src/tgbaalgos/compsusp.cc,
	src/tgbaalgos/cycles.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/gtec/gtec.cc,
	src/tgbaalgos/gv04.cc, src/tgbaalgos/isweakscc.cc,
	src/tgbaalgos/lbtt.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/magic.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/neverclaim.cc, src/tgbaalgos/reachiter.cc,
	src/tgbaalgos/replayrun.cc, src/tgbaalgos/safety.cc,
	src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc: Use release_iter() instead of deleting
	iterators, and used recycle iter_cache_ in implementations of
	tgba::succ_iter().

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: introduce tgba::succ(s) to replace tgba::succ_iter(s).

	| tgba_succ_iterator* i = aut->succ_iter(s);
	| for (i->begin(); !i->done(); i->next())
	|   {
	|      // ...
	|   }
	| delete i;

	becomes

	| for (auto i: aut->succ(s))
	|   {
	|      // ...
	|   }

	hiding the begin()/done()/next() interface, taking care of the delete,
	and allowing more optimization to come.

	* src/tgba/succiter.hh, src/tgba/tgba.hh: Implement the above
	new interface.
	* iface/gspn/ssp.cc, src/dstarparse/nsa2tgba.cc,
	src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc,
	src/tgba/tgbamask.cc, src/tgba/tgbasafracomplement.cc,
	src/tgba/tgbatba.cc, src/tgbaalgos/compsusp.cc, src/tgbaalgos/cutscc.cc,
	src/tgbaalgos/degen.cc, src/tgbaalgos/emptiness.cc,
	src/tgbaalgos/isdet.cc, src/tgbaalgos/ltl2tgba_fm.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
	src/tgbaalgos/safety.cc, src/tgbaalgos/simulation.cc,
	src/tgbaalgos/tau03.cc, src/tgbatest/explicit2.cc: Update for
	loops.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/sanity/style.test: Allow &&...

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Use the degeneralization unicity_table in more places.

	* src/tgbaalgos/degen.cc (unicity_table): Move and rename as...
	* src/tgba/state.hh (state_unicity_table): ... this.
	* src/tgbaalgos/cutscc.cc, src/tgbaalgos/cycles.cc,
	src/tgbaalgos/cycles.hh, src/tgbaalgos/minimize.cc,
	src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
	src/tgbaalgos/safety.cc: Use it to simplify existing code.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/degen.cc (unicity_table): Simplify.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlast: simplify with std::make_pair() and c++11's std::tuple

	* 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/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
	src/ltlast/unop.hh: Use std::tuple to replace nested std::pair,
	simplify calls to std::map::erase, use auto and std::make_pair with
	insert, and simplify the dump() method using a range for.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: Simplify random generation code using C++11.

	* src/misc/random.cc, src/misc/random.hh (srand, drand, mrand, rrand,
	barand): Simplify using <random> from C++11.
	(nrand, bmrand, prand): Remove these unused functions.
	* src/tgbaalgos/randomgraph.cc: Adjust the use of barand.
	* configure.ac: Do not check for srand48 and drand48.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Remove the configure check for Boost, since we do not use it anymore.

	* README: Do not mention Boost.
	* configure.ac: Do not check for Boost.
	* m4/boost.m4: Delete.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	safra: get rid of boost::dynamic_bitset.

	The bitvect implementation seems a tad faster, but most importantly
	this removes the last dependency on Boost.

	* src/tgba/tgbasafracomplement.cc: Replace boost::dynamic_bitset by
	spot::bitvect.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	bitvect: add a is_subset_of method.

	* src/misc/bitvect.hh: New method.
	* src/tgbatest/bitvect.cc, src/tgbatest/bitvect.test: Test it.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: Replace boost::shared_ptr by std::shared_ptr.

	* src/eltlparse/eltlparse.yy, src/ltlast/formula_tree.hh,
	src/ltlast/nfa.hh, src/saba/sabastate.hh, src/tgba/state.hh: Here.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: get rid of spot::unique_ptr

	But do not replace it by std::unique_ptr, because this was not
	really equivalent.

	* src/misc/unique_ptr.hh: Delete.
	* src/misc/Makefile.am: Adjust.
	* src/tgbaalgos/simulation.cc, src/tgbatest/ltl2tgba.cc: Call
	delete explicitly.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* lib/argp.h: Fix compilation with g++-4.6 -std=c++0x.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: improve configure.

	* configure.ac, m4/ax_check_compile_flag.m4: Update from
	Vaucanson 2.  (Thank you Akim.)

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/kripke/kripkeexplicit.cc: Work around a clang warning.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Some notes about C++11.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: work around Swig 2.0

	* src/misc/common.hh: Conditionally define SPOT_DELETED to = delete.
	* src/ltlvisit/simplify.hh, src/ta/taexplicit.hh, src/ta/taproduct.hh,
	src/tgba/bdddict.hh, src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.hh, src/tgba/tgbasgba.hh,
	src/tgba/tgbatba.hh, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc: Use
	SPOT_DELETED.
	* wrap/python/spot.i: Include common.hh.
	* wrap/python/Makefile.am: Remove useless definition of SPOT_API
	and BUDDY_API.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: explicitly delete copy constructors and operator=.

	* src/ltlvisit/simplify.hh, src/ta/taexplicit.hh, src/ta/taproduct.hh,
	src/tgba/bdddict.hh, src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.hh,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.hh, src/tgba/tgbasgba.hh,
	src/tgba/tgbatba.hh, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc: Here.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: use for(auto...) to simplify code in src/bin/.

	* src/bin/common_finput.cc, src/bin/genltl.cc, src/bin/ltlcross.cc,
	src/bin/randltl.cc: Simplify.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	c++11: replace Sgi::hash_* by Sgi::unordered_*.

	* bench/scc-stats/stats.cc, bench/split-product/cutscc.cc,
	iface/gspn/ssp.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
	src/bin/randltl.cc, src/dstarparse/nsa2tgba.cc, src/ltlast/formula.hh,
	src/ltlast/nfa.hh, src/ltlvisit/contain.hh, src/ltlvisit/dotty.cc,
	src/ltlvisit/mark.hh, src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh,
	src/ltlvisit/simplify.cc, src/ltlvisit/snf.hh, src/misc/hash.hh,
	src/misc/mspool.hh, src/priv/acccompl.hh, src/priv/accconv.hh,
	src/saba/explicitstateconjunction.hh, src/saba/sabastate.hh,
	src/sabaalgos/sabareachiter.hh, src/sanity/style.test,
	src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/taalgos/emptinessta.cc,
	src/taalgos/minimize.cc, src/taalgos/reachiter.hh, src/tgba/state.hh,
	src/tgba/taatgba.hh, src/tgba/tgbabddconcretefactory.hh,
	src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
	src/tgba/tgbasafracomplement.cc, src/tgba/tgbatba.cc,
	src/tgba/tgbatba.hh, src/tgbaalgos/cutscc.cc, src/tgbaalgos/cycles.hh,
	src/tgbaalgos/degen.cc, src/tgbaalgos/dtbasat.cc,
	src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
	src/tgbaalgos/emptiness.cc, src/tgbaalgos/gtec/explscc.hh,
	src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gv04.cc,
	src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
	src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
	src/tgbaalgos/powerset.hh, src/tgbaalgos/randomgraph.cc,
	src/tgbaalgos/reachiter.hh, src/tgbaalgos/replayrun.cc,
	src/tgbaalgos/safety.cc, src/tgbaalgos/scc.hh, src/tgbaalgos/se05.cc,
	src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
	src/tgbaalgos/tau03opt.cc: Adjust code.
	* src/sanity/style.test: Remove check.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	hash.hh: Remove conditional code.

	* m4/stl.m4: Delete.
	* configure.ac: Do not check for unordered_map and friends.
	* src/misc/hash.hh: Remove all conditional code.

2014-02-12  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* configure.ac: Turn on C++11 flags.

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-05  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: Mention recent fixes.

2014-02-05  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-28  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-28  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-28  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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	ltlcross: use tmpfile.

	* src/bin/ltlcross.cc: Use features introduced by misc/tmpfile.hh.

2013-07-28  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-28  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-28  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-28  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-28  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-28  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-28  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-28  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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* doc/Doxyfile.in: Hide private functions and member.  Enable search.

2013-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/tgbaalgos/cutscc.cc: Cosmetics.

2013-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/taalgos/tgba2ta.cc: Cosmetics.

2013-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/taalgos/minimize.cc: Cosmetics.

2013-07-28  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-28  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-28  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-28  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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* HACKING: Some doc on exporting symbols with SPOT_API.

2013-07-28  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-28  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-28  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-28  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-28  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-28  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-28  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-28  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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* NEWS: summarize recent changes

2013-07-28  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-28  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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* src/misc/unique_ptr.hh: Add missing operator->() const.

2013-07-28  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-28  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-28  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-28  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-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Release Spot 1.1.4.

	* NEWS, configure.ac, doc/org/tools.org: Update version.

2013-07-28  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	* THANKS: Jan should have been added earlier...

2013-07-28  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-29  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-27  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-20  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-20  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-17  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-21  Alexandre Duret-Lutz  <adl@lrde.epita.fr>

	Work around old g++ versions.

	* src/tgbaalgos/isweakscc.cc (cycle_found): Add a const_cast.

2012-09-21  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-18  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.
