Commit graph

1376 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
ebc92d4688 Fix position of the Send button with WebKit.
* wrap/python/ajax/css/ltl2tgba.css: Fix position of the "Send"
button with WebKit.  The folding arrow icon had a vertical border
that overlapped with the next line.
2012-01-17 14:02:15 +01:00
Alexandre Duret-Lutz
7854283593 * wrap/python/ajax/spot.py: Add a required "None" second
argument to utime().
2012-01-17 13:27:09 +01:00
Alexandre Duret-Lutz
a5787937ef minimize_wdba() failed to fully minimize some automata.
* src/tgbaalgos/minimize.cc (minimize_wdba): Fix the Löding
algorithm to use colors.  The previous implementation was an
incorrect approximation.
* src/tgbatest/wdba2.test: New file showing two equivalent
formulas that were minimized in automata with different sizes.
* src/tgbatest/Makefile.am: Add it.
2012-01-17 12:11:55 +01:00
Alexandre Duret-Lutz
2952daf0ba * NEWS: Update with recent fixes. 2012-01-13 15:23:37 +01:00
Alexandre Duret-Lutz
c21e716893 Fix a 'make check' failure when valgrind is not installed.
* src/kripketest/defs.in (run2): Remove this function.  It was
incorrectly trying to run valgrind even when valgrind is not
installed.
* src/kripketest/kripke.test: Simplify and use run().
2012-01-13 13:51:42 +01:00
Alexandre Duret-Lutz
89279d9829 Do use of tr1::unordered_map with G++ 4.0.0.
* m4/stl.m4 (AC_HEADER_TR1_UNORDERED_MAP): Add some code so
we don't pick a broken tr1::unordered_map.
2012-01-12 18:40:40 +01:00
Alexandre Duret-Lutz
253e38ae7d * lrde-upload.sh: Retrieve the package version from configure.ac. 2012-01-06 11:35:52 +01:00
Ala-Eddine Ben-Salem
0ca40d72d7 Fix detection of the last iteration of minimize_dfa().
* src/tgbaalgos/minimize.cc (minimize_dfa): Fix detection of the
last iteration.  An extra iteration case could be missed in case
where a split generates only singletons, and yet predecessor
classes need to be refined.
2012-01-05 19:17:34 +01:00
Alexandre Duret-Lutz
984c715cc6 Fix computation of length of LTL formulas.
* src/ltlvisit/length.cc: Fix computation for ltl::multop
operator. "a&b&c" was reported with length 3, ignoring the
"&" operators, because of a typo.
* src/ltlvisit/length.hh: Fix description to correctly
reflect this change intended since 2010-01-22.
* src/ltltest/length.test, src/ltltest/length.cc: New files.
* src/ltltest/Makefile.am: Add them.
2012-01-05 18:34:23 +01:00
Alexandre Duret-Lutz
93f1009b75 * configure.ac, NEWS: Bump version to 0.8.1a. 2011-12-18 13:38:38 +01:00
Alexandre Duret-Lutz
64e0c65c7e Release Spot 0.8.1.
* configure.ac, NEWS: Bump version to 0.8.1.
2011-12-18 12:56:44 +01:00
Alexandre Duret-Lutz
e27a7899a3 * NEWS: Summarize recent fixes. 2011-12-18 12:56:44 +01:00
Alexandre Duret-Lutz
28b7c0858b Fix VPATH builds, now that hash.hh include _config.h
* iface/dve2/Makefile.am, src/eltlparse/Makefile.am
src/eltltest/Makefile.am, src/evtgba/Makefile.am,
src/evtgbaalgos/Makefile.am, src/evtgbaparse/Makefile.am,
src/evtgbatest/Makefile.am, src/kripke/Makefile.am,
src/kripketest/Makefile.am, src/ltlast/Makefile.am,
src/ltlparse/Makefile.am, src/ltltest/Makefile.am,
src/ltlvisit/Makefile.am, src/misc/Makefile.am,
src/neverparse/Makefile.am, src/saba/Makefile.am,
src/sabaalgos/Makefile.am, src/sanity/Makefile.am,
src/tgba/Makefile.am, src/tgbaalgos/Makefile.am,
src/tgbaalgos/gtec/Makefile.am, src/tgbaparse/Makefile.am,
src/tgbatest/Makefile.am, wrap/python/Makefile.am (AM_CPPFLAGS):
Make sure $(top_builddir)/src is included.
2011-12-18 12:56:44 +01:00
Alexandre Duret-Lutz
e531da8d92 Perform WDBA minimization before degeneralization.
There is no point in degeneralizing an automaton if it can be WDBA
minimized.  Doing so will only augment the number of states and
slow down the powerset construction used by the WDBA minimization.

