1. 06 Oct, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      Store membership to acceptance sets using bitsets, not BDDs. · 2c764fb3
      Alexandre Duret-Lutz authored
      This is a huge patch, that took over a month to complete.  The bit sets
      are currently restricted to what 'unsigned can store', but it should be
      easy to extend it to 'uint64_t' should we need it.
      
      * NEWS: Update.
      * src/tgba/acc.hh: New file.
      * src/tgbatest/acc.cc, src/tgbatest/acc.test: Test it.
      * src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.hh,
      src/tgba/tgbasgba.cc, src/tgba/tgbasgba.hh: Delete.  The KV
      complementation is too slow to be used in practice, and I somehow broke
      it during the conversion to bitsets.  The tgba->sgba conversion was only
      used for the KV complementation, and should be better redone on
      tgba_digraph_ptr should it be needed again.
      * src/bin/ltlcross.cc, src/dstarparse/dra2ba.cc,
      src/dstarparse/nsa2tgba.cc, src/graphtest/tgbagraph.cc,
      src/graphtest/tgbagraph.test, 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/misc/hash.hh, src/neverparse/neverclaimparse.yy, src/priv/accmap.hh,
      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/dotty.cc,
      src/taalgos/emptinessta.cc, src/taalgos/minimize.cc,
      src/taalgos/tgba2ta.cc, src/tgba/Makefile.am, src/tgba/fwd.hh,
      src/tgba/taatgba.cc, src/tgba/taatgba.hh, src/tgba/tgba.cc,
      src/tgba/tgba.hh, src/tgba/tgbagraph.cc, src/tgba/tgbagraph.hh,
      src/tgba/tgbamask.cc, src/tgba/tgbamask.hh, src/tgba/tgbaproduct.cc,
      src/tgba/tgbaproduct.hh, src/tgba/tgbaproxy.cc, src/tgba/tgbaproxy.hh,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbasafracomplement.hh,
      src/tgbaalgos/bfssteps.cc, src/tgbaalgos/complete.cc,
      src/tgbaalgos/compsusp.cc, src/tgbaalgos/degen.cc,
      src/tgbaalgos/dotty.cc, src/tgbaalgos/dtbasat.cc,
      src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/dtgbasat.cc,
      src/tgbaalgos/dupexp.cc, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/ce.cc,
      src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/gtec.hh,
      src/tgbaalgos/gtec/sccstack.cc, src/tgbaalgos/gtec/sccstack.hh,
      src/tgbaalgos/gv04.cc, src/tgbaalgos/hoaf.cc,
      src/tgbaalgos/isweakscc.cc, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
      src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/neverclaim.cc,
      src/tgbaalgos/postproc.cc, src/tgbaalgos/powerset.cc,
      src/tgbaalgos/randomgraph.cc, src/tgbaalgos/randomgraph.hh,
      src/tgbaalgos/reducerun.cc, src/tgbaalgos/replayrun.cc,
      src/tgbaalgos/safety.cc, src/tgbaalgos/save.cc, src/tgbaalgos/scc.cc,
      src/tgbaalgos/scc.hh, src/tgbaalgos/sccfilter.cc,
      src/tgbaalgos/sccinfo.cc, src/tgbaalgos/sccinfo.hh,
      src/tgbaalgos/se05.cc, src/tgbaalgos/simulation.cc,
      src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.cc,
      src/tgbaalgos/stripacc.cc, src/tgbaalgos/tau03.cc,
      src/tgbaalgos/tau03opt.cc, src/tgbaalgos/weight.cc,
      src/tgbaalgos/weight.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/Makefile.am, src/tgbatest/complementation.cc,
      src/tgbatest/complementation.test, src/tgbatest/degenlskip.test,
      src/tgbatest/det.test, src/tgbatest/dstar.test, src/tgbatest/emptchk.cc,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explpro4.test, src/tgbatest/explprod.test,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltl2tgba.test,
      src/tgbatest/maskacc.cc, src/tgbatest/maskacc.test,
      src/tgbatest/neverclaimread.test, src/tgbatest/randtgba.cc,
      src/tgbatest/readsave.test, src/tgbatest/sim.test,
      src/tgbatest/sim2.test, src/tgbatest/spotlbtt.test,
      src/tgbatest/tgbaread.test, src/tgbatest/tripprod.test,
      iface/dve2/dve2.cc: Adjust or use to the new acceptance interface.
      2c764fb3
  2. 29 Sep, 2014 1 commit
  3. 06 Sep, 2014 1 commit
  4. 31 Aug, 2014 5 commits
    • Alexandre Duret-Lutz's avatar
      neverparse: diagnose redefinition of state labels · d401fadc
      Alexandre Duret-Lutz authored
      Reported by Joachim Klein.
      
      * src/neverparse/neverclaimparse.yy: Store labels and the
      location of their first definition in a global map to catch
      redefinitions.
      * src/tgbatest/neverclaimread.test: Test it.
      * NEWS: Mention it.
      d401fadc
    • Alexandre Duret-Lutz's avatar
      ltlcross: fix missing check for complement of negative automata · 9a8becb8
      Alexandre Duret-Lutz authored
      * src/bin/ltlcross.cc: Fix it.
      * src/tgbatest/ltl2dstar.test: Test it.
      * NEWS: Mention it.
      9a8becb8
    • Alexandre Duret-Lutz's avatar
      ltlcross: add --verbose option · 49a09978
      Alexandre Duret-Lutz authored
      * src/bin/ltlcross.cc: Implement it.
      * NEWS: Mention it.
      49a09978
    • Alexandre Duret-Lutz's avatar
      remove wdbacomp.cc and wdbacomp.hh · 359e0c6f
      Alexandre Duret-Lutz authored
      The weak complementation is now implemented by dtgba_complement(), with
      dispatch based on the automaton property.
      
      * src/tgba/wdbacomp.cc, src/tgba/wdbacomp.hh: Remove.
      * src/tgba/Makefile.am: Adjust.
      * src/tgbaalgos/dtgbacomp.cc: Implement the weak version.
      * src/tgbaalgos/dtgbacomp.hh: Document it.
      * src/tgbaalgos/minimize.cc: Use dtgba_complement() instead.
      359e0c6f
    • Alexandre Duret-Lutz's avatar
      Remove futurecondcol and tgbascc. · c8b399c0
      Alexandre Duret-Lutz authored
      They are not used in Spot, and their interface is really horrible.  They
      are used in SOG-ITS to implement the SLAP product from TACAS'11, so we
      should support the functionality eventually, but maybe using the new
      kind of properties that can be attached to automata.  In the meantime,
      these classes are making refactoring harder.
      
      * src/tgba/futurecondcol.cc, src/tgba/futurecondcol.hh,
      src/tgba/tgbascc.cc, src/tgba/tgbascc.hh: Delete.
      * src/tgba/Makefile.am, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/checkpsl.cc, src/tgbatest/emptchk.cc: Adjust.
      c8b399c0
  5. 24 Aug, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      Better formula I/O for ipython. · ae35cc29
      Alexandre Duret-Lutz authored
      * src/ltlparse/public.hh, src/ltlparse/ltlparse.yy,
      src/ltlparse/ltlscan.ll (parse_error): New class.
      (parse_formula): New function that raises a parse_error
      exception on error.
      * src/ltlvisit/tostring.hh, src/ltlvisit/tostring.cc:
      (to_sclatex_string): New method.
      * wrap/python/spot.i: Catch the parser_error exception,
      and use the to_sclatex_string for MathJax rendering.
      * wrap/python/tests/run.in: Start ipython on demand.
      ae35cc29
  6. 23 Aug, 2014 3 commits
    • Alexandre Duret-Lutz's avatar
      Use shared_ptr for the emptiness check interfaces. · 6d7c258f
      Alexandre Duret-Lutz authored
      At the same time, this adds a is_empty() method to the tgba class,
      simplifying many places that ran emptiness checks.
      
      * iface/dve2/dve2check.cc, src/bin/ltlcross.cc,
      src/dstarparse/dra2ba.cc, src/ltlvisit/contain.cc, src/tgba/tgba.cc,
      src/tgba/tgba.hh, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/ce.cc,
      src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/gtec.cc,
      src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gv04.cc,
      src/tgbaalgos/gv04.hh, src/tgbaalgos/magic.cc,
      src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.cc,
      src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/powerset.cc,
      src/tgbaalgos/projrun.cc, src/tgbaalgos/projrun.hh,
      src/tgbaalgos/reducerun.cc, src/tgbaalgos/reducerun.hh,
      src/tgbaalgos/replayrun.cc, src/tgbaalgos/replayrun.hh,
      src/tgbaalgos/rundotdec.cc, src/tgbaalgos/rundotdec.hh,
      src/tgbaalgos/se05.cc, src/tgbaalgos/se05.hh,
      src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
      src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
      src/tgbaalgos/word.cc, src/tgbaalgos/word.hh,
      src/tgbatest/checkpsl.cc, src/tgbatest/complementation.cc,
      src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/randtgba.cc, wrap/python/ajax/spot.in,
      wrap/python/spot.i: Use shared_ptr.
      6d7c258f
    • Alexandre Duret-Lutz's avatar
      apcollect: Fix prototype. · 803e17bb
      Alexandre Duret-Lutz authored
      * src/ltlvisit/apcollect.cc, src/ltlvisit/apcollect.hh: Take automaton
      by reference.
      803e17bb
    • Alexandre Duret-Lutz's avatar
      Remove useless forward declarations of class tgba. · c3c02bfb
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/compsusp.hh, src/tgbaalgos/dotty.hh,
      src/tgbaalgos/emptiness.hh, src/tgbaalgos/hoaf.hh,
      src/tgbaalgos/neverclaim.hh, src/tgbaalgos/randomgraph.hh,
      src/tgbaalgos/simulation.hh: Here.
      c3c02bfb
  7. 22 Aug, 2014 2 commits
  8. 21 Aug, 2014 5 commits
  9. 20 Aug, 2014 8 commits
  10. 19 Aug, 2014 5 commits
  11. 18 Aug, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      tgbatest: rewrite emptchk.test in C++ · bc2e68f8
      Alexandre Duret-Lutz authored
      So that its run time goes from 10min+ to ~5s.
      
      * src/tgbatest/emptchk.cc: New file.
      * src/tgbatest/Makefile.am: Add it.
      * src/tgbatest/emptchk.test: Use it.
      bc2e68f8
    • Alexandre Duret-Lutz's avatar
      tgbatest: speed ltl2ta.test up! · b360b022
      Alexandre Duret-Lutz authored
      Again instead of calling ltl2tgba dozen of times with different options
      for various formulas, this implements a single executable that reads
      formulas from a file, translate them using the different setups, and
      dump statistics for comparison.  Valgrind now only has to be started
      once.
      
      * src/tgbatest/checkta.cc: New file.
      * src/tgbatest/Makefile.am: Use it.
      * src/tgbatest/ltl2ta.test: Rewrite using checkta.
      * src/tgbatest/ltl2tgba.cc: Remove a unused variable.
      b360b022
  12. 17 Aug, 2014 3 commits
    • Alexandre Duret-Lutz's avatar
      tgbatest: implement a large part of ltl2tgba.test in c++ · 9502266f
      Alexandre Duret-Lutz authored
      So that running valgrind is a lot more efficient.  Running
      ltl2tgba.test using to take more than 15min.  We are now down to
      25sec.
      
      * src/tgbatest/checkpsl.cc: New file.
      * src/tgbatest/Makefile.am: Add it.
      * src/tgbatest/ltl2tgba.test: Adjust.
      9502266f
    • 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
  13. 15 Aug, 2014 3 commits
    • Alexandre Duret-Lutz's avatar
      tgba: move boolean properties from tgba_digraph to tgba · b43f75e9
      Alexandre Duret-Lutz authored
      * src/tgba/tgbagraph.hh: Remove the set_bprop/get_bprop interface.
      * src/tgba/tgba.cc, src/tgba/tgba.hh: Add a new interface for
      setting/querying/copying the following properties: single_acc_set,
      state_based_acc, inherently_weak, deterministic.
      * src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
      src/neverparse/neverclaimparse.yy, src/saba/sabacomplementtgba.cc,
      src/tgba/tgbagraph.cc, src/tgbaalgos/degen.cc, src/tgbaalgos/dotty.cc,
      src/tgbaalgos/isdet.cc, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc,
      src/tgbaalgos/postproc.cc, src/tgbaalgos/sccfilter.cc,
      src/tgbaalgos/simulation.cc, src/tgbatest/degenlskip.test,
      src/tgbatest/ltl2tgba.cc: Adjust to the new interface, or use
      it to bypass some useless work.
      b43f75e9
    • Alexandre Duret-Lutz's avatar
      degen: return input if it is already degeneralized · e3b5119f
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/degen.cc (degeneralize, degeneralize_tba): Shortcut
      degeneralization if the automaton is already degeneralized.
      e3b5119f
    • Alexandre Duret-Lutz's avatar
      Fix some bdd_dict_ptr not being passed by const reference. · bf6c9067
      Alexandre Duret-Lutz authored
      * iface/dve2/dve2.cc, iface/dve2/dve2.hh,
      src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
      src/ltlvisit/contain.cc, src/ltlvisit/contain.hh,
      src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh,
      src/tgba/bddprint.cc, src/tgba/bddprint.hh, src/tgba/formula2bdd.cc,
      src/tgba/formula2bdd.hh, src/tgba/taatgba.cc, src/tgba/taatgba.hh,
      src/tgba/tgbagraph.hh, src/tgbaalgos/compsusp.cc,
      src/tgbaalgos/compsusp.hh, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/lbtt.hh, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/randomgraph.cc,
      src/tgbaalgos/randomgraph.hh, src/tgbaalgos/translate.cc,
      src/tgbaalgos/translate.hh, src/tgbaalgos/word.cc,
      src/tgbaalgos/word.hh: Pass shared_ptr to functions by const ref.
      bf6c9067