Commit graph

798 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
0210080152 * spot/tl/length.hh: Fix comment. 2016-08-15 14:57:30 +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
6ed0830f87 fix two minor issues reported by clang-analyzer
These are actually two events that should never happen, but let's just
make sure they do not.

* spot/tl/formula.cc: Add an assert.
* spot/twaalgos/emptiness.cc: Add an exception.
2016-08-07 19:45:01 +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
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
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
a9fc5d49d8 misc: fix some signed shifts
* spot/misc/intvcmp2.cc, spot/misc/intvcomp.cc: Here.
2016-07-27 19:47:34 +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
64c7036660 active -Wsuggest-override where supported
* m4/gccwarn.m4: Add the option.
* bin/autfilt.cc, bin/common_output.hh, bin/dstar2tgba.cc,
bin/ltl2tgba.cc, bin/ltl2tgta.cc, bin/ltlcross.cc, bin/ltldo.cc,
bin/ltlfilt.cc, bin/ltlgrind.cc, spot/kripke/kripke.hh,
spot/ltsmin/ltsmin.cc, spot/ta/ta.hh, spot/ta/tgtaproduct.hh,
spot/taalgos/dot.cc, spot/taalgos/reachiter.hh,
spot/taalgos/statessetbuilder.cc, spot/taalgos/stats.cc,
spot/twa/twaproduct.cc, spot/twaalgos/emptiness.cc,
spot/twaalgos/gtec/ce.cc, spot/twaalgos/lbtt.cc,
spot/twaalgos/ndfs_result.hxx, spot/twaalgos/stats.hh,
spot/twaalgos/tau03opt.cc, tests/core/ngraph.cc: Add suggested override
qualifiers.
2016-07-27 10:30:10 +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
20cf43b3ea use SPOT_ASSERT instead of assert
For #184.

* spot/graph/graph.hh, spot/kripke/kripkegraph.hh,
spot/misc/bitvect.hh, spot/misc/common.hh, spot/misc/fixpool.hh,
spot/misc/mspool.hh, spot/misc/timer.hh, spot/tl/formula.hh,
spot/twa/acc.hh, spot/twa/taatgba.hh, spot/twa/twa.hh,
spot/twa/twagraph.hh, spot/twaalgos/emptiness_stats.hh,
spot/twaalgos/mask.hh, spot/twaalgos/ndfs_result.hxx,
spot/twaalgos/sccinfo.hh, spot/twaalgos/translate.hh: Replace
assert() by SPOT_ASSERT(), or an exception, or nothing, depending
on the case.
* tests/sanity/style.test: Flag all asserts in headers.
* HACKING: Discuss assertions.
2016-07-24 23:26:59 +02:00
Alexandre Duret-Lutz
9f7bf5ab2d configure: support --enable-glibgxx-debug
Part of #184.

* m4/devel.m4 (adl_ENABLE_GLIBCXX_DEBUG): New macro.
* configure.ac: Use it.
* README: Mention it.
* spot/twa/acc.cc: Fix a small issue found with this
option.
2016-07-24 00:07:04 +02:00
Alexandre Duret-Lutz
1a5de86c1e * spot/tl/formula.hh: Fix some comments. 2016-07-24 00:02:34 +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
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
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
69b687ab66 dot: preserve highlights for <N output
* spot/twa/twagraph.hh (twa_graph::edge_number): New method.
* spot/twaalgos/copy.cc: Copy the highlights if requested.
* tests/python/highlighting.ipynb: More tests.
2016-07-19 02:41:34 +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
6793d6de7d highlight: do not reset existing highlights
* spot/twa/twa.hh (twa::get_or_set_named_prop): New method.
* spot/twaalgos/emptiness.cc, spot/twaalgos/isdet.cc: Use it to not
overwrite existing highlights.
* tests/core/det.test: Add test case.
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
39332fb118 highlight: improve support for highlighted edges
* spot/twa/twa.cc, spot/twa/twa.hh: Add a way to
remove named properties.
* spot/twa/twagraph.cc: Clear highlight-edges on operations
that reorder the edge vector.
* spot/twaalgos/randomize.cc, spot/twaalgos/randomize.hh:
Preserve highlighted state, but not highlighted edges.
* spot/twaalgos/hoa.cc: Adjust output of highlight-edge
when the edges are not stored in order.
* tests/core/readsave.test, tests/core/tgbagraph.test,
tests/core/twagraph.cc: More test cases.
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
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
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
a0cd56735a relabel: fix infinite recursion in relabel_bse()
Reported by František Blahoudek.

* spot/tl/relabel.cc: Fix.
* tests/core/ltlrel.test: Add test case.
* NEWS: Mention the bug.
2016-06-14 09:56:17 +02:00
Alexandre Duret-Lutz
b408827110 add binding for language_containment_checker and document them
* spot/tl/contain.cc, spot/tl/contain.hh: Simplify the
use of language_containment_checker by adding default argument.
* python/spot/__init__.py, python/spot/impl.i: Bind it in Python.
* doc/org/tut04.org: New file to illustrate it.
* doc/org/tut.org, doc/Makefile.am: Add it.
* NEWS: Mention those changes.
2016-05-25 15:12:45 +02:00
Alexandre Duret-Lutz
ce5da5cdbf * spot/twaalgos/postproc.cc: Typo. 2016-05-17 15:40:40 +02:00
Alexandre Duret-Lutz
0278735ebe attempt to fix clang++ compilation error
Seen on arch linux when clang++ 3.7.1 uses GCC's 6.1.1 tuple header.

