Commit graph

568 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
ca0d81b5d7 autfilt, dstar2tgba: add CSV input
Fixes #91.

* bin/autfilt.cc, bin/dstar2tgba.cc: Implement reading CSV files.
* bin/common_finput.cc: Fix comments.
* bin/common_aoutput.cc: Show %<, %> in help text.
* NEWS, doc/org/csv.org: Document it.
* tests/core/readsave.test: Add a short test case.
2016-08-08 13:18:50 +02:00
Alexandre Duret-Lutz
f423c424eb bin: --stats=%H --stats=%h
Part of #91.

* bin/common_aoutput.cc, bin/common_aoutput.hh: implement %H and %h.
* tests/core/readsave.test: Test them.
* NEWS: Mention it.
2016-08-08 12:41:36 +02:00
Alexandre Duret-Lutz
0d753048ce formater: add support for double-quoted fields
Part of #91.

* spot/misc/formater.cc, spot/misc/formater.hh: Here.
* bin/common_output.cc: Adjust automatic output format.
* doc/org/csv.org: Adjust.
* tests/core/lbt.test, tests/core/ltlfilt.test: More tests.
* NEWS: Mention the changes.
2016-08-08 10:53:33 +02:00
Alexandre Duret-Lutz
14bee1ae7f implement conversion to GRA and GSA
Fixes #174.

* spot/twaalgos/totgba.hh, spot/twaalgos/totgba.cc
(to_generalized_streett, to_generalized_rabin): New functions.
* spot/twa/acc.hh: Declare more methods as static.
* bin/autfilt.cc: Implement --generalized-rabin and
--generalized-streett options.
* NEWS: Mention these.
* tests/core/gragsa.test: New file.
* tests/Makefile.am: Add it.
2016-08-04 22:24:30 +02:00
Alexandre Duret-Lutz
736003057c * NEWS: Minor typos and reorganization. 2016-08-03 12:23:46 +02:00
Alexandre Duret-Lutz
7524e05128 ltlcross: bypass the shell for simple command
For #98.

* bin/common_trans.cc: Here.
* NEWS: Mention it.
2016-08-02 14:24:05 +02:00
Alexandre Duret-Lutz
d2068bb1a0 sbacc: improve using SCCs and common marks
* spot/twaalgos/sbacc.cc: Here.
* tests/core/parseaut.test, tests/python/automata.ipynb: Adjust.
* tests/core/sbacc.test: Likewise + more tests.
* NEWS: Mention it.
2016-07-31 22:57:50 +02:00
Alexandre Duret-Lutz
d271dfd592 python: make it possible to modify edges during iteration
Reported by Laurent Xu.

* python/spot/impl.i: Fix the iterator to return pointers instead of
references.  Because references are ultimately copied.
* tests/python/automata.ipynb: Add test cases.
* NEWS: Mention it.
2016-07-29 16:09:54 +02:00
Alexandre Duret-Lutz
09c6393942 * NEWS: Typo. 2016-07-29 11:59:31 +02:00
Alexandre Duret-Lutz
59efe470ca ltlcross: show cross-comparison checks counterexamples
Part of #38.

* bin/ltlcross.cc: Implement it.
* NEWS: Mention it.
* doc/org/ltlcross.org: Adjust example.
* tests/core/ltlcrossce2.test: New test case.
2016-07-29 11:58:12 +02:00
Alexandre Duret-Lutz
561672d3d7 lbtt: fix a memory leak detected by asan.
* spot/twaalgos/lbtt.cc: Here.
* NEWS: Mention it.
2016-07-27 20:10:51 +02:00
Alexandre Duret-Lutz
15ea2e66e8 org: show how to implement Kripke structures
* doc/org/tut51.org: New file.
* doc/org/tut.org, doc/Makefile.am, NEWS: Add it.
* elisp/ob-dot.el: New file, to work around old org-mode versions.
* elisp/README, elisp/Makefile.am: Add it.
2016-07-27 16:21:03 +02:00
Alexandre Duret-Lutz
6617538156 kripke: rename state_acceptance_conditions
* spot/kripke/kripke.cc, spot/kripke/kripke.hh,
spot/kripke/fairkripke.hh (state_acceptance_conditions): Rename as...
(state_acceptance_mark): ... this.
* NEWS: Mention it.
2016-07-27 11:13:06 +02:00
Alexandre Duret-Lutz
096edf227d * NEWS: Reword some entries. 2016-07-27 10:35:59 +02:00
Alexandre Duret-Lutz
da464d8199 org: document explicit vs. on-the-fly
* doc/org/tut50.org: New file.
* doc/org/tut.org: Add it.
* NEWS: Mention it.
* doc/Makefile.am: Add tut50.org, and download plantuml.jar when needed.
* doc/org/.dir-locals.el.in, doc/org/init.el.in: Activate plantum.
* HACKING: Mention the Java dependency.
2016-07-26 11:26:16 +02:00
Alexandre Duret-Lutz
d7d6b40926 minimize_wdba: fix nondeterministic execution
Fixes core/readsave.test and python/automata.ipython
with gcc-snapshot (future gcc 7).

