1. 28 Apr, 2012 14 commits
    • Alexandre Duret-Lutz's avatar
      Remove the negative_normal_form call from reduce(). · c2335edb
      Alexandre Duret-Lutz authored
      * src/ltlvisit/simplify.cc (ltl_simplifier::simplify):
      Convert in negative normal form if needed.
      * src/ltlvisit/reduce.cc (reduce): Do not call
      negative_normal_form().
      c2335edb
    • Alexandre Duret-Lutz's avatar
      Move language containment into ltl_simplifier. · 1087c623
      Alexandre Duret-Lutz authored
      * src/ltlvisit/simplify.cc: Integrate the tau03
      containment rules.
      * src/ltlvisit/simplify.hh: Add options to select simplifications.
      * src/ltlvisit/reduce.cc (reduce): Do not call reduce_tau03().
      * src/ltlvisit/contain.cc (reduce_tau03_visitor): Remove.
      (reduce_tau03): Implement it using ltl_simplifier.
      1087c623
    • Alexandre Duret-Lutz's avatar
      Reimplement basic_reduce()'s rules in ltl_simplifier. · ca2fe4f3
      Alexandre Duret-Lutz authored
      So far I have only checked these rewritings with reduccmp.test.
      There are probably a few kinks to iron out.
      
      * src/ltlvisit/simplify.cc: Reimplement most of the basic
      rewriting rules, leaving some FIXME comments for dubious ones.
      * src/ltlast/multop.cc, src/ltlast/multop.hh: Ignore NULL
      pointers in the vector.
      * src/ltlvisit/reduce.cc (reduce): Do not call basic_reduce().
      * src/ltltest/reduccmp.test: Adjust tests.
      ca2fe4f3
    • Alexandre Duret-Lutz's avatar
      event./univ. and syntactic implications rewriting in ltl_simplifier. · dd1cd89a
      Alexandre Duret-Lutz authored
      * src/ltlvisit/reduce.cc (reduce_visitor): Move ...
      * src/ltlvisit/simplify.cc (simplify_visitor): ... here, and
      adjust to use the new ltl_simplifier_options.
      * src/ltlvisit/reduce.cc (reduce): Use ltl_simplifier
      to perform the work of reduce_visitor.  Eventually we want to
      get rid of reduce.cc.
      * src/ltlvisit/reduce.hh (reduce): Remove the
      syntactic_implication_cache used as third argument.
      dd1cd89a
    • Alexandre Duret-Lutz's avatar
      Disable LTL reductions on SERE formulae. · 6e6b6b1e
      Alexandre Duret-Lutz authored
      * src/ltlvisit/contain.cc (recurse, reduce_tau03): Do not
      run on non-PSL formulae.
      * src/ltlvisit/reduce.cc (reduce_visitor::visit): Skip
      multop::Fusion operators, and do not run syntactic_implication_neg
      on SERE formulae.
      * src/ltlvisit/syntimpl.cc (inf_right_recurse_visitor::visit):
      Skip [*0].
      6e6b6b1e
    • Alexandre Duret-Lutz's avatar
      Fix handling of PSL operators in reductions rules. · c8801935
      Alexandre Duret-Lutz authored
      We still don't have any PSL-specific reductions, but at least
      the LTL reduction now appear to work on PSL formulas.
      
      * src/ltlvisit/basicreduce.cc (basic_reduce_visitor): Fix the
      call to std::copy to handle Concat, Fusion, and AndNLM.
      * src/ltlvisit/reduce.cc (reduce_visitor): Fix handling
      of UConcat, EConcat, and EConcatMarked.
      * src/tgbatest/randpsl.test: Activate reductions.
      * src/ltltest/reducpsl.test: New file.
      * src/ltltest/Makefile.am (TESTS): Add it.
      c8801935
    • Alexandre Duret-Lutz's avatar
      Speedup syntactic_implication() by using a cache. · 4ef7805e
      Alexandre Duret-Lutz authored
      * src/ltlvisit/syntimpl.hh (syntactic_implication,
      syntactic_implication_neg): Move as member of ...
      (syntactic_implication_cache): ... this new class, that holds
      a cache of results to speedup these functions.
      * src/ltlvisit/syntimpl.cc: Adjust to use (lookup, populate,
      and cleanup) the cache.
      * src/ltltest/syntimpl.cc: Likewise.
      * src/ltlvisit/reduce.hh (reduce): Take an optional
      syntactic_implication_cache parameter.
      * src/ltlvisit/reduce.cc: Adjust to use a
      syntactic_implication_cache.
      * src/ltltest/equals.cc: Call dump_instances() to help debugging.
      4ef7805e
    • Alexandre Duret-Lutz's avatar
      Get rid of all dynamic_cast<>s while working on LTL formulae. · 957ba664
      Alexandre Duret-Lutz authored
      They are too slow.
      
      * src/ltlast/formula.hh (opkind, kind, kind_): Use an enum
      to indicate the actual kind of the formula.  This way we can
      check the kind of a formula without relying on dynamic_cast.
      * src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
      src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc,
      src/ltlast/multop.cc, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh, src/ltlast/unop.cc: Adjust constructors.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc: Replace all dynamic_cast by a
      call to kind() followed by a static_cast.
      957ba664
    • Alexandre Duret-Lutz's avatar
      Maintain basic LTL properties using a bitfield inside formula objects. · 546260e7
      Alexandre Duret-Lutz authored
      This bitfield is easily updated as the formulae are constructed.
      Doing so avoids many AST recursions to compute these properties
      individually.  This patch removes the eventual_universal_visitor,
      as well as the kind_of() function.
      
      * src/ltlast/formula.hh (is_boolean, is_sugar_free_boolean,
      is_in_nenoform, is_X_free, is_sugar_free_ltl,
      is_ltl_formula, is_eltl_formula, is_psl_formula, is_eventual,
      is_universal, is_marked): New methods to query formula
      properties in constant time.
      (get_props, ltl_prop): A method and structure for
      implementation as a field bit in an unsigned, for fast
      computation.
      (print_formula_props): New function.
      * src/ltlast/formula.cc (print_formula_props): Implement it.
      * src/ltlast/atomic_prop.cc, src/ltlast/binop.cc,
      src/ltlast/bunop.cc, src/ltlast/constant.cc, src/ltlast/multop.cc,
      src/ltlast/unop.cc, src/ltlast/automatop.cc: Compute the
      properties as instances are constructed.
      * src/ltlparse/ltlparse.yy: Update to use is_boolean() instead
      of kind_of().
      * src/ltltest/kind.cc: Update to use print_formula_props().
      * src/ltltest/kind.test: Adjust to test eventual and universal
      properties.
      * src/ltlvisit/kind.cc, src/ltlvisit/kind.hh: Delete these files.
      * src/ltlvisit/Makefile.am: Remove kind.hh and kind.cc.
      * src/ltlvisit/reduce.cc (recurse_eu, eventual_universal_visitor):
      Remove, no longer needed.
      (reduce_visitor, is_eventual, is_universal): Adjust to
      use formula::is_eventual(), and formula::is_universal().
      * src/ltlvisit/reduce.hh (is_eventual, is_universal): Declare as
      deprecated.
      546260e7
    • Alexandre Duret-Lutz's avatar
      Add support the bounded star operator [*i..j]. · 126b724a
      Alexandre Duret-Lutz authored
      * src/ltlast/bunop.hh, src/ltlast/bunop.cc: New files for
      bounded unary operators.
      * src/ltlast/Makefile.am, src/ltlast/allnodes.hh: Add them.
      * src/ltlast/predecl.hh (bunop): Declare.
      * src/ltlast/unop.hh, src/ltlast/unop.cc (Star): Remove
      declaration of Star and associated code.
      * src/ltlast/visitor.hh: Add visit(bunop* node) methods.
      * src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Add parse
      rules for LTL.  This required passing the parse_error list
      to the lexer, so it can report scanning errors when it reads
      a number that does not fit in an unsigned int.
      * src/ltlparse/parsedecl.hh (YY_DECL): Take error_list
      as third argument.
      * src/ltltest/consterm.test, src/ltltest/tostring.test,
      src/ltltest/equals.test, src/tgbatest/ltl2tgba.test: More tests.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/consterm.cc,
      src/ltlvisit/dotty.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/postfix.cc,
      src/ltlvisit/postfix.hh, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
      src/ltlvisit/tunabbrev.cc, src/tgba/formula2bdd.cc,
      src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc: Adjust syntax to use
      "bunop::Star" instead of "unop::Star".
      * src/tgbaalgos/ltl2tgba_fm.cc: Likewise, but also adjust
      the code to handle the bounds of the operator.
      126b724a
    • Alexandre Duret-Lutz's avatar
      Add support for {SERE} and !{SERE} closure operators. · 2f8c4ac8
      Alexandre Duret-Lutz authored
      * src/ltlast/unop.hh, src/ltlast/unop.cc: Introduce Closure and
      NegClosure operators.
      * src/ltlparse/ltlparse.yy: Recognize {foo} as a Closure.
      * src/ltlvisit/mark.cc: Consider NegClosure as a marked operator.
      * src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor): Add option to
      select whether the empty_word should act like true (for {SERE}
      and {!SERE}) or false (for {SERE}<>->Exp or {SERE}[]->Exp).
      (ltl_trad_visitor): Translate Closure and NegClosure.
      * src/tgbatest/ltl2tgba.test: Add more tests.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
      src/ltlvisit/tunabbrev.cc, src/tgba/formula2bdd.cc,
      src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc: Straightforward update to support or
      assert on these new operators.
      2f8c4ac8
    • Alexandre Duret-Lutz's avatar
      Introduce EConcatMarked "<>+>" as operator. · 171ca678
      Alexandre Duret-Lutz authored
      * src/ltlast/binop.cc, src/ltlast/binop.hh: Introduce
      EConcatMarked ("<>+>").
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/reduce.cc, src/ltlvisit/simpfg.cc,
      src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc, src/tgba/formula2bdd.cc,
      src/tgba/formula2bdd.cc: Deal with it if possible or ignore
      it.
      171ca678
    • Alexandre Duret-Lutz's avatar
      Add []-> and <>->. · c6dd811b
      Alexandre Duret-Lutz authored
      * src/ltlast/binop.hh, src/ltlast/binop.cc (EConcat, UConcat):
      Add these new operators.
      * src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse
      these new operators.
      * src/ltlvisit/simpfg.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc, src/ltlvisit/basicreduce.cc,
      src/ltlvisit/consterm.cc, src/ltlvisit/lunabbrev.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc
      src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc: Add these new operators into the
      switches.
      c6dd811b
    • Alexandre Duret-Lutz's avatar
      Introduce rational operators and trivial simplification rules. · 546559b8
      Alexandre Duret-Lutz authored
      Trivial simplifications rules (such as "FFa=Fa" or "x&1=x")
      are performed any time a formule is instanciated.
      
      * src/ltlast/constant.hh, src/ltlast/constant.cc
      (true_instance, true_instance_): Declare the true_instance_ as a
      static member, and move true_instance() into the .hh so it gets
      inlined.  Have true_instance_ as a class variable will ensure that
      it is the first formula instantiated.  Binop simplifications rely
      on this to order arguments.
      (false_instance, false_instance_): Likewise.
      (empty_word_instance, empty_word_instance_): New method and static
      member.
      * src/ltlast/formula.hh (formula::formula): If max_count_ ever
      loops, skip the first three values so that constants always have
      smaller hash codes.
      * src/ltlast/binop.hh, src/ltlast/binop.cc (instance): Add
      simplifications and document them.
      * src/ltlast/multop.hh (multop::Concat): New operator.
      * src/ltlast/multop.cc (op_name): Handle Concat.
      (instance): Inline Concat arguments without reordering.  Handle
      absorbent and neutral elements for all operators.
      * src/ltlast/unop.hh (unop::Star): New operator.
      * src/ltlast/unop.cc (op_name): Handle Star.
      (instance): Handle Star, and add trivial simplifications for
      other unary operators.
      * src/ltlparse/ltlparse.yy (OP_CONCAT, OP_STAR, CONST_EMPTYWORD):
      Declare these new operators and add rules for them.
      * src/ltlparse/ltlscan.ll (OP_CONCAT, OP_STAR, CONST_EMPTYWORD):
      Output these new operators.
      * src/ltltest/equals.test: New tests.
      * src/ltltest/parse.test: Remove redundant test.
      * src/ltltest/tunabbrev.test, src/tgbatest/emptchk.test: Adjust tests.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
      src/ltlvisit/tunabbrev.cc: Complete visitors to handle new
      operators.
      * src/ltltest/nenoform.test: More tests.
      * src/ltlvisit/lunabbrev.cc (unabbreviate_logic_visitor::visit):
      Clone formulae before instance() function actually have a chance
      to destroy them.
      * src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc: Adjust switches to assert on new
      operators.
      546559b8
  2. 17 Mar, 2011 1 commit
    • Alexandre Duret-Lutz's avatar
      Improve a reduction rule for "a M b". · 1878bfd0
      Alexandre Duret-Lutz authored
      * src/ltlvisit/reduce.cc (reduce_visitor): Always reduce "a M b"
      to "a & b" if "a" is a pure eventual formula, remove the
      constraint on "b".
      * src/ltltest/reduccmp.test: Add two tests.
      1878bfd0
  3. 01 Dec, 2010 2 commits
    • Alexandre Duret-Lutz's avatar
      Halve the number of application of eventual_universal_visitor in · c7352498
      Alexandre Duret-Lutz authored
      reduce_visitor::visit(binop).
      
      * src/ltlvisit/reduce.cc (eventual_universal_visitor::recurse_):
      Move this method...
      (recurse_eu): ... outside as a separate function.  Likewise for
      the universal/eventual result struct.
      (reduce_visitor::visit(binop)): Call recurse_eu() once to replace
      two calls to is_eventual and is_universal, thus replacing two
      recursions by one.
      c7352498
    • Alexandre Duret-Lutz's avatar
      Move the eventual-universal functions where the belong. · dabb7ecc
      Alexandre Duret-Lutz authored
      * src/ltlvisit/syntimpl.cc (eventual_universal_visitor,
      is_eventual, is_universal): Move ...
      * src/ltlvisit/reduce.cc (eventual_universal_visitor,
      is_eventual, is_universal): ... here.
      dabb7ecc
  4. 15 Apr, 2010 1 commit
    • Alexandre Duret-Lutz's avatar
      More simplifications rules for M. · 1a912089
      Alexandre Duret-Lutz authored
      * src/ltlvisit/reduce.cc (reduce_visitor): Add the following
      implication rewriting rules:
      a M (b M c) = a M c if a implies b.
      a M (b R c) = a M c if a implies b.
      a R (b R c) = a R c if a implies b.
      a R (b M c) = b M c if b implies a.
      a M (b M c) = b M c if b implies a.
      The latter rule was fixed from an incorrectly copied&pasted
      rule for a M (b R c) = b R c if b implies a (this is wrong).
      * src/ltltest/reduccmp.test: Add more tests.
      1a912089
  5. 12 Apr, 2010 1 commit
    • Alexandre Duret-Lutz's avatar
      Add support for W (weak until) and M (strong release) operators. · 0fc0ea31
      Alexandre Duret-Lutz authored
      * src/ltlast/binop.cc, src/ltlast/binop.cc: Add support for
      these new operators.
      * src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll: Parse them.
      * src/ltltest/reduccmp.test: Add new tests for W and M.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/contain.cc,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
      src/ltlvisit/reduce.cc, src/ltlvisite/simpfg.cc,
      src/ltlvisit/simpfg.hh, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
      src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
      Add support for W and M.
      * src/tgbatest/ltl2neverclaim.test: Test never claim output
      using LBTT, this is more thorough.  Also we cannot use -N
      any more in the spotlbtt.test.
      * src/tgbatests/ltl2tgba.cc: Define M and W for ELTL.
      * src/tgbatest/ltl2neverclaim.test: Test W and M, and use
      -DS instead of -N, because lbtt-translate does not want
      to translate these operators for tools that masquerade as Spin.
      0fc0ea31
  6. 24 Jan, 2010 1 commit
    • Guillaume Sadegh's avatar
      Fix copyrights. · 3a974d61
      Guillaume Sadegh authored
      * bench/Makefile.am, bench/gspn-ssp/Makefile.am,
      bench/gspn-ssp/defs.in, bench/scc-stats/Makefile.am,
      bench/split-product/Makefile.am, configure.ac,
      iface/Makefile.am, iface/gspn/Makefile.am, iface/gspn/ssp.hh,
      iface/nips/Makefile.am, iface/nips/common.cc,
      iface/nips/common.hh, iface/nips/dottynips.cc,
      iface/nips/nips.cc, iface/nips/nips.hh, src/Makefile.am,
      src/eltlparse/Makefile.am, src/eltlparse/eltlparse.yy,
      src/eltlparse/eltlscan.ll, src/eltlparse/fmterror.cc,
      src/eltlparse/parsedecl.hh, src/eltltest/Makefile.am,
      src/eltltest/defs.in, src/eltltest/nfa.cc, src/evtgba/evtgba.hh,
      src/evtgba/product.cc, src/evtgba/product.hh,
      src/evtgbaalgos/tgba2evtgba.cc, src/evtgbaparse/Makefile.am,
      src/evtgbaparse/evtgbaparse.yy, src/evtgbatest/defs.in,
      src/evtgbatest/explicit.test, src/evtgbatest/ltl2evtgba.cc,
      src/evtgbatest/ltl2evtgba.test, src/evtgbatest/product.cc,
      src/evtgbatest/product.test, src/evtgbatest/readsave.cc,
      src/evtgbatest/readsave.test, src/ltlast/atomic_prop.cc,
      src/ltlast/atomic_prop.hh, src/ltlast/binop.cc,
      src/ltlast/binop.hh, src/ltlast/constant.cc,
      src/ltlast/constant.hh, src/ltlast/formula.cc,
      src/ltlast/formula.hh, src/ltlast/formula_tree.cc,
      src/ltlast/formula_tree.hh, src/ltlast/multop.cc,
      src/ltlast/multop.hh, src/ltlast/nfa.cc, src/ltlast/nfa.hh,
      src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlenv/declenv.cc,
      src/ltlenv/declenv.hh, src/ltlenv/environment.hh,
      src/ltlparse/Makefile.am, src/ltlparse/ltlparse.yy,
      src/ltltest/Makefile.am, src/ltltest/defs.in,
      src/ltltest/equals.cc, src/ltltest/equals.test,
      src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
      src/ltltest/parse.test, src/ltltest/parseerr.test,
      src/ltltest/randltl.cc, src/ltltest/readltl.cc,
      src/ltltest/reduccmp.test, src/ltltest/syntimpl.cc,
      src/ltltest/syntimpl.test, src/ltltest/tostring.cc,
      src/ltltest/tostring.test, src/ltltest/tunabbrev.test,
      src/ltltest/tunenoform.test, src/ltlvisit/basicreduce.cc,
      src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
      src/ltlvisit/contain.cc, src/ltlvisit/destroy.cc,
      src/ltlvisit/destroy.hh, src/ltlvisit/lunabbrev.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/randomltl.cc,
      src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc, src/misc/bddalloc.cc,
      src/misc/bddop.cc, src/misc/bddop.hh, src/misc/freelist.hh,
      src/misc/hash.hh, src/misc/minato.cc, src/misc/minato.hh,
      src/misc/optionmap.cc, src/misc/timer.cc, src/misc/timer.hh,
      src/saba/Makefile.am, src/saba/explicitstateconjunction.cc,
      src/saba/explicitstateconjunction.hh, src/saba/saba.cc,
      src/saba/saba.hh, src/saba/sabacomplementtgba.cc,
      src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
      src/saba/sabasucciter.hh, src/sabaalgos/Makefile.am,
      src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
      src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
      src/sabatest/Makefile.am, src/sabatest/defs.in,
      src/sanity/Makefile.am, src/tgba/Makefile.am,
      src/tgba/bdddict.cc, src/tgba/bddprint.cc,
      src/tgba/formula2bdd.cc, src/tgba/state.hh,
      src/tgba/succiterconcrete.cc, src/tgba/taatgba.hh,
      src/tgba/tgba.hh, src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbacomplement.cc,
      src/tgba/tgbacomplement.hh, src/tgba/tgbaexplicit.cc,
      src/tgba/tgbaexplicit.hh, src/tgba/tgbaproduct.cc,
      src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
      src/tgba/tgbasgba.hh, src/tgba/tgbaunion.cc,
      src/tgba/tgbaunion.hh, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/ltl2taa.cc,
      src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
      src/tgbaalgos/powerset.cc, src/tgbaalgos/reachiter.cc,
      src/tgbaalgos/reachiter.hh, src/tgbaalgos/reductgba_sim.cc,
      src/tgbaalgos/reductgba_sim.hh,
      src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/stats.cc,
      src/tgbaalgos/stats.hh, src/tgbaparse/Makefile.am,
      src/tgbaparse/tgbaparse.yy, src/tgbatest/Makefile.am,
      src/tgbatest/bddprod.test, src/tgbatest/complementation.cc,
      src/tgbatest/complementation.test, src/tgbatest/defs.in,
      src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
      src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
      src/tgbatest/explpro3.test, src/tgbatest/explpro4.test,
      src/tgbatest/explprod.cc, src/tgbatest/explprod.test,
      src/tgbatest/ltl2neverclaim.test, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/ltl2tgba.test, src/tgbatest/ltlprod.cc,
      src/tgbatest/ltlprod.test, src/tgbatest/mixprod.cc,
      src/tgbatest/mixprod.test, src/tgbatest/powerset.cc,
      src/tgbatest/readsave.cc, src/tgbatest/readsave.test,
      src/tgbatest/reduccmp.test, src/tgbatest/reductgba.cc,
      src/tgbatest/reductgba.test, src/tgbatest/taatgba.cc,
      src/tgbatest/tgbaread.cc, src/tgbatest/tgbaread.test,
      src/tgbatest/tripprod.cc, src/tgbatest/tripprod.test,
      wrap/python/cgi/ltl2tgba.in, wrap/python/tests/ltl2tgba.py,
      wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py:
      Fix copyrights.
      3a974d61
  7. 09 Nov, 2009 3 commits
    • Alexandre Duret-Lutz's avatar
      Deprecate ltl::destroy(f) in favor of f->destroy() · 77df39b4
      Alexandre Duret-Lutz authored
      * src/ltlast/formula.cc, src/ltlast/formula.hh (formula::clone):
      Transform this static function into a member function.
      * src/ltlvisit/destroy.hh (destroy): Document and declare as
      deprecated.
      * bench/split-product/cutscc.cc, iface/gspn/ltlgspn.cc,
      src/eltlparse/eltlparse.yy, src/eltltest/acc.cc,
      src/evtgbaalgos/tgba2evtgba.cc, src/evtgbatest/ltl2evtgba.cc,
      src/ltlast/automatop.cc, src/ltlast/binop.cc,
      src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
      src/ltlenv/declenv.hh, src/ltlparse/ltlparse.yy,
      src/ltltest/equals.cc, src/ltltest/randltl.cc,
      src/ltltest/readltl.cc, src/ltltest/reduc.cc,
      src/ltltest/syntimpl.cc, src/ltltest/tostring.cc,
      src/ltlvisit/destroy.cc src/ltlvisit/basicreduce.cc,
      src/ltlvisit/contain.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
      src/tgba/bddprint.cc, src/tgba/taa.cc,
      src/tgba/tgbabddconcretefactory.cc, src/tgba/tgbaexplicit.cc,
      src/tgba/tgbafromfile.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
      src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/complementation.cc, src/tgbatest/eltl2tgba.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/randtgba.cc,
      src/tgbatest/reductgba.cc, wrap/python/cgi/ltl2tgba.in,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
      wrap/python/tests/ltlsimple.py: Adjust destroy() usage, and remove
      the #include "destroy.hh" when appropriate.
      77df39b4
    • Alexandre Duret-Lutz's avatar
      Deprecate ltl::clone(f) in favor of f->clone(). · 48fb19ea
      Alexandre Duret-Lutz authored
      * src/ltlvisit/clone.hh (clone): Document and declare as deprecated.
      * src/ltlast/formula_tree.cc, src/ltlvisit/basicreduce.cc,
      src/ltlvisit/clone.cc, src/ltlvisit/contain.cc,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/tgba/bdddict.cc,
      src/tgba/formula2bdd.cc, src/tgba/tgbabddconcretefactory.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbatest/complementation.cc, wrap/python/tests/ltlsimple.py:
      Adjust clone() usage, and remove the #include "clone.hh" when
      appropriate.
      48fb19ea
    • Alexandre Duret-Lutz's avatar
      Rename formula::ref and formula::unref as formula::clone · b0888257
      Alexandre Duret-Lutz authored
      and formula::destroy.
      
      * src/ltlast/atomic_prop.cc, src/ltlast/automatop.cc,
      src/ltlast/binop.cc, src/ltlast/formula.hh, src/ltlast/formula.cc,
      src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlenv/declenv.cc,
      src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
      src/ltlvisit/destroy.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/randomltl.cc, src/ltlvisit/reduce.cc,
      src/tgbatest/randtgba.cc: Adjust.
      b0888257
  8. 05 Jun, 2009 1 commit
    • Damien Lefortier's avatar
      Modify the ELTL parser to be able to support PSL operators. Add a · e48338e8
      Damien Lefortier authored
      new keyword in the ELTL format: finish, which applies to an
      automaton operator and tells whether it just completed.
      
      * src/eltlparse/eltlparse.yy: Clean it. Add finish.
      * src/eltlparse/eltlscan.ll: Add finish.
      * src/formula_tree.cc, src/formula_tree.hh: New files. Define a
      small AST representing formulae where atomic props are unknown
      which is used in the ELTL parser.
      * src/ltlast/automatop.cc, ltlast/automatop.hh, ltlast/nfa.cc,
      ltlast/nfa.hh: Adjust.
      * src/ltlast/unop.cc, src/ltlast/unop.hh: Finish is an unop.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc, src/ltlvisit/tunabbrev.cc,
      src/tgba/formula2bdd.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc: Handle finish in switches.
      * src/tgbaalgos/eltl2tgba_lacim.cc: Translate finish.
      * src/tgbatest/eltl2tgba.test: More tests.
      e48338e8
  9. 26 Mar, 2009 1 commit
    • Damien Lefortier's avatar
      Add support for ELTL (AST & parser), and an adaptation of LaCIM · 2fbcd7e5
      Damien Lefortier authored
      for ELTL.  This is a new version of the work started in 2008 with
      LTL and ELTL formulae now sharing the same class hierarchy.
      
      * configure.ac: Adjust for src/eltlparse/ and src/eltltest/
      directories, and call AX_BOOST_BASE.
      * m4/boost.m4: New file defining AX_BOOST_BASE([MINIMUM-VERSION]).
      * src/Makefile.am: Add eltlparse and eltltest.
      * src/eltlparse/: New directory.  Contains the ELTL parser.
      * src/eltltest/: New directory.  Contains tests related to
      ELTL (parser and AST).
      * src/ltlast/Makefile.am: Adjust for ELTL AST files.
      * src/ltlast/automatop.cc, src/ltlast/automatop.hh: New files.
      Represent automaton operators nodes used in ELTL ASTs.
      * src/ltlast/nfa.cc, src/ltlast/nfa.hh: New files.  Represent
      simple NFAs used internally by automatop nodes.
      * src/ltlast/allnode.hh, src/ltlast/predecl.hh,
      src/ltlast/visitor.hh: Adjust for automatop.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
      src/ltlvisit/dotty.cc, src/ltlvisit/nenoform.cc,
      src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
      src/ltlvisit/reduce.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc: Because LTL and ELTL formulae share the
      same class hierarchy, LTL visitors need to handle automatop nodes
      to compile.  When it's meaningful the visitor applies on automatop
      nodes or simply assert(0) otherwise.
      * src/tgba/tgbabddconcretefactory.cc (create_anonymous_state),
      src/tgba/tgbabddconcretefactory.hh (create_anonymous_state): New
      function used by the LaCIM translation algorithm for ELTL.
      * src/tgbaalgos/Makefile.am: Adjust for eltl2tgba_lacim* files.
      * src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/eltl2tgba_lacim.hh: New files.  Implementation of
      the LaCIM translation algorithm for ELTL.
      * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc:
      Handle automatop nodes in the translation by an assert(0).
      * src/tgbatest/Makefile.am: Adjust for eltl2tgba.* files.
      * src/src/tgbatest/eltl2tgba.cc, src/tgbatest/eltl2tgba.test: New
      files
      2fbcd7e5
  10. 25 Mar, 2009 1 commit
  11. 12 Jun, 2008 1 commit
  12. 14 Apr, 2008 1 commit
    • Alexandre Duret-Lutz's avatar
      Kill some FIXMEs. · 21c98c0a
      Alexandre Duret-Lutz authored
      * src/ltlenv/environment.hh, src/ltlvisit/basicreduce.cc: Remove
      useless FIXMEs.
      * src/ltlvisit/reduce.cc (reduce_visitor::visit(binop)): Compute
      syntactic implications only when needed.
      * src/tgbaalgos/reductgba_sim_del.cc
      (build_recurse_successor_spoiler): Remplace the FIXME by an assert.
      * src/tgba/tgbareduc.cc: Reword some comments, discard old
      commented code.
      21c98c0a
  13. 25 Feb, 2008 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/ltlvisit/reduce.cc (reduce): Repeat the reduction as · 5d872725
      Alexandre Duret-Lutz authored
      long as the formula changes, it makes more sense when
      combining algorithm.  E.g. basic reductions can help language
      containment and vice-versa.
      5d872725
    • Alexandre Duret-Lutz's avatar
      * src/evtgbaparse/public.hh: Work around Bison 2.3 unique guards. · 641db2d7
      Alexandre Duret-Lutz authored
      * src/ltlvisit/reduce.hh, src/ltlvisit/reduce.hh:
      Add Reduce_Containment_Checks and Reduce_Containment_Checks_Stronger
      flags, and call reduce_tau03.
      * src/ltlvisit/contain.hh (reduce_tau03): Make "stronger" the
      default.
      * src/ltlvisit/contain.cc: Style.
      * src/ltltest/reduc.cc: Simplify using the reduce() interface
      instead of reduce_tau03.
      * src/tgbatest/ltl2tgba.cc: Likewise.  Add -fr5, -fr6, and -fr7
      options.
      * src/tgbatest/spotlbtt.test: Remove cases using "-c", since its
      current implementation is not always correct (and apparently
      reduces less than -fr7).
      641db2d7
  14. 18 Oct, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * iface/gspn/gspn.cc, src/ltlvisit/basicreduce.cc, · 7d27fd37
      Alexandre Duret-Lutz authored
      src/ltlvisit/destroy.cc, src/ltlvisit/dotty.cc,
      src/ltlvisit/dump.cc, src/ltlvisit/length.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/reduce.cc,
      src/ltlvisit/syntimpl.cc, src/ltlvisit/tostring.cc,
      src/tgba/formula2bdd.cc, src/tgba/tgbabddconcreteproduct.cc,
      src/tgba/tgbatba.cc, src/tgbaalgos/dotty.cc,
      src/tgbaalgos/dupexp.cc, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/neverclaim.cc,
      src/tgbaalgos/save.cc, src/tgbaalgos/stats.cc,
      src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh:
      Declare private classes and helper function in anonymous namespaces.
      * HACKING, src/sanity/style.test: Document and check this.
      Also check for trailing { after namespace or class.
      * src/ltlast/predecl.hh, src/ltlast/visitor.hh,
      src/tgba/tgbareduc.hh: Fix trailing {.
      7d27fd37
  15. 21 Sep, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/sanity/style.test: Warn about places where size() is used · c30823f7
      Alexandre Duret-Lutz authored
      instead of empty().
      * src/misc/bddalloc.cc (bdd_allocator::extend): Use empty() rather
      than size() when checking emptiness of lists.
      * src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/minimalce.cc,
      src/ltlvisit/basicreduce.cc, src/ltlvisit/reduce.cc,
      src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/misc/minato.cc: Likewise.
      * src/ltlast/multop.cc (multop::instance): Call ->size() only once.
      c30823f7
  16. 23 Jun, 2004 3 commits
  17. 22 Jun, 2004 1 commit
  18. 17 Jun, 2004 1 commit
    • martinez's avatar
      * src/tgbatest/spotlbtt.test: We don't check the post-reduction · c769f747
      martinez authored
      with scc and delayed simulation.
      
      * src/tgbatest/ltl2tgba.cc: Adjust parameters.
      * src/tgbatest/reductgba.cc, src/tgbatest/Makefile.am: More Test.
      * src/tgbaalgos/reductgba_sim_del.cc: Not finish, lot of bugs.
      * src/tgbaalgos/reductgba_sim.hh, src/tgbaalgos/reductgba_sim.cc:
      Remove some useless comments.
      * src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh: Bug in SCC.
      
      * src/ltlvisit/reducform.cc: Correct some bug for multop.
      * src/ltltest/reduccmp.test: More Test.
      * src/ltltest/reduc.cc: Thinko
      * src/ltltest/equals.cc: Reduction compare
      c769f747
  19. 15 Jun, 2004 1 commit
    • martinez's avatar
      * src/tgbatest/ltl2tgba.cc: Add some option for the reduction of · 8d3606ff
      martinez authored
      automata.
      * src/tgbatest/spotlbtt.test, src/tgbatest/Makefile.am: Add some
      test for reduction of automata.
      * src/tgbaalgos/reductgba_sim_del.cc, src/tgbaalgos/reductgba_sim.cc,
      src/tgbaalgos/reductgba_sim.hh: Compute some simulation relation
      to reduce a tgba.
      * src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh: A implementation
      of tgba for the reduction.
      * src/tgbaalgos/Makefile.am, src/tgba/Makefile.am:
      Add the reduction of automata.
      * src/ltlvisit/syntimpl.cc, src/ltlvisit/basereduc.cc:
      Lot of mistake are corrected.
      * src/ltlvisit/syntimpl.hh, src/ltlvisit/reducform.cc,
      src/ltlvisit/reducform.hh, src/ltltest/reduc.cc: Adjust.
      * src/ltltest/equals.cc, src/ltltest/reduccmp.test,
      src/ltltest/Makefile.am: Add a test for reduction.
      8d3606ff
  20. 02 Jun, 2004 1 commit
  21. 01 Jun, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/inf.cc, src/ltltest/inf.test: Rename as ... · 6e3fd873
      Alexandre Duret-Lutz authored
      * src/ltltest/syntimpl.cc, src/ltltest/syntimpl.test: ... these.
      * src/ltltest/Makefile.am: Adjust.
      * src/ltlvisit/forminf.cc: Rename as...
      * src/ltlvisit/syntimpl.cc: ... this.
      * src/ltlvisit/syntimpl.hh: New file with definitions extracted
      from ...
      * src/ltlvisit/reducform.hh: ... this one.
      * src/ltlvisit/Makefile.am, src/ltlvisit/reducform.cc: Adjust.
      6e3fd873