* src/tgbatest/babiak.test: New file.  It includes 5 formulae
which Tomáš Babiak reported Spot 0.7.1 would take over one hour to
translate if degeneralization and WDBA minimization were both
requested.
* src/tgbatest/Makefile.am (TESTS): Add it.
* src/tgbatest/ltl2tgba.cc: Do WDBA minimization before
degeneralization.  The above formulae are now all translated in a
few seconds.
2011-12-16 12:56:22 +01:00
Alexandre Duret-Lutz
9679032510 Don't rely on the g++ version to include tr1/unordered_map and co.
The previous setup failed with clang++ 3.0.

* m4/stl.m4: New file.
* configure.ac: Call AC_HEADER_UNORDERED_MAP,
AC_HEADER_TR1_UNORDERED_MAP, and AC_HEADER_EXT_HASH_MAP.
* src/misc/hash.hh: Include _config.h, and used the
SPOT_HAVE_UNORDERED_MAP, SPOT_HAVE_TR1_UNORDERED_MAP,
or SPOT_HAVE_EXT_HASH_MAP defines to decide which
file to include.
2011-12-16 10:03:07 +01:00
Alexandre Duret-Lutz
a804c88e1b Fix mkdir error in ajax/spot.in.
* wrap/python/ajax/spot.in: Do not print an error
when attempting to create an existing directory.
Reported by Étienne Renault.
2011-12-01 12:33:20 +01:00
Alexandre Duret-Lutz
1e7cda5e05 Fix build on MacOS X.
* src/kripketest/Makefile.am (LDADD): Remove a broken dependency.
Reported by Yann Thierry-Mieg.
* src/sanity/style.test: Make sure it does not appear again.
2011-11-29 20:32:45 +01:00
Alexandre Duret-Lutz
e5196a5943 * AUTHORS: Sort alphabetically. 2011-11-28 18:40:37 +01:00
Alexandre Duret-Lutz
6acf30b2ab Remove the old CGI interface.
* wrap/python/cgi-bin: Remove this directory.
* wrap/python/Makefile.am (SUBDIRS): Remove it.
* configure.ac, README, wrap/python/ajax/README: Likewise.
2011-11-28 18:17:50 +01:00
Alexandre Duret-Lutz
6794b8570a Undocument `.' from the web interface.
* wrap/python/ajax/ltl2tgba.html: Remove `.'
from the list of acceptable symbols for AND.
2011-11-28 17:56:46 +01:00
Alexandre Duret-Lutz
c905a71ab8 * NEWS, configure.ac: Bump version to 0.8a. 2011-11-28 17:36:52 +01:00
Alexandre Duret-Lutz
d6959b4a46 Release Spot 0.8.
* NEWS, configure.ac: Bump version to 0.8.
2011-11-28 16:18:32 +01:00
Alexandre Duret-Lutz
6b503d43a9 Remove spotref.pdf.
* doc/Doxyfile.in: Do not generate LaTeX output.
* doc/Makefile.am: Do not build spotref.pdf.
* NEWS, README: Adjust.
2011-11-28 15:22:48 +01:00
Alexandre Duret-Lutz
799ab14300 Fix some Doxygen errors.
* src/kripke/kripkeexplicit.hh: Reindent, and fix
some comments.
2011-11-28 15:22:02 +01:00
Alexandre Duret-Lutz
11bb4c7789 Add more nodes when resizing BDD table.
* src/misc/bddalloc.cc (bdd_allocator::initialize): Call
bdd_setmaxincrease(500000), because the default is 50000,
which cause garbage collection to occur too often.
2011-11-28 11:35:05 +01:00
Alexandre Duret-Lutz
5f689b5139 * NEWS: Mention the Kripke I/O. 2011-11-28 10:48:38 +01:00
Alexandre Duret-Lutz
9c4adf1eb4 Don't flush the stream on each new line, when writing automata.
* src/tgbaalgos/neverclaim.cc, src/tgbaalgos/dotty.cc,
src/tgbaalgos/save.cc: Prefer '\n' over std::endl to speedup I/O.
* src/ltltest/genltl.cc (syntax): Use '\n' too, although it won't
make a big difference.
2011-11-28 10:48:38 +01:00
Alexandre Duret-Lutz
ba3108f98d Add an ltl2tgba option to read Kripke structure.
Also offers two ways to output Kripke structures.

