1. 13 May, 2014 1 commit
  2. 12 Feb, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      ltlast: simplify with std::make_pair() and c++11's std::tuple · b37dc0bc
      Alexandre Duret-Lutz authored
      * 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/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
      src/ltlast/unop.hh: Use std::tuple to replace nested std::pair,
      simplify calls to std::map::erase, use auto and std::make_pair with
      insert, and simplify the dump() method using a range for.
      b37dc0bc
    • Alexandre Duret-Lutz's avatar
      ltlast: move all accessor methods to headers to help the optimizer · 2c05a9fd
      Alexandre Duret-Lutz authored
      * 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.
      2c05a9fd
  3. 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
  4. 29 Jul, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Use -fvisibility=hidden in src/ltlast/, src/ltlvisit/, and src/ltlenv/. · 8ba3e64f
      Alexandre Duret-Lutz authored
      * src/ltlast/Makefile.am, src/ltlenv/Makefile.am,
      src/ltlvisit/Makefile.am: Use $(VISIBILITY_CXXFLAGS).
      * src/misc/common.hh (SPOT_DEPRECATED): New macro.
      * src/ltlast/atomic_prop.hh, src/ltlast/automatop.hh,
      src/ltlast/binop.hh, src/ltlast/bunop.hh, src/ltlast/constant.hh,
      src/ltlast/formula.hh, src/ltlast/formula_tree.hh,
      src/ltlast/multop.hh, src/ltlast/nfa.hh, src/ltlast/refformula.hh,
      src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
      src/ltlenv/defaultenv.hh, src/ltlvisit/apcollect.hh,
      src/ltlvisit/clone.hh, src/ltlvisit/contain.hh,
      src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh, src/ltlvisit/dump.hh,
      src/ltlvisit/lbt.hh, src/ltlvisit/length.hh,
      src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh,
      src/ltlvisit/postfix.hh, src/ltlvisit/randomltl.hh,
      src/ltlvisit/reduce.hh, src/ltlvisit/relabel.hh,
      src/ltlvisit/remove_x.hh, src/ltlvisit/simpfg.hh,
      src/ltlvisit/simplify.hh, src/ltlvisit/snf.hh,
      src/ltlvisit/tostring.hh, src/ltlvisit/tunabbrev.hh,
      src/ltlvisit/wmunabbrev.hh: Add SPOT_API in fron of
      exported symbols.
      * src/ltlvisit/nenoform.cc, src/ltlvisit/remove_x.cc: Add missing
      include of the corresponding header file.
      8ba3e64f
  5. 08 Jun, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Move \ingroup before \brief in all Doxygen comments. · 1ec9cebe
      Alexandre Duret-Lutz authored
      Using \ingroup between \brief and the rest of the documentation causes
      Doxygen to concatenate the brief with the rest of the doc.
      
      * src/sanity/style.test: Warn when \ingroup is found
      on the line after \brief.
      * src/kripke/fairkripke.hh, src/kripke/kripke.hh,
      src/kripke/kripkeprint.hh, src/ltlast/atomic_prop.hh,
      src/ltlast/automatop.hh, src/ltlast/binop.hh, src/ltlast/bunop.hh,
      src/ltlast/constant.hh, src/ltlast/formula.hh, src/ltlast/multop.hh,
      src/ltlast/refformula.hh, src/ltlast/unop.hh, src/ltlast/visitor.hh,
      src/ltlenv/declenv.hh, src/ltlenv/defaultenv.hh,
      src/ltlenv/environment.hh, src/ltlparse/ltlfile.hh,
      src/ltlvisit/clone.hh, src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
      src/ltlvisit/dump.hh, src/ltlvisit/length.hh, src/ltlvisit/lunabbrev.hh,
      src/ltlvisit/mark.hh, src/ltlvisit/nenoform.hh, src/ltlvisit/postfix.hh,
      src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.hh,
      src/ltlvisit/relabel.hh, src/ltlvisit/simpfg.hh,
      src/ltlvisit/simplify.hh, src/ltlvisit/tunabbrev.hh,
      src/ltlvisit/wmunabbrev.hh, src/misc/bddalloc.hh, src/misc/bddlt.hh,
      src/misc/freelist.hh, src/misc/hash.hh, src/misc/ltstr.hh,
      src/misc/minato.hh, src/misc/modgray.hh, src/misc/optionmap.hh,
      src/misc/version.hh, src/saba/explicitstateconjunction.hh,
      src/saba/saba.hh, src/saba/sabacomplementtgba.hh, src/saba/sabastate.hh,
      src/saba/sabasucciter.hh, src/sabaalgos/sabadotty.hh,
      src/sabaalgos/sabareachiter.hh, src/ta/ta.hh, src/ta/taproduct.hh,
      src/ta/tgta.hh, src/taalgos/reachiter.hh, src/taalgos/tgba2ta.hh,
      src/tgba/futurecondcol.hh, src/tgba/sba.hh, src/tgba/state.hh,
      src/tgba/succiter.hh, src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
      src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbakvcomplement.hh,
      src/tgba/tgbaproduct.hh, src/tgba/tgbasafracomplement.hh,
      src/tgba/tgbascc.hh, src/tgba/tgbasgba.hh, src/tgba/tgbatba.hh,
      src/tgba/tgbaunion.hh, src/tgba/wdbacomp.hh, src/tgbaalgos/bfssteps.hh,
      src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
      src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
      src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/lbtt.hh,
      src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
      src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/neverclaim.hh,
      src/tgbaalgos/powerset.hh, src/tgbaalgos/projrun.hh,
      src/tgbaalgos/randomgraph.hh, src/tgbaalgos/reachiter.hh,
      src/tgbaalgos/reducerun.hh, src/tgbaalgos/replayrun.hh,
      src/tgbaalgos/rundotdec.hh, src/tgbaalgos/save.hh,
      src/tgbaalgos/stripacc.hh, src/tgbaalgos/translate.hh: Move \ingroup
      before \brief.
      1ec9cebe
  6. 19 Dec, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Cosmetics. · aa2374c5
      Alexandre Duret-Lutz authored
      * src/sanity/style.test: Catch extra space around operator declarations.
      * src/ltlast/automatop.hh, src/ltlast/multop.hh,
      src/tgba/tgbabddcoredata.cc, src/tgba/tgbabddcoredata.hh,
      src/tgbaalgos/simulation.cc: Fix them.
      aa2374c5
  7. 12 Oct, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Upgrade GPL v2+ to GPL v3+. · 1551c5d9
      Alexandre Duret-Lutz authored
      * NEWS: Mention this.
      * COPYING: Replace by GPL v3.
      * src/sanity/style.test: Check files with the wrong license,
      in case we forgot to update it during a merge.
      * Makefile.am, bench/Makefile.am, bench/emptchk/Makefile.am,
      bench/emptchk/defs.in, bench/emptchk/ltl-human.sh,
      bench/emptchk/ltl-random.sh, bench/emptchk/pml-clserv.sh,
      bench/emptchk/pml-eeaean.sh, bench/emptchk/pml2tgba.pl,
      bench/ltl2tgba/big, bench/ltl2tgba/defs.in, bench/ltl2tgba/known,
      bench/ltl2tgba/lbtt2csv.pl, bench/ltl2tgba/ltl2baw.in,
      bench/ltl2tgba/parseout.pl, bench/ltl2tgba/small,
      bench/ltlclasses/Makefile.am, bench/ltlclasses/defs.in,
      bench/ltlclasses/run, bench/ltlcounter/Makefile.am,
      bench/ltlcounter/defs.in, bench/ltlcounter/run,
      bench/scc-stats/Makefile.am, bench/scc-stats/stats.cc,
      bench/split-product/Makefile.am, bench/split-product/cutscc.cc,
      bench/split-product/pml2tgba.pl, bench/wdba/Makefile.am,
      bench/wdba/defs.in, bench/wdba/run, configure.ac, doc/Makefile.am,
      doc/dot.in, doc/tl/Makefile.am, iface/Makefile.am,
      iface/dve2/Makefile.am, iface/dve2/defs.in, iface/dve2/dve2.cc,
      iface/dve2/dve2.hh, iface/dve2/dve2check.cc,
      iface/dve2/dve2check.test, iface/dve2/finite.test,
      iface/dve2/kripke.test, iface/gspn/Makefile.am, iface/gspn/common.cc,
      iface/gspn/common.hh, iface/gspn/dcswave.test,
      iface/gspn/dcswaveeltl.test, iface/gspn/dcswavefm.test,
      iface/gspn/dcswaveltl.test, iface/gspn/dottygspn.cc,
      iface/gspn/dottyssp.cc, iface/gspn/gspn.cc, iface/gspn/gspn.hh,
      iface/gspn/ltlgspn.cc, iface/gspn/simple.test, iface/gspn/ssp.cc,
      iface/gspn/ssp.hh, iface/gspn/udcsefm.test, iface/gspn/udcseltl.test,
      iface/gspn/udcsfm.test, iface/gspn/udcsltl.test, src/Makefile.am,
      src/bin/Makefile.am, src/bin/common_cout.cc, src/bin/common_cout.hh,
      src/bin/common_finput.cc, src/bin/common_finput.hh,
      src/bin/common_output.cc, src/bin/common_output.hh,
      src/bin/common_post.cc, src/bin/common_post.hh, src/bin/common_r.cc,
      src/bin/common_r.hh, src/bin/common_range.cc, src/bin/common_range.hh,
      src/bin/common_setup.cc, src/bin/common_setup.hh,
      src/bin/common_sys.hh, src/bin/genltl.cc, src/bin/ltl2tgba.cc,
      src/bin/ltl2tgta.cc, src/bin/ltlfilt.cc, src/bin/man/Makefile.am,
      src/bin/randltl.cc, src/eltlparse/Makefile.am,
      src/eltlparse/eltlparse.yy, src/eltlparse/eltlscan.ll,
      src/eltlparse/fmterror.cc, src/eltlparse/parsedecl.hh,
      src/eltlparse/public.hh, src/eltltest/Makefile.am,
      src/eltltest/acc.cc, src/eltltest/acc.test, src/eltltest/defs.in,
      src/eltltest/nfa.cc, src/eltltest/nfa.test, src/evtgba/Makefile.am,
      src/evtgba/evtgba.cc, src/evtgba/evtgba.hh, src/evtgba/evtgbaiter.hh,
      src/evtgba/explicit.cc, src/evtgba/explicit.hh, src/evtgba/product.cc,
      src/evtgba/product.hh, src/evtgba/symbol.cc, src/evtgba/symbol.hh,
      src/evtgbaalgos/Makefile.am, src/evtgbaalgos/dotty.cc,
      src/evtgbaalgos/dotty.hh, src/evtgbaalgos/reachiter.cc,
      src/evtgbaalgos/reachiter.hh, src/evtgbaalgos/save.cc,
      src/evtgbaalgos/save.hh, src/evtgbaalgos/tgba2evtgba.cc,
      src/evtgbaalgos/tgba2evtgba.hh, src/evtgbaparse/Makefile.am,
      src/evtgbaparse/evtgbaparse.yy, src/evtgbaparse/evtgbascan.ll,
      src/evtgbaparse/fmterror.cc, src/evtgbaparse/parsedecl.hh,
      src/evtgbaparse/public.hh, src/evtgbatest/Makefile.am,
      src/evtgbatest/defs.in, src/evtgbatest/explicit.cc,
      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/kripke/Makefile.am,
      src/kripke/fairkripke.cc, src/kripke/fairkripke.hh,
      src/kripke/kripke.cc, src/kripke/kripke.hh,
      src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
      src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh,
      src/kripkeparse/Makefile.am, src/kripkeparse/fmterror.cc,
      src/kripkeparse/kripkeparse.yy, src/kripkeparse/kripkescan.ll,
      src/kripkeparse/parsedecl.hh, src/kripkeparse/public.hh,
      src/kripkeparse/scankripke.ll, src/kripketest/Makefile.am,
      src/kripketest/bad_parsing.test, src/kripketest/defs.in,
      src/kripketest/kripke.test, src/kripketest/parse_print_test.cc,
      src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
      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/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/predecl.hh, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
      src/ltlast/visitor.hh, src/ltlenv/Makefile.am, src/ltlenv/declenv.cc,
      src/ltlenv/declenv.hh, src/ltlenv/defaultenv.cc,
      src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
      src/ltlparse/Makefile.am, src/ltlparse/fmterror.cc,
      src/ltlparse/ltlfile.cc, src/ltlparse/ltlfile.hh,
      src/ltlparse/ltlparse.yy, src/ltlparse/ltlscan.ll,
      src/ltlparse/parsedecl.hh, src/ltlparse/public.hh,
      src/ltltest/Makefile.am, src/ltltest/consterm.cc,
      src/ltltest/consterm.test, src/ltltest/defs.in, src/ltltest/equals.cc,
      src/ltltest/equals.test, src/ltltest/kind.cc, src/ltltest/kind.test,
      src/ltltest/length.cc, src/ltltest/length.test,
      src/ltltest/lunabbrev.test, src/ltltest/nenoform.test,
      src/ltltest/parse.test, src/ltltest/parseerr.test,
      src/ltltest/readltl.cc, src/ltltest/reduc.cc, src/ltltest/reduc.test,
      src/ltltest/reduccmp.test, src/ltltest/reducpsl.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/ltltest/utf8.test, src/ltltest/uwrm.test,
      src/ltlvisit/Makefile.am, src/ltlvisit/apcollect.cc,
      src/ltlvisit/apcollect.hh, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
      src/ltlvisit/contain.hh, src/ltlvisit/destroy.cc,
      src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc, src/ltlvisit/dotty.hh,
      src/ltlvisit/dump.cc, src/ltlvisit/dump.hh, src/ltlvisit/lbt.cc,
      src/ltlvisit/lbt.hh, src/ltlvisit/length.cc, src/ltlvisit/length.hh,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
      src/ltlvisit/mark.cc, src/ltlvisit/mark.hh, src/ltlvisit/nenoform.cc,
      src/ltlvisit/nenoform.hh, src/ltlvisit/postfix.cc,
      src/ltlvisit/postfix.hh, src/ltlvisit/randomltl.cc,
      src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.cc,
      src/ltlvisit/reduce.hh, src/ltlvisit/relabel.cc,
      src/ltlvisit/relabel.hh, src/ltlvisit/simpfg.cc,
      src/ltlvisit/simpfg.hh, src/ltlvisit/simplify.cc,
      src/ltlvisit/simplify.hh, src/ltlvisit/snf.cc, src/ltlvisit/snf.hh,
      src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
      src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
      src/ltlvisit/wmunabbrev.cc, src/ltlvisit/wmunabbrev.hh,
      src/misc/Makefile.am, src/misc/acccompl.cc, src/misc/acccompl.hh,
      src/misc/accconv.cc, src/misc/accconv.hh, src/misc/bareword.cc,
      src/misc/bareword.hh, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
      src/misc/bddlt.hh, src/misc/bddop.cc, src/misc/bddop.hh,
      src/misc/casts.hh, src/misc/escape.cc, src/misc/escape.hh,
      src/misc/fixpool.hh, src/misc/freelist.cc, src/misc/freelist.hh,
      src/misc/hash.hh, src/misc/hashfunc.hh, src/misc/intvcmp2.cc,
      src/misc/intvcmp2.hh, src/misc/intvcomp.cc, src/misc/intvcomp.hh,
      src/misc/ltstr.hh, src/misc/memusage.cc, src/misc/memusage.hh,
      src/misc/minato.cc, src/misc/minato.hh, src/misc/modgray.cc,
      src/misc/modgray.hh, src/misc/mspool.hh, src/misc/optionmap.cc,
      src/misc/optionmap.hh, src/misc/random.cc, src/misc/random.hh,
      src/misc/timer.cc, src/misc/timer.hh, src/misc/unique_ptr.hh,
      src/misc/version.cc, src/misc/version.hh, src/neverparse/Makefile.am,
      src/neverparse/fmterror.cc, src/neverparse/neverclaimparse.yy,
      src/neverparse/neverclaimscan.ll, src/neverparse/parsedecl.hh,
      src/neverparse/public.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/sabatest/sabacomplementtgba.cc, src/sanity/Makefile.am,
      src/sanity/readme.test, src/sanity/style.test, src/ta/Makefile.am,
      src/ta/ta.cc, src/ta/ta.hh, src/ta/taexplicit.cc,
      src/ta/taexplicit.hh, src/ta/taproduct.cc, src/ta/taproduct.hh,
      src/ta/tgta.cc, src/ta/tgta.hh, src/ta/tgtaexplicit.cc,
      src/ta/tgtaexplicit.hh, src/ta/tgtaproduct.cc, src/ta/tgtaproduct.hh,
      src/taalgos/Makefile.am, src/taalgos/dotty.cc, src/taalgos/dotty.hh,
      src/taalgos/emptinessta.cc, src/taalgos/emptinessta.hh,
      src/taalgos/minimize.cc, src/taalgos/minimize.hh,
      src/taalgos/reachiter.cc, src/taalgos/reachiter.hh,
      src/taalgos/statessetbuilder.cc, src/taalgos/statessetbuilder.hh,
      src/taalgos/stats.cc, src/taalgos/stats.hh, src/taalgos/tgba2ta.cc,
      src/taalgos/tgba2ta.hh, src/tgba/Makefile.am, src/tgba/bdddict.cc,
      src/tgba/bdddict.hh, src/tgba/bddprint.cc, src/tgba/bddprint.hh,
      src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh,
      src/tgba/futurecondcol.cc, src/tgba/futurecondcol.hh,
      src/tgba/public.hh, src/tgba/sba.hh, src/tgba/state.hh,
      src/tgba/statebdd.cc, src/tgba/statebdd.hh, src/tgba/succiter.hh,
      src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
      src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.cc,
      src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
      src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh,
      src/tgba/tgbabddconcreteproduct.cc,
      src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
      src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
      src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.hh,
      src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
      src/tgba/tgbascc.cc, src/tgba/tgbascc.hh, src/tgba/tgbasgba.cc,
      src/tgba/tgbasgba.hh, src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
      src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc,
      src/tgba/wdbacomp.hh, src/tgbaalgos/Makefile.am,
      src/tgbaalgos/bfssteps.cc, src/tgbaalgos/bfssteps.hh,
      src/tgbaalgos/cutscc.cc, src/tgbaalgos/cutscc.hh,
      src/tgbaalgos/cycles.cc, src/tgbaalgos/cycles.hh,
      src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh,
      src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh,
      src/tgbaalgos/dottydec.cc, src/tgbaalgos/dottydec.hh,
      src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
      src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/eltl2tgba_lacim.hh,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/emptiness.hh,
      src/tgbaalgos/emptiness_stats.hh, src/tgbaalgos/gtec/Makefile.am,
      src/tgbaalgos/gtec/ce.cc, src/tgbaalgos/gtec/ce.hh,
      src/tgbaalgos/gtec/explscc.cc, src/tgbaalgos/gtec/explscc.hh,
      src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
      src/tgbaalgos/gtec/nsheap.cc, src/tgbaalgos/gtec/nsheap.hh,
      src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
      src/tgbaalgos/gtec/status.cc, src/tgbaalgos/gtec/status.hh,
      src/tgbaalgos/gv04.cc, src/tgbaalgos/gv04.hh, src/tgbaalgos/isdet.cc,
      src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc,
      src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2taa.cc,
      src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
      src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.cc,
      src/tgbaalgos/minimize.hh, src/tgbaalgos/ndfs_result.hxx,
      src/tgbaalgos/neverclaim.cc, src/tgbaalgos/neverclaim.hh,
      src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh,
      src/tgbaalgos/powerset.cc, src/tgbaalgos/powerset.hh,
      src/tgbaalgos/projrun.cc, src/tgbaalgos/projrun.hh,
      src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh,
      src/tgbaalgos/reachiter.cc, src/tgbaalgos/reachiter.hh,
      src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh,
      src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
      src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh,
      src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh,
      src/tgbaalgos/safety.cc, src/tgbaalgos/safety.hh,
      src/tgbaalgos/save.cc, src/tgbaalgos/save.hh, src/tgbaalgos/scc.cc,
      src/tgbaalgos/scc.hh, src/tgbaalgos/sccfilter.cc,
      src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.cc,
      src/tgbaalgos/se05.hh, src/tgbaalgos/simulation.cc,
      src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.cc,
      src/tgbaalgos/stats.hh, src/tgbaalgos/tau03.cc,
      src/tgbaalgos/tau03.hh, src/tgbaalgos/tau03opt.cc,
      src/tgbaalgos/tau03opt.hh, src/tgbaalgos/weight.cc,
      src/tgbaalgos/weight.hh, src/tgbaparse/Makefile.am,
      src/tgbaparse/fmterror.cc, src/tgbaparse/parsedecl.hh,
      src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbaparse/tgbascan.ll, src/tgbatest/Makefile.am,
      src/tgbatest/babiak.test, src/tgbatest/bddprod.test,
      src/tgbatest/complementation.cc, src/tgbatest/complementation.test,
      src/tgbatest/cycles.test, src/tgbatest/defs.in,
      src/tgbatest/degendet.test, src/tgbatest/degenid.test,
      src/tgbatest/dfs.test, src/tgbatest/dupexp.test,
      src/tgbatest/eltl2tgba.test, src/tgbatest/emptchk.test,
      src/tgbatest/emptchke.test, src/tgbatest/emptchkr.test,
      src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
      src/tgbatest/explicit2.cc, src/tgbatest/explicit2.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explpro4.test, src/tgbatest/explprod.cc,
      src/tgbatest/explprod.test, src/tgbatest/intvcmp2.cc,
      src/tgbatest/intvcomp.cc, src/tgbatest/intvcomp.test,
      src/tgbatest/kv.test, src/tgbatest/ltl2neverclaim.test,
      src/tgbatest/ltl2ta.test, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/ltl2tgba.test, src/tgbatest/ltlcounter.test,
      src/tgbatest/ltlprod.cc, src/tgbatest/ltlprod.test,
      src/tgbatest/mixprod.cc, src/tgbatest/mixprod.test,
      src/tgbatest/neverclaimread.test, src/tgbatest/nondet.test,
      src/tgbatest/obligation.test, src/tgbatest/powerset.cc,
      src/tgbatest/randpsl.test, src/tgbatest/randtgba.cc,
      src/tgbatest/randtgba.test, src/tgbatest/readsave.test,
      src/tgbatest/renault.test, src/tgbatest/scc.test,
      src/tgbatest/sccsimpl.test, src/tgbatest/spotlbtt.test,
      src/tgbatest/spotlbtt2.test, src/tgbatest/taatgba.cc,
      src/tgbatest/taatgba.test, src/tgbatest/tgbaread.cc,
      src/tgbatest/tgbaread.test, src/tgbatest/tripprod.cc,
      src/tgbatest/tripprod.test, src/tgbatest/wdba.test,
      src/tgbatest/wdba2.test, wrap/Makefile.am, wrap/python/Makefile.am,
      wrap/python/ajax/Makefile.am, wrap/python/ajax/spot.in,
      wrap/python/buddy.i, wrap/python/spot.i,
      wrap/python/tests/Makefile.am, wrap/python/tests/alarm.py,
      wrap/python/tests/bddnqueen.py, wrap/python/tests/implies.py,
      wrap/python/tests/interdep.py, wrap/python/tests/ltl2tgba.py,
      wrap/python/tests/ltl2tgba.test, wrap/python/tests/ltlparse.py,
      wrap/python/tests/ltlsimple.py, wrap/python/tests/minato.py,
      wrap/python/tests/modgray.py, wrap/python/tests/optionmap.py,
      wrap/python/tests/parsetgba.py, wrap/python/tests/run.in,
      wrap/python/tests/setxor.py: Update licence version, and replace the
      FSF address by a URL.
      1551c5d9
  8. 02 May, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Use 'const formula*' instead of 'formula*' everywhere. · bf62d439
      Alexandre Duret-Lutz authored
      The distinction makes no sense since Spot 0.5, where we switched from
      mutable furmulae to immutable formulae.  The difference between
      const_visitor and visitor made no sense either.  They have been merged
      into one: visitor.
      
      * iface/dve2/dve2check.cc, iface/gspn/ltlgspn.cc,
      src/eltlparse/eltlparse.yy, src/eltlparse/public.hh,
      src/evtgbatest/ltl2evtgba.cc, src/kripkeparse/kripkeparse.yy,
      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/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/predecl.hh, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
      src/ltlast/visitor.hh, src/ltlenv/declenv.cc, src/ltlenv/declenv.hh,
      src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
      src/ltlenv/environment.hh, src/ltlparse/ltlfile.cc,
      src/ltlparse/ltlfile.hh, src/ltlparse/ltlparse.yy,
      src/ltlparse/public.hh, src/ltltest/consterm.cc,
      src/ltltest/equals.cc, src/ltltest/genltl.cc, src/ltltest/kind.cc,
      src/ltltest/length.cc, src/ltltest/randltl.cc, src/ltltest/readltl.cc,
      src/ltltest/reduc.cc, src/ltltest/syntimpl.cc,
      src/ltltest/tostring.cc, src/ltlvisit/apcollect.cc,
      src/ltlvisit/apcollect.hh, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/contain.cc,
      src/ltlvisit/contain.hh, src/ltlvisit/dotty.cc,
      src/ltlvisit/length.cc, src/ltlvisit/lunabbrev.cc,
      src/ltlvisit/lunabbrev.hh, src/ltlvisit/mark.cc, src/ltlvisit/mark.hh,
      src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
      src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
      src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
      src/ltlvisit/reduce.cc, src/ltlvisit/reduce.hh,
      src/ltlvisit/simpfg.cc, src/ltlvisit/simpfg.hh,
      src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh,
      src/ltlvisit/snf.cc, src/ltlvisit/snf.hh, src/ltlvisit/tostring.cc,
      src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
      src/ltlvisit/wmunabbrev.cc, src/ltlvisit/wmunabbrev.hh,
      src/neverparse/neverclaimparse.yy, src/sabatest/sabacomplementtgba.cc,
      src/tgba/bdddict.cc, src/tgba/formula2bdd.cc, src/tgba/taatgba.cc,
      src/tgba/taatgba.hh, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc, src/tgbaalgos/minimize.cc,
      src/tgbaalgos/randomgraph.cc, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/complementation.cc, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/ltlprod.cc, src/tgbatest/mixprod.cc,
      src/tgbatest/randtgba.cc: Massive adjustment!
      * src/tgbatest/reductgba.cc: Delete.
      bf62d439
  9. 28 Apr, 2012 19 commits
    • Alexandre Duret-Lutz's avatar
      Trivially reduce f;f to f[*2], f[*1..3];f to f[*2..4], etc. · e7cf7b42
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.cc (instance): Implement the reduction.
      * src/ltlast/multop.hh, doc/tl/tl.tex: Document it.
      * src/ltltest/equals.test: Add a test.
      e7cf7b42
    • Alexandre Duret-Lutz's avatar
      Trivially reduce [*];f to [*] if f accepts the empty word. · 4a775a17
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.cc (instance): Implement the reduction.
      * src/ltlast/multop.hh, doc/tl/tl.tex: Document it.
      * src/ltltest/equals.test: Test it.
      4a775a17
    • Alexandre Duret-Lutz's avatar
      Trivially reduce 1[*]&&f = f and 1[*]|f = 1[*]. · e06b3b79
      Alexandre Duret-Lutz authored
      * src/ltlast/bunop.hh (one_star): New static method building 1[*].
      * src/ltlast/bunop.cc (bunop::~bunop, bunop::instance_count): Adjust.
      * src/ltlast/multop.cc: Implement the trivial rewriting.
      * src/ltlast/multop.hh, doc/tl/tl.tex: Document it.
      * src/ltltest/equals.test: Test it.
      e06b3b79
    • Alexandre Duret-Lutz's avatar
      Fix handling of 1 in trivial identities for rational operators. · 5bea6e49
      Alexandre Duret-Lutz authored
      Especially, 1&f and 1:f were mistakenly always reduced to f, which is
      incorrect when f accept the empty word.
      
      * src/ltlast/multop.cc: Here.
      * src/ltlast/multop.hh, doc/tl/tl.tex: Adjust documentation.
      * src/ltltest/equals.test: Add more tests.
      5bea6e49
    • Alexandre Duret-Lutz's avatar
      Introduce AndRat and OrRat operator. · 691119c1
      Alexandre Duret-Lutz authored
      It was a mistake to try to overload And/Or LTL operator for these when
      trivial simplification are performed.  The reason is so simple it is
      embarassing: And(f,1)=f is a trivial identity that should not be
      applied with AndRat.  E.g. AndRat(a;b, 1) is equal to 0, not a;b.
      
      * src/ltlast/multop.hh, src/ltlast/multop.cc: Add the AndRat and OrRat
      operators.
      * src/ltlparse/ltlparse.yy: Build them.
      * src/ltlvisit/mark.cc, src/ltlvisit/simplify.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:
      Adjust all switches.
      691119c1
    • Alexandre Duret-Lutz's avatar
      Fix trivial rules for b₁:b₂ and b&f. · 866384b4
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.cc (instance): Here.
      * src/ltlast/multop.hh, doc/tl/tl.tex: Adjust documentation.
      * src/ltltest/equals.test: Adjust test cases.
      866384b4
    • Alexandre Duret-Lutz's avatar
      to_string: abbreviate [->i..j] and [=i..j] expressed using [*i..j] · 39417037
      Alexandre Duret-Lutz authored
      * src/ltlast/bunop.hh (is_bunop, is_Star): New functions.
      * src/ltlast/multop.hh (is_And, is_Or): Fix constness.
      (is_Concat, is_Fusion): New functions.
      * src/ltlast/unop.hh (is_unop, is_X, is_F, is_G, is_GF, is_FG):
      Fix constness.
      (is_Not): New function.
      * src/ltlvisit/tostring.cc (strip_star_not, match_goto,
      emit_bunop_child, resugar_concat): New methods.
      (visit(bunop)): Rewrite without calling format().  Detect the
      [->i..j] pattern.
      (visit(multop)): Call resugar_concat to detect [=i..j] patterns.
      39417037
    • Alexandre Duret-Lutz's avatar
      Use []=> and <>=> as sugar in the output when possible. · 412f946a
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.hh (is_multop): Take a constant formula as input.
      * src/ltlvisit/tostring.cc (to_string_visitor::visit(multop*)):
      Output []=> or <>=> when the left argument of a []-> or <>-> is
      a concatenation that ends in 1.
      * doc/tl/tl.tex: Document this desugaring.
      412f946a
    • Alexandre Duret-Lutz's avatar
      Move helper functions from simplify.cc to the AST files. · 5e7c0add
      Alexandre Duret-Lutz authored
      * src/ltlvisit/simplify.cc (spot::ltl::is_And, spot::ltl::is_F,
      spot::ltl::is_FG, spot::ltl::is_G, spot::ltl::is_GF, spot::ltl::is_M,
      spot::ltl::is_Or, spot::ltl::is_R, spot::ltl::is_U, spot::ltl::is_W,
      spot::ltl::is_X, spot::ltl::is_binop, spot::ltl::is_constant,
      spot::ltl::is_multop, spot::ltl::is_unop): Move ...
      * src/ltlast/binop.hh, src/ltlast/constant.hh, src/ltlast/multop.hh
      src/ltlast/unop.hh: ... here, as appropriate.
      5e7c0add
    • Alexandre Duret-Lutz's avatar
      Reduce 'a|(b&X(b U a))' to 'b U a', plus three simular rules. · 955fc041
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.hh, src/ltlast/multop.cc (all_but): New method
      used to simplify the removal of one element of a multop.
      * src/ltlvisit/simplify.cc: Implement the new rewriting rules.
      * doc/tl/tl.tex: Document them.
      * src/ltltest/reduccmp.test: Test them.
      955fc041
    • 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
      Combine Boolean formulae in Fusion arguments. · 2669df1c
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.cc (multop::instance): Implement
      the rewriting.   "a:b:c[*]:d:e" becomes "{{a&&b}&c[*]}:{d&&e}".
      * src/ltlast/multop.hh: Document it.
      * src/ltltest/equals.test, src/ltltest/kind.test: Add test cases.
      2669df1c
    • Alexandre Duret-Lutz's avatar
      Add trivial identities for &&, <>->, []-> and Boolean arguments. · a2da5184
      Alexandre Duret-Lutz authored
      * src/ltlast/binop.cc (EConcat, UConcat): Rewrite "{b}<>-> f"
      as "b && f", and rewrite "{b}[]->f" as "b->f".
      * src/ltlast/binop.hh (binop::instance): Document trivial
      identities for <>-> and []->.
      * src/ltlast/multop.cc (multop::instance): Rewrite "b1 & b2"
      as "b1 && b2" when b1 and b2 are Boolean.
      (multop::multop): Always disable is.boolean for AndNLM.
      * src/ltlast/multop.hh: Document the rewriting.
      * src/ltltest/equals.cc: Show the two formulas if the exit_code
      is 1, to help debugging.
      * src/ltltest/equals.test: Add more tests.
      * src/ltltest/kind.test: Adjust tests.
      a2da5184
    • Alexandre Duret-Lutz's avatar
      Cosmetic changes in doc for bunop and multop. · c48b9bcf
      Alexandre Duret-Lutz authored
      * src/ltlast/bunop.hh, src/ltlast/multop.hh: Reorder some comments.
      c48b9bcf
    • Alexandre Duret-Lutz's avatar
    • Alexandre Duret-Lutz's avatar
      Add support for PSL's non-length-matching And. · bbb645e1
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.cc, src/ltlast/multop.hh: Declare AndNML
      operator.
      * src/ltlparse/ltlscan.ll: Distinguish "&" and "&&".
      * src/ltlparse/ltlparse.yy: Handle them both as "And" for LTL
      formula, use AndNML or And for rational expressions.
      * src/ltlvisit/tostring.cc: Adjust to distinguish "&" and "&&" in
      rational expressions. Also use {braces} to group rational
      expressions.
      * src/tgbaalgos/ltl2tgba_fm.cc
      (ratexp_trad_visitor::ratexp_trad_visitor): Remove the possibility
      to select the empty_word should act like true, and fix the rules
      for Closure and NegClosure to rely on constant_term instead.
      (ratexp_trad_visitor::visit) Adjust the And translation to also
      support AndNML.
      (ratexp_trad_visitor::recurse_and_concat): Introduce this new
      method to simplify some calls to recurse(f, to_concat_).
      * src/tgbatest/ltl2tgba.test: Add more test cases.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
      src/ltlvisit/contain.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/syntimpl.cc,
      src/tgba/formula2bdd.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2taa.cc, src/tgbaalgos/ltl2tgba_lacim.cc: Add
      missing cases in switches.
      bbb645e1
    • Alexandre Duret-Lutz's avatar
      Use [*0] instead of #e, and support [*] in addition to *. · 8b8633de
      Alexandre Duret-Lutz authored
      * src/ltlparse/ltlscan.ll: Recognize [*] as *, and use
      [*0] instead of #e for the empty word.
      * src/ltlast/binop.cc, src/ltlast/constant.cc,
      src/ltlast/multop.cc, src/ltlast/multop.hh, src/ltlast/unop.cc,
      src/ltlast/unop.hh, src/ltltest/consterm.test,
      src/ltltest/equals.test: Adjust all occurrences of #e to [*0].
      * src/tgbatest/ltl2tgba.test: Also use [*].
      8b8633de
    • Alexandre Duret-Lutz's avatar
      Parse the fusion operator (":") and translate it in ltl2tgba_fm(). · c2b3dac7
      Alexandre Duret-Lutz authored
      * src/ltlast/multop.hh (multop::type::Fusion): New operator.
      * src/ltlast/multop.cc: Handle it.
      * src/ltlparse/ltlparse.yy: Declare OP_FUSION and add grammar
      rules.
      * src/ltlparse/ltlscan.ll: Recognize ":" as OP_FUSION.
      * src/tgbaalgos/ltl2tgba_fm.cc (ratexp_trad_visitor::visit):
      Add translation rule for multop::Fusion.
      * src/tgbatest/ltl2tgba.test: Add more tests.
      * src/ltlvisit/basicreduce.cc, src/ltlvisit/consterm.cc,
      src/ltlvisit/contain.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/nenoform.cc, src/ltlvisit/syntimpl.cc,
      src/ltlvisit/tostring.cc, src/tgba/formula2bdd.cc,
      src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
      src/tgbaalgos/ltl2tgba_lacim.cc: Handle multop::Fusion in switches.
      c2b3dac7
    • 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
  10. 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
  11. 13 Nov, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      Replace the hash key construction of LTL formulae by a simple · f2be64dd
      Alexandre Duret-Lutz authored
      counter updated each time we create a new (unique) formula.
      
      Doing so saves a lot of memory during the translation of the
      ltlcounter formulae, because the formulae are quite big and
      storing a string representation of each formula on its node was a
      bad idea.  For instance with n=12, the translation now uses 40MB
      where it used 290MB.  (Note: in both cases, 20MB is being used by
      the BDD cache.)
      
      * src/ltlast/formula.hh (hash_key_): Rename as ...
      (count_): ... this.
      (hash): Adjust.
      (max_count): New static variable to count the number of
      formulae created.
      (formula): Update max_count and set count_.
      (dump): Make it a virtual pure method.
      (set_key_): Remove.
      (formula_ptr_less_than): Speed up and return false when
      the two formula pointer are equal.
      * src/ltlast/formula.cc (set_key_, dump): Remove.
      * 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/constant.cc,
      src/ltlast/constant.hh, src/ltlast/multop.cc,
      src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
      Empty the constructor (do not precompute the dump_ anymore),
      and add a dump() implementation.
      f2be64dd
  12. 09 Nov, 2009 2 commits
    • Alexandre Duret-Lutz's avatar
      Make it easier to debug reference counts in LTL nodes. · 631f4b5b
      Alexandre Duret-Lutz authored
      * src/ltlast/automatop.cc, src/ltlast/automatop.hh,
      src/ltlast/binop.cc, src/ltlast/binop.hh, src/ltlast/multop.cc,
      src/ltlast/multop.hh, src/ltlast/unop.cc, src/ltlast/unop.hh:
      Add a dump_instance() static method to all class.
      * src/ltltest/readltl.cc: Add option -r to dump all instances
      with their reference count, after parsing and after deletion.
      631f4b5b
    • Alexandre Duret-Lutz's avatar
      Better types for instance maps. · 3488bf45
      Alexandre Duret-Lutz authored
      * src/ltlast/unop.hh (map): Use unop* as values.
      * src/ltlast/binop.hh (map): Use binop* as values.
      * src/ltlast/multop.hh (map): Use multop* as values.
      * src/ltlast/automatop.hh (paircmp): Rename as tripletcmp.
      (map): Use automaton* as values, not formula*.
      3488bf45
  13. 25 Mar, 2009 1 commit
  14. 17 Apr, 2008 1 commit
  15. 17 Nov, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltlast/atomic_prop.hh, src/ltlast/binop.hh, · 36aadba7
      Alexandre Duret-Lutz authored
      src/ltlast/constant.hh, src/ltlast/formula.hh,
      src/ltlast/multop.hh, src/ltlast/refformula.hh,
      src/ltlast/unop.hh, src/ltlast/visitor.hh, src/ltlenv/declenv.hh,
      src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
      src/ltlparse/public.hh, src/ltlvisit/apcollect.hh,
      src/ltlvisit/basicreduce.hh, src/ltlvisit/clone.hh,
      src/ltlvisit/destroy.hh, src/ltlvisit/dotty.hh,
      src/ltlvisit/dump.hh, src/ltlvisit/length.hh,
      src/ltlvisit/lunabbrev.hh, src/ltlvisit/nenoform.hh: Add Doxygen
      groups for LTL algorithms and types.
      * doc/Makefile.am (fast-doc): New target.
      36aadba7
  16. 09 Aug, 2004 1 commit
  17. 21 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * COPYING: New file. · 43a91a15
      Alexandre Duret-Lutz authored
      * Makefile.am, configure.ac, doc/Makefile.am, iface/Makefile.am,
      iface/gspn/Makefile.am, iface/gspn/common.cc,
      iface/gspn/common.hh, iface/gspn/dottyeesrg.cc,
      iface/gspn/dottygspn.cc, iface/gspn/eesrg.cc, iface/gspn/eesrg.hh,
      iface/gspn/gspn.cc, iface/gspn/gspn.hh, iface/gspn/ltlgspn.cc,
      src/Makefile.am, src/ltlast/Makefile.am, src/ltlast/allnodes.hh,
      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/multop.cc, src/ltlast/multop.hh,
      src/ltlast/predecl.hh, src/ltlast/refformula.cc,
      src/ltlast/refformula.hh, src/ltlast/unop.cc, src/ltlast/unop.hh,
      src/ltlast/visitor.hh, src/ltlenv/Makefile.am,
      src/ltlenv/defaultenv.cc, src/ltlenv/defaultenv.hh,
      src/ltlenv/environment.hh, src/ltlparse/Makefile.am,
      src/ltlparse/fmterror.cc, src/ltlparse/ltlparse.yy,
      src/ltlparse/ltlscan.ll, src/ltlparse/parsedecl.hh,
      src/ltlparse/public.hh, 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/readltl.cc,
      src/ltltest/tostring.cc, src/ltltest/tostring.test,
      src/ltltest/tunabbrev.test, src/ltltest/tunenoform.test,
      src/ltlvisit/Makefile.am, src/ltlvisit/clone.cc,
      src/ltlvisit/clone.hh, src/ltlvisit/destroy.cc,
      src/ltlvisit/destroy.hh, src/ltlvisit/dotty.cc,
      src/ltlvisit/dotty.hh, src/ltlvisit/dump.cc, src/ltlvisit/dump.hh,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/lunabbrev.hh,
      src/ltlvisit/nenoform.cc, src/ltlvisit/nenoform.hh,
      src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh,
      src/ltlvisit/tostring.cc, src/ltlvisit/tostring.hh,
      src/ltlvisit/tunabbrev.cc, src/ltlvisit/tunabbrev.hh,
      src/misc/Makefile.am, src/misc/bddalloc.cc, src/misc/bddalloc.hh,
      src/misc/bddlt.hh, src/misc/hash.hh, src/misc/minato.cc,
      src/misc/minato.hh, src/misc/version.cc, src/misc/version.hh,
      src/tgba/Makefile.am, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
      src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/public.hh,
      src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/statebdd.hh,
      src/tgba/succiter.hh, src/tgba/succiterconcrete.cc,
      src/tgba/succiterconcrete.hh, src/tgba/tgba.cc, src/tgba/tgba.hh,
      src/tgba/tgbabddconcrete.cc, src/tgba/tgbabddconcrete.hh,
      src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh,
      src/tgba/tgbabddconcreteproduct.cc,
      src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
      src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
      src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh,
      src/tgba/tgbatba.cc, src/tgba/tgbatba.hh,
      src/tgbaalgos/Makefile.am, src/tgbaalgos/dotty.cc,
      src/tgbaalgos/dotty.hh, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptinesscheck.cc,
      src/tgbaalgos/emptinesscheck.hh, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.cc,
      src/tgbaalgos/magic.hh, src/tgbaalgos/reachiter.cc,
      src/tgbaalgos/reachiter.hh, src/tgbaalgos/save.cc,
      src/tgbaalgos/save.hh, src/tgbaparse/Makefile.am,
      src/tgbaparse/fmterror.cc, src/tgbaparse/parsedecl.hh,
      src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbaparse/tgbascan.ll, src/tgbatest/Makefile.am,
      src/tgbatest/bddprod.test, src/tgbatest/defs.in,
      src/tgbatest/dupexp.test, src/tgbatest/emptchk.test,
      src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explprod.test, src/tgbatest/ltl2tgba.test,
      src/tgbatest/ltlprod.test, src/tgbatest/mixprod.test,
      src/tgbatest/readsave.test, src/tgbatest/spotlbtt.test,
      src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
      wrap/Makefile.am, wrap/python/Makefile.am, wrap/python/buddy.i,
      wrap/python/spot.i, wrap/python/cgi/Makefile.am,
      wrap/python/cgi/ltl2tgba.in, wrap/python/tests/Makefile.am,
      wrap/python/tests/bddnqueen.py, wrap/python/tests/interdep.py,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltl2tgba.test,
      wrap/python/tests/ltlparse.py, wrap/python/tests/ltlsimple.py,
      wrap/python/tests/run.in: Add Copyright license.
      43a91a15
  18. 10 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Revamp the multop interface to allow some basic optimizations like · de6314ed
      Alexandre Duret-Lutz authored
      not constructing a single-child multop.
      * src/ltlast/multop.hh (multop::instance(type)): Remove.
      (multop::instance(type, formula*, formula*)): Return a formula*.
      (multop::instance(type, vec*)): Make it public and return a formula*.
      (multop::add_sorted, multop::add):
      * src/ltlast/multop.cc (multop::instance(type, vec*)): Rewrite.
      (multop::instance(type)): Delete.
      (multop::instance(type, formula*, formula*)): Adjust.
      (multop::add_sorted, multop::add): Remove.
      * src/ltlvisit/clone.cc (clone_visitor::visit(multop*)) Adjust.
      * src/ltlvisit/nenoform.cc
      (negative_normal_form_visitor::::visit(multop*)) Adjust.
      * src/ltltest/equals.test: Make sure `a & a' and `a' are equals.
      * wrap/python/tests/ltlsimple.py: Adjust.
      de6314ed
  19. 28 Jun, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix errors reported by ICC. · 692f78d6
      Alexandre Duret-Lutz authored
      * src/tgba/state.hh (state_ptr_less_than::operator()): Make it const.
      * src/tgba/tgbaproduct.cc: Include string.hh.
      * src/ltlast/multop.hh (multop::add, multop::add_sorted): Do
      not use qualified names in declarations.
      * m4/gccwarn.m4 (CF_GXX_WARNINGS): Fix GXX test.
      * src/ltlenv/defaultenv.hh, src/ltlenv/defaultenv.cc,
      src/ltlenv/environment.hh: Add virtual destructors.
      692f78d6
  20. 26 Jun, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * doc/Makefile.am (doc): Typo. · 483507f1
      Alexandre Duret-Lutz authored
      * src/ltlvisit/tostring.hh (to_string): Add doxygen comments.
      * src/ltlast/multop.hh (multop::paircmp): Add doxygen comments.
      * src/ltlvisit/postfix.hh: Typo.
      483507f1