Commit graph

3546 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
458fc53b71 * src/bin/man/autfilt.x: Fix description. 2015-11-09 08:25:58 +01:00
Alexandre Duret-Lutz
104a372c41 Add a notebook illustrating decompose_strength()
* wrap/python/tests/decompose.ipynb: New file.
* wrap/python/tests/Makefile.am: Add it.
* src/twaalgos/strength.cc: Fix corner cases.
* src/tests/strength.test: Adjust corner case.
* NEWS, doc/org/tut.org: Mention the notebook.
2015-11-08 22:07:43 +01:00
Alexandre Duret-Lutz
a7db0b5435 Add a decompose_strength() function.
* src/twaalgos/strength.cc, src/twaalgos/strength.hh
(decompose_stregth): New function.
* src/bin/autfilt.cc: Add a --decompose-strength option.
* src/bin/man/autfilt.x: Add bibliography.
* src/tests/strength.test: Test it.
* NEWS: Mention it.
2015-11-08 22:07:43 +01:00
Alexandre Duret-Lutz
3428fb32cd Add support for --check=strength
* src/twaalgos/strength.cc, src/twaalgos/strength.hh (check_strength):
New function.
* src/bin/common_aoutput.cc: Add --check=strength.
* src/tests/strength.test: New file.
* src/tests/Makefile.am: Add it.
* doc/org/hoa.org, NEWS: Document it.
2015-11-07 21:40:04 +01:00
Alexandre Duret-Lutz
f4cf0f4078 autfilt: Add --is-terminal and --is-weak.
Fixes #47.

* src/twaalgos/strength.cc, src/twaalgos/strength.hh
(is_weak_automaton): New function.
(is_terminal_automaton): Generalize slightly.
* src/bin/autfilt.cc: Add options --is-terminal and --is-weak.
* src/tests/readsave.test: Add a test.
* NEWS: Update.
2015-11-07 16:40:26 +01:00
Alexandre Duret-Lutz
81cfa05aef rename safety.hh as strength.hh
* src/twaalgos/safety.cc, src/twaalgos/safety.hh: Rename as ...
* src/twaalgos/strength.cc, src/twaalgos/strength.hh: ... these.
* src/bin/ltlfilt.cc, src/tests/ikwiad.cc, src/twaalgos/Makefile.am,
src/twaalgos/compsusp.cc, src/twaalgos/minimize.cc,
wrap/python/spot_impl.i: Adjust.
2015-11-07 14:28:40 +01:00
Alexandre Duret-Lutz
8a8ec21de7 rename is_guarantee_automaton() as is_terminal_automaton()
* src/twaalgos/safety.hh, src/twaalgos/safety.cc: Here.
* src/bin/ltlfilt.cc, src/tests/ikwiad.cc, src/twaalgos/minimize.cc,
wrap/python/ajax/spotcgi.in: Adjust.
* NEWS: Mention the change.
2015-11-07 14:05:01 +01:00
Alexandre Duret-Lutz
0c5f87b442 add support for the "terminal" property
* src/twa/twa.hh: Store the terminal property.
* src/twaalgos/hoa.cc, src/parseaut/parseaut.yy: Add I/O for "terminal".
* src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/minimize.cc: Set terminal
as apropriate.
* src/twaalgos/safety.cc: Use it.
* doc/org/tut21.org, doc/org/hoa.org, NEWS: Document it.
* src/tests/complement.test, src/tests/monitor.test,
wrap/python/tests/automata-io.ipynb: Adjust.
2015-11-07 14:04:44 +01:00
Alexandre Duret-Lutz
654888718c add support for the weak property
This fixes #119.

* doc/org/tut21.org, doc/org/hoa.org, NEWS: Document it.
* src/twa/twa.hh: Support it in automata.
* src/twaalgos/hoa.cc, src/parseaut/parseaut.yy: Add I/O support.
* src/twaalgos/minimize.cc, src/twaalgos/totgba.cc: Set weak
automata on output.
* src/tests/complement.test, src/tests/parseaut.test,
src/tests/readsave.test, src/tests/remfin.test, src/tests/sccsimpl.test,
src/tests/wdba2.test, wrap/python/tests/automata-io.ipynb: Adjust.
2015-11-06 21:51:48 +01:00
Alexandre Duret-Lutz
eecd201273 org: more examples of accessing properties
For the first part of #118.

