Commit graph

1392 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
3427f3bf0e Setup build system for a new dve2 interface.
* iface/dve2/dve2.cc, iface/dve2/dve2.hh: New dummy files.
* iface/dve2/Makefile.am: New file.
* iface/Makefile.am (SUBDIRS): Add dve2.
* configure.ac: Build iface/dve2/Makefile.
* README: Mention the new directory.
2011-03-05 11:13:37 +01:00
Alexandre Duret-Lutz
e1ef47d975 Using double borders for acceptance states in SBAs.
* src/tgbaalgos/dotty.hh (dotty_reachable): Take a new
assume_sba argument.
* src/tgbaalgos/dotty.cc (dotty_bfs): Take a new
mark_accepting_states arguments.
(dotty_bfs::process_state): Check if a state is accepting using
the state_is_accepting() method for tgba_sba_proxies, or by
looking at the first outgoing transition of the state.  Pass
the result to the dectorator.
(dotty_reachable): Adjust function.
* src/tgbaalgos/dottydec.hh, src/tgbaalgos/dottydec.cc,
src/tgbaalgos/rundotdec.hh, src/tgbaalgos/rundotdec.cc
(state_decl): Add an "accepting" argument, and use it to
decorate accepting states with a double border.
* src/tgbatest/ltl2tgba.cc: Keep track of whether the output
is an SBA or not, so that we can tell it to dotty().
* wrap/python/ajax/spot.in: Likewise.
* wrap/python/cgi-bin/ltl2tgba.in: Likewise.
2011-03-05 10:26:20 +01:00
Alexandre Duret-Lutz
2c5bae3d37 * src/ltltest/genltl.cc (GF_n): Really use "op". 2011-03-05 08:58:40 +01:00
Alexandre Duret-Lutz
0792fb741d * wrap/python/ajax/spot.in: Use the degeneralized automaton if
available while computing the emptiness check.
2011-03-04 21:04:38 +01:00
Alexandre Duret-Lutz
de4166f4c9 Speedup build_result() called by minimize_dfa().
* src/tgbaalgos/minimize.cc (build_result): Speed it up by
removing one useless loop, creating many duplicate transitions
that had to be merged.
2011-03-04 11:50:52 +01:00
Alexandre Duret-Lutz
4b75c9b8e6 * src/ltltest/genltl.cc: Add 10 more LTL formula classes. 2011-03-01 18:15:13 +01:00
Alexandre Duret-Lutz
774e20d8ee * src/tgba/bdddict.hh: Add more documentation. 2011-02-21 22:11:57 +01:00
Alexandre Duret-Lutz
428b21552f * src/misc/escape.hh: Correct documentation. 2011-02-21 21:49:19 +01:00
Alexandre Duret-Lutz
94d1c57ed4 Correct tgba_explicit::compute_support_conditions.
* src/tgba/tgbaexplicit.cc (tgba_explicit::compute_support_conditions):
Fix logic.  This function has always been returning bddtrue instead
of the actual computed value...
2011-02-14 21:09:04 +01:00
Alexandre Duret-Lutz
40e7350c80 Enable VERBOSE logs for nips, greatspn, and python tests.
* wrap/python/tests/run.in, iface/nips/nipstest/defs.in,
iface/gspn/defs.in: Do not disable VERBOSE when running from "make
check".  Since we have started using parallel-check on 2009-08-31,
we should always send verbose output to the log.
2011-02-10 12:58:16 +01:00
Alexandre Duret-Lutz
0385f5b6c7 This should finally fix kv.test and dotty.test on the LIP6 buildfarm.
* src/tgbatest/kv.test, iface/nips/nipstest/dotty.test: Don't rely
on the ${DOT-...} syntax, because DOT is always set and might be
set to the empty value.
2011-02-10 12:34:39 +01:00
Alexandre Duret-Lutz
e6be19cdf7 * HACKING (Running coverage tests): New section. 2011-02-10 08:23:11 +01:00
Alexandre Duret-Lutz
ba564af08f Previous patch did not work on MacOS X, and I don't have shell
access to that host.