* spot/twaalgos/minimize.cc: Here.
* NEWS: Mention the change.
* tests/core/acc_word.test: Adjust test case.
2016-07-25 14:02:40 +02:00
Alexandre Duret-Lutz
71e2490643 twa: rename twa::succ_iterable into internal::twa_succ_iterable
* spot/twa/twa.hh: Here.
* NEWS: Mention the change.
2016-07-22 14:14:23 +02:00
Alexandre Duret-Lutz
dd6875d5fe bin: overhaul default input selection
If no input have been specified, and the standard input is not a tty all
tools now default to reading it.  If standard input is a tty, all tools
display an error message.  Additionally, - is now a shorthand for -F- in
all tools.

* NEWS: Summarize this.
* bin/common_finput.cc, bin/common_finput.hh (check_no_formulas,
check_no_automaton): New functions that implement the above istty()
logic.
* bin/autfilt.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc, bin/ltl2tgta.cc,
bin/ltlcross.cc, bin/ltldo.cc, bin/ltlgrind.cc: Use these function,
and recognize '-' if it was not the case.
* tests/core/acc_word.test, tests/core/ltldo.test,
tests/core/minusx.test, tests/core/readsave.test,
tests/core/unambig.test: Adjust some tests to exercise this.
* doc/org/autfilt.org, doc/org/csv.org, doc/org/dstar2tgba.org,
doc/org/ltl2tgba.org, doc/org/ltlcross.org, doc/org/ltlfilt.org,
doc/org/oaut.org: Adjust the documentation and simplify some
examples.
2016-07-19 21:55:12 +02:00
Alexandre Duret-Lutz
abff7eba8e simplifier: new PSL simplifications
{e[*0..j]}<>->f = {e[*1..j]}<>->f
{e[*0..j]}[]->f = {e[*1..j]}[]->f

Fixes #81.

This required a small change to the bounded-star-normal-form to prevent
infinite recursion.

* spot/tl/simplify.cc: Implement these rules.
* doc/tl/tl.tex, NEWS: Document them.
* tests/core/reduccmp.test: Add tests, and adjust others.
* tests/core/unambig.test: Replace formula that used to generated an
ambiguous automaton, but now generates a deterministic one.
2016-07-19 17:57:16 +02:00
Alexandre Duret-Lutz
d5b2de7fa8 simplifier: new LTL simplifications
if e is pure eventuality and g => e, then e U g = Fg
if u is purely universal and u => g, then u R g = Gg

Fixes #93.

* doc/tl/tl.tex, NEWS: Document the rules.
* spot/tl/simplify.cc: Implement them.
* tests/core/reduccmp.test: Test them.
* tests/core/det.test: Adjust.
2016-07-19 16:02:19 +02:00
Alexandre Duret-Lutz
e37f62dc75 python: have %%dve and %%pml honor SPOT_TMPDIR and TMPDIR
* python/spot/aux.py (tmpdir): New context manager.
* python/spot/ltsmin.i: Use it for the two magics.
* NEWS: Mention this.
2016-07-19 14:23:27 +02:00
Alexandre Duret-Lutz
4c0500a8a9 autfilt: add --stutter-invariant
* bin/autfilt.cc: Implement the option.
* NEWS: Mention it.
* tests/core/readsave.test, tests/core/stutter-tgba.test: Add some
tests.
2016-07-19 13:20:08 +02:00
Alexandre Duret-Lutz
5a2bc9f915 stutter: complement non-det automata via determinization
Fixes #164.