* doc/org/tut21.org: Here.
2015-11-06 16:15:34 +01:00
Alexandre Duret-Lutz
33c234da11 hoa: output "unambiguous" only for non-deterministic automata by default
* src/twaalgos/hoa.cc: Output do not output "unambiguous" if the
automaton is deterministic.  Add option "v" to cancel this restriction,
and also output "no-univ-branch".
* src/twaalgos/hoa.hh: Document the "v" option.
* src/tests/readsave.test: Test it.
* src/tests/unambig.test: Adjust for unambiguous not being output
if the automaton is deterministic.
* src/bin/common_aoutput.cc, NEWS: Document it.
* doc/org/hoa.org: Add a summary table about how properties are handled.
* src/twa/twa.hh (prop_deterministic): Setting this should also
set the unambiguous property.
* src/twaalgos/isunamb.cc: Simplify the property check.
2015-11-05 19:42:08 +01:00
Alexandre Duret-Lutz
30037b9905 org: update description of support for HOA properties
* doc/org/hoa.org: Here.  Also mention --trust-hoa.
2015-11-05 17:16:54 +01:00
Alexandre Duret-Lutz
19cd2cda6f python: add binding for is_unambiguous
Fixes #117.

* wrap/python/spot.py, wrap/python/spot_impl.i: Add binding.
* wrap/python/tests/remfin.py: Add a small test case.
* NEWS: Mention it.
2015-11-05 13:43:02 +01:00
Alexandre Duret-Lutz
cbb2e64e7c twa: rename the is_* getters as prop_*
This fixes #116.

* src/twa/twa.hh: Rename those methods.
* NEWS: Document the renamings.
* doc/org/hoa.org, doc/org/tut21.org, src/parseaut/parseaut.yy,
src/tests/ikwiad.cc, src/twa/twagraph.hh,
src/twaalgos/are_isomorphic.cc, src/twaalgos/complete.cc,
src/twaalgos/degen.cc, src/twaalgos/dot.cc, src/twaalgos/dtbasat.cc,
src/twaalgos/dtgbasat.cc, src/twaalgos/hoa.cc, src/twaalgos/isdet.cc,
src/twaalgos/isunamb.cc, src/twaalgos/lbtt.cc,
src/twaalgos/minimize.cc, src/twaalgos/postproc.cc,
src/twaalgos/product.cc, src/twaalgos/randomgraph.cc,
src/twaalgos/remfin.cc, src/twaalgos/sbacc.cc,
src/twaalgos/simulation.cc, src/twaalgos/stutter.cc,
src/twaalgos/totgba.cc: Adjust.
2015-11-05 09:51:53 +01:00
Alexandre Duret-Lutz
8ea5f73c1a twa: no default argument for property setters
This is a preliminary for the renaming suggested in #116.

* src/twa/twa.hh (prop_state_based_acc, prop_inherently_weak,
prop_deterministic, prop_unambiguous, prop_stutter_invariant,
prop_stutter_sensitive): Do not default the argument to true.
* src/parseaut/parseaut.yy, src/twaalgos/degen.cc,
src/twaalgos/dtbasat.cc, src/twaalgos/dtgbasat.cc,
src/twaalgos/minimize.cc, src/twaalgos/randomgraph.cc,
src/twaalgos/remfin.cc, src/twaalgos/sbacc.cc,
src/twaalgos/simulation.cc, src/twaalgos/totgba.cc,
wrap/python/tests/remfin.py: Adjust.
2015-11-04 18:25:49 +01:00
Alexandre Duret-Lutz
bf5749189e parseaut: do not ignore the "unambiguous" property
Fixes #115.

