Commit graph

1682 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
e78548ebae ltlcross: display formulas in blue instead of white
So that people using white-background terminal can still read them...
Reported by Joachim Klein.

* src/bin/ltlcross.cc: Adjust.
* NEWS: Mention it.
2014-08-20 23:10:01 +02:00
Alexandre Duret-Lutz
795c2f1720 ltl2tgba_fm: Fix incorrect simplification of promises for M
The bug was reported by Joachim Klein.

* src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::register_a_variable):
Reduce P(a M b) to P(a & b), not to P(a).
* src/tgbatest/ltlcross.test: Test Joachim's formula.
* src/tgbatest/ltl2ta.test: Adjust some expected values.
* NEWS: Mention the bug.
2014-08-20 23:10:01 +02:00
Alexandre Duret-Lutz
e5124faa13 man: more doc about TGBA and monitors
This was prompted by an exchange of emails with Caroline Lemieux.

* src/bin/man/ltl2tgba.x: Add notes and references.
* NEWS, THANKS: Update.
2014-08-19 14:52:51 +02:00
Alexandre Duret-Lutz
c7da4003a7 * src/tgba/taatgba.cc: Fix a memory leak. 2014-07-09 18:10:26 +02:00
Alexandre Duret-Lutz
6c76ba408e neverparse: Fix parsing of Modella's neverclaims.
Reported by František Blahoudek.

* src/neverparse/neverclaimparse.yy: Fix.
* src/tgbatest/neverclaimread.test: Test it.
* NEWS: Mention the fix.
2014-05-29 15:48:31 +02:00
Alexandre Duret-Lutz
8315cad6db * src/ltltest/equals.cc: Fix style. 2014-05-17 12:56:45 +02:00
Alexandre Duret-Lutz
139f7b49b4 snf: Fix the handling of bounded repetition.
star_normal_form() used to be called under bounded
repetitions like [*0..4], but some of these rewritings
are only correct for [*0..].  For instance
     (a*|1)[*]      can be rewritten to    1[*]
but  (a*|1)[*0..1]  cannot be rewritten to 1[*0..1]
it would be correct to rewrite the latter as (a[+]|1)[*0..1],
canceling the empty word in a*.

Also (a*;b*)[*]     can be rewritten to    (a|b)[*]
but  (a*;b*)[*0..1]  cannot be rewritten to (a|b)[*0..1]
and it cannot either be rewritten to (a[+]|b[+])[*0..1].

This patch introduces a new function to implement
rewritings under bounded repetition.

* src/ltlvisit/snf.hh, src/ltlvisit/snf.cc (star_normal_form_unbounded):
New function.
* src/ltlvisit/simplify.cc: Use it.
* src/ltltest/reduccmp.test: Add tests.
* doc/tl/tl.tex: Document the rewritings implemented.
2014-05-17 12:56:37 +02:00
Alexandre Duret-Lutz
9761703736 doc: update bibliographic references
* doc/org/satmin.org, src/bin/man/dstar2tgba.x, src/bin/man/ltl2tgba.x:
Cite the FORTE'14 paper.
* doc/org/tools.org, src/bin/man/ltl2tgba.x: Replace the VECOS'11
citation by IJCCBS'14.
* src/bin/man/ltl2tgba.x: Cite SPIN'13.
2014-05-14 18:16:12 +02:00
Alexandre Duret-Lutz
c46d6cee9a * src/ltlast/multop.hh: Typo in comment. 2014-05-13 18:26:32 +02:00
Alexandre Duret-Lutz
d741d9266d simplify: remove an incorrect simplification rule
Fortunately was only enabled with the
ltl_simplifier_options::favor_event_univ option, which cannot yet be
turned on from the command-line tools.

