Commit graph

1543 commits

Author SHA1 Message Date
Alexandre Duret-Lutz
88cd376dff scc_filter: Improve selection of missing acceptance sets.
* src/tgbaalgos/sccfilter.cc: Reuse existing acceptance set as filler
in SCC sets that need less SCC sets than the other SCCs automaton.
* src/tgbatest/sccsimpl.test: Add more tests.
2013-04-27 10:52:49 +02:00
Alexandre Duret-Lutz
4c2791e042 postproc: Perform simulation on the BA in --high mode.
* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Do simulation
on the BA produced in --high mode.
* src/bin/spot-x.cc: Document the ba-simul option that can be used
to disable it.
2013-04-27 10:52:49 +02:00
Alexandre Duret-Lutz
53c6923567 Introduce compositional suspension (SPIN'13)
* src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh: New files.
* src/tgbaalgos/Makefile.am: Add them.
* src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh: Add option
for suspended labels removal.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/spotlbtt.test: Test it.
2013-04-27 10:52:39 +02:00
Elie Abi Saad
2e5e5d1e3c Add inputs support.
* src/bin/ltlcross.cc: Update print_stats_json.
2013-04-15 15:31:42 +02:00
Alexandre Duret-Lutz
33ba8a78c5 * src/bin/man/ltlfilt.x: Add a bibliography section. 2013-04-09 17:25:27 +02:00
Alexandre Duret-Lutz
a7bfb42de7 remove_x: Implement detection of stutter-invariant LTL formulas.
* src/bin/ltlfilt.cc: Add options --remove-x and --stutter-invariant.
* src/ltlvisit/remove_x.cc, src/ltlvisit/remove_x.hh: New files.
* src/ltlvisit/Makefile.am: Add them.
* src/ltltest/remove_x.test: New file.
* src/ltltest/Makefile.am: Add it.
* NEWS: Mention the new algorithms.
2013-04-09 17:25:05 +02:00
Alexandre Duret-Lutz
8896c3d5da * src/tgba/bddprint.hh: Typo in Doxygen comment. 2013-04-09 15:05:56 +02:00
Alexandre Duret-Lutz
9145515bb8 ltlscan: get rid of boost::lexical_cast
This is one less useless dependency on Boost.

* src/ltlparse/ltlscan.ll: Replace lexical_cast<unsigned>() by
strtoul().
* src/ltltest/parseerr.test: Add a test case.
2013-04-09 15:05:56 +02:00
Alexandre Duret-Lutz
c5b7e8e1da Introduce a translator class.
This perform pre- and post-processings in addition to
the LTL-to-TGBA translation.

* src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh: New files.
* src/tgbaalgos/Makefile.am: Add them.
* src/tgbaalgos/postproc.hh: Make the private part protected, so
that we can inherit from that in the translator class.
* src/bin/ltl2tgba.cc: Use the translator class to hide LTL
simplification, translation, and postprocessings.
* NEWS: Mention it.
2013-04-09 15:05:56 +02:00
Alexandre Duret-Lutz
276f9108c6 ltl2tgta: Honor -x as well
* src/bin/ltl2tgta.cc: Honor -x.
* src/bin/man/ltl2tgta.x, src/bin/man/spot-x.x: Add cross references.
2013-04-09 15:05:56 +02:00
Alexandre Duret-Lutz
d78670ad44 spot-x.7: new man page for common fine-tuning options
* src/bin/spot-x.cc, src/bin/man/spot-x.x: New files.
* src/bin/Makefile.am, src/bin/man/Makefile.am: Adjust.
* src/bin/man/ltl2tgba.x: Remove all fine-tuning options,
and make a reference spot spot-x (7).
* src/bin/common_setup.hh, src/bin/common_setup.cc: Add
a misc_argp_hidden version of the option, so that --help
and --version are not shown in the --help output used
by help2man to generate spot-x.7.
* src/bin/ltl2tgba.cc: Refer to spot-x.7.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
1337c9c3e1 simulation: many fixes.
* src/tgbaalgos/simulation.cc: Attempt to fix several cases.
* src/tgbatest/sim.test: Add more tests.
* src/tgbatest/sim2.test: New file.
* src/tgbatest/Makefile.am: Add it.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
a965af711c postproc: add an scc-filter option
* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add an
scc-filter option.
* src/bin/man/ltl2tgba.x: Document it.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
bc7a2865de postproc: add some experimental don't care options
* src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh: Add a
"simul-limit" option, and add two new cases to "simul"
for the two don't care simulation
* src/bin/man/ltl2tgba.x: Mention the new options.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
ca94168540 * src/tgbaalgos/simulation.cc: Merge two loops. 2013-04-09 15:05:55 +02:00
Thomas Badie
08c77318ae Add the "don't care" simulation
* src/tgba/bddprint.cc, src/tgba/bddprint.hh: Add bdd_print_isop
that prints the bdd into a Irreductible Sum Of Product.
* src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Add a way to
know which states (in the input) is which (in the result).
* src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Add
the Don't Care Simulation and the Don't Care Iterated Simulation.
* src/tgbatest/ltl2tgba.cc, src/tgbatest/spotlbtt.test,
src/tgbatest/Makefile.am, src/tgbatest/sim.test: Test them.
* bench/ltl2tgba/algorithms, bench/ltl2tgba/README,
bench/ltl2tgba/algorithms: Add a way to bench the don't care
simulation.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
5796114e37 postproc: add a "simul" option to select the simulation algorithm
* src/tgbaalgos/postproc.hh, src/tgbaalgos/postproc.cc: Honor the
"simul" option in the option_map.
(do_simul, do_degen): New method to wrap the algorithms that may be
altered via option_map.
* src/bin/man/ltl2tgba.x (simul): Document this option.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
c46891edc7 sccfilter: ignore more acceptance conditions
* src/tgbaalgos/sccfilter.cc: Compute useless variable SCC-wise, then
renumber the useful variables so that they can be shared between SCCs.
* src/tgbatest/sccsimpl.test, src/tgbatest/ltl2ta.test: Adjust test
cases.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
05e59a9e1a postproc: Add an option_map parameter
* src/tgbaalgos/postproc.cc: Add an option_map parameter, and use to get
extra options to pass to the degeneralization algorithm.
* src/tgbaalgos/postproc.hh: Adjust prototype, and store Boolean
variables for degeneralize() options.
* src/bin/ltl2tgba.cc: Add a -x option to fill the option map, and pass
it to the postprocessor.
* src/bin/man/ltl2tgba.x: Document the three degeneralization options.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
1b2f9fe5d8 degen: fix a memory leak
* src/tgbaalgos/degen.cc (degeneralize): Do not call i->current_state()
to get the current SCC, as we already have the state in d.first.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
63cb925f1f * src/tgbaalgos/degen.cc: Fix style. 2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
73ee50446b degen: disable custom order by default
Because benchmark show that this option usually do not help.

* src/tgbaalgos/degen.hh, src/tgbatest/ltl2tgba.cc: Here.
* src/tgbaalgos/degen.hh: Document the new options.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
c04951c444 degen: small fixups and interface with ltl2tgba
* src/tgbaalgos/degen.cc: Fixups.
* src/tgbatest/ltl2tgba.cc: Add switches to enable/disable
the options Tomáš added to degeneralize().
2013-04-09 15:05:55 +02:00
Tomáš Babiak
774a266bfe degen: introduce three optimizations
* src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: Add three
options use_z_level, use_cust_acc_orders, and use_lvl_cache.
2013-04-09 15:05:55 +02:00
Alexandre Duret-Lutz
35e16a0b9a * src/bin/ltlfilt.cc: Destroy equivalent_to, implied_by, and imply. 2013-04-09 15:05:35 +02:00
Alexandre Duret-Lutz
2e7711a322 * src/ltlast/formula.cc: Typo. 2013-04-04 10:50:14 +02:00
Alexandre Duret-Lutz
c083c0df33 ltl2tgba: fix translation of !{xxx} when xxx reduces to false
* src/tgbaalgos/ltl2tgba_fm.cc: Typo.
* src/tgbatest/ltl2tgba.test: Add a test case.
2013-04-04 10:43:02 +02:00
Alexandre Duret-Lutz
a9fc213a44 fix a memory leak in basic LTL simplifications
When something like XFa & FXa is reduced, the subformulae XFa and FXa
are both rewritten separately to XFa, and then the vector of arguments
of the And operators, [XFa,XFa], is passed through a specialized loop
that searches of the form X(...) that can potentially be simplified with
some other terms.  This loop converts the vector [XFa,XFa] into the set
{XFa,XFa}={XFa} and forgot to deal with the case where the insertion
would actually not add an existing subformula.

* src/ltlvisit/simplify.cc: Fix the code for Or, and And.
* src/ltltest/reduc0.test: New file, to test it.
* src/ltltest/Makefile.am (TESTS): Add it.
* src/ltltest/reduccmp.test: Add an extra test that does not
trigger the bug (because reduccmp.test uses more than basic
optimizations, and the implication-based simplifications are
already able to detect that XFa and FXa are equivalent).
2013-04-04 10:43:01 +02:00
Alexandre Duret-Lutz
6835973abe * src/tgba/tgbascc.cc: 80 columns. 2013-04-04 10:43:01 +02:00
Alexandre Duret-Lutz
c6406995fb ltl_simplifier: add a boolean_to_isop option and method
* src/ltlvisit/simplify.hh (ltl_simplifier_options): add
a boolean_to_isop option
(ltl_simplifier::boolean_to_isop): New method.
* src/ltlvisit/simplify.cc: Implement these.
* src/bin/ltlfilt.cc: Add a --boolean-to-isop option.
* src/ltltest/isop.test: New file.
* src/ltltest/Makefile.am: Add it.
* NEWS: Mention it.
2013-03-05 23:52:34 +01:00
Alexandre Duret-Lutz
abb5170565 cgi: Add an nondeterministic monitor option
* src/tgbaalgos/postproc.hh (run): Rename the first argument as
input_disown to help Swig.
* wrap/python/spot.i: Wrap spot::postprocessor.
* wrap/python/ajax/ltl2tgba.html, wrap/python/ajax/protocol.txt:
Add an option for nondeterministic monitor.
* wrap/python/ajax/spot.in: Honor the new option, and rewrite the
monitor production using postprocessor.
2013-03-05 22:02:34 +01:00
Alexandre Duret-Lutz
c892599494 Fix two memory leak reported by Sonali Dutta.
* src/tgbatest/ltl2tgba.cc: Calling tgbatest/ltl2tgba -M -O (which
makes no sense, but that is no reason) used the "minimized" variable
for two automata, overwriting one.
* wrap/python/spot.i: The python bindings did not know about
sba_explicit automata, causing memory leaks, and complaints from the
bdd_dict.
2013-03-05 21:09:01 +01:00
Alexandre Duret-Lutz
b6b6582b05 bin: Fix handling of LTL simplification options.
Enable LTL simplifications by default for ltl2tgba & ltl2tgta, and make
sure the ltl_simplifier_options are all false initially.  Before this
patch --low/-r1 had the same effect as --medium/-r2 with respect to LTL
simplification.

* src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc (simplification_level): Set
to 3 by default.
* src/bin/common_r.cc: Disable all ltl_simplifier options initially.
2013-03-02 15:36:26 +01:00
Alexandre Duret-Lutz
543de07737 Improve some Doxygen comments.
This follows up on a mail from Sonali Dutta.

* src/tgba/bdddict.hh (assert_emptiness, ~bdd_dict): Better
documentation.
* src/tgba/formula2bdd.hh (formula_to_bdd): Mention
unregister_all_my_variables().
(bdd_to_formula): Complete the documentation.
* THANKS: Add Sonali Dutta.
2013-02-20 12:04:35 +01:00
Alexandre Duret-Lutz
b31ddb787d * src/bin/man/Makefile.am (common_dep): Fix dependency. 2013-01-23 14:59:20 +01:00
Alexandre Duret-Lutz
3f61a34bd1 * src/tgbatest/ltlcross2.test: Fix list of tested configurations. 2013-01-22 11:55:03 +01:00
Alexandre Duret-Lutz
362c396356 * src/tgbaalgos/postproc.cc (count_states): Speed up explicit case. 2013-01-21 19:34:41 +01:00
Alexandre Duret-Lutz
76988369dc * src/tgbaalgos/minimize.hh: Fix documentation. 2013-01-21 16:04:20 +01:00
Alexandre Duret-Lutz
5e10057cfc cycles: fix documentation.
* src/tgbaalgos/cycles.hh: Fix comments.
2013-01-21 10:58:01 +01:00
Alexandre Duret-Lutz
6a547371d7 ltlcross: diagnose missing i/o specifications earlier.
* src/misc/formater.cc, src/misc/formater.hh (scan): New method.
(prime): Use it.
* src/bin/ltlcross.cc (translator_runner::translator_runner): Scan each
specification string, and report those missing an input or output
%-sequence.
* NEWS: Mention it.
2013-01-21 10:20:25 +01:00
Alexandre Duret-Lutz
edd687a301 ltlparse: Add compatibility with ltl2dsar's input.
* src/ltlparse/ltlscan.ll: Accept as a proposition any
alphanumeric string that is not an operator.
* NEWS: Mention it.
* src/ltltest/lbt.test: New file.  Also tests previous patch.
* src/ltltest/Makefile.am: Add it.
2013-01-20 03:01:44 +01:00
Alexandre Duret-Lutz
3a5eec42de lbt: Do not write a trailing space.
* NEWS: Mention it.
* src/ltlvisit/lbt.cc: Instead of outputting a space after each
node, output one before each node but the first one.
2013-01-20 03:01:44 +01:00
Alexandre Duret-Lutz
bf3c3aecde tostring: quote U, W, M, R when used as atomic propositions
* src/ltltest/tostring.test, src/ltltest/parse.test: More tests.
* src/ltlvisit/tostring.cc (is_bare_word): Quote U, W, M, R.
* NEWS: Mention it.
2013-01-20 03:01:44 +01:00
Alexandre Duret-Lutz
5086e24165 ltlcross: Display the number of timeouts.
* NEWS: Mention it.
* src/bin/ltlcross.cc: Always display the number of timeout
on normal termination.
2013-01-20 03:01:44 +01:00
Alexandre Duret-Lutz
b99cfa88bb Fix two dead assignments detected by clang's static analyzer.
* src/tgbaalgos/scc.cc, src/tgbatest/ltl2tgba.cc: Remove assignments to
unread variables.
2013-01-17 14:06:31 +01:00
Alexandre Duret-Lutz
dcd4644d42 eltl2tgba: slight cleanup of the tests.
* src/eltltest/acc.test, src/tgbatest/eltl2tgba.test: Simplify use of
here documents, and also test for ltl2tgba's -lo option with valgrind.
2013-01-17 14:06:31 +01:00
Alexandre Duret-Lutz
d580cce685 Fix documentation errors reported by clang++ 3.2.
* m4/gccwarn.m4: Use -Wdocumentation if supported.
* src/ltlast/binop.hh, src/ltlparse/public.hh, src/ta/taproduct.hh,
src/taalgos/emptinessta.hh, src/taalgos/reachiter.hh,
src/tgba/state.hh, src/tgba/tgbasafracomplement.cc,
src/tgbaalgos/ltl2tgba_fm.hh: Fix Doxygen documentations errors signaled
by clang++ 3.2.
2013-01-17 09:07:13 +01:00
Alexandre Duret-Lutz
aa7b43eadf Fix several warnings reported by clang++ 3.2.
* src/tgba/tgbakvcomplement.cc
(tgba_kv_complement_succ_iterator::current_state_),
src/ta/taexplicit.hh (state_ta_explicit::source_):
Remove useless private member.
* src/ta/taexplicit.cc: Adjust constructors.
* src/ta/tgta.cc, src/ta/taexplicit.hh: Also fix
copyright banner.
* src/bin/ltlcross.cc (exec_with_timeout): Work
around warning about status not being set in the
error path.
2013-01-16 08:52:27 +01:00
Pierre PARUTTO
67b7b86d52 tgbaproduct: fix segfault
* src/tgba/tgbaproduct.cc (transition_annotation): Adapt down cast to
new hierarchy.
2013-01-14 18:24:24 +01:00
Alexandre Duret-Lutz
e4ecc2d465 simplify: add four simplification rules for GF and FG
GF(a|Xb) = GF(a|b)      GF(a|Fb) = GF(a|b)
FG(a&Xb) = FG(a&b)      FG(a&Gb) = FG(a&b)

* src/ltlvisit/simplify.cc: Implement them.
* NEWS, doc/tl/tl.tex: Document them.
* src/ltltest/reduccmp.test: Test then.
2013-01-11 17:16:17 +01:00