* src/kripketest/parse_print_test.cc, src/kripke/kripkeexplicit.cc
: Simplify includes.
* src/kripke/kripkeprint.hh (kripke_save_reachable,
kripke_save_reachable_renumbered): New declarations.
(KripkePrinter): Move and rename...
* src/kripke/kripkeprint.cc (kripke_printer): ... here.
(kripke_printer_renumbered): New class.
(kripke_save_reachable, kripke_save_reachable_renumbered): New
function.
* src/tgbatest/ltl2tgba.cc: Add an option to read Kripke
structures.
* iface/dve2/dve2check.cc: Use kripke_save_reachable_renumbered.
* iface/dve2/defs.in (run2): Remove.
* iface/dve2/kripke.test: Adjust tests.
2011-11-28 10:48:38 +01:00
Alexandre Duret-Lutz
172ce2d7fd * AUTHORS: Add Thomas Badie. 2011-11-27 20:59:17 +01:00
Thomas Badie
bb5949f6de Add text I/O for Kripke structures.
* src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh: New files.
* src/kripke/Makefile.am: Add them.
* src/kripkeparse/fmterror.cc, src/kripkeparse/kripkeparse.yy,
src/kripkeparse/kripkescan.ll, src/kripkeparse/parsedecl.hh,
src/kripkeparse/public.hh, src/kripkeparse/scankripke.ll: New
files.
* src/kripkeparse/Makefile.am: Add them.
* src/kripketest/bad_parsing.test, src/kripketest/defs.in,
src/kripketest/kripke.test, src/kripketest/origin,
src/kripketest/parse_print_test.cc: New files.
* src/kripketest/Makefile.am: Add them.
* src/Makefile.am (SUBDIRS): Add kripkeparse and kripketest.
* README: Document src/kripketest/ and src/kripkeparse/.
* configure.ac: Generate src/kripkeparse/Makefile,
src/kripketest/Makefile, src/kripketest/defs.
* iface/dve2/defs.in (run2): New function.
* iface/dve2/dve2check.cc (syntax, main): Add option -gK.
* iface/dve2/kripke.test: New file.
* iface/dve2/Makefile.am (TESTS): Add kripke.test.
2011-11-24 22:47:41 +01:00
Alexandre Duret-Lutz
71d1a4fe25 Fix bench/emptchk/pml2tgba.pl for more recent Spin version.
* bench/emptchk/pml2tgba.pl: Stop checking for version start lines
depending on the Spin version.  This check was never always
correct.  Reported by Étienne Renault.
2011-11-24 22:07:09 +01:00
Alexandre Duret-Lutz
fdf8878db3 Update formulae.ltl not to use uncommon operators.
* bench/emptchk/formulae.ltl: Do not use + and * in the list of
formulas.  Use | and & instead.  The * operator was removed on
2010-01-30.  Reported by Étienne Renault.
2011-11-24 22:03:42 +01:00
Alexandre Duret-Lutz
fd98345c17 More documentation.
* src/tgbaalgos/randomgraph.hh: Document the fact that adding
acceptance conditions to the graph may generate graphs that do not
have any accepting cycle.
2011-11-23 10:57:29 +01:00
Alexandre Duret-Lutz
3010d7051b Display transition annotations in dotty output.
* src/tgbaalgos/dotty.cc (process_link): Call
transition_annotation().  Reported by Nikos Gorogiannis.
* src/tgba/tgba.hh (transition_annotation): More documentation.
2011-11-17 18:55:17 +01:00
Alexandre Duret-Lutz
d573eb9b8d * NEWS: Add an entry for the previous fix. 2011-11-17 18:55:16 +01:00
Alexandre Duret-Lutz
ea6a1ffc22 Fully quote guards used by neverclaims.
Especially with should write !(p0) and not !p0, because p0 is
usually #define'd by the user and he may have forgotten to quote
the value of the macro.  This issue was discovered by Kristin
Yvonne Rozier and diagnosed by Gerard Holzmann.