* src/ltlvisit/simplify.cc, doc/tl/tl.tex: Remove the rule.
* src/ltltest/eventuniv.test: Adjust.
* NEWS: Mention the bug.
2014-05-13 17:31:51 +02:00
Alexandre Duret-Lutz
362862dace llt2tgba_fm: fix translation of ":" in some SERE
* src/tgbaalgos/ltl2tgba_fm.cc: Here.
* src/ltltest/reduccmp.test: Add a test case.
* NEWS: Mention it.
2014-05-13 17:09:11 +02:00
Alexandre Duret-Lutz
48471b5114 simplify: fix 3 incorrect simplification rules
* src/ltlvisit/simplify.cc: Remove two incorrect rules, and
partially disable another one.
* doc/tl/tl.tex: Reflect the change.
* src/ltltest/reduccmp.test: Likewise.
* src/ltltest/equals.cc: Add safety checks to catch such errors in the
future.
* NEWS: Mention the bug.
2014-05-13 16:59:51 +02:00
Alexandre Duret-Lutz
a5b6865c0b ltl2ta: fix a crash with --ta.
* src/taalgos/tgba2ta.cc: Do not assume the input is an sba.
* src/tgbatest/ltl2ta2.test: New file.
* src/tgbatest/Makefile.am: Add it.
* NEWS: Mention the fix.
2014-04-07 18:21:10 +02:00
Alexandre Duret-Lutz
f5914647aa * src/dstarparse/nra2nba.cc: Fix comment. 2014-04-07 18:21:10 +02:00
Alexandre Duret-Lutz
db02e7c3d0 postproc: Add a degen-lskip option.
Also generalize the degen-lcache option.

* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add the option.
* src/bin/spot-x.cc: Document it.
* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: Implement it.
* src/tgbatest/ltlcross2.test: Add a test configuration.
* src/tgbatest/degenlskip.test: New file.
* src/tgbatest/Makefile.am (TESTS): Add degenlskip.test.
2014-04-07 18:21:06 +02:00
Alexandre Duret-Lutz
2c05a9fdb6 ltlast: move all accessor methods to headers to help the optimizer
* src/ltlast/atomic_prop.cc, src/ltlast/atomic_prop.hh,
src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/binop.cc,
src/ltlast/binop.hh, src/ltlast/bunop.cc, src/ltlast/bunop.hh,
src/ltlast/constant.cc, src/ltlast/constant.hh, src/ltlast/multop.cc,
src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh: Move all
one-line accessors methods like nth(), child(), op()... from *.cc files
to their respective *.hh files.
2014-02-12 10:43:42 +01:00
Alexandre Duret-Lutz
58878cd405 Work around the clang version installed with MacOS X 10.9.
Apparently their hash tables store the hash functions in a const
member, and this requires a user-supplied default constructor.
Reported by Étienne Renault.

* src/misc/hash.hh: Add an empty constructor to all hash functions.
2014-02-11 10:40:19 +01:00
Alexandre Duret-Lutz
0b5f63c296 Add missing const.
* src/kripke/kripkeexplicit.cc: Add missing const, reported by Etienne
Renault using Apple's clang version that is installed with OS X 10.9.
2014-02-11 10:05:57 +01:00
Alexandre Lewkowicz
cb0b3d3c67 testsuite: find files when building in remote directory
* doc/Makefile.am, src/ltltest/defs.in, src/ltltest/latex.test: Here.
2014-02-10 16:56:20 +01:00
Alexandre Duret-Lutz
eb778c569a sat: adjust SPOT_SATSOLVER default for glucose 3.0
* src/misc/satsolver.cc: Add the "-model" option.
* NEWS, doc/org/satmin.org, src/bin/man/spot-x.x: Mention it.
2014-02-08 21:34:35 +01:00
Alexandre Duret-Lutz
fd4a963a26 * src/bin/common_setup.cc: Bump copyright year. 2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
3c985a3235 sat: document the SPOT_SATLOG envvar
* doc/org/satmin.org, src/bin/man/spot-x.x: Document it.
* NEWS: Mention it.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
20824b96b9 timer: also consider the time spent in child processes
* src/misc/timer.hh: Fix.
* NEWS: Mention the bug.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
55ee18b96a sat-minimize: more statistics.
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Record
statistics about intermediate automata if SPOT_SATLOG is set to some
filename, and display intermediate automata if SPOT_SATSHOW is set.
* bench/dtgbasat/stat.sh, bench/dtgbasat/stats.sh,
bench/dtgbasat/tabl.pl, bench/dtgbasat/tabl1.pl,
bench/dtgbasat/tabl2.pl, bench/dtgbasat/tabl3.pl,
bench/dtgbasat/tabl4.pl: Gather these extra statistics.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
1319ec0bad sat-minimize: limit number of iterations
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Compute the
actual number of reachable states in the produced automaton to prepare
the next iteration.
2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
9c0021fac8 * src/tgbatest/satmin2.test, src/tgbatest/Makefile.am: New test. 2014-02-08 20:31:49 +01:00
Alexandre Duret-Lutz
7a26a4f1ec Revert "* src/tgbaalgos/dtbasat.cc: Better encoding for weak SCCs."
This was simply wrong.