* src/parseaut/parseaut.yy: Set the property on the output automaton.
* src/tests/unambig.test: Add a test case.
* NEWS: Mention the fix.
2015-11-04 17:11:25 +01:00
Alexandre Duret-Lutz
cbaa94f911 * NEWS, configure.ac: Bump version to 1.99.5a. 2015-11-03 17:17:48 +01:00
Alexandre Duret-Lutz
f08b658f04 Release Spot 1.99.5
* NEWS, configure.ac, doc/org/setup.org: Update version.
2015-11-03 13:42:27 +01:00
Alexandre Duret-Lutz
a28ead2dce org: simply calls to parse_aut()
* doc/org/tut20.org, doc/org/tut21.org, doc/org/tut30.org: Simplify
the calls to parse_aut.
2015-11-03 11:58:40 +01:00
Alexandre Duret-Lutz
7b3fdebc6e * debian/control: Build-Depends on libltdl-dev. 2015-10-29 18:05:11 +01:00
Alexandre Duret-Lutz
aaff42ee22 python: fix output of twa_run
* src/twaalgos/emptiness.hh, src/twaalgos/emptiness.cc: Declare the
operator<< for twa_run, not for twa_run_ptr (the shared_ptr
automatically forward operator<<).
* wrap/python/spot_impl.i: Add __str__ to twa_run, not twa_run_ptr.
2015-10-29 17:24:10 +01:00
Alexandre Duret-Lutz
f6af2a84cb twa_succ_iterator: rename accessors
* src/twa/twa.hh, src/ta/ta.hh (current_state,
current_acceptance_conditions, current_condition): Rename as...
(dst, acc, cond): ... these.
* iface/ltsmin/ltsmin.cc, src/kripke/fairkripke.cc,
src/kripke/fairkripke.hh, src/kripke/kripke.cc,
src/kripke/kripke.hh, src/kripke/kripkeexplicit.cc,
src/kripke/kripkeexplicit.hh, src/kripke/kripkeprint.cc,
src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc,
src/ta/taproduct.hh, src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
src/taalgos/dot.cc, src/taalgos/emptinessta.cc,
src/taalgos/minimize.cc, src/taalgos/reachiter.cc,
src/taalgos/tgba2ta.cc, src/twa/taatgba.cc, src/twa/taatgba.hh,
src/twa/twagraph.hh, src/twa/twaproduct.cc,
src/twa/twasafracomplement.cc, src/twaalgos/bfssteps.cc,
src/twaalgos/bfssteps.hh, src/twaalgos/compsusp.cc,
src/twaalgos/copy.cc, src/twaalgos/emptiness.cc,
src/twaalgos/gtec/gtec.cc, src/twaalgos/gv04.cc,
src/twaalgos/lbtt.cc, src/twaalgos/ltl2tgba_fm.cc,
src/twaalgos/magic.cc, src/twaalgos/minimize.cc,
src/twaalgos/ndfs_result.hxx, src/twaalgos/reachiter.cc,
src/twaalgos/se05.cc, src/twaalgos/stats.cc,
src/twaalgos/stutter.cc, src/twaalgos/tau03.cc,
src/twaalgos/tau03opt.cc, wrap/python/tests/interdep.py: Adjust.
* NEWS: Mention the renamings.
2015-10-28 21:16:21 +01:00
Alexandre Duret-Lutz
1b5b9e4a65 * src/bin/common_post.cc: Fix description of --any. 2015-10-27 08:01:18 +01:00
Alexandre Duret-Lutz
71979840cb bin: factor handling of -B/-C/-D/... output options
* src/bin/common_post.cc: Handle the options
for BA/TGBA/Monitor as well as Complete/SBAcc here,
and in the same group.  Rename "Translation intent"
and "Optimization level" to "Simplification goal" and
"Simplification level" so that it makes sense even
in autfilt.
* src/bin/autfilt.cc, src/bin/dstar2tgba.cc,
src/bin/ltl2tgba.cc: Remove common code.
* doc/org/autfilt.org, doc/org/dstar2tgba.org,
doc/org/ltl2tgba.org: Adjust sed invocations.
2015-10-26 20:28:06 +01:00
Alexandre Duret-Lutz
dee73ee342 parse_aut: simplify the interface
* src/parseaut/public.hh, src/parseaut/parseaut.yy,
src/parseaut/fmterror.cc: Add a raise_errors options.  Remove the
parse_strict() method.  Store parse errors and filename in the output
parsed_aut to simplify usage.
* doc/org/tut20.org, doc/org/tut21.org, doc/org/tut30.org,
src/bin/autfilt.cc, src/bin/common_hoaread.cc, src/bin/dstar2tgba.cc,
src/bin/ltlcross.cc, src/bin/ltldo.cc, src/tests/complementation.cc,
src/tests/ikwiad.cc, src/tests/ltlcross3.test, src/tests/ltldo.test,
wrap/python/spot.py, wrap/python/tests/parsetgba.py: Adjust usage.
* NEWS: Mention the changes.
2015-10-26 20:28:06 +01:00
Alexandre Duret-Lutz
3d5d160635 * lrde-upload.sh: Delete. 2015-10-25 14:19:52 +01:00
Alexandre Duret-Lutz
99c967f021 twa_run: swallow reduce_run, replay_twa_run, twa_run_to_tgba
These now become twa_run::reduce, twa_run::replay, and
twa_run::as_twa.

