Commit graph

85 commits

Author SHA1 Message Date
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
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
4f1fad80a4 * spot/kripke/fwd.hh: Typo. 2016-03-01 17:06:58 +01:00
Etienne Renault
e471d4e67d scanaut: add missing braces to please -Wdangling-else
* spot/parseaut/scanaut.ll: here.
2016-02-29 09:06:06 +01:00
Etienne Renault
092e3630f4 Force casts to please clang on OSX
* spot/twa/twagraph.hh, spot/twaalgos/minimize.cc,
spot/twaalgos/remfin.cc: Here.
2016-02-29 09:06: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
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
e86370f894 Turn on some new warnings from GCC 6.0
* m4/gccwarn.m4: Add the new warnings.
* spot/ta/taexplicit.cc, spot/ta/taproduct.cc: Add missing asserts.
2016-02-16 17:26:41 +01:00
Alexandre Duret-Lutz
7078ab0af9 satsolver: use precise fstream class for input or output
* spot/misc/satsolver.cc: Here.
2016-02-16 17:26:41 +01:00
Alexandre Duret-Lutz
5d272fd256 use more override and final keywords
This patch is mostly focused on tagging most virtual methods that
override as such.  I found a few methods that where not meant to be
virtual this way, and tagged a few classes "final" along the way.

* bin/common_output.cc, spot/kripke/fairkripke.hh,
spot/kripke/kripke.hh, spot/kripke/kripkegraph.hh,
spot/ltsmin/ltsmin.cc, spot/misc/formater.hh, spot/priv/bddalloc.hh,
spot/ta/ta.hh, spot/ta/taexplicit.hh, spot/ta/taproduct.hh,
spot/ta/tgta.hh, spot/ta/tgtaexplicit.cc, spot/ta/tgtaexplicit.hh,
spot/ta/tgtaproduct.hh, spot/taalgos/emptinessta.hh, spot/tl/declenv.hh,
spot/tl/defaultenv.hh, spot/tl/randomltl.hh, spot/tl/relabel.cc,
spot/twa/bdddict.cc, spot/twa/taatgba.hh, spot/twa/twagraph.hh,
spot/twa/twaproduct.hh, spot/twaalgos/gtec/ce.cc,
spot/twaalgos/gtec/ce.hh, spot/twaalgos/gtec/gtec.hh,
spot/twaalgos/gv04.cc, spot/twaalgos/ltl2taa.cc, spot/twaalgos/magic.cc,
spot/twaalgos/minimize.cc, spot/twaalgos/ndfs_result.hxx,
spot/twaalgos/reachiter.hh, spot/twaalgos/se05.cc,
spot/twaalgos/stutter.cc, spot/twaalgos/tau03.cc: Add more override and
final keywords.
2016-02-16 11:59:00 +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
Alexandre Duret-Lutz
e1f5eb1fd6 doc: improve the twa class documentation
* spot/twa/twa.hh: More documentation.
* doc/Doxyfile.in: Allow same doc for groups of methods.
2016-02-15 11:04:48 +01:00
Alexandre Duret-Lutz
ea348d8e80 * spot/twa/twa.hh: Fix doxygen comments. 2016-02-15 11:04:48 +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
b066c6f3f2 postproc: add fine-tuning options for determinization
* spot/twaalgos/postproc.cc, spot/twaalgos/postproc.hh:
Add options det-scc, det-simul, det-stutter.
* bin/spot-x.cc: Document them.
* doc/org/ltl2tgba.org: Illustrate one of them and link
to the spot-x man page.
2016-02-12 14:07:58 +01:00
Alexandre Duret-Lutz
8feab7e2bb postproc: more documentation
* spot/twaalgos/postproc.hh: Here.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
8a5f652384 determinize: Correct scc optimisation
* spot/twaalgos/determinize.cc:  Don't reuse previous SCC's.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
8568c3b423 postproc: integrate tgba_determinize()
* spot/twa/acc.hh: Add a smaller version of is_parity().
* spot/twaalgos/postproc.cc: Call tgba_determinize() if asked for
Generic acceptance and Deterministic output.
* bin/common_post.cc: Add 'G' as a shorthand for --generic.
* doc/org/ltl2tgba.org: Illustrate =ltl2tgba -G -D=.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
03d9a7512a determinize: do not work on deterministic automata
* spot/twaalgos/determinize.cc: Here.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
c18ee329fb determinize: rename the main function
* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh,
tests/core/safra.cc (tgba_determinisation): Rename as...
(twa_determinisation): ... this.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
4635ce44a9 determinize: add some doc
* spot/twaalgos/determinize.hh: Add documentaion and rename options.
* spot/twaalgos/determinize.cc: Rename options as well.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
8e26852a1b determinize: remove superfluous options
bisimulation and complete just trigger extra algorithms to be called at
the end of this one, so they need not be part of this algorithm.

* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh: Reduce
the number of options.
* tests/core/safra.cc: Implement those options here.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
e0c2452534 determinize: hide private data structures
* spot/twaalgos/determinize.hh: Move class definitions...
* spot/twaalgos/determinize.cc: ... here.
2016-02-12 14:07:28 +01:00
Alexandre Duret-Lutz
f9252aa703 safra: rename as determinize
* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh: Rename as...
* spot/twaalgos/determinize.cc, spot/twaalgos/determinize.hh: ... these.
* spot/twaalgos/Makefile.am, tests/core/safra.cc: Adjust.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
cd71286fb5 safra: Add stutter-invarience optimisation
* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh: Here.
* tests/core/safra.cc: Add option.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
1d68decaca safra: Add compute_succ function
* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh:  Enables use to
compute successor safra state for any edge.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
be0e6bffcf safra: Build safra-state after each AP
* spot/twaalgos/safra.cc: Here.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
dbd7740874 safra: Iterate on APs to compute successors
* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh: Here.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
8068cfad93 safra: Add complete option and rename files
* src/tests/safra.cc, src/twaalgos/safra.cc,
src/twaalgos/safra.hh, src/tests/safra.test: Rename as...
* spot/twaalgos/safra.cc, spot/twaalgos/safra.hh, tests/core/safra.cc
tests/core/safra.test: ... these.
* tests/Makefile.am: Update.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
f88154e507 safra: Add bisimulation optimisation
* src/tests/safra.cc, src/twaalgos/safra.cc,
src/twaalgos/safra.hh, spot/twaalgos/simulation.cc,
spot/twaalgos/simulation.hh: Here.
2016-02-12 14:07:28 +01:00
Alexandre Lewkowicz
496083b14a safra: implement powerset construction
* spot/twaalgos/Makefile.am: Update it.
* src/twaalgos/safra.cc, src/twaalgos/safra.hh: New.
2016-02-12 14:07:28 +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
bceb54c80e * spot/ltsmin/ltsmin.cc (format_state): Thinko. 2016-02-09 14:49:28 +01:00
Alexandre Duret-Lutz
e146527852 twa_run: add a highlight method
* spot/twaalgos/emptiness.hh, spot/twaalgos/emptiness.cc: Add
the method.
* tests/python/highlighting.ipynb: Add a small test.
2016-02-06 17:10:55 +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
23c2cbf46a python: highlighting functions for edges and states
* python/spot/impl.i (highlight_state, highlight_edge): New function.
* python/spot/__init__.py (highlight_states, highlight_edges): New
functions.
* spot/twaalgos/dot.cc: Add a '#' option.
* spot/taalgos/dot.cc: Ignore '#'.
* tests/python/highlighting.ipynb: New file to illustrate everything.
* tests/Makefile.am, doc/org/tut.org: Add it.
2016-02-05 17:29:30 +01:00
Alexandre Duret-Lutz
be4418257e * spot/twaalgos/dot.cc: Rename a variable. 2016-02-05 15:58:41 +01:00
Alexandre Duret-Lutz
348f7cce0b parseaut, dot: install a highlighting framework
* spot/parseaut/parseaut.yy, spot/parseaut/scanaut.ll:
Parse "spot.highlight.edges" and "spot.highlight.states" to
fill the "highlight-edges" and "highlight-states" properties.
* spot/twaalgos/dot.cc: Use these properties to highlight states.
* tests/core/readsave.test: Add a small test.
2016-02-04 23:02:28 +01:00
Alexandre Duret-Lutz
91bb93eeaa parse_acc: cleanup error reporting
* spot/twa/acc.cc: Factor all the error reporting code in a single
place, and improve the error message at end of acceptance.
* tests/core/randaut.test: Add more tests.
2016-02-04 10:48:40 +01:00
Alexandre Duret-Lutz
35c8beaa3c dot, hoa: enable "k" also for fair_kripke
* spot/twaalgos/dot.cc, spot/twaalgos/hoa.cc: Here.
2016-02-03 08:46:50 +01:00
Alexandre Duret-Lutz
aebe6593f9 twa: make acc_ private
* spot/twa/twa.hh: Here.
* spot/ta/ta.hh, spot/twa/taatgba.cc, spot/twa/taatgba.hh,
spot/twa/twagraph.hh, spot/twa/twasafracomplement.cc,
spot/twaalgos/stutter.cc: Adjust.
2016-02-02 17:08:11 +01:00
Alexandre Duret-Lutz
df9a8ad0d1 Add missing documentation in twa.hh
Fixes #136.

* spot/twa/twa.hh: Document almost all members.
2016-02-02 17:08:11 +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
eb0a0b6b34 dot: use circles if state names are all short
* spot/twaalgos/dot.cc: Check for state names sizes.
* tests/core/readsave.test: Test the change.
* tests/core/tgbagraph.test: Adjust.
2016-01-29 13:39:17 +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
4571d6dd3a copy: rewrite as a BFS without using reachiter
* spot/twaalgos/copy.hh: Trim includes.
* spot/twaalgos/copy.cc: Rewrite.
* tests/python/ltsmin.ipynb: Adjust.
2016-01-28 15:37:00 +01:00
Alexandre Duret-Lutz
9b95b697a5 twa: introduce the state_map template alias
* spot/twa/twa.hh: Introduce the type.
* spot/taalgos/emptinessta.cc, spot/taalgos/emptinessta.hh,
spot/taalgos/minimize.cc, spot/taalgos/reachiter.cc,
spot/taalgos/reachiter.hh, spot/taalgos/tgba2ta.cc,
spot/twa/twasafracomplement.cc, spot/twaalgos/dtwasat.cc,
spot/twaalgos/emptiness.cc, spot/twaalgos/gtec/status.cc,
spot/twaalgos/gtec/status.hh, spot/twaalgos/gv04.cc,
spot/twaalgos/magic.cc, spot/twaalgos/minimize.cc,
spot/twaalgos/minimize.hh, spot/twaalgos/reachiter.cc,
spot/twaalgos/reachiter.hh, spot/twaalgos/se05.cc,
spot/twaalgos/tau03.cc, spot/twaalgos/tau03opt.cc: Use it.
2016-01-28 13:15:48 +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