* src/tgbaalgos/dtbasat.cc: reverts commit
fc5a00d24d5964d6f6a48d362ecbdec357eaf154.
2014-02-08 20:31:26 +01:00
Alexandre Duret-Lutz
b4d0b9ee42 sat: more debug.
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: More debuging
code.
2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
9c98975c19 sat: factor the creation of temporary files
* src/misc/satsolver.hh, src/misc/satsolver.cc: Present
the SAT solver as an object with a stream interface, to
prepare for a better implementation.
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc:
Adjust to the new interface, removing all the handling
of temporary files.
* src/tgbatest/readsat.cc: Adjust.
2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
1853bdd53b sat: fix some non-determinism of the encoding
* src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc: Rewrite the
loops that number the states of the reference automaton so that
they declare CNF variable numbers in the same order as the states
of the automaton.
2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
e5874ee4c7 Call glucose with -verb=0.
* src/misc/satsolver.cc: Call glucose with -verb=0.
* src/bin/man/spot-x.x: Document it.
2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
977a6dfaee * src/tgbaalgos/dtbasat.cc: Better encoding for weak SCCs. 2014-02-07 12:07:16 +01:00
Alexandre Duret-Lutz
c2195600b8 Fix spurious failre with Pandas 0.13.
* src/tgbatest/ltlcross4.test: Work around Pandas 0.13.
* NEWS: Mention it.
2014-02-06 01:33:17 +01:00
Alexandre Duret-Lutz
50bdc24514 randltl: gracefully handle the absence of unary or binary operators.
* src/ltlvisit/randomltl.cc: Fix generation of formulas when unary or
binary operators are missing.
* src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh
(destroy_atomic_prop_set): New function.
* src/bin/randltl.cc: Use it, and also honnor --boolean-priorities
when generating SEREs.
* src/ltltest/rand.test: New file.
* src/ltltest/Makefile.am: Add it.
2014-02-06 00:15:27 +01:00
Alexandre Duret-Lutz
4911e7dc1f Fix warning of Clang-3.5 against Doxygen comments.
* src/dstarparse/public.hh: Avoid LaTeX in comments to please clang-3.5.
* src/tgbaalgos/isdet.hh: Typo in Doxygen comment.
2014-02-05 15:07:34 +01:00
Alexandre Duret-Lutz
494dbe2041 length: slight simplification
* src/ltlvisit/length.cc (length_boolone_visitor): Simplify.
* NEWS: Mention Alexandre's fix.
2014-02-03 09:49:30 +01:00
Alexandre Lewkowicz
02334867da length_boolone: fix inconsistency
* src/ltlvisit/length.cc: Consider length of all Boolean
expressions combined in a multop as one.
* src/ltltest/length.test: Test it.
2014-02-03 09:40:25 +01:00
Alexandre Duret-Lutz
4f31a9bbed bitvect: fix block_count() on 0-sized bit-vectors
The bug was introduced by 522373984c.