* spot/twaalgos/stutter.hh, spot/twaalgos/stutter.cc: Implement
the determinization, while keeping it optional.
* NEWS: Mention the change.
* tests/core/ltl2dstar.test, tests/core/stutter-tgba.test: Add
test cases.
* tests/core/readsave.test: Adjust.
2016-07-19 13:03:37 +02:00
Alexandre Duret-Lutz
29a1e3a299 python: add missing bindings for randomize()
* python/spot/impl.i: Here.
* NEWS: Mention it.
* tests/python/highlighting.ipynb: Add test case.
2016-07-19 02:55:07 +02:00
Alexandre Duret-Lutz
014a9dbd6b twa: add accepting_run() and accepting_word() methods
Fixes #153.

* spot/twa/twa.cc, spot/twa/twa.hh: Add the methods.
* bin/autfilt.cc, bin/common_aoutput.hh, bin/ltlcross.cc,
tests/python/highlighting.ipynb, tests/python/word.ipynb: Use
them to simplify the code.
* NEWS: Mention them.
2016-07-18 23:23:01 +02:00
Alexandre Duret-Lutz
d1aca565b5 remove the incorrect project_twa_run()
It was bogus, and is better replaced by twa_run::project().

* NEWS, doc/org/upgrade2.org: Mention the removal.
* spot/twaalgos/projrun.cc, spot/twaalgos/projrun.hh: Remove the files.
* spot/twaalgos/Makefile.am: Adjust.
2016-07-18 23:23:01 +02:00
Alexandre Duret-Lutz
b13caea3d8 autfilt: --highlight-word
* bin/autfilt.cc: Add the option.
* NEWS: Mention it.
* tests/core/acc_word.test: Test it.
* spot/twaalgos/emptiness.cc,
spot/twaalgos/emptiness.hh (twa_run::project): New method.
2016-07-18 23:23:01 +02:00
Alexandre Duret-Lutz
57f47c16e7 genltl: support --positive and --negative
* bin/genltl.cc: Implement these options.
* NEWS: Mention them.
* tests/core/genltl.test: New file with test cases.
* tests/Makefile.am: Add it.
2016-07-18 23:23:01 +02:00
Alexandre Duret-Lutz
31a1dfbc6a autfilt: add --nondet-states=RANGE
* bin/autfilt.cc: Here.
* tests/core/det.test: Test it.
* NEWS: Mention it.
2016-07-18 23:23:01 +02:00
Alexandre Duret-Lutz
b6cd54ab16 autfilt: add highlighting options for nondeterminism
Fixes #123.

* bin/autfilt.cc: Add options --highlight-nondet-states=NUM,
 --highlight-nondet-edges=NUM, and  --highlight-nondet=NUM.
* spot/twaalgos/isdet.cc,
spot/twaalgos/isdet.hh (highlight_nondet_states,
highlight_nondet_edges): New functions.
* tests/core/det.test: Add test cases.
* NEWS: Mention them.
2016-07-18 23:23:01 +02:00
Alexandre Duret-Lutz
e17a617bc2 hoa: output highlighted states and edges in v1.1
* spot/twaalgos/hoa.cc: Here.
* doc/org/hoa.org, NEWS: Document that.
* tests/core/readsave.test: Test it.
2016-07-18 14:19:08 +02:00
Alexandre Duret-Lutz
bbc3afe1cf org: document named properties
* doc/org/concepts.org: Add a new section.
* doc/org/hoa.org, spot/twa/twa.hh: Link to it.
* NEWS: Mention it.
2016-07-15 18:52:06 +02:00
Alexandre Duret-Lutz
fafb135c87 isdet: update prop_deterministic in count_nondet_states()
* spot/twaalgos/isdet.cc: Here.
* bin/ltlcross.cc: Simplify.
* NEWS: Update.
2016-07-13 17:33:39 +02:00
Alexandre Duret-Lutz
a2f0b22810 ltlcross: fix swapped automata in error diagnostic
Failures could be reported against "Comp(Ni)*Comp(Pj)" when
it was really "Comp(Nj)*Comp(Pi)" that failed.

