Commit graph

4289 commits

Author SHA1 Message Date
Maximilien Colange
3c0aecf4e6 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 18:13:33 +02:00
Maximilien Colange
d90e38eb2a 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 18:13:33 +02:00
Thomas Medioni
b428ed31ec 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-21 16:24:08 +02:00
Alexandre Duret-Lutz
07c2dd3b64 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 20:07:30 +02:00
Alexandre Duret-Lutz
e7797b727d org: typos
* doc/org/concepts.org: Fix some typos.
2017-04-20 20:01:18 +02:00
Thomas Medioni
cc3bdfcd2e 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-20 14:06:57 +02:00
Alexandre Duret-Lutz
9377db2e5e 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 18:46:35 +02:00
Alexandre Duret-Lutz
cb920242a7 [buddy] fix previous patch
* src/fdd.c: C++ comments are not supported in C90.
2017-04-19 13:25:07 +02:00
Michael Weber
44ca086f5d [buddy] Addref in fdd_intaddvarblock
* src/fdd.c (fdd_intaddvarblock): Add missing addref.

Signed-off-by: Jaco van de Pol <J.C.vandepol@ewi.utwente.nl>
Signed-off-by: Michael Weber <michaelw@cs.utwente.nl>
2017-04-19 11:22:20 +02:00
Alexandre Duret-Lutz
334f04b0c4 Merge branch 'master' into next 2017-04-11 11:11:05 +02:00
Alexandre Duret-Lutz
19602e4bd0 Bump version number to 2.3.3.dev
* NEWS, configure.ac: Here.
2017-04-11 10:46:40 +02:00
Alexandre Duret-Lutz
e39e5ac586 Spot 2.3.3
* NEWS, configure.ac, doc/org/setup.org: Bump version number.
2017-04-11 10:43:04 +02:00
Alexandre Duret-Lutz
88bc78f9e2 * spot/twaalgos/remfin.cc: Typos in comments. 2017-04-08 17:24:10 +02:00
Alexandre Duret-Lutz
e58a00a2e3 * spot/twaalgos/remfin.cc: Typos in comments. 2017-04-08 17:22:29 +02:00
Alexandre Duret-Lutz
bf99e6c24e 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-08 17:21:46 +02:00
Thomas Medioni
0d884d4a93 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 17:15:39 +02:00
Thomas Medioni
152b5d0d30 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 17:15:38 +02:00
Thomas Medioni
073a6e8198 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 17:15:38 +02:00
Thomas Medioni
c9d8d41fd3 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 17:15:38 +02:00
Alexandre Duret-Lutz
c90400a1b0 * AUTHORS: Add Thomas Medioni. 2017-04-07 13:52:05 +02:00
Alexandre Duret-Lutz
08c153d3bb 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 11:30:31 +02:00
Alexandre Duret-Lutz
4b7a6238b4 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 11:29:49 +02:00
Alexandre Duret-Lutz
14addce640 genltl: add --spec-patterns as an alias to --dac-patterns
* bin/genltl.cc: Here.
* NEWS: Mention it.
2017-04-07 11:29:33 +02:00
Alexandre Duret-Lutz
276f40602e 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 11:28:39 +02:00
Maximilien Colange
6806113a14 Fix wrong URL for Debian packages.
* debian/control: Fix URL.
2017-04-07 11:16:09 +02:00
Alexandre Duret-Lutz
1daffe12f0 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-07 11:14:06 +02:00
Alexandre Duret-Lutz
cc0e9a5e1e 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-06 14:33:14 +02:00
Maximilien Colange
31a9bc6416 Fix wrong URL for Debian packages.
* debian/control: Fix URL.
2017-04-05 11:03:59 +02:00
Alexandre Duret-Lutz
b442d2bbd4 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-04 14:20:41 +02:00
Thomas Medioni
cebc4b00b5 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-04-03 11:32:45 +02:00
Thomas Medioni
01ee49290f 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 21:45:33 +02:00
Alexandre Duret-Lutz
1ed6e518dd 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 21:44:49 +02:00
Alexandre Duret-Lutz
b910330a78 [buddy] Typos in comments
* src/kernel.c (bdd_addref): Fix typo documentation.
* src/bddop.c (bdd_appall, bdd_appallcomp): Likewise.
2017-03-31 21:22:04 +02:00
Alexandre Duret-Lutz
f5d53e3a5e 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 21:22:04 +02:00
Thomas Medioni
5f43fec8db 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 13:40:05 +02:00
Alexandre Duret-Lutz
be41155308 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-30 21:45:43 +02:00
Alexandre Duret-Lutz
42e5cd955e [buddy] Typos in comments
* src/kernel.c (bdd_addref): Fix typo documentation.
* src/bddop.c (bdd_appall, bdd_appallcomp): Likewise.
2017-03-30 21:45:22 +02:00
Maximilien Colange
41ac0e681f 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 23:51:59 +02:00
Alexandre Duret-Lutz
f6b735234d 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 20:04:08 +02:00
Alexandre Duret-Lutz
f6e6099d9b python: mark prop_deterministic as deprecated
Related to #212.

* python/spot/impl.i: Here.
2017-03-29 20:00:26 +02:00
Maximilien Colange
60bf675c10 Improve sanity tests.
* tests/sanity/style.test: improve detection of assert in headers, and
  of template arguments.
2017-03-29 11:57:45 +02:00
Alexandre Duret-Lutz
6623af67e6 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 10:34:41 +02:00
Alexandre Duret-Lutz
f6a238efd5 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 10:08:23 +02:00
Alexandre Duret-Lutz
5f564c2b45 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 21:34:40 +02:00
Alexandre Duret-Lutz
e86964fe81 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 15:37:04 +02:00
Alexandre Duret-Lutz
73bb562bf5 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-28 07:28:52 +02:00
Alexandre Duret-Lutz
a90f219369 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 21:39:16 +02:00
Alexandre Duret-Lutz
4a5d7a3978 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-27 19:34:10 +02:00
Alexandre Duret-Lutz
cdf699ff23 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 22:48:16 +01:00
Alexandre Duret-Lutz
1596f0ed75 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 22:48:16 +01:00