Commit graph

146 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
101c2533f1 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 20:32:56 +02:00
Alexandre Duret-Lutz
acdaaac4f0 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 18:24:49 +02:00
Alexandre Duret-Lutz
f07fbbae79 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 16:18:37 +02:00
Alexandre Duret-Lutz
19aae6f9cf 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 22:25:12 +02:00
Alexandre Duret-Lutz
b6808115b9 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 15:35:17 +02:00
Alexandre Duret-Lutz
469d8067e0 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 13:32:48 +02:00
Alexandre Duret-Lutz
ec51f976f8 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 13:32:42 +02:00
Alexandre Duret-Lutz
11ca2803c9 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 13:32:03 +02:00
Alexandre Duret-Lutz
ca7f72bb4b 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 13:32:03 +02:00
Thomas Medioni
0c69649ba1 * bin/.gitignore: Ignore genaut binary. 2017-04-28 12:17:44 +02:00
Alexandre Duret-Lutz
540b971355 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 15:06:02 +02:00
Alexandre Duret-Lutz
8939e0dd50 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 18:14:15 +02:00
Alexandre Duret-Lutz
22aba2c4e2 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 14:19:35 +02:00
Alexandre Duret-Lutz
d9022f796c bin: remove unsupported %b stats from --help
* bin/common_aoutput.cc: Here.
* NEWS: Mention it.
2017-04-22 11:04:32 +02:00
Alexandre Duret-Lutz
e4a5bf8192 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-22 11:00:50 +02:00
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
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
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
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
Alexandre Duret-Lutz
4518724a5b 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 21:26:16 +01:00
Alexandre Duret-Lutz
fe3b86b306 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 21:26:16 +01:00
Alexandre Duret-Lutz
1c2a7f3d4f 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 21:26:16 +01:00
Alexandre Duret-Lutz
e86add4814 genltl: add --spec-patterns as an alias to --dac-patterns
* bin/genltl.cc: Here.
* NEWS: Mention it.
2017-03-22 07:27:07 +01:00
Alexandre Duret-Lutz
1290d48379 * bin/common_aoutput.cc: Remove a dead assignment. 2017-03-15 17:12:29 +01:00
Thomas Medioni
194c199232 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-09 11:42:08 +01:00
Alexandre Duret-Lutz
22a3d1c393 remove options -! and -" from genltl
Fixes #237.

* bin/genltl.cc: Fix the numbering of options.
* NEWS: Mention the bugs.
2017-03-01 16:18:12 +01:00
Alexandre Duret-Lutz
18283d6907 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-01 16:02:09 +01:00
Alexandre Duret-Lutz
68ad391948 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 17:02:06 +01:00
Alexandre Duret-Lutz
0d00ab24d2 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 17:02:06 +01:00
Clément Gillard
5d143cc1f8 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 21:33:15 +01:00
Clément Gillard
c0eeea2c5f 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 21:33:14 +01:00
Alexandre Duret-Lutz
1c96afb1d0 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-18 10:49:36 +01:00
Alexandre Duret-Lutz
a14abf27fb genltl: typos and shorter descriptions
* bin/genltl.cc: Shorten the descriptions of
the three new LTL families.
* NEWS: Mention those.
2017-02-17 17:45:11 +01:00
Vincent Tourneur
fc2831bf24 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 18:59:34 +01:00
Arthur Remaud
34859568cd 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 18:52:37 +01:00
Alexandre Duret-Lutz
fefb375d5f 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 15:56:02 +01:00
Alexandre Duret-Lutz
a0366921a5 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-07 22:33:33 +01:00
Alexandre Duret-Lutz
a4b575db1c 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 20:35:40 +01:00
Alexandre Duret-Lutz
0ad62cb97b 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-17 21:58:03 +01:00
Alexandre Duret-Lutz
ebdb198b64 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 23:43:01 +01:00
Alexandre Duret-Lutz
c7141bd189 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 10:43:35 +01:00
Alexandre Duret-Lutz
01838a2456 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 22:12:43 +01:00
Alexandre Duret-Lutz
43520a3e87 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 22:12:43 +01:00
Alexandre Duret-Lutz
b0ba6190b7 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-13 22:12:43 +01:00
Alexandre Duret-Lutz
c9918f6407 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-12 21:02:56 +01:00
Alexandre Duret-Lutz
7d9ce0d6fc 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 22:41:11 +01:00
Alexandre Duret-Lutz
de8a248fb2 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 16:11:11 +01:00
Alexandre GBAGUIDI AISSE
823dc56e6b 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 19:53:21 +01:00
Alexandre GBAGUIDI AISSE
7046a49622 bin/autfilt.cc: Add '--highlight-languages' option
* bin/autfilt.cc: Add that option.
* tests/core/highlightstate.test: Add test.
* NEWS: Update.
2017-01-06 19:53:21 +01:00