- 05 Dec, 2014 1 commit
-
-
Alexandre Duret-Lutz authored
* src/ltlvisit/simplify.cc, doc/tl/tl.tex: Remove the rule. * src/ltltest/reduc0.test: Add a regression test. * src/ltltest/reduccmp.test: Adjust test cases for its removal. * NEWS: Mention it.
-
- 14 Nov, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
* src/ltltest/ltlfilt.test: Add more tests. * src/ltltest/stutter.test: New test. * src/ltltest/Makefile.am: Adjust. * src/bin/ltlfilt.cc: Catch std::runtime_error. * src/tgba/tgbasl.hh (make_tgbasl): New function. * src/tgba/tgbagraph.hh (make_tgba_graph): Add another overload. * src/tgbaalgos/stutter_invariance.cc, src/tgbaalgos/stutter_invariance.hh: Take the algorithm version as an optional integer, and call getenv() only once. * bench/stutter/stutter_invariance_randomgraph.cc, bench/stutter/stutter_invariance_formulas.cc: Simplify using the above functions.
-
- 06 Oct, 2014 3 commits
-
-
Alexandre Duret-Lutz authored
* AUTHORS: Add Thibaud. * NEWS: Mention ltlgrind and ltlcross --grind. * src/ltlvisit/mutation.hh, src/ltlvisit/mutation.cc: Use an enum instead of #define. Rename get_mutations() into mutate(). Other minor cosmetic changes. * src/bin/ltlgrind.cc: Adjust. * src/bin/ltlcross.cc: Slight changes the the output * doc/org/ltlcross.org, doc/org/ltlgrind.org: Minor rewordings and fix for org-mode syntax. * src/ltltest/ltlcrossgrind.test, src/ltltest/ltlgrind.test: Fix copyright year.
-
Suggested by Joachim Klein. When a bogus formula is found by ltlcross, the --grind=FILENAME option tries to find a smaller formula for which the bug is still present, and outputs it in FILENAME. * src/bin/ltlcross.cc: Add the --grind option. * doc/org/ltlcross.org: Document the --grind option. * src/ltltest/ltlcrossgrind.test: Test it. * src/ltltest/Makefile.am: Add test.
-
* src/bin/ltlgrind.cc: New file, command-line tool to get mutations of a formula. * src/bin/Makefile.am: Add it. * src/ltlvisit/mutation.hh, src/ltlvisit/mutation.cc: New files providing the get_mutations function. * src/ltlvisit/Makefile.am: Add it. * src/ltltest/ltlgrind.test: Test it. * src/ltltest/Makefile.am: Add it. * src/bin/man/ltlgrind.x: Document it. * src/bin/man/Makefile.am: Add it. * doc/org/ltlgrind.org: Document it. * doc/org/tools.org: Add link to ltlgrind documentation page.
-
- 21 Aug, 2014 1 commit
-
-
Alexandre Duret-Lutz authored
Suggested by Joachim Klein. * src/bin/randltl.cc: Implement it. * src/ltltest/rand.test: Test it. * doc/org/randltl.org, NEWS: Document it.
-
- 17 Aug, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
This generalizes the previous patch. * src/ltltest/equalsf.cc: Allow escaped '\,' and negated result. * src/ltltest/Makefile.am: Use equalsf.cc for almost all tests that used equals.cc. (nequals): New. * src/ltltest/equals.test, src/ltltest/eventuniv.test, src/ltltest/lunabbrev.test, src/ltltest/nenoform.test, src/ltltest/parseerr.test, src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test: Adjust.
-
Alexandre Duret-Lutz authored
This test used to take more than 10min because an instance of valgrind was launched for each separate equivalence check. The list of equivalences to checks are not given in a file, and only two valgrind instances are run. The test takes less than 15sec. * src/ltltest/equalsf.cc: New file. * src/ltltest/Makefile.am (reduccmp, reductaustr): Build using equalsf.cc. * src/ltltest/reduccmp.test: Rewrite. * src/ltltest/uwrm.test: Also rewrite, and use valgrind.
-
- 04 Jul, 2014 1 commit
-
-
Alexandre Duret-Lutz authored
This was only used in ELTL stuff, which I just removed because it was unused. * src/ltlast/automatop.cc, src/ltlast/automatop.hh, src/ltlast/formula_tree.cc, src/ltlast/formula_tree.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh: Delete. * src/ltlast/Makefile.am: Adjust. * src/ltlast/allnodes.hh, src/ltlast/formula.hh, src/ltlast/predecl.hh, src/ltlast/visitor.hh, src/ltltest/equals.cc, src/ltltest/ltlrel.cc, src/ltltest/reduc.cc, src/ltlvisit/clone.cc, src/ltlvisit/clone.hh, src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc, src/ltlvisit/mark.cc, src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh, src/ltlvisit/relabel.cc, src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc, src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbatest/ltl2tgba.cc, iface/dve2/dve2check.cc: Remove all references to automatop.
-
- 17 May, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
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.
-
- 16 May, 2014 2 commits
-
-
Alexandre Duret-Lutz authored
-
Alexandre Duret-Lutz authored
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.
-
- 13 May, 2014 3 commits
-
-
Alexandre Duret-Lutz authored
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.
-
Alexandre Duret-Lutz authored
* src/tgbaalgos/ltl2tgba_fm.cc: Here. * src/ltltest/reduccmp.test: Add a test case. * NEWS: Mention it.
-
Alexandre Duret-Lutz authored
* 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.
-
- 12 Feb, 2014 1 commit
-
-
Alexandre Duret-Lutz authored
* src/sanity/style.test: Add a test. * iface/dve2/dve2.cc, iface/dve2/dve2check.cc, src/bin/common_output.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc, src/bin/ltlcross.cc, src/dstarparse/dra2ba.cc, src/dstarparse/fmterror.cc, src/dstarparse/nsa2tgba.cc, src/kripke/kripkeprint.cc, src/kripkeparse/fmterror.cc, src/ltlast/atomic_prop.cc, src/ltlast/bunop.cc, src/ltltest/ltlrel.cc, src/ltltest/reduc.cc, src/ltltest/syntimpl.cc, src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc, src/ltlvisit/randomltl.cc, src/ltlvisit/relabel.cc, src/ltlvisit/simplify.cc, src/ltlvisit/tostring.cc, src/misc/bitvect.cc, src/misc/optionmap.cc, src/misc/timer.cc, src/neverparse/fmterror.cc, src/priv/freelist.cc, src/saba/sabacomplementtgba.cc, src/sabaalgos/sabadotty.cc, src/taalgos/dotty.cc, src/taalgos/minimize.cc, src/tgba/bdddict.cc, src/tgba/bddprint.cc, src/tgba/futurecondcol.cc, src/tgba/taatgba.hh, src/tgba/tgbakvcomplement.cc, src/tgba/tgbasafracomplement.cc, src/tgbaalgos/compsusp.cc, src/tgbaalgos/cycles.cc, src/tgbaalgos/dotty.cc, src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/emptiness.cc, src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gv04.cc, src/tgbaalgos/lbtt.cc, src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc, src/tgbaalgos/powerset.cc, src/tgbaalgos/replayrun.cc, src/tgbaalgos/save.cc, src/tgbaalgos/scc.cc, src/tgbaalgos/sccfilter.cc, src/tgbaalgos/weight.cc, src/tgbaalgos/word.cc, src/tgbaparse/fmterror.cc, src/tgbatest/bitvect.cc, src/tgbatest/complementation.cc, src/tgbatest/intvcmp2.cc, src/tgbatest/intvcomp.cc, src/tgbatest/ltl2tgba.cc, src/tgbatest/randtgba.cc: Replace << "c" by << 'c' when appropriate.
-
- 10 Feb, 2014 1 commit
-
-
Alexandre Lewkowicz authored
* doc/Makefile.am, src/ltltest/defs.in, src/ltltest/latex.test: Here.
-
- 06 Feb, 2014 1 commit
-
-
Alexandre Duret-Lutz authored
* 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.
-
- 03 Feb, 2014 1 commit
-
-
* src/ltlvisit/length.cc: Consider length of all Boolean expressions combined in a multop as one. * src/ltltest/length.test: Test it.
-
- 06 Dec, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/bin/common_finput.cc (job_processor::process_stream): Read multi-line CSV fields. * src/ltltest/lbt.test, src/tgbatest/nondet.test: Add tests.
-
- 22 Nov, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/ltltest/lbt.test, src/ltltest/utf8.test, src/tgbatest/dbacomp.test, src/tgbatest/ltlcross.test, src/tgbatest/ltlcross2.test, src/tgbatest/ltlcrossce.test: Add set -e.
-
- 30 Sep, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/ltltest/latex.test: Use latexmk -pvc- like in doc/tl/Makefile.am. Reported by Étienne Renault.
-
- 29 Sep, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
And also speedup implication checks for Boolean expressions. * src/ltlvisit/simplify.cc: Improve implication-based rules rules for multops by checking one operand against all the other at once (instead of one by one). Do not break Boolean expressions while performing implication checks. * src/ltlvisit/simplify.hh: Typo. * src/ltltest/reduccmp.test: More tests.
-
- 28 Sep, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/ltlast/multop.cc, src/ltlast/multop.hh (multop::boolean_operands, multop::boolean_count): New methods. * src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh (relabel): Take an optional relabeling_map as parameter. (relabel_bse): New. * src/ltltest/ltlrel.test, src/ltltest/ltlrel.cc: New files. * src/ltltest/Makefile.am: Add them. * src/bin/ltlfilt.cc: Add option --relabel-bool. * src/ltltest/ltlfilt.test: Test it. * NEWS: Mention it. * doc/org/ltlfilt.org: Illustrate it.
-
- 26 Sep, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
This helps recursive implication checks. Also order atomic propositions with strverscmp(). * src/ltlast/formula.hh (formula_ptr_less_than_multop, is_literal, atomic_prop_cmp): New. * src/ltlast/formula.cc (is_literal, atomic_prop_cmp): Implement them. * src/ltlast/multop.cc: Use formula_ptr_less_than_multop. * src/ltltest/isop.test, src/ltltest/ltlfilt.test, src/tgbatest/det.test, src/tgbatest/dstar.test, src/tgbatest/explicit.test, src/tgbatest/explpro2.test, src/tgbatest/explpro3.test, src/tgbatest/explprod.test, src/tgbatest/nondet.test, src/tgbatest/tripprod.test: Adjust tests. * NEWS: Mention the new order.
-
- 22 Sep, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/bin/common_output.cc: Add option --format and implement it. * src/bin/ltlfilt.cc, src/bin/randltl.cc: Document the supported %-sequences. * src/bin/genltl.cc: Document the %-sequences, and supply the name of the pattern to output_formula(). * doc/org/genltl.org, doc/org/ioltl.org, doc/org/ltlfilt.org, NEWS: Document it. * src/ltltest/latex.test: Use it.
-
- 08 Sep, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh (to_latex_string): New function. * src/bin/common_output.cc, src/bin/common_output.hh: Add a --latex option. * doc/tl/spotltl.sty: New file. * doc/tl/Makefile.am: Distribute it. * src/ltltest/latex.test: New test. * src/ltltest/Makefile.am: Add it. * NEWS: Mention it.
-
- 12 May, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/bin/common_finput.cc: Here. * src/ltltest/ltlfilt.test: Test it. * NEWS: Mention it.
-
- 11 May, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* src/bin/ltlfilt.cc: Handle --universal and --eventual. Match only LTL formulas with --stutter-invariant. * src/ltltest/ltlfilt.test: New file. * src/ltltest/Makefile.am (TESTS): Add it. * NEWS: Mention these bug fixes.
-
- 27 Apr, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
The set of rules enabled by favor_even_univ try to "lift" the subformulae that are both eventual and universal, so they appear higher in the AST. This is contrary to what we used to do (and still do when the option is unset), were we try to postpone such subformulae (by moving them down the AST). It is still a bit experimental. * src/ltlvisit/simplify.hh: Add option favor_event_univ. * src/ltlvisit/simplify.cc: Implement new rewriting rules. * doc/tl/tl.tex: Document them. * src/tgbatest/ltl2tgba.cc: Add option -ra to enable them. * src/tgbatest/spotlbtt.test: Test the translation with this option. * src/ltltest/reduc.cc, src/ltltest/equals.cc: Add option to enable the new rules. * src/ltltest/eventuniv.test: New file to test them. * src/ltltest/Makefile.am: Add it.
-
- 09 Apr, 2013 2 commits
-
-
Alexandre Duret-Lutz authored
* 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.
-
Alexandre Duret-Lutz authored
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.
-
- 04 Apr, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
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).
-
- 05 Mar, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
* 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.
-
- 20 Jan, 2013 2 commits
-
-
Alexandre Duret-Lutz authored
* 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.
-
Alexandre Duret-Lutz authored
* 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.
-
- 11 Jan, 2013 1 commit
-
-
Alexandre Duret-Lutz authored
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.
-
- 28 Nov, 2012 1 commit
-
-
Alexandre Duret-Lutz authored
* src/ltlvisit/tostring.cc: Allow '.' in bare words while printing atomic propositions. * src/ltltest/bare.test: New file. * src/ltltest/Makefile.am: Add it.
-