Commit graph

30 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
dd706d7847 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 15:20:56 +01:00
Alexandre Duret-Lutz
d919b78c89 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-11-01 09:29:55 +01:00
Alexandre Duret-Lutz
421a9a1b12 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-07 15:57:14 +02:00
Amaury Fauchille
1c82444376 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 22:19:25 +01:00
Alexandre Duret-Lutz
1ca4204ccd Remove obsolete ACLOCAL_AMFLAGS definition.
Fixes #138, reported by Valentin Iovene.

* Makefile.am: Here.
* THANKS: Add Valentin.
2016-02-03 16:51:24 +01:00
Alexandre Duret-Lutz
cd8e53de09 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-20 08:06:31 +02:00
Alexandre Duret-Lutz
1f17b59360 debian: add licenses for lib/*
* debian/copyright: Here.
* THANKS: Add Michael, who reported the problem.
2015-08-26 18:27:15 +02:00
Alexandre Duret-Lutz
63969b13fa Fix spurious uniq.test failure.
Reported by Christopher Ziegler.

* src/tests/uniq.test: For LC_ALL=C before sort.
2015-08-23 17:38:30 +02:00
Alexandre Duret-Lutz
36a3dc45a7 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 21:37:03 +02:00
Alexandre Duret-Lutz
78e63d0324 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-05 18:55:52 +01:00
Alexandre Duret-Lutz
e5124faa13 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 14:52:51 +02:00
Alexandre Duret-Lutz
17dd281b33 * doc/org/ltlfilt.org: Typo, reported by Fabrice Kordon. 2014-02-04 07:58:52 +01:00
Alexandre Duret-Lutz
ce6114f461 * THANKS: Jan should have been added earlier... 2013-07-29 00:25:13 +02:00
Alexandre Duret-Lutz
cb7bdf8c1f 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-29 00:25:13 +02:00
Alexandre Duret-Lutz
a9a96ee4ff 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 14:00:49 +02:00
Alexandre Duret-Lutz
e2378b4904 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-30 00:01:35 +02:00
Alexandre Duret-Lutz
543de07737 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 12:04:35 +01:00
Alexandre Duret-Lutz
ebe2362bc9 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 10:23:13 +02:00
Alexandre Duret-Lutz
a2893520ca Properly thank Christian and Felix.
* THANKS, src/tgbaalgos/ltl2tgba_fm.cc: Here.
2012-05-07 14:44:50 +02:00
Alexandre Duret-Lutz
fdf8878db3 Update formulae.ltl not to use uncommon operators.
* bench/emptchk/formulae.ltl: Do not use + and * in the list of
formulas.  Use | and & instead.  The * operator was removed on
2010-01-30.  Reported by Étienne Renault.
2011-11-24 22:03:42 +01:00
Alexandre Duret-Lutz
ea6a1ffc22 Fully quote guards used by neverclaims.
Especially with should write !(p0) and not !p0, because p0 is
usually #define'd by the user and he may have forgotten to quote
the value of the macro.  This issue was discovered by Kristin
Yvonne Rozier and diagnosed by Gerard Holzmann.

* src/tgbaalgos/neverclaim.cc (process_link): Call
to_spin_string(..., true) to fully parentheses the string.
* src/tgbatest/neverclaimread.test: Add a test.
2011-11-16 14:27:50 +01:00
Alexandre Duret-Lutz
2422b63a36 Better documentation for print_tgba_run.
* src/tgbaalgos/emptiness.hh (print_tgba_run): Reword the
documentation after a report from Nikos Gorogiannis.
2011-10-26 19:05:55 +02:00
Alexandre Duret-Lutz
a4d1e18bf3 Safra: Fix usage of multiple acceptance conditions and fix text output.
* src/tgba/tgbasafracomplement.cc
(tgba_safra_complement::tgba_safra_complement)
(tgba_safra_complement::succ_iter): Correct the declaration and
use of multiple acceptance conditions.
(state_complement::to_string): Output the L set, not U.  The previous
code caused different states to share the same names, causing issues
with the text-based output (state with identical names get merged).
* src/tgba/tgbasafracomplement.hh
(tgba_safra_complement::acceptance_cond_vec_): Adjust type to
store BDDs.
* src/tgbatest/complementation.cc: Implement a new "-b" option
to output automata in Spot's syntax.
* src/tgbatest/complementation.test: Add a test-case supplied
by Martin Dieguez Lodeiro.
* THANKS: Add Martin.
2011-10-23 23:06:59 +02:00
Alexandre Duret-Lutz
03aabf9a3a Fix a nondeterministic behavior of the degeneralization algorithm.
Reported by Tomáš Babiak <xbabiak@fi.muni.cz>.

* src/tgba/tgbatba.cc (tgba_tba_proxy): Replace the std::map used
to record outgoing transitions by an Sgi::hash_map, and keep the
order of these transitions in a separate list.
* src/tgbatest/degendet.test: New file.
* src/tgbatest/Makefile.am (TESTS): Add it.
* THANKS: Add Tomáš and convert to utf8.
2011-08-17 16:24:38 +02:00
Alexandre Duret-Lutz
4ce06114d7 * THANKS: Add Michael Weber for his help on the DiVinE interface. 2011-03-21 10:49:22 +01:00
Alexandre Duret-Lutz
1fa1621a6b Hide the safra_tree_automaton type from the public interface.
We do that because the declaration of this type, which is local to
src/tgba/tgbasafracomplement.cc has a member in an anonymous
namespace, and some versions of g++-4.2 issue a very annoying
warning about this legitimate code.  See Bug 29365 on GCC's
Bugzilla.  Report by Silien Hong <silien.hong@lip6.fr>.

* src/tgba/tgbasafracomplement.hh (safra_tree_automaton): Do not
forward declare.
(tgba_safra_complement): Use void* instead of
safra_tree_automaton*.
* src/tgba/tgbasafracomplement.cc: static_cast void* to
safra_tree_automaton* anywhere needed.
2010-10-07 15:17:18 +02:00
Alexandre Duret-Lutz
efb15a9171 ltl2tgba: apply -R3 before -D or -DS.
* src/tgbatest/ltl2tgba.cc (main): Call scc_filter() before the
degeneralization, because it might remove useless acceptance
conditions.  I realized this while looking at experiments from
Rdiger Ehlers.
2010-03-03 08:42:45 +01:00
Alexandre Duret-Lutz
3ce1627251 Add a benchmark using Kristin Y. Rozier's LTLcounter scripts.
* bench/ltlcounter/README, bench/ltlcounter/run,
bench/ltlcounter/plot.gnu, bench/ltlcounter/defs.in,
bench/ltlcounter/Makefile.am: New files.
* bench/Makefile.am (SUBDIRS): Add ltlcounter.
* configure.ac (AC_CONFIG_FILES): Adjust.
* THANKS: Add her.
2009-11-09 12:15:24 +01:00
Alexandre Duret-Lutz
0f304df2ed * THANKS: Fill in. 2004-07-09 13:06:33 +00:00
Alexandre Duret-Lutz
6f88e518a9 * src/ltltest/defs.in (run): New function, run valgrind.
* src/ltltest/equals.test, src/ltltest/lunabbrev.test,
src/ltltest/nenoform.test, src/ltltest/parse.test,
src/ltltest/parseerr.test, src/ltltest/tostring.test,
src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Use run().
* Makefile.am (EXTRA_DIST): Don't list the m4/*.m4 files,
Automake 1.8 find them automatically.
* configure.ac: Require Automake 1.8, in gnits mode, and check
for valgrind.
* THANKS: New empty file.
2003-12-29 17:30:51 +00:00