* bin/ltlcross.cc: Here.
* NEWS: Mention the bug.
2016-07-13 14:40:04 +02:00
Alexandre Duret-Lutz
556db2a203 Merge branch 'master' into next 2016-07-11 11:06:05 +02:00
Alexandre Duret-Lutz
2abfd73a30 Release Spot 2.0.3
* NEWS, configure.ac, doc/org/setup.org: Update.
2016-07-11 10:59:23 +02:00
Alexandre Duret-Lutz
2665b5780a 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-11 10:54:58 +02:00
Alexandre Duret-Lutz
70064d0b75 ltl2tgta: remove options --ba, --tgba, and friends
* bin/common_post.cc, bin/common_post.hh: Add a "nooutput" variant of
the options.
* bin/ltl2tgta.cc: Use it.
* NEWS: Mention the fix.
2016-07-11 10:54:58 +02:00
Alexandre Duret-Lutz
d4a385e341 ajax: fix GTA construction
* python/ajax/spotcgi.in: Here.
* NEWS: Mention it.
2016-07-11 10:54:45 +02:00
Alexandre Duret-Lutz
a4c7016f52 degen: fix handling of degen-lcache=1
* spot/twaalgos/degen.cc: Here.
* tests/core/degendet.test: Add test case.
* tests/core/ltl2ta.test: Adjust expected output.
* NEWS: Mention the issue.
2016-07-11 10:53:41 +02:00
Alexandre Duret-Lutz
3f9925c9cb * NEWS: Typo. 2016-07-11 10:46:32 +02: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
Alexandre Duret-Lutz
91e8493c7f ltl2tgta: remove options --ba, --tgba, and friends
* bin/common_post.cc, bin/common_post.hh: Add a "nooutput" variant of
the options.
* bin/ltl2tgta.cc: Use it.
* NEWS: Mention the fix.
2016-07-06 15:03:22 +02:00
Alexandre Duret-Lutz
e4134af15f ajax: fix GTA construction
* python/ajax/spotcgi.in: Here.
* NEWS: Mention it.
2016-07-06 15:03:22 +02:00
Alexandre Duret-Lutz
e80b443bc8 sat-minimize: check for unused options
Fixes #179.

* spot/twaalgos/dtwasat.cc: Add the check.
* tests/core/minusx.test: Test it.
* NEWS: Mention it.
2016-06-22 21:18:34 +02:00
Alexandre Duret-Lutz
e419150c30 option_map: Diagnose unused option on request
* spot/misc/optionmap.hh, spot/misc/optionmap.cc (report_unused_options,
set_, set_set_): New methods.
* bin/autfilt.cc, bin/dstar2tgba.cc, bin/ltl2tgba.cc,
bin/ltl2tgta.cc: Call report_unused_options().
* tests/core/ltlcross2.test, tests/core/readsave.test: Fix typos in
options.
* tests/core/minusx.test: New file.
* tests/Makefile.am: Add it.
* NEWS: Mention this.
2016-06-22 20:57:53 +02:00
Alexandre Duret-Lutz
205e2116d1 degen: fix handling of degen-lcache=1
* spot/twaalgos/degen.cc: Here.
* tests/core/degendet.test: Add test case.
* tests/core/ltl2ta.test: Adjust expected output.
* NEWS: Mention the issue.
2016-06-21 18:03:02 +02:00
Alexandre Duret-Lutz
31627eac0b Merge branch 'master' into next 2016-06-17 16:41:48 +02:00
Alexandre Duret-Lutz
01e71d108a * NEWS, configure.ac: Bump version number. 2016-06-17 16:40:51 +02:00
Alexandre Duret-Lutz
1cce09bc80 Release Spot 2.0.2
* NEWS: Update.
* configure.ac, doc/org/setup.org: Bump version.
2016-06-17 16:33:30 +02:00