Commit graph

4663 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
361b44e571 [buddy] use powers of two for the sizes of all hash tables
* src/bddop.c, src/bddx.h, src/cache.c, src/cache.h, src/kernel.c,
src/kernel.h, src/prime.c, src/prime.h, src/reorder.c: Use power of
two for the sizes of all hash tables, in order to reduce the amount of
divisions performed.  Also allow bddhash to be smaller than bddnodes.
2017-07-24 13:42:21 +02:00
Alexandre Duret-Lutz
98e7e4e49a 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-24 13:25:19 +02:00
Thomas Medioni
7e7c257597 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-20 18:10:40 +02:00
Thomas Medioni
c8889e65f0 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-19 16:54:09 +02:00
xlauko
71b08b034a tra2tba: Make result state-based if possible
* spot/twaalgos/remfin.cc: Create state-based result.
2017-07-17 17:21:25 +02:00
xlauko
d45b60a4e5 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 17:21:19 +02:00
xlauko
2019315213 acc: Add support for rs_pairs view
* spot/twa/acc.hh: Implement rs_pairs_view
2017-07-17 17:21:11 +02:00
xlauko
bd8ede6226 tra2tba: Merge edges of resulting automaton
* spot/twaalgos/tra2tba.cc: Call 'merge_edges'
* tests/python/tra2tba.py: Update tests
2017-07-17 17:21:06 +02:00
Henrich Lauko
69cf3c5590 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 17:21:00 +02:00
xlauko
e1271bf8b3 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 17:20:52 +02:00
Alexandre Duret-Lutz
2ecd93ace8 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 15:30:54 +02:00
Alexandre Duret-Lutz
da0cdf1184 remfin: typo
* spot/twaalgos/remfin.cc: 0x16 is not 16.
2017-07-17 09:32:04 +02:00
Alexandre Duret-Lutz
b9af535f3d * spot/twaalgos/strength.cc: Fix unsigned/signed cmp. 2017-07-01 07:57:25 +02:00
Alexandre Duret-Lutz
09e47d648a 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 23:09:31 +02:00
Alexandre Duret-Lutz
fba3c78206 org: improve recurrence example
* doc/org/hierarchy.org: When generating DBA from recurrence formulas,
actually use -B instead of --tgba.
2017-06-30 14:36:00 +02:00
Alexandre Duret-Lutz
772404c131 twa: typo in error message
* spot/twa/twa.cc (twa::accepting_run): Here.
2017-06-30 14:21:11 +02:00
Alexandre Duret-Lutz
efbce454e2 Merge branch 'master' into next 2017-06-22 07:06:29 +02:00
Alexandre Duret-Lutz
6c3daf0cd4 bump version
* NEWS, configure.ac: Bump version to 2.3.5.dev.
2017-06-22 07:03:15 +02:00
Alexandre Duret-Lutz
af000edbf9 Release Spot 2.3.5
* NEWS, configure.ac, doc/org/setup.org: Update version.
2017-06-22 06:58:01 +02:00
Alexandre Duret-Lutz
20df3b4e98 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 16:15:13 +02:00
Thomas Medioni
fc609057d6 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-21 09:52:20 +02:00
Alexandre Duret-Lutz
d62d848208 ltsmin: catch exceptions by reference
* spot/ltsmin/ltsmin.cc, tests/ltsmin/modelcheck.cc: Here.
2017-06-20 17:30:49 +02:00
Alexandre Duret-Lutz
0a21a4c87e ltsmin: catch exceptions by reference
* spot/ltsmin/ltsmin.cc, tests/ltsmin/modelcheck.cc: Here.
2017-06-20 17:29:48 +02:00
Alexandre Duret-Lutz
3f71521625 [buddy] fix handling of bdd_apply_biimp
* src/bddop.c: Fix shortcut.
2017-06-20 16:29:26 +02:00
Alexandre Duret-Lutz
2dd134b0aa doc: Jessie -> Stretch
* doc/org/install.org: Update.
2017-06-20 16:29:26 +02:00
Alexandre Duret-Lutz
05abed6d2f 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 15:19:00 +02:00
Alexandre Duret-Lutz
0bc1dd4446 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-20 15:19:00 +02:00
Alexandre Duret-Lutz
819cd7b8b6 [buddy] fix handling of bdd_apply_biimp
* src/bddop.c: Fix shortcut.
2017-06-20 15:19:00 +02:00
Alexandre Duret-Lutz
85e4cf510c doc: Jessie -> Stretch
* doc/org/install.org: Update.
2017-06-19 18:00:10 +02:00
Alexandre Duret-Lutz
413d2d6a6c 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 17:53:03 +02:00
Alexandre Duret-Lutz
20a4959ff6 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 17:52:41 +02:00
Alexandre Duret-Lutz
97e903b13d 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 23:15:20 +02:00
Etienne Renault
440380c5ca ikwiad: fix accepting run printing
* tests/core/ikwiad.cc: here.
2017-06-11 23:12:03 +02:00
Thomas Medioni
7b5b8f34f0 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 10:49:09 +02:00
Thomas Medioni
570c433122 autfilt: add option --simplify_acceptance
* NEWS: Mention this.
* bin/autfilt.cc: Add option --simplify-acceptance.
2017-06-08 10:46:29 +02:00
Thomas Medioni
a12d676bdc 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 10:46:29 +02:00
Thomas Medioni
22620e185c style: allow the use of initializer-lists in if
* tests/sanity/style.test: Allow initializer-lists in ifs.
2017-06-08 10:46:29 +02:00
Alexandre Duret-Lutz
d795955aaa 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 10:46:29 +02:00
Alexandre Duret-Lutz
24b5a350d4 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-08 10:46:29 +02:00
Alexandre Duret-Lutz
1042a8dae1 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 20:34:05 +02:00
Etienne Renault
4de44b42de ikwiad: fix accepting run printing
* tests/core/ikwiad.cc: here.
2017-06-07 17:05:25 +02:00
Alexandre Duret-Lutz
0e039a36b1 * AUTHORS: Add Henrich Lauko. 2017-06-07 14:46:31 +02:00
Henrich Lauko
784681d833 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 14:33:01 +00:00
Maximilien Colange
4f8a8f7305 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-05 15:48:36 +02:00
Alexandre Duret-Lutz
acbb51062a * tests/core/ltlcross4.test: Ignore space diff in pandas' output. 2017-06-03 12:21:24 +02:00
Alexandre Duret-Lutz
526e19d4b6 * tests/core/ltlcross4.test: Ignore space diff in pandas' output. 2017-06-03 11:03:58 +02:00
Alexandre Duret-Lutz
526b299de8 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 10:04:14 +02:00
Alexandre Duret-Lutz
ae0e84ac9e 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-03 10:03:59 +02:00
Alexandre Duret-Lutz
dbcde8e346 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 19:07:34 +02:00
Alexandre Duret-Lutz
9ab4b840fd 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 14:10:34 +02:00