* spot/twaalgos/ltl2tgba_fm.cc (ratexp_to_dfa::succ): Build the return
type explicitly.
* NEWS: Mention the issue.
2016-05-09 22:48:32 +02:00
Alexandre Duret-Lutz
73621e8f17 record properties as side-effect of is_deterministic() / is_weak() / ...
Fixes #165.

* spot/twaalgos/isdet.cc, spot/twaalgos/strength.cc: Here.
* spot/twaalgos/isdet.hh, spot/twaalgos/strength.hh, NEWS: Document it.
* spot/twaalgos/hoa.cc: Fix output of negated properties.
* tests/core/readsave.test: New test case.
2016-05-08 16:37:00 +02:00
Alexandre Duret-Lutz
d9174593c8 common_trans: allow rewriting operators
Part of #168.

* spot/misc/formater.cc: Adjust to support bracketed options.
* bin/common_trans.hh, bin/common_trans.cc: Use that to
support rewriting operators.
* doc/org/ltlcross.org, tests/core/ltldo.test: Add some examples.
* NEWS: Mention it.
2016-05-01 21:05:49 +02:00
Alexandre Duret-Lutz
925785e85f * spot/misc/tmpfile.hh: Disallow copy. 2016-05-01 18:35:55 +02:00
Alexandre Duret-Lutz
7531c88671 * spot/twa/twagraph.cc: Fix comment. 2016-05-01 13:29:12 +02:00
Alexandre Duret-Lutz
1c2c914d7e print_hoa: output all registered APs
Also introduce twa::unregister_ap() and twa_graph::remove_unused_ap()
so that the methods where this behavior is expected can be fixed.

And fix ltsmin::kripke() which did not register APs.

Part of #170.

* spot/twaalgos/hoa.cc: Use apvars() to print all registerd APs.
Throw an exception when printing automata using unregistered APs.
* spot/ltsmin/ltsmin.cc: Call register_ap().
* spot/twa/twa.cc, spot/twa/twa.hh, spot/twa/twagraph.cc,
spot/twa/twagraph.hh (twa::unregister_ap, twa_graph::remove_unused_ap):
New methods.
* spot/tl/exclusive.cc, spot/twaalgos/postproc.cc,
spot/twaalgos/remprop.cc, spot/twaalgos/relabel.cc: Use them.
* tests/core/maskacc.test, tests/core/maskkeep.test,
tests/core/strength.test: Adjust expected results.
* NEWS: Mention those changes.
2016-05-01 11:47:53 +02:00
Alexandre Duret-Lutz
9afa98a1dd honor ap() when counting transitions
Fixing this bug alone revealed another bug: parsing never claim or LBTT
automata did not register APs.  So this fixes both bugs.

This is the first part of #170.

* spot/twa/twa.hh (register_aps_from_dict): New method.
* spot/parseaut/parseaut.yy: Call it for never claim and LBTT files.
* spot/twaalgos/stats.cc: Simplify using ap_vars().
* tests/core/ltl2tgba.test: Add a test case.
* NEWS: Mention the bugs.
2016-04-29 18:16:21 +02:00
Alexandre Duret-Lutz
f904c0e05c docyment make_emptiness_check_instantiator()
Fixes #161, reported by Yann Thierry-Mieg.

* spot/twaalgos/emptiness.hh: Here.
* NEWS: Mention it.
2016-04-20 21:39:54 +02:00
Alexandre Duret-Lutz
2c68842a5a bitvect: tweak to please icc
This allows bitvect.hh to compile with icpc 16.0.2, but the whole
project does not yet compile due to a bug in 16.0.2 that prevents
compilation of unordered_map::emplace() from the STL shipped with GCC
5.3.1.

* spot/misc/bitvect.hh: adjust friend declarations.
2016-04-20 19:41:47 +02:00
Alexandre Duret-Lutz
7144efabb9 hoa: add option to output version 1.1
* spot/twaalgos/hoa.cc: Implement the option.
* bin/common_aoutput.cc, doc/org/hoa.org,
doc/org/oaut.org, spot/twaalgos/hoa.hh, NEWS: Document it.
* tests/core/strength.test: Test that.
2016-04-20 15:23:55 +02:00
Alexandre Duret-Lutz
fd33eedf4b check_strength(): also check negated properties
The test is in the patch introducing HOA 1.1 output.

* spot/twaalgos/strength.cc: Here.
* NEWS: Mention the bug.
2016-04-20 15:23:20 +02:00
Alexandre Duret-Lutz
ae82f1a85d parseaut: fix parsing of /*****/
* spot/parseaut/scanaut.ll: Here.
* tests/core/strength.test: Add a test.
* NEWS: Mention the bug.
2016-04-20 15:23:07 +02:00
Alexandre Duret-Lutz
ab20585180 * spot/graph/graph.hh: Typo in comment. 2016-04-10 18:05:46 +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
9d6941f038 * spot/graph/graph.hh: More Doxygen comments. 2016-04-10 14:11:36 +02:00
Alexandre Duret-Lutz
ed3b58c99c let ltsmin.model.kripke() take the output of atomic_prop_collect()
Fixes #160.

* spot/tl/formula.hh (formula::ap): New specialization.
* tests/python/ltsmin.ipynb: Test it.
2016-04-08 22:33:48 +02:00