1. 05 Dec, 2014 1 commit
  2. 14 Nov, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      d92ca23d
    • Alexandre Duret-Lutz's avatar
      stutter check: cleanup and add test cases · f412fee6
      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.
      f412fee6
  3. 06 Oct, 2014 3 commits
    • Alexandre Duret-Lutz's avatar
      Some cleanup of Thibaud's patches. · 645ecce1
      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.
      645ecce1
    • Thibaud Michaud's avatar
      ltlcross: adding option --grind=FILENAME · 4e1586dc
      Thibaud Michaud authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      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.
      4e1586dc
    • Thibaud Michaud's avatar
      Adding ltlgrind as a command-line tool · e327f6ea
      Thibaud Michaud authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * 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.
      e327f6ea
  4. 21 Aug, 2014 1 commit
  5. 17 Aug, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      ltltest: speedup more tests · 6a741189
      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.
      6a741189
    • Alexandre Duret-Lutz's avatar
      Speedup reduccmp.test · 7b9f6952
      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.
      7b9f6952
  6. 04 Jul, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      automatop: remove this type of formula operator. · 7602bd1a
      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.
      7602bd1a
  7. 17 May, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/equals.cc: Fix style. · 8315cad6
      Alexandre Duret-Lutz authored
      8315cad6
    • Alexandre Duret-Lutz's avatar
      snf: Fix the handling of bounded repetition. · 139f7b49
      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.
      139f7b49
  8. 16 May, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/equals.cc: Fix style. · 7bcf6553
      Alexandre Duret-Lutz authored
      7bcf6553
    • Alexandre Duret-Lutz's avatar
      snf: Fix the handling of bounded repetition. · 05ed3def
      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.
      05ed3def
  9. 13 May, 2014 3 commits
  10. 12 Feb, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      Replace << "c" by << 'c', and check for it in style.sh · ba5aff24
      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.
      ba5aff24
  11. 10 Feb, 2014 1 commit
  12. 06 Feb, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      randltl: gracefully handle the absence of unary or binary operators. · 50bdc245
      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.
      50bdc245
  13. 03 Feb, 2014 1 commit
  14. 06 Dec, 2013 1 commit
  15. 22 Nov, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      tests: add some missing "set -e" · cf91a237
      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.
      cf91a237
  16. 30 Sep, 2013 1 commit
  17. 29 Sep, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Generalize implication-based simplifications for multops. · df109869
      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.
      df109869
  18. 28 Sep, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      relabel: implement relabeling of Boolean subexpressions. · 87b65b9b
      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.
      87b65b9b
  19. 26 Sep, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Arrange multops so that Boolean arguments come first. · 536e45b3
      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.
      536e45b3
  20. 22 Sep, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      tools: Add a --format option · ce5ea829
      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.
      ce5ea829
  21. 08 Sep, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      tostring: add LaTeX output · 9cfe1a34
      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.
      9cfe1a34
  22. 12 May, 2013 1 commit
  23. 11 May, 2013 1 commit
  24. 27 Apr, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Implement a favor_even_univ option in the rewriting rules. · 9caa9ad1
      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.
      9caa9ad1
  25. 09 Apr, 2013 2 commits
  26. 04 Apr, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      fix a memory leak in basic LTL simplifications · a9fc213a
      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).
      a9fc213a
  27. 05 Mar, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      ltl_simplifier: add a boolean_to_isop option and method · c6406995
      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.
      c6406995
  28. 20 Jan, 2013 2 commits
  29. 11 Jan, 2013 1 commit
  30. 28 Nov, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Print F"proc.st" as Fproc.st. · 64484e78
      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.
      64484e78