Commit graph

647 commits

Author SHA1 Message Date
Etienne Renault
f9991288f7 compression: fix bad encoding
Fixes #190.

* NEWS, spot/misc/intvcomp.cc: here.
2016-10-25 14:55:27 +02:00
Alexandre Duret-Lutz
ce63c30c0b translate: reset the LTL simplifier on set_level().
Fix an issue reported by Tomáš Babiak, who noticed that he could not
manage to have ltl2tgba process `genltl --go-theta=N` efficiently for
larger values of N.

* spot/twaalgos/translate.hh (set_level): Reset any owned LTL simplifier
whenever the optimization level is changed.
* NEWS: Mention the bug.
2016-10-25 13:53:28 +02:00
Alexandre Duret-Lutz
4be7065b81 simulation: speedup on deterministic automata
* spot/twaalgos/simulation.cc: Detect deterministic automata, and skip
the partial-order update.
* NEWS: Mention the speedup.
2016-10-23 19:55:48 +02:00
Alexandre Duret-Lutz
56f768f5a6 remove_fin: improve behavior on unclean acceptance
Related to #188.  This is a third fix that independently
makes `'utfilt --is-unambiguous -q smaller.hoa' instantaneous.

* spot/twaalgos/remfin.cc: Clean the received automaton if
necessary.
* bin/autfilt.cc: No need to call cleanup_acceptance_here() before
remove_fin() anymore.
* tests/core/remfin.test: Add an additional test.
* NEWS: Mention the change.
2016-10-19 11:00:15 +02:00
Alexandre Duret-Lutz
ad478bd31a sccinfo: improve detection of rejecting 1-self-loop SCCs
As observed in #188, the smaller.hoa automaton is made only of
1-state/1-self-loop SCCs, for which calling remove_fin is a complete
waste of time.  This patch alone (i.e., without the other changes
suggested by #188) improves the run time of

% autofilt -q --is-unambiguous smaller.hoa

from 38s to 0.05s.

* spot/twaalgos/sccinfo.cc: If a single-state SCC has undeterminate SCC
and only one self-loop, then it is necessarily rejecting.
* NEWS: Mention the change.
2016-10-19 10:51:38 +02:00
Alexandre Duret-Lutz
5384a3b89a is_unambiguous: rewrite more efficiently
Avoid calling scc_info::determine_unknown_acceptance on the product, as
suggested in #188.

* spot/twaalgos/isunamb.cc (is_unambiguous): Rewrite.
* tests/core/unambig.test: Add the automaton from #188.
* NEWS: Mention the improved function.
* spot/twaalgos/mask.cc,
spot/twaalgos/mask.hh (mask_keep_accessible_states): New function.
2016-10-19 10:51:38 +02:00
Alexandre Duret-Lutz
9b3451c52e * NEWS: Typo, reported by Alexandre Gbaguidi Aïsse. 2016-10-17 11:43:19 +02:00
Alexandre Duret-Lutz
de665ce28f * configure.ac, NEWS: Bump version to 2.1.2.dev. 2016-10-14 17:30:07 +02:00
Alexandre Duret-Lutz
b0c60e799a Release Spot 2.1.2
* NEWS, configure.ac, doc/org/setup.org: Bump version.
2016-10-14 17:18:23 +02:00
Alexandre Duret-Lutz
48655c6875 complete Alexandre's patch
* bench/dtgbasat/formulas: Typo.
* NEWS: Mention the fix.
* AUTHORS: Add Alexandre.
2016-10-13 15:55:25 +02:00
Alexandre Duret-Lutz
3b5fa22a3b ltlcross: add option --strength and --ambiguous
Suggested by František Blahoudek.

* bin/ltlcross.cc: Implement the two options.
* doc/org/ltlcross.org, NEWS: Document them.
* tests/core/complementation.test: Adjust test case.
* tests/core/ltlcross3.test, tests/core/unambig.test: More tests.
2016-10-13 15:41:49 +02:00
Alexandre Duret-Lutz
cc1191cd66 ltlcross: fix --verbose --no-check crash
Report from František Blahoudek.

* bin/ltlcross.cc: Do not display stats for automata
that do not exist.
* tests/core/ltlcross3.test: Test it.
* NEWS: Mention the fix.
2016-10-13 13:53:42 +02:00
Etienne Renault
8a8fcf2ac1 spot.ltsmin: fix errors on Darwin
* NEWS, python/spot/ltsmin.i: here.
2016-10-10 20:11:40 +02:00
Alexandre Duret-Lutz
a5d6aa2533 introduce SPOT_FALLTHROUGH to cope with -Wimplicit-fallthrough
* NEWS: Mention the fix.
* HACKING: Mention the new macro.
* spot/misc/common.hh (SPOT_FALLTHROUGH): Add the macro.
* bin/randltl.cc, spot/misc/escape.cc, spot/tl/mutation.cc,
spot/tl/print.cc, spot/tl/simplify.hh, spot/tl/snf.cc, spot/twa/acc.cc,
spot/twaalgos/ltl2taa.cc, spot/twaalgos/ltl2tgba_fm.cc,
spot/twaalgos/sepsets.cc, spot/twaalgos/translate.cc: Use it.
2016-10-07 21:29:34 +02:00
Alexandre Duret-Lutz
9ccdd8c618 genltl: add some formulas from Tabakov & Vardi (RV'10)
* bin/genltl.cc: Implement the families.
* NEWS, bin/man/genltl.x: Document them.
* tests/core/genltl.test: Add a test.
2016-10-03 17:41:14 +02:00
Alexandre Duret-Lutz
0c9c4be4ae bin: workaround flushing issues
* bin/common_cout.cc (check_cout): Force a flush of cout if more than
20ms has elapsed since the last explicit flush.
* bin/common_setup.cc (setup): Untie cin and cout if the input
is not a TTY, so that cout is flush less often.
* NEWS: Mention the change.
2016-10-03 15:27:06 +02:00
Alexandre Duret-Lutz
0678d1a662 change the version from 2.1.1a to 2.1.1.dev for Debian
Fixes #186.

* configure.ac, NEWS: Update version.
2016-09-23 15:04:41 +02:00
Alexandre Duret-Lutz
6528d75339 simplify: rewrite GF(a & GFb) as G(Fa & Fb)
Fixes #185.

* spot/tl/simplify.cc: Implement the new rule.
* NEWS, doc/tl/tl.tex: Document it.
* tests/core/reduccmp.test: Test it.
2016-09-22 17:37:55 +02:00
Alexandre Duret-Lutz
01d84c4d52 formula: fix valgrind error in is_Kleene_star() with clang++
* spot/tl/formula.hh, spot/tl/formula.cc: Rework the
initialization of fnode.
* NEWS: Mention the bug.
2016-09-22 17:36:43 +02:00
Alexandre Duret-Lutz
5558bcf05a * NEWS, configure.ac: bump version number 2016-09-20 11:52:35 +02:00
Alexandre Duret-Lutz
fd6614181b Release Spot 2.1.1
* NEWS, configure.ac, doc/org/setup.org: Bump version number.
2016-09-20 08:54:56 +02:00
Alexandre Duret-Lutz
90214d7c39 genltl: fix typo in --help
Reported by František Blahoudek.

* bin/genltl.cc: Here.
* NEWS: Mention it, and the typos previously fixed in spot-x.7.
2016-09-15 15:36:53 +02:00
Alexandre Duret-Lutz
3bb881218f * NEWS: Typoa. 2016-09-14 16:47:40 +02:00
Alexandre Duret-Lutz
571f0112ab bin: add options for --stats=%c
* spot/twaalgos/stats.cc: Implement options.
* bin/common_aoutput.cc, NEWS: Document them.
* tests/core/format.test: Add some quick tests.
2016-08-17 16:35:00 +02:00
Alexandre Duret-Lutz
825332029c autfilt: implement %D, %N, %P, %W
* bin/common_aoutput.cc, bin/common_aoutput.hh: Implement.
* tests/core/format.test: Test.
* NEWS: Mention.
2016-08-16 19:20:12 +02:00
Alexandre Duret-Lutz
926ffbf965 bin: %a,%b,%s format specs for LTL output
* NEWS: Mention those.
* bin/common_output.cc, bin/common_output.hh: Implement them.
* bin/genltl.cc, bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Update
--help.
* tests/core/format.test: New file.
* tests/Makefile.am: Add it.
* doc/org/ioltl.org, doc/org/ltlfilt.org: Update documentation.
2016-08-15 16:09:53 +02:00
Alexandre Duret-Lutz
e97ea5fa74 bin: diagnose more write errors
* tests/core/full.test: New file.
* tests/Makefile.am: Add it.
* bin/autfilt.cc, bin/common_aoutput.cc, bin/common_aoutput.hh,
bin/common_file.cc, bin/common_file.hh, bin/genltl.cc, bin/ltlcross.cc,
bin/ltlfilt.cc, bin/ltlgrind.cc, bin/randltl.cc: Add diagnostics.
* NEWS: Mention the fix.
2016-08-14 18:18:20 +02:00
Alexandre Duret-Lutz
53e6640034 Bump version to 2.1.0a
* configure.ac, NEWS: Here.
2016-08-08 16:30:56 +02:00
Alexandre Duret-Lutz
78232df3bf Release Spot 2.1
* configure.ac, NEWS, doc/org/setup.org: Update version.
2016-08-08 13:23:18 +02:00
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