* src/tgbatest/kv.test: Use ${DOT-true} instead of ${DOT-:}.  I
don't know, the MacOS shell must be mixing the syntaxes for
${DOT:-} and ${DOT-:}.
* iface/nips/nipstest/dotty.test: Likewise
2011-02-09 22:44:05 +01:00
Alexandre Duret-Lutz
cb7b7d16f3 Avoid running "dot" when it is not installed...
* src/tgbatest/kv.test: Do not run dot if it is not installed.
* iface/nips/nipstest/dotty.test: Likewise
2011-02-09 21:09:54 +01:00
Alexandre Duret-Lutz
dd13bfa07b Add some tricks into HACKING.
* README: Typo.
* HACKING: s/CVS/GIT/ and add some tricks about libtool and doxygen.
2011-02-08 12:23:34 +01:00
Alexandre Duret-Lutz
964c2bed43 Adjust the WDBA test to count for sub-transitions.
* bench/wdba/run: Use -kt to count sub-transitions.
* bench/wdba/README: Adjust comments.
2011-02-08 12:21:36 +01:00
Alexandre Duret-Lutz
baf1288dc6 Fix a spurious g++ warning observed on Darwin builds.
* src/tgba/taatgba.cc (taa_succ_iterator::taa_succ_iterator):
Initialize iterator i to silence a spurious g++ warning on Darwin.
2011-02-08 10:53:06 +01:00
Alexandre Duret-Lutz
9119ffe9bc * configure.ac: s/gnit/gnu so that we can use 0.7.1a as a version. 2011-02-07 18:47:08 +01:00
Alexandre Duret-Lutz
e72f85a327 * NEWS: Typos. 2011-02-07 18:30:21 +01:00
Alexandre Duret-Lutz
6f43b997de * NEWS, configure.ac: Bump version to 0.7.1a 2011-02-07 17:53:56 +01:00
Alexandre Duret-Lutz
51bf0b18e3 Release Spot 0.7.1.
* NEWS: Update for 0.7.1.
* configure.ac: Bump version to 0.7.1.
2011-02-07 17:52:20 +01:00
Alexandre Duret-Lutz
8b06edbc3b Generalize patch from 2011-02-03 by allowing guards like "! (...)".
* src/neverparse/neverclaimscan.ll: Allow space between ! and (.
* src/tgbatest/neverclaimread.test: Add space for testing.
2011-02-07 00:06:18 +01:00
Alexandre Duret-Lutz
0568eaf0ee Speedup scc_filter on tgba_explicit_number automata.
* src/tgbaalgos/sccfilter.cc (scc_filter): If the input automaton
is an instance of tgba_explicit_number, create a similar automaton
for output, instead of a tgba_explicit_string.
2011-02-06 18:57:52 +01:00
Alexandre Duret-Lutz
caaf0a80c2 Document the new operators in the on-line tools.
* wrap/python/ajax/ltl2tgba.html: Mention Goal's ~, -->, and <-->
operators.
* wrap/python/cgi-bin/ltl2tgba.in: Likewise.
2011-02-06 17:36:26 +01:00
Alexandre Duret-Lutz
c019a44c49 Fix a segfault in WDBA minimization.
* src/tgbaalgos/minimize.cc (build_result, minimize_dfa,
minimize_wdba): Correctly handle (i.e. ignore) useless states.
* src/tgbatest/ltl2tgba.test: Add two more tests.
2011-02-06 16:48:52 +01:00
Alexandre Duret-Lutz
97df5b4285 Fix call to scc_filter in the CGI script.
* wrap/python/ajax/spot.in: Do full scc_filter for TGBA (-R3f),
and keep some extra acceptance conditions (-R3) when
degeneralizing.  The converse was done.
2011-02-05 14:27:04 +01:00
Alexandre Duret-Lutz
08ee714760 * wrap/python/cgi-bin/ltl2tgba.in: Fix python error occurring
only when the user did not make any error...
2011-02-04 21:59:43 +01:00
Alexandre Duret-Lutz
067a1a0b24 Prevent Spot from using an installed BuDDy version that does not
have the latest function we added.  Reported by Kristin Rozier.

* m4/buddy.m4 (AX_CHECK_BUDDY): Check for bdd_setxor.
2011-02-04 21:28:17 +01:00
Alexandre Duret-Lutz
30727074fd Add a way to count the number of sub-transitions.
* src/tgbaalgos/stats.hh (tgba_sub_statistics): New class.
(sub_stats_reachable): New function.
* src/tgbaalgos/stats.cc (sub_stats_bfs): New class.
(tgba_sub_statistics::dump, sub_stats_reachable): New function.
* src/tgbatest/ltl2tgba.cc (-kt): New option.
* src/tgbatest/ltl2tgba.test: Use -kt.
2011-02-04 00:17:53 +01:00
Alexandre Duret-Lutz
91e51c4c3f Read guard of the form !(x) in neverclaims.
So far all neverclaims encountered would use (!(x)), but the
files from the Büchi store do not.

* src/neverparse/neverclaimscan.ll: Accept ! in front of guard,
so that we can read Promela files from Goal's Büchi store.
* src/tgbatest/neverclaimread.test: Test it.
2011-02-03 22:33:47 +01:00
Alexandre Duret-Lutz
3278844c2a Recognize Goal's syntax for Boolean operators.
* src/ltlparse/ltlscan.ll: Recognize ~, -->, and <--> operators
from Goal, to ease the use of formulas provided by the Goal team.
* src/ltltest/equals.test: Use these once, just to be on the
safe side.
2011-02-03 21:47:38 +01:00
Alexandre Duret-Lutz
2fe5b3fb62 Minor fixes to ltl2tgba.html.
* wrap/python/ajax/css/ltl2tgba.css,
wrap/python/ajax/ltl2tgba.html: Tweak a few things for Firefox
3.0, and fix a </li> tag.
2011-02-03 15:49:37 +01:00
Alexandre Duret-Lutz
2452d9ff4a * NEWS, configure.ac: Bump version to 0.7a. 2011-02-01 15:07:59 +01:00
Alexandre Duret-Lutz
ab73482581 Release Spot 0.7.
* NEWS, configure.ac: Bump version to 0.7.
2011-02-01 15:01:43 +01:00
Alexandre Duret-Lutz
f458eba1d7 * src/tgbatest/ltl2tgba.test: Fix previous test case. 2011-02-01 13:12:24 +01:00
Alexandre Duret-Lutz
ad93f87591 Fixup minimize_monitor().
* src/tgbaalgos/minimize.cc (minimize_monitor): Fix typo yielding
incorrect monitor if the input tgba is not deterministic.
* src/tgbatest/ltl2tgba.test: Add test case.
2011-01-28 12:11:20 +01:00
Alexandre Duret-Lutz
c8140de9d6 Report formulas that are both safety and guarantee.
* src/tgbatest/ltl2tgba.cc (-O): Report formulas that are both
safety and guarantee.
* src/tgbatest/obligation.test: Add cases.
2011-01-27 21:41:04 +01:00
Alexandre Duret-Lutz
db124d02c0 Rename is_safety_automaton() as is_guarantee_automaton() and
implement is_safety_mwdba().

Note: I swapped the name of safety and guarantee when I
implemented is_safety_automaton() on 2010-03-20.  Fortunately,
is_safety_automaton() was only used where is_guarantee_automaton()
would have been correct.

* src/tgbaalgos/safety.cc (is_guarantee_automaton): Rename as ...
(is_guarantee_automaton): ... this.
(is_safety_mwdba): New function.
* src/tgbaalgos/safety.hh: Adjust and add documentation.
* src/tgbaalgos/minimize.cc: Use is_guarantee_automaton() instead
of is_safety_automaton().
* src/tgbatests/safety.test: Rename as ...
* src/tgbatests/obligation.test: ... this, and augment the
test.
* src/tgbatest/Makefile.am: Adjust.
* src/tgbatest/ltl2tgba.cc (-O): Display whether a formula
represent a safety, guarantee, or obligation property.
* NEWS: Adjust.
2011-01-27 18:21:27 +01:00
Alexandre Duret-Lutz
14b701b54d * NEWS: Minor rewritings. 2011-01-27 15:08:57 +01:00
Alexandre Duret-Lutz
0c9c9fc639 Replace delete by destroy in comments dealing with states.
* src/tgba/succiter.hh, src/tgba/tgba.hh,
src/tgba/tgbabddconcrete.hh, src/tgba/tgbaproduct.hh,
src/tgba/tgbaunion.hh, src/tgbaalgos/bfssteps.hh,
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.hh,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/replayrun.cc,
src/tgbaalgos/scc.cc, src/tgbaalgos/scc.hh: Update comments
to say that we "destroy" a state instead of "deleting" it.
2011-01-27 10:48:49 +01:00
Alexandre Duret-Lutz
95cc50da51 Update gspn interface for recent tools.
* iface/gspn/ssp.cc: Use the new destroy() interface, and
fix a couple of recent g++ reports.
* iface/gspn/gspn.cc: Adjust to newer g++.
2011-01-27 10:48:48 +01:00
Alexandre Duret-Lutz
574a228583 Introduce a destroy() method on states, and use it instead of delete.
Right now, destroy() just executes "delete this".  But in a later
version, we will rewrite tgba_explicit so that it does not
allocate new states (and the destroy() method for explicit state
will do nothing).

* src/tgba/state.hh (state::destroy): New method, to replace
state::~state() in the future.
(shared_state_deleter): New function.
* src/evtgba/product.cc, src/evtgbaalgos/reachiter.cc,
src/evtgbaalgos/save.cc, src/evtgbaalgos/tgba2evtgba.cc,
src/tgba/tgba.cc, src/tgba/tgbaproduct.cc, src/tgba/tgbareduc.cc,
src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
src/tgbaalgos/cutscc.cc, src/tgbaalgos/emptiness.cc,
src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/explscc.cc,
src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/nsheap.cc,
src/tgbaalgos/gv04.cc, src/tgbaalgos/magic.cc,
src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.hh,
src/tgbaalgos/reachiter.cc, src/tgbaalgos/reducerun.cc,
src/tgbaalgos/reductgba_sim.cc,
src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/replayrun.cc,
src/tgbaalgos/safety.cc, src/tgbaalgos/save.cc,
src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03opt.cc: Adjust to call
"s->destroy()" instead of "delete s".
* src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc:
Pass shared_state_deleter to the shared_ptr constructor, so that
it calls destroy() instead of delete.
2011-01-27 10:48:48 +01:00
Alexandre Duret-Lutz
60930d7a12 * wrap/python/ajax/ltl2tgba.html: Display the Spot version in
the tooltip over the Spot logo.
2011-01-26 23:13:40 +01:00
Alexandre Duret-Lutz
656eeeaf3b * wrap/python/ajax/Makefile.am (EXTRA_DIST): Add icons/mail.png. 2011-01-26 22:10:57 +01:00
Alexandre Duret-Lutz
6df06aceeb * NEWS: Mention the new on-line ltl2tgba version. 2011-01-26 22:09:37 +01:00
Alexandre Duret-Lutz
f3c6f01e8d Updates to the ltl2tgba ajax version.
* wrap/python/ajax/ltl2tgba.html: Remove the auto-update button, and
enable auto-update automatically after the first submission.  Add
tools tips for the "Desired Output" tabs, and the Spot logo.
Add a email icon to encourage feedback.
* wrap/python/ajax/ltl2tgba.css: fix sizes of formula field and
send button.  Set position of mail icon.
* wrap/python/ajax/logos/mail.png: New logo, based on a public
domain SVG icon retrieved today from
http://commons.wikimedia.org/wiki/File:Internet-mail.svg
2011-01-26 22:03:14 +01:00
Alexandre Duret-Lutz
c7f3bd5111 * wrap/python/ajax/ltl2tgba.html: Disable the browser spellcheck
on the input box.
2011-01-19 08:44:33 +01:00
Alexandre Duret-Lutz
34f49a8692 Preliminary implementation of an ajax-based ltl2tgba translator.
* configure.ac: Output wrap/python/ajax/Makefile.
* wrap/python/Makefile.am (SUBDIRS): Add ajax.
* wrap/python/ajax/Makefile.am, wrap/python/ajax/README,
wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/spot.in: New files.
* wrap/python/ajax/css/, wrap/python/ajax/js,
wrap/python/ajax/logos: New directories.
* README: Document wrap/python/ajax/.
2011-01-18 16:31:33 +01:00
Alexandre Duret-Lutz
dc2a89f853 Do not output empty parse error blocks in the CGI script.
* wrap/python/spot.i: Provide a __nonzero__() method for
parse_error_list.
* wrap/python/cgi-bin/ltl2tgba.in: Do not call format_parse_errors()
unconditionally.
2011-01-17 21:52:59 +01:00
Alexandre Duret-Lutz
fe535a1594 Fix "unused function" warnings reported by clang++.
* src/evtgbaparse/Makefile.am, src/ltlparse/Makefile.am,
src/neverparse/Makefile.am, src/tgbaparse/Makefile.am
(AM_CPPFLAGS): Define -DYY_NO_INPUT so that the unused yyinput()
function does not get compiled.
* src/eltlparse/Makefile.am (AM_CPPFLAGS): Likewise.
(AM_CXXFLAGS): Also enable warnings.
* src/eltlparse/eltlparse.yy: Move helper functions from
the "%code requires" block to the "%code" block, so that they
do not appear in the eltlparse.hh file (which is included in
two places...).
* iface/nips/nips.cc (search_error_callback_assert): Comment
this unused function.
2011-01-12 18:44:29 +01:00