* src/twaalgos/reducerun.cc, src/twaalgos/reducerun.hh,
src/twaalgos/replayrun.cc, src/twaalgos/replayrun.hh: Delete.
* src/twaalgos/Makefile.am: Adjust.
* src/twaalgos/emptiness.cc, src/twaalgos/emptiness.hh: Move
the above functions here, as method of twa_run.
* src/bin/common_aoutput.hh, src/bin/ltlcross.cc,
src/tests/emptchk.cc, src/tests/ikwiad.cc, src/tests/randtgba.cc,
wrap/python/ajax/spotcgi.in, iface/ltsmin/modelcheck.cc: Adjust.
* NEWS: List the renamings.
2015-10-25 14:13:56 +01:00
Alexandre Duret-Lutz
63917def2d twa_run: keep a pointer to the automaton
This simplify all laters invocations, because we do not have to pass
the automaton the run was generated on.

This fixes #113 by allowing the __str__ function to be implemented on
runs.

* src/twaalgos/emptiness.cc, src/twaalgos/emptiness.hh (twa_run):
Store the automaton.
(prin_twa_run): Rewrite as an overloaded <<.
* src/twaalgos/reducerun.cc, src/twaalgos/reducerun.hh (reduce_run):
Do not like the automaton as a parameter.
* src/twaalgos/replayrun.cc, src/twaalgos/replayrun.hh (replay_twa_run):
Likewise.
* src/bin/common_aoutput.hh, src/bin/ltlcross.cc,
src/tests/complementation.cc, src/tests/ikwiad.cc,
src/tests/randtgba.cc, src/twaalgos/gtec/ce.cc, src/twaalgos/gv04.cc,
src/twaalgos/magic.cc, src/twaalgos/ndfs_result.hxx,
src/twaalgos/se05.cc, src/twaalgos/projrun.cc: Adjust.
* wrap/python/ajax/spotcgi.in: Add a __str__ function to twa_run_ptr.
* wrap/python/spot_impl.i: Adjust.
2015-10-25 11:58:14 +01:00
Alexandre Duret-Lutz
e7cc89264a * src/tests/satmin2.test: Adjust for previous patch. 2015-10-25 09:16:33 +01:00
Alexandre Duret-Lutz
4221e68d44 rename tgba_run as twa_run
Part of #113.