* src/misc/bitvect.hh (block_count): Here.
* src/tgbatest/dstar.test: Add a test case.
2014-01-24 09:25:48 +01:00
Alexandre Duret-Lutz
91789b9b12 * src/tgbaalgos/degen.cc: Do not copy the unicity table. 2014-01-23 15:05:25 +01:00
Alexandre Duret-Lutz
bbf6a68228 Workaround another g++-4.0.1 bug on Darwin.
* src/ltlast/formula_tree.hh: Mark nodes with SPOT_API.
2014-01-15 23:04:38 +01:00
Alexandre Duret-Lutz
522373984c bitvect: fix some issues observed on 32bit architectures.
* src/misc/bitvect.cc, src/misc/bitvect.hh: Do
not assume the two bitvect with the same size have
the same number of allocated blocks.  Fix an
assertion in extra_range().
2014-01-15 16:27:49 +01:00
Alexandre Duret-Lutz
534edd4d1c bitvect: Fix compilation on 32-bits hosts.
* src/misc/bitvect.cc: Conditionally declare fnv<8>, so that the C++
parser does not choke on 14695981039346656037UL when compiling on a
32bit host.  Problem observed with g++ 4.0.1 and 4.2.1 on Darwin.
2014-01-15 15:57:58 +01:00
Alexandre Duret-Lutz
9ccdef9cbd Workaround GCC 4.0.1 on the Darwin builds.
* src/misc/bitvect.hh: Remove SPOT_API from class forward declarations.
* src/ltlast/nfa.hh: Likewise.
2014-01-15 14:39:45 +01:00
Alexandre Duret-Lutz
72b616c8cc * src/eltlparse/eltlscan.ll (_atoi): Fix range checking. 2014-01-13 17:25:35 +01:00
Alexandre Duret-Lutz
e2143c0313 ltlparse, eltlparse: avoid unnecessary calls to strlen().
* src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh (flex_set_buffer):
Take a std::string as argument and call yy_scan_bytes() with
the string size() instead of calling yy_scan_string() which does
strlen() on the supplied string.
* src/ltlparse/ltlparse.yy: Adjust calls.
* src/eltlparse/eltlscan.ll, src/eltlparse/parsedecl.hh,
src/eltlparse/eltlparse.yy: Use a similar interface.  This
also fixes a memory leak as the scanned buffer was not
released.
2014-01-13 17:25:35 +01:00
Alexandre Duret-Lutz
0c06844655 * src/taalgos/emptinessta.cc: Include <cstdlib> for abs(). 2014-01-13 17:25:35 +01:00
Alexandre Duret-Lutz
7a6af3aa0d Add missing #include.
* src/tgbaalgos/cutscc.cc, src/tgbaalgos/ltl2taa.cc:  Include
<algorithm> for set_difference and binary_search.
2013-12-18 17:03:37 +01:00
Alexandre Duret-Lutz
0afb9fe103 * src/tgba/tgbaunion.hh: Remove unused private member. 2013-12-16 10:27:39 +01:00
Alexandre Duret-Lutz
f0bcab4add bin: support multi-line CSV fields.
* src/bin/common_finput.cc (job_processor::process_stream): Read
multi-line CSV fields.
* src/ltltest/lbt.test, src/tgbatest/nondet.test: Add tests.
2013-12-06 13:45:55 +01:00
Alexandre Duret-Lutz
6c21089599 ltlcross: end CSV lines with \n, not \r\n
* src/bin/ltlcross.cc (print_stats_csv): Revert the recent
addition of \r, it is caussing too many issues.
* NEWS: Mention it.
2013-12-06 11:29:31 +01:00