* src/tgbaalgos/neverclaim.cc (process_link): Call
to_spin_string(..., true) to fully parentheses the string.
* src/tgbatest/neverclaimread.test: Add a test.
2011-11-16 14:27:50 +01:00
Alexandre Duret-Lutz
2b5956c2d4 Fix a g++-4.7 warning about a variable used only in an assert().
* src/tgbaalgos/weight.cc (inc_weight_handler)
(dec_weight_handler): Remove these assertions that require the
loop the be completed, and use break to exit ASAP.
2011-11-11 23:00:28 +01:00
Alexandre Duret-Lutz
9130d6f58c Allow neverclaim guards of the form !(x)' or ! (x)'.
* src/neverparse/neverclaimscan.ll: Make the space between `!' and
`(' optional.  This fixes the patch from 2011-02-07 that made this
space mandatory...
* src/tgbatest/neverclaimread.test: Augment test case.
2011-11-08 11:59:45 +01:00
Alexandre Duret-Lutz
2422b63a36 Better documentation for print_tgba_run.
* src/tgbaalgos/emptiness.hh (print_tgba_run): Reword the
documentation after a report from Nikos Gorogiannis.
2011-10-26 19:05:55 +02:00
Alexandre Duret-Lutz
053b1ebc8e * iface/dve2/finite.test: Swap -e and -E after change from 2011-07-26. 2011-10-24 18:03:37 +02:00
Alexandre Duret-Lutz
8549eb9d16 * NEWS: Update with recent fixes. 2011-10-24 18:03:37 +02:00
Alexandre Duret-Lutz
a4d1e18bf3 Safra: Fix usage of multiple acceptance conditions and fix text output.
* src/tgba/tgbasafracomplement.cc
(tgba_safra_complement::tgba_safra_complement)
(tgba_safra_complement::succ_iter): Correct the declaration and
use of multiple acceptance conditions.
(state_complement::to_string): Output the L set, not U.  The previous
code caused different states to share the same names, causing issues
with the text-based output (state with identical names get merged).
* src/tgba/tgbasafracomplement.hh
(tgba_safra_complement::acceptance_cond_vec_): Adjust type to
store BDDs.
* src/tgbatest/complementation.cc: Implement a new "-b" option
to output automata in Spot's syntax.
* src/tgbatest/complementation.test: Add a test-case supplied
by Martin Dieguez Lodeiro.
* THANKS: Add Martin.
2011-10-23 23:06:59 +02:00
Alexandre Duret-Lutz
ff3c02f51d * src/tgba/tgbasafracomplement.cc: Fix two asserts. 2011-10-23 22:02:19 +02:00
Alexandre Duret-Lutz
73d9f65d2c Improve the print_safra_automaton output.
* src/tgba/tgbasafracomplement.cc (print_safra_tree): Fix output in
case of hash collision.  Use the actual states to get a number, not
their hash value.
(print_safra_automaton): Output a mapping of values to states names.
(safra_tree_automaton::get_sba): New method, used by
print_safra_automaton.
2011-10-23 22:01:40 +02:00
Alexandre Duret-Lutz
101b18b24b Fix errors reported by clang++-2.9.
* src/evtgbaalgos/tgba2evtgba.cc (process_link): Fix prototype
to match tgba_reachable_iterator::process_link.
* src/ltlvisit/tunabbrev.hh: Add using super::visit, so that the
other visit() method are in scope when we overload one.
* src/tgba/tgbareduc.hh, src/tgba/tgbareduc.cc (start, end,
process_link): Remove these empty methods.  The default
implementations are empty too, and process_link had the
wrong prototype.
* src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc
(start, end, process_link): Likewise.
2011-08-28 10:37:43 +02:00
Alexandre Duret-Lutz
d9fc75e94e Improve SCC simplification by removing implied acceptance conditions.
Spot 0.7.1 used to need 190 acceptance conditions to translate the
188 literature formulae.  With this patch we are down to 185.
That's not an impressive, but there are only ~20 formulae that
require more than 1 acceptance conditions; hence little room for
improvement.

* src/misc/bddlt.hh (bdd_hash): New function.
* src/misc/accconv.hh, src/misc/accconv.cc: New files.
* src/misc/Makefile.am: Add them.
* src/tgbaalgos/scc.cc (scc_map::build_map): Adjust
to record all combination of acceptance conditions occurring in a SCC.
* src/tgbaalgos/scc.hh (scc_map::scc::useful_acc): Update description.
* src/tgbaalgos/sccfilter.cc (scc_filter): Simplify acceptance
conditions that are always implied by another acceptance
conditions.  Previously, we only removed acceptance conditions
that where always present in accepting SCCs.
* src/tgbatest/sccsimpl.test: New file.
* src/tgbatest/Makefile.am (TESTS): Add it.
2011-08-28 10:37:42 +02:00
Alexandre Duret-Lutz
9d232af82f Refine yesterday's change to the degeneralization.
This avoids a small regression on the size of degeneralized
automata of our usual list of literature formulae.

* src/tgba/tgbatba.hh, src/tgba/tgbatba.cc
(tgba_tba_proxy::union_acceptance_conditions_of_original_state):
New method.
* src/tgba/tgbatba.cc (tgba_tba_proxy_succ_iterator): In accepting
states, ignore only the last expected acceptance condition if its
common to all outgoing transitions AND if it is not used by any
outgoing transitions of the destination.
2011-08-26 15:23:54 +02:00
Alexandre Duret-Lutz
bc416fdb2f Make sure the degeneralization is idempotent (up to renaming of
states).

* src/tgbaalgos/tgbatba.cc: When degeneralizing to SBA, remove the
acceptance conditions that are common to all outgoing transitions
of this state.  This helps to make the degeneralization
idempotent.
* src/tgbatest/degenid.test: New test case.
* src/tgbatest/Makefile.am: Add it.
2011-08-25 18:42:00 +02:00
Alexandre Duret-Lutz
bf7b94e1cd Fix escaping of state name in save_reachable()'s output.
* src/tgbaalgos/save.c (process_state): Escape quotes in the
name of source and destination states.  This fixes a side bug
in the upcoming degenid.test test case.
2011-08-25 18:29:46 +02:00
Alexandre Duret-Lutz
d8ba172e6d Running ltl2tgba -R1q -R1t -N would degeneralize before and
after the simulation-reduction.

Report from Tomáš Babiak <xbabiak@fi.muni.cz>.

* src/tgbaalgos/neverclaim.hh (never_claim_reachable): Take
a tgba as input.
* src/tgbaalgos/neverclaim.cc (never_claim_bfs): Call
state_is_accepting() only if this tgba turns out to be
a tgba_sba_proxy.  Otherwise check the acceptance of one
outgoing transition as we do in dotty_bfs since 2011-03-05.
* src/tgbatest/ltl2tgba.cc: Do not redegeneralize before
calling never_claim_reachable() if we know the automaton is
degeneralized already.
* src/tgbatest/ltl2tgba.test: Add a test case.
2011-08-25 16:53:40 +02:00