* src/twaalgos/emptiness.cc, src/twaalgos/emptiness.hh (tgba_run):
Rename as ...
(twa_run): ... this.
* NEWS: Mention it.
* iface/ltsmin/modelcheck.cc, src/tests/complementation.cc,
src/tests/emptchk.cc, src/tests/ikwiad.cc, src/tests/randtgba.cc,
src/twa/twa.hh, src/twaalgos/bfssteps.cc, src/twaalgos/bfssteps.hh,
src/twaalgos/gtec/ce.cc, src/twaalgos/gtec/ce.hh,
src/twaalgos/gv04.cc, src/twaalgos/magic.cc, src/twaalgos/minimize.cc,
src/twaalgos/ndfs_result.hxx, src/twaalgos/projrun.cc,
src/twaalgos/projrun.hh, src/twaalgos/reducerun.cc,
src/twaalgos/reducerun.hh, src/twaalgos/replayrun.cc,
src/twaalgos/replayrun.hh, src/twaalgos/se05.cc, src/twaalgos/word.cc,
src/twaalgos/word.hh, wrap/python/ajax/spotcgi.in,
wrap/python/spot_impl.i: Adjust.
2015-10-24 19:23:59 +02:00
Alexandre Duret-Lutz
4a91fccc33 stats: rename structures and attribute for concistency
* src/taalgos/stats.cc, src/taalgos/stats.hh
(tgba_statistics::transitions, tgba_sub_statistics::sub_transitions):
Rename ...
(twa_statistics::edges, twa_sub_statistics::transitions): ... to
these.
* NEWS: Mention it.
* src/bin/common_aoutput.hh, src/bin/ltlcross.cc,
src/tests/checkta.cc, src/tests/complementation.cc,
src/tests/ikwiad.cc, src/tests/ltl2tgba.test,
src/tests/neverclaimread.test, src/tests/randtgba.cc,
src/tests/renault.test, src/tests/wdba2.test, src/twaalgos/dtbasat.cc,
src/twaalgos/dtgbasat.cc, src/twaalgos/stats.cc,
src/twaalgos/stats.hh, wrap/python/ajax/spotcgi.in: Adjust.
2015-10-24 19:23:59 +02:00
Alexandre Duret-Lutz
f7c4ca816b * src/tests/ltldo2.test: Honor $LTL2BA. 2015-10-24 19:23:52 +02:00
Alexandre Duret-Lutz
db99f3bd3c * src/twaalgos/randomgraph.hh: Fix comments. 2015-10-24 15:45:55 +02:00
Alexandre Duret-Lutz
337925c94a python: change postprocess to take an optional formula
Doing so also work around some differences between Swig 3.0.2 and 3.0.7
observed on our build farm.

* wrap/python/spot.py: Here.
* wrap/python/spot_impl.i: Recognize None as a null formula
on input.
2015-10-23 19:01:02 +02:00
Alexandre Duret-Lutz
84f9be9e8e doc: show more metadata about automata
* src/twa/bdddict.hh (varnum): New method.
* doc/org/tut21.org: Show more metadata.
2015-10-23 13:58:27 +02:00
Alexandre Duret-Lutz
51a75a316d parseaut: Add a trust_hoa option.
Fixes #114.

* src/parseaut/public.hh: Add support for a trust_hoa option.
* src/parseaut/parseaut.yy: If trust_hoa is set, recognize the
"inherently-weak" and "stutter-invariant" properties.
* src/bin/common_conv.cc, src/bin/common_conv.hh (read_automaton):
Move...
* src/bin/common_hoaread.cc, src/bin/common_hoaread.hh: ... in this
new file, that also handle the --trust-hoa option.
* src/bin/Makefile.am: Add them.
* src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltlcross.cc,
src/bin/ltldo.cc: Use them.
* src/tests/parseaut.test, src/tests/ltldo.test: Adjust, and test
--trust-hoa=no.
* src/tests/complement.test, src/tests/prodor.test,
src/tests/sbacc.test: Adjust.
* wrap/python/spot.py (automata): Add option trust_hoa.
* NEWS: Update.
2015-10-23 13:24:23 +02:00
Alexandre Duret-Lutz
585e29e7d8 parseaut: change the interface to allow new options
* src/parseaut/public.hh, src/parseaut/parseaut.yy: Make it easier to
pass new options to the parser.
* src/tests/ikwiad.cc, wrap/python/spot.py: Adjust.
2015-10-23 13:24:23 +02:00
Alexandre Duret-Lutz
b6c8a18dbc * wrap/python/spot.py: Check exit status also when timeout is used. 2015-10-22 12:11:59 +02:00
Alexandre Duret-Lutz
82ce722d42 * wrap/python/spot.py: Kill the shell and its children on timeout. 2015-10-21 19:05:37 +02:00
Alexandre Duret-Lutz
64df4fbccc fix "input buffer overflow, can't enlarge buffer..."
This occured when parsing the HOA automaton generated by Rabinizer3 for
a very long LTL formula with many nested U.  State labels could easily
be more than 40k characters.

* src/parseaut/scanaut.ll: Fix that.
* src/tests/parseaut.test: New test case.
* NEWS: Mention the fix.
2015-10-21 17:55:02 +02:00
Alexandre Duret-Lutz
619b227eff * wrap/python/spot.py (automata): Use universal_newlines. 2015-10-21 14:42:52 +02:00
Alexandre Duret-Lutz
64607af7ab propagate the new minimum version of python
* README, doc/org/install.org, m4/pypath.m4: We now require Python 3.3
or later.
2015-10-21 14:27:18 +02:00
Alexandre Duret-Lutz
80a6a183e3 python: add a timeout argument to automaton() and automata()
* wrap/python/spot.py: Implement it.  Also report non-zero
exit using CalledProcessError.
* wrap/python/tests/automata-io.ipynb, wrap/python/tests/piperead.ipynb:
Adjust.
* NEWS: Mention the change.
2015-10-21 11:57:57 +02:00
Alexandre Duret-Lutz
0f3bc27d7b python: fix bindings for scc_filter as a method
* wrap/python/spot.py: Fix bindings for scc_filter.
* wrap/python/tests/remfin.py: Test them.
2015-10-20 14:54:06 +02:00
Alexandre Duret-Lutz
c7d063aaa0 org: fix multiple examples
I have to remember that org-mode does not evaluate something unless it
is eventually exported.

* doc/org/hoa.org, doc/org/ioltl.org, doc/org/tut21.org,
doc/org/tut30.org: Adjust exports commands.
2015-10-20 14:53:57 +02:00
Alexandre Duret-Lutz
cd8e53de09 is_unambiguous: fix detection of empty languages
* src/tests/unambig.test: New test case.  Reported by Ming-Hsien Tsai.
* src/twaalgos/sccfilter.cc: Always create an initial state.
* src/twaalgos/isunamb.cc: Speed up on empty languages.
* NEWS, THANKS: Update.
2015-10-20 08:06:31 +02:00
Alexandre Duret-Lutz
61bf5daab4 Add code example using the postprocessor.
* doc/org/tut30.org: New file.
* doc/Makefile.am, doc/org/tut.org: Add it.
2015-10-19 23:15:52 +02:00
Alexandre Duret-Lutz
87cb58d0a1 python: introduce a spot.postprocess() function
This simplifies the use of the spot.postprocessor object.

* wrap/python/spot.py: Add it.
* wrap/python/tests/automata.ipynb: Use it.
* NEWS: Mention it.
2015-10-19 18:09:22 +02:00
Alexandre Duret-Lutz
e1ddf97862 fix unabbreviate
This is a bug:

    % ltlfilt -f 'a W b' --unabbreviate=WR
    a U (b | (a W b))

* src/tl/unabbrev.cc: Here.
* src/tests/unabbrevwm.test: Harden test case.
* wrap/python/tests/randltl.ipynb: Adjust expected output.
* NEWS: Mention the fix.
2015-10-19 10:56:31 +02:00
Alexandre Duret-Lutz
43a5187ab4 python: add get_name & set_name for automata
* wrap/python/spot_impl.i (get_name, set_name): New methods for twa.
* wrap/python/tests/remfin.py: Test them.
* wrap/python/ajax/spotcgi.in: Use set_name().
* NEWS: Mention it.
2015-10-18 15:43:19 +02:00