Commit graph

478 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
96a2a13c85 Release Spot 2.0
* configure.ac, doc/org/setup.org, NEWS: Update version number.
2016-04-11 06:52:12 +02:00
Alexandre Duret-Lutz
a6afaf3d9d 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 17:22:26 +02:00
Alexandre Duret-Lutz
868f2634f8 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 11:33:46 +02:00
Alexandre Duret-Lutz
949638930b * NEWS: Mention recent python changes. 2016-04-09 10:14:31 +02:00
Alexandre Duret-Lutz
59e1f6a339 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-09 10:10:41 +02:00
Alexandre Duret-Lutz
d8a9737f02 * NEWS, configure.ac: Bump version to 1.99.9a. 2016-03-13 16:54:23 +01:00
Alexandre Duret-Lutz
54d6507fc2 Release Spot 1.99.9.
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2016-03-13 16:45:08 +01:00
Alexandre Duret-Lutz
7e2e4df1bb 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 12:14:14 +01: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
61b1f200b6 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-06 11:40:42 +01:00
Alexandre Duret-Lutz
ad08a585af 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 18:18:39 +01:00
Alexandre Duret-Lutz
cf79cefd9a 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 16:47:16 +01:00
Alexandre Duret-Lutz
892e648970 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 17:44:03 +01:00
Alexandre Duret-Lutz
65726c0f60 twa: rename as_var() as as_vars()
* spot/twa/twa.hh, spot/twaalgos/stutter.cc: Here.
* NEWS: Mention the change.
2016-03-02 16:44:49 +01:00
Alexandre Duret-Lutz
1e18c1a3d4 * NEWS, configure.ac: Bump version number. 2016-02-18 16:16:37 +01:00
Alexandre Duret-Lutz
6b7f0399f4 Release Spot 1.99.8
* NEWS, configure.ac, doc/org/setup.org: Update version number.
2016-02-18 14:28:06 +01:00
Alexandre Duret-Lutz
22f442f758 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 20:31:58 +01:00
Alexandre Duret-Lutz
9692d734a9 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 19:08:28 +01:00
Alexandre Duret-Lutz
3a3913cf50 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 17:26:41 +01:00
Alexandre Duret-Lutz
1ae0600cae 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 19:16:45 +01:00
Alexandre Duret-Lutz
199e5fd2e0 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 17:17:10 +01:00
Alexandre Duret-Lutz
52bf1da3c2 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 17:17:10 +01:00
Alexandre Duret-Lutz
1b12df46fe 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 16:10:07 +01:00
Alexandre Duret-Lutz
a3e0c8624e 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 11:04:48 +01:00
Alexandre Duret-Lutz
39b95474f8 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 11:04:48 +01:00
Etienne Renault
091251b5b7 Provide support for %dve and %require
* NEWS, python/spot/ltsmin.i,
tests/python/ltsmin.ipynb: Here.
2016-02-15 09:08:37 +01:00
Alexandre Duret-Lutz
f7b5dcf47d 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 19:53:52 +01:00
Alexandre Duret-Lutz
b59ebdc40c * NEWS: typo 2016-02-12 19:50:37 +01:00
Alexandre Duret-Lutz
021921f0c3 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 17:46:38 +01:00
Alexandre Duret-Lutz
9799a6455e 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 17:00:20 +01:00
Alexandre Duret-Lutz
6a662a6d8e 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 15:09:37 +01:00
Alexandre Duret-Lutz
df0f99410c * NEWS: Summarize recent changes. 2016-02-12 14:27:48 +01:00
Alexandre Duret-Lutz
fbdd146565 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 08:18:39 +01:00
Alexandre Duret-Lutz
992c97151c 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-12 08:18:15 +01:00
Alexandre Duret-Lutz
86646ac31f 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-10 19:12:48 +01:00
Alexandre Duret-Lutz
77b0b5b3fe 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 19:26:38 +01:00
Alexandre Duret-Lutz
02b5460b91 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 22:12:13 +01:00
Alexandre Duret-Lutz
a9b4560f3d 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-02-01 08:38:45 +01:00
Alexandre Duret-Lutz
b11c07b351 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-29 09:09:05 +01:00
Alexandre Duret-Lutz
c968e7b856 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 19:38:50 +01:00
Alexandre Duret-Lutz
db1e842a67 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 19:21:35 +01:00
Alexandre Duret-Lutz
907b72fbfb 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 19:21:35 +01:00
Alexandre Duret-Lutz
c4e9083f4e 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 21:28:35 +01:00
Alexandre Duret-Lutz
78fd7beaaf 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-23 17:49:32 +01:00
Alexandre Duret-Lutz
dc93e13490 * NEWS, configure.ac: Bump version number. 2016-01-15 16:29:09 +01:00
Alexandre Duret-Lutz
f466320b4a Release Spot 1.99.7
* NEWS, configure.ac, doc/org/setup.org: Bump version to 1.99.7.
2016-01-15 11:30:16 +01:00
Alexandre Duret-Lutz
f5d156abf2 * NEWS: Minor cleanup. 2016-01-15 08:49:08 +01:00
Alexandre Duret-Lutz
51483b9b7f 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 17:16:17 +01:00
Alexandre Duret-Lutz
6c62362fe9 parseaut: add support for negated properties
* spot/parseaut/parseaut.yy: Here.
* tests/core/parseaut.test: Test it.
* NEWS: Mention it.
2016-01-14 16:58:17 +01:00
Alexandre Duret-Lutz
da391492f3 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 17:57:54 +01:00