1. 26 Feb, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      Prefix many algorithms with runtime_error for unexpected acceptance · f0b1b943
      Alexandre Duret-Lutz authored
      * src/tgba/tgbagraph.cc (merge_transitions): Disable acceptance
      merging if Fin acceptance is used.
      * src/tgbaalgos/degen.cc, src/tgbaalgos/dtbasat.cc,
      src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/isweakscc.cc,
      src/tgbaalgos/lbtt.cc, src/tgbaalgos/minimize.cc,
      src/tgbaalgos/neverclaim.cc, src/tgbaalgos/safety.cc,
      src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc: Throw an
      exception if an unsupported type of acceptance is received.
      f0b1b943
  2. 23 Feb, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      rename set_acceptance_conditions as set_generalized_buchi · 76c676db
      Alexandre Duret-Lutz authored
      * src/hoaparse/hoaparse.yy, src/tgba/tgbagraph.hh,
      src/tgbaalgos/compsusp.cc, src/tgbaalgos/dtgbasat.cc,
      src/tgbaalgos/mask.cc, src/tgbaalgos/randomgraph.cc,
      src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
      src/tgbaalgos/stripacc.cc, src/tgba/tgba.hh: Here.
      76c676db
  3. 22 Jan, 2015 1 commit
  4. 19 Jan, 2015 2 commits
    • Alexandre Duret-Lutz's avatar
      simulation: take a tgba_digraph as input · 64469f3d
      Alexandre Duret-Lutz authored
      Issue #45.
      
      * src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Take
      a tgba_digraph is input.
      * src/tgbatest/ltl2tgba.cc: Adjust.
      64469f3d
    • Alexandre Duret-Lutz's avatar
      simulation: get rid of the "don't care" simulation reductions · 01590273
      Alexandre Duret-Lutz authored
      Those where never really publicized because they were slow and we failed
      to fix what we hopped to fix with them.  They where never used by
      default.  Getting rid of them will make it easier to cleanup the
      simulation code.
      
      * src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Remove
      the simulation code.
      * src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh,
      src/tgbatest/ltl2tgba.cc: Do not call it.
      * src/bin/spot-x.cc: Update doc.
      * src/tgbatest/sim.test: Delete this file.
      * src/tgbatest/Makefile.am: Adjust.
      * src/tgbatest/spotlbtt.test, bench/ltl2tgba/tools.sim:
      Remove uses to don't care simulation.
      01590273
  5. 03 Jan, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      tgba_digraph: force selection of properties kept on copy · 87c2b291
      Alexandre Duret-Lutz authored
      * src/tgba/tgba.hh: Declare a prop_set to specify the types.
      * src/tgba/tgbagraph.hh: Use prop_set for all copy constructors.
      * iface/ltsmin/ltsmin.cc, src/bin/autfilt.cc, src/bin/randaut.cc,
      src/tgbaalgos/are_isomorphic.cc, src/tgbaalgos/closure.cc,
      src/tgbaalgos/complete.cc, src/tgbaalgos/degen.cc,
      src/tgbaalgos/dotty.cc, src/tgbaalgos/dtgbacomp.cc,
      src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
      src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
      src/tgbaalgos/stutterize.cc, src/tgbatest/checkpsl.cc,
      src/tgbatest/emptchk.cc, src/tgbatest/ltl2tgba.cc,
      wrap/python/spot.i,src/graphtest/tgbagraph.test: Adjust all uses.
      87c2b291
  6. 01 Dec, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      accconv, acccompl: remove unused files · 202b9609
      Alexandre Duret-Lutz authored
      * src/priv/acccompl.cc, src/priv/acccompl.hh,
      src/priv/accconv.cc, src/priv/accconv.hh: Delete.
      * src/priv/Makefile.am: Adjust.
      * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/scc.cc,
      src/tgbaalgos/sccinfo.cc, src/tgbaalgos/simulation.cc: Remove unused
      includes.
      202b9609
  7. 28 Oct, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      tgba_digraph: add a copy constructor, and obsolete dupexp · 923785f7
      Alexandre Duret-Lutz authored
      * src/tgba/tgbagraph.hh, src/tgba/tgbagraph.cc: Add a copy constructor,
      and some method to purge unreachable states.
      * src/graph/graph.hh (defrag_states): Erase transition of removed
      states.
      * src/tgbaalgos/complete.cc, src/tgbaalgos/compsusp.cc,
      src/tgbaalgos/dtgbacomp.cc, src/tgbaalgos/simulation.cc,
      src/tgbatest/checkpsl.cc, src/tgbatest/emptchk.cc,
      src/tgbatest/ltl2tgba.cc: Adjust to use make_tgba_digraph() instead
      of tgba_dupexp_dfs() or tgba_dupexp_bfs().
      * src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Use
      make_tgba_digraph() when possible.
      * src/tgbatest/det.test, src/tgbatest/sim.test: Adjust expected results.
      923785f7
  8. 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
  9. 20 Aug, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      use scc_info instead of scc_map in a couple of easy places · 5c9a5403
      Alexandre Duret-Lutz authored
      * src/bin/dstar2tgba.cc, src/bin/ltlcross.cc, src/tgbaalgos/stats.cc,
      src/tgbaalgos/simulation.cc: Use scc_info instead of scc_map.
      * src/tgbaalgos/stats.hh, src/bin/common_output.hh: Change parameters
      types to be tgba_digraph_ptr instead tgba_ptr, so that scc_info can be
      used.
      5c9a5403
  10. 15 Aug, 2014 2 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
      Handle all automata through shared_ptr. (monstro patch) · 51151ab2
      Alexandre Duret-Lutz authored
      A type such as 'const tgba_digraph*' and 'tgba_digraph*' are replaced
      by 'const_tgba_digraph_ptr' and 'tgba_digraph_ptr'.  Additionally 'new
      tgba_digraph(...)' is replaced by 'make_tgba_digraph(...)'.
      
      This convention is followed by all automata types. Those smart
      pointers should normally be passed by const reference as input of
      function to avoid the atomic increments/decrements, but I probably
      missed a few, as this huge patch took me nearly 12h.
      
      * src/kripke/fwd.hh, src/tgba/fwd.hh: New files.
      * src/kripke/Makefile.am, src/tgba/Makefile.am: Adjust.
      * iface/dve2/dve2.cc, iface/dve2/dve2.hh, iface/dve2/dve2check.cc,
      src/bin/common_output.hh, src/bin/dstar2tgba.cc,
      src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc, src/bin/ltlcross.cc,
      src/bin/ltlfilt.cc, src/dstarparse/dra2ba.cc,
      src/dstarparse/dstar2tgba.cc, src/dstarparse/dstarparse.yy,
      src/dstarparse/nra2nba.cc, src/dstarparse/nsa2tgba.cc,
      src/dstarparse/public.hh, src/graphtest/tgbagraph.cc,
      src/kripke/fairkripke.hh, src/kripke/kripke.hh,
      src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
      src/kripke/kripkeprint.cc, src/kripke/kripkeprint.hh,
      src/kripkeparse/kripkeparse.yy, src/kripkeparse/public.hh,
      src/kripketest/parse_print_test.cc, src/ltlvisit/apcollect.cc,
      src/ltlvisit/apcollect.hh, src/ltlvisit/contain.cc,
      src/ltlvisit/contain.hh, src/neverparse/neverclaimparse.yy,
      src/neverparse/public.hh, src/priv/accmap.hh,
      src/priv/countstates.cc, src/priv/countstates.hh, src/saba/saba.hh,
      src/saba/sabacomplementtgba.cc, src/saba/sabacomplementtgba.hh,
      src/sabaalgos/sabadotty.cc, src/sabaalgos/sabadotty.hh,
      src/sabaalgos/sabareachiter.cc, src/sabaalgos/sabareachiter.hh,
      src/sabatest/sabacomplementtgba.cc, src/ta/ta.hh,
      src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/ta/taproduct.cc,
      src/ta/taproduct.hh, 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/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/bdddict.cc, src/tgba/bdddict.hh,
      src/tgba/formula2bdd.hh, src/tgba/futurecondcol.cc,
      src/tgba/futurecondcol.hh, src/tgba/taatgba.hh, src/tgba/tgba.cc,
      src/tgba/tgba.hh, src/tgba/tgbagraph.hh,
      src/tgba/tgbakvcomplement.cc, src/tgba/tgbakvcomplement.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/tgba/tgbascc.cc,
      src/tgba/tgbascc.hh, src/tgba/tgbasgba.cc, src/tgba/tgbasgba.hh,
      src/tgba/wdbacomp.cc, src/tgba/wdbacomp.hh,
      src/tgbaalgos/bfssteps.cc, src/tgbaalgos/bfssteps.hh,
      src/tgbaalgos/complete.cc, src/tgbaalgos/complete.hh,
      src/tgbaalgos/compsusp.cc, src/tgbaalgos/compsusp.hh,
      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/dtbasat.cc,
      src/tgbaalgos/dtbasat.hh, src/tgbaalgos/dtgbacomp.cc,
      src/tgbaalgos/dtgbacomp.hh, src/tgbaalgos/dtgbasat.cc,
      src/tgbaalgos/dtgbasat.hh, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/dupexp.hh, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/emptiness.hh, src/tgbaalgos/gtec/gtec.cc,
      src/tgbaalgos/gtec/gtec.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/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/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/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/sccinfo.cc, src/tgbaalgos/sccinfo.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/stripacc.cc, src/tgbaalgos/stripacc.hh,
      src/tgbaalgos/tau03.cc, src/tgbaalgos/tau03.hh,
      src/tgbaalgos/tau03opt.cc, src/tgbaalgos/tau03opt.hh,
      src/tgbaalgos/translate.cc, src/tgbaalgos/translate.hh,
      src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/complementation.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
      src/tgbatest/maskacc.cc, src/tgbatest/powerset.cc,
      src/tgbatest/randtgba.cc, src/tgbatest/taatgba.cc,
      src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc,
      wrap/python/ajax/spot.in, wrap/python/spot.i,
      wrap/python/tests/interdep.py: Use shared pointers for automata.
      51151ab2
  11. 13 Aug, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      Simplify copying of atomic propositions in new tgba_digraph. · 10e5c623
      Alexandre Duret-Lutz authored
      * src/tgba/bdddict.cc, src/tgba/bdddict.hh
      (register_all_propositions_of): New method.
      * src/tgba/tgbagraph.hh (copy_ap_of): New method.
      * src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
      src/dstarparse/nsa2tgba.cc, src/tgbaalgos/degen.cc,
      src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc,
      src/tgbaalgos/dupexp.cc, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
      src/tgbaalgos/sccfilter.cc, src/tgbaalgos/simulation.cc,
      src/tgbaalgos/stripacc.cc: Simplify using copy_ap_of.
      10e5c623
  12. 12 Aug, 2014 2 commits
    • Alexandre Duret-Lutz's avatar
      remove the sba interface · e9893586
      Alexandre Duret-Lutz authored
      * src/tgba/tgbagraph.hh: Automatize the setting of the SingleAccSet
      property.
      * src/tgbaalgos/minimize.cc: Do not bother setting SingleAccSet.
      * src/tgba/sba.hh: Delete.
      * src/tgba/Makefile.am, wrap/python/spot.i: Adjust.
      * src/taalgos/tgba2ta.cc: Do not include sba.hh.
      * src/neverparse/neverclaimparse.yy: Set the SBA property on the output.
      * src/tgbaalgos/lbtt.cc (lbtt_read_gba): Set the StateBasedAcc property
      on output.
      * src/tgbaalgos/dotty.cc, src/tgbaalgos/neverclaim.cc: Do not rely on
      the sba interface.
      * src/dstarparse/dra2ba.cc, src/dstarparse/nra2nba.cc,
      src/tgbaalgos/simulation.cc, src/tgbaalgos/sccfilter.cc: Set
      tgba_digraph::StateBasedAcc as appropriate.
      * src/tgbatest/ltl2tgba.cc: Add extra assert.
      e9893586
    • Alexandre Duret-Lutz's avatar
      remove tgba_explicit variants and the old scc_filter · e6ea90e3
      Alexandre Duret-Lutz authored
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Delete.
      * src/tgba/Makefile.am: Adjust.
      * src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh:
      Delete these obsoleted algorithms.
      * src/tgbaalgos/Makefile.am: Adjust.
      * src/tgbatest/explicit.cc, src/tgbatest/explicit.test,
      src/tgbatest/explicit2.cc, src/tgbatest/explicit2.test,
      src/tgbatest/explicit3.cc, src/tgbatest/explicit3.test:
      Delete.
      * src/tgbatest/Makefile.am: Adjust.
      * src/bin/ltl2tgba.cc, src/priv/countstates.cc,
      src/tgbaalgos/isweakscc.cc, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/minimize.cc,
      src/tgbaalgos/minimize.hh, src/tgbaalgos/powerset.cc,
      src/tgbaalgos/powerset.hh, src/tgbaalgos/sccfilter.cc,
      src/tgbaalgos/sccfilter.hh, src/tgbaalgos/simulation.cc,
      src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/powerset.cc, src/tgbatest/tgbaread.cc,
      src/tgbatest/tripprod.cc, wrap/python/ajax/spot.in,
      wrap/python/spot.i: Remove all remaining references to
      tgba_explicit.
      e6ea90e3
  13. 31 Jul, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      Use emplace() for associative containers. · fd5fbda4
      Alexandre Duret-Lutz authored
      * HACKING: Adjust requirements.  g++4.8 is now OK
      for all our targets.
      * iface/dve2/dve2.cc, src/dstarparse/dstarparse.yy
      src/dstarparse/nsa2tgba.cc, src/graph/ngraph.hh,
      src/ltlast/atomic_prop.cc, src/ltlast/binop.cc, src/ltlast/bunop.cc,
      src/ltlast/multop.cc, src/ltlast/unop.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/relabel.cc, src/taalgos/emptinessta.cc,
      src/taalgos/tgba2ta.cc, src/tgba/tgbaexplicit.hh, src/tgba/tgbagraph.hh,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbatba.cc,
      src/tgbaalgos/cycles.cc, src/tgbaalgos/degen.cc,
      src/tgbaalgos/dtbasat.cc, src/tgbaalgos/dtgbasat.cc,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/gtec/gtec.cc,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
      src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reachiter.cc,
      src/tgbaalgos/scc.cc, src/tgbaalgos/sccfilter.cc, src/tgbaalgos/se05.cc,
      src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
      src/tgbaalgos/tau03opt.cc, src/tgbaalgos/weight.cc: Use emplace()
      instead of insert(make_pair(...)) or insert(...::value_type(...)).
      fd5fbda4
  14. 10 Jul, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      tgbadigraph: delegate useful graph methods · 1a93166d
      Alexandre Duret-Lutz authored
      * src/tgba/tgbagraph.hh (new_state, new_states, new_transitions, out,
      trans_data): Delegate these useful graph methods so we do not have to
      call get_graph().
      * src/graphtest/tgbagraph.cc, src/tgbaalgos/dtbasat.cc,
      src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/lbtt.cc,
      src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
      src/tgbaalgos/sccfilter.cc,
      src/tgbaalgos/sccinfo.cc,src/tgbaalgos/simulation.cc: Simplify.
      1a93166d
  15. 27 Jun, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      common: introduce SPOT_UNREACHABLE and SPOT_UNIMPLEMENTED. · 2beacc39
      Alexandre Duret-Lutz authored
      * src/misc/common.hh (SPOT_UNIMPLEMENTED, SPOT_UNREACHABLE,
      SPOT_UNREACHABLE_BUILTIN): New macros.
      * src/bin/dstar2tgba.cc, src/bin/ltlcross.cc,
      src/dstarparse/dstar2tgba.cc, src/eltlparse/eltlparse.yy,
      src/ltlast/binop.cc, src/ltlast/bunop.cc, src/ltlast/constant.cc,
      src/ltlast/formula_tree.cc, src/ltlast/multop.cc, src/ltlast/nfa.cc,
      src/ltlast/unop.cc, src/ltlvisit/dotty.cc, src/ltlvisit/lbt.cc,
      src/ltlvisit/lunabbrev.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/randomltl.cc, src/ltlvisit/simpfg.cc,
      src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc, src/ltlvisit/tostring.cc,
      src/misc/intvcomp.cc, src/misc/minato.cc, src/tgba/bdddict.cc,
      src/tgba/formula2bdd.cc, src/tgba/tgbasafracomplement.cc,
      src/tgbaalgos/eltl2tgba_lacim.cc, src/tgbaalgos/ltl2taa.cc,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/simulation.cc, src/tgbatest/ltl2tgba.cc:  Use them.
      * src/sanity/style.test: Catch assert(0) and assert(!"text");
      2beacc39
  16. 20 Jun, 2014 3 commits
    • Alexandre Duret-Lutz's avatar
      Adjust some uses of bddtrue/bddfalse. · 4df4b4ef
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03opt.cc: Fix
      cases where bddtrue and bddfalse where used in a ternary operator.
      * src/sanity/style.test: Allow bdd_true()/bdd_false() to be
      used in ternary operators.
      4df4b4ef
    • Alexandre Duret-Lutz's avatar
      sccfilter: implement a new version of tgba_digraph · 13673a14
      Alexandre Duret-Lutz authored
      The new version currently supports removal of useless state as well as
      removal of acceptance sets from non-accepting SCCs (the two versions).
      It does not yet support simplifation of acceptance sets and removal of
      suspendable formulae.  However the design, using filters that are
      composed before being applied, should make it easier to implement.
      
      * src/tgbaalgos/sccfilter.cc, src/tgbaalgos/sccfilter.hh: Implement
      the new scc_filter and supporting classes.
      * src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Use it.
      The simulation now always return a tgba_digraph.
      * src/tgbatest/sim.test: Adjust.
      13673a14
    • Alexandre Duret-Lutz's avatar
      simulation: build tgba_digraph · e299a3d1
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/simulation.cc: Buid a tgba_digraph as the result of the
      simulation.
      * src/tgba/tgbagraph.hh (create_namer): New function.
      * src/tgbatest/basimul.test: Add an additional test case that caused a
      bug fixed in a previous patch.
      * src/tgbatest/sim.test: Adjust.
      e299a3d1
  17. 23 May, 2014 4 commits
  18. 12 Feb, 2014 6 commits
    • Alexandre Duret-Lutz's avatar
      simulation: use tuple and emplace_back for constraints · 83ed4f8c
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/simulation.cc: Here.
      83ed4f8c
    • Alexandre Duret-Lutz's avatar
      c++11: replace push(Type(args...)) by emplace(args...) · 49c66c63
      Alexandre Duret-Lutz authored
      This of course concerns push_back and push_front as well.
      
      * src/bin/common_finput.cc, src/bin/dstar2tgba.cc, src/bin/ltl2tgba.cc,
      src/bin/ltl2tgta.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
      src/dstarparse/dstarparse.yy, src/kripkeparse/kripkeparse.yy,
      src/ltlast/formula.cc, src/ltlparse/ltlparse.yy, src/misc/minato.cc,
      src/neverparse/neverclaimparse.yy, src/priv/bddalloc.cc, src/ta/ta.cc,
      src/taalgos/emptinessta.cc, src/tgba/taatgba.cc,
      src/tgbaalgos/gtec/gtec.cc, src/tgbaalgos/gtec/sccstack.cc,
      src/tgbaalgos/magic.cc, src/tgbaalgos/ndfs_result.hxx,
      src/tgbaalgos/rundotdec.cc, src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
      src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
      src/tgbaalgos/tau03opt.cc, src/tgbaparse/tgbaparse.yy: Use emplace
      to make the code less verbose and avoid creating temporaries.
      49c66c63
    • Alexandre Duret-Lutz's avatar
      Introduce tgba::release_iter(). · 06c69f88
      Alexandre Duret-Lutz authored
      Instead of "delete iter;" we now do "aut->release_iter(iter);" to
      give the iterator back to the automaton.  The TGBA classes now
      reuse a previously returned tgba_succ_iterator to answer a succ_iter()
      call, therefore avoiding (1) memory allocation, as well as (2) vtable
      and other constant member initialization.
      
      * src/tgba/tgba.hh, src/tgba/tgba.cc (release_iter, iter_cache_):
      Implement a release_iter() that stores the released iterator
      in iter_cache_.
      * src/tgba/succiter.hh (internal::succ_iterable): Move...
      * src/tgba/tgba.hh (tgba::succ_iterable): ... here. And use
      release_iter().
      
      * iface/dve2/dve2.cc, src/kripke/kripke.cc, src/kripke/kripke.hh,
      src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
      src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
      src/tgba/tgbaexplicit.hh, src/tgba/tgbamask.cc, src/tgba/tgbaproduct.cc,
      src/tgba/tgbaproxy.cc, src/tgba/tgbascc.cc, src/tgba/tgbatba.cc,
      src/tgba/tgbaunion.cc, src/tgba/tgbaunion.hh, src/tgba/wdbacomp.cc,
      src/tgbaalgos/bfssteps.cc, src/tgbaalgos/compsusp.cc,
      src/tgbaalgos/cycles.cc, src/tgbaalgos/dtbasat.cc,
      src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/gtec/gtec.cc,
      src/tgbaalgos/gv04.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/reachiter.cc,
      src/tgbaalgos/replayrun.cc, src/tgbaalgos/safety.cc,
      src/tgbaalgos/scc.cc, src/tgbaalgos/se05.cc,
      src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
      src/tgbaalgos/tau03opt.cc: Use release_iter() instead of deleting
      iterators, and used recycle iter_cache_ in implementations of
      tgba::succ_iter().
      06c69f88
    • Alexandre Duret-Lutz's avatar
      c++11: introduce tgba::succ(s) to replace tgba::succ_iter(s). · 487cd01d
      Alexandre Duret-Lutz authored
      | tgba_succ_iterator* i = aut->succ_iter(s);
      | for (i->begin(); !i->done(); i->next())
      |   {
      |      // ...
      |   }
      | delete i;
      
      becomes
      
      | for (auto i: aut->succ(s))
      |   {
      |      // ...
      |   }
      
      hiding the begin()/done()/next() interface, taking care of the delete,
      and allowing more optimization to come.
      
      * src/tgba/succiter.hh, src/tgba/tgba.hh: Implement the above
      new interface.
      * iface/gspn/ssp.cc, src/dstarparse/nsa2tgba.cc,
      src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc,
      src/tgba/tgbamask.cc, src/tgba/tgbasafracomplement.cc,
      src/tgba/tgbatba.cc, src/tgbaalgos/compsusp.cc, src/tgbaalgos/cutscc.cc,
      src/tgbaalgos/degen.cc, src/tgbaalgos/emptiness.cc,
      src/tgbaalgos/isdet.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/minimize.cc, src/tgbaalgos/powerset.cc,
      src/tgbaalgos/safety.cc, src/tgbaalgos/simulation.cc,
      src/tgbaalgos/tau03.cc, src/tgbatest/explicit2.cc: Update for
      loops.
      487cd01d
    • Alexandre Duret-Lutz's avatar
      c++11: get rid of spot::unique_ptr · 67b9e8d8
      Alexandre Duret-Lutz authored
      But do not replace it by std::unique_ptr, because this was not
      really equivalent.
      
      * src/misc/unique_ptr.hh: Delete.
      * src/misc/Makefile.am: Adjust.
      * src/tgbaalgos/simulation.cc, src/tgbatest/ltl2tgba.cc: Call
      delete explicitly.
      67b9e8d8
    • Alexandre Duret-Lutz's avatar
      c++11: replace Sgi::hash_* by Sgi::unordered_*. · 34e91b76
      Alexandre Duret-Lutz authored
      * bench/scc-stats/stats.cc, bench/split-product/cutscc.cc,
      iface/gspn/ssp.cc, src/bin/ltlcross.cc, src/bin/ltlfilt.cc,
      src/bin/randltl.cc, src/dstarparse/nsa2tgba.cc, src/ltlast/formula.hh,
      src/ltlast/nfa.hh, src/ltlvisit/contain.hh, src/ltlvisit/dotty.cc,
      src/ltlvisit/mark.hh, src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh,
      src/ltlvisit/simplify.cc, src/ltlvisit/snf.hh, src/misc/hash.hh,
      src/misc/mspool.hh, src/priv/acccompl.hh, src/priv/accconv.hh,
      src/saba/explicitstateconjunction.hh, src/saba/sabastate.hh,
      src/sabaalgos/sabareachiter.hh, src/sanity/style.test,
      src/ta/taexplicit.cc, src/ta/taexplicit.hh, src/taalgos/emptinessta.cc,
      src/taalgos/minimize.cc, src/taalgos/reachiter.hh, src/tgba/state.hh,
      src/tgba/taatgba.hh, src/tgba/tgbabddconcretefactory.hh,
      src/tgba/tgbaexplicit.hh, src/tgba/tgbakvcomplement.cc,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbatba.cc,
      src/tgba/tgbatba.hh, src/tgbaalgos/cutscc.cc, src/tgbaalgos/cycles.hh,
      src/tgbaalgos/degen.cc, src/tgbaalgos/dtbasat.cc,
      src/tgbaalgos/dtgbasat.cc, src/tgbaalgos/eltl2tgba_lacim.cc,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/gtec/explscc.hh,
      src/tgbaalgos/gtec/nsheap.hh, src/tgbaalgos/gv04.cc,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/magic.cc,
      src/tgbaalgos/minimize.cc, src/tgbaalgos/ndfs_result.hxx,
      src/tgbaalgos/powerset.hh, src/tgbaalgos/randomgraph.cc,
      src/tgbaalgos/reachiter.hh, src/tgbaalgos/replayrun.cc,
      src/tgbaalgos/safety.cc, src/tgbaalgos/scc.hh, src/tgbaalgos/se05.cc,
      src/tgbaalgos/simulation.cc, src/tgbaalgos/tau03.cc,
      src/tgbaalgos/tau03opt.cc: Adjust code.
      * src/sanity/style.test: Remove check.
      34e91b76
  19. 29 Jul, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Create a new src/priv/ directory for private algorithms. · f2078ac3
      Alexandre Duret-Lutz authored
      * README: Document it.
      * configure.ac: Generate src/priv/Makefile.
      * src/Makefile.am: Recurse into priv/.
      * src/priv/Makefile.am: New file.
      * src/misc/acccompl.cc, src/misc/acccompl.hh,
      src/misc/accconv.cc, src/misc/accconv.hh: Move to...
      * src/priv/acccompl.cc, src/priv/acccompl.hh,
      src/priv/accconv.cc, src/priv/accconv.hh: ... here.
      * src/misc/Makefile.am: Adjust.
      * src/tgbaalgos/scc.cc, src/tgbaalgos/simulation.cc: Adjust
      includes.
      * src/sanity/style.test: Make sure no public header
      file include a private one.
      f2078ac3
  20. 22 May, 2013 1 commit
  21. 12 May, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      simulation: Fix co-simulation and iterated simulations of BA automata · 0c7c9338
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/simulation.hh, src/tgbaalgos/simulation.cc
      (simulation_sba, cosimulation_sba, iterated_simulations_sba): New
      function.  Also speedup the existing functions by avoiding
      add_acceptince_conditions() and add_conditions().  Finally, use
      scc_filter_states() when dealing with degeneralized automata.
      * src/tgbaalgos/postproc.cc, src/tgbaalgos/postproc.hh (do_ba_simul):
      New method.  Use it after degeneralization.
      * src/tgba/tgbaexplicit.hh (get_transition, get_state): New methods.
      * src/tgbatest/basimul.test: New file.
      * src/tgbatest/Makefile.am (TESTS): Add it.
      * NEWS: Introduce the new function and summarize the bug.
      0c7c9338
  22. 09 Apr, 2013 3 commits
    • Alexandre Duret-Lutz's avatar
      simulation: many fixes. · 1337c9c3
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/simulation.cc: Attempt to fix several cases.
      * src/tgbatest/sim.test: Add more tests.
      * src/tgbatest/sim2.test: New file.
      * src/tgbatest/Makefile.am: Add it.
      1337c9c3
    • Alexandre Duret-Lutz's avatar
      ca941685
    • Thomas Badie's avatar
      Add the "don't care" simulation · 08c77318
      Thomas Badie authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * src/tgba/bddprint.cc, src/tgba/bddprint.hh: Add bdd_print_isop
      that prints the bdd into a Irreductible Sum Of Product.
      * src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh: Add a way to
      know which states (in the input) is which (in the result).
      * src/tgbaalgos/simulation.cc, src/tgbaalgos/simulation.hh: Add
      the Don't Care Simulation and the Don't Care Iterated Simulation.
      * src/tgbatest/ltl2tgba.cc, src/tgbatest/spotlbtt.test,
      src/tgbatest/Makefile.am, src/tgbatest/sim.test: Test them.
      * bench/ltl2tgba/algorithms, bench/ltl2tgba/README,
      bench/ltl2tgba/algorithms: Add a way to bench the don't care
      simulation.
      08c77318
  23. 24 Dec, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Address several issues reported by cppcheck all over the place. · a577850e
      Alexandre Duret-Lutz authored
      * src/bin/common_finput.cc, src/tgbaalgos/lbtt.cc: Use !empty() instead
      of size() > 0.
      * src/bin/ltl2tgta.cc, src/kripke/kripkeexplicit.cc,
      src/tgbatest/complementation.cc: Avoid useless assignments.
      * src/bin/ltlcross.cc: Correct mistaken assignment inside assert().
      * src/evtgba/symbol.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.hh,
      src/tgba/tgbasafracomplement.cc (operator=): Do not return a const
      reference.
      * src/evtgbatest/ltl2evtgba.cc, src/evtgbatest/product.cc,
      src/evtgbatest/product.cc: Check indices before using them, not after.
      * src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
      src/tgbatest/randtgba.cc: Pass constant strings by reference.
      * src/kripke/kripkeprint.cc, src/tgbaalgos/simulation.cc:
      Remove a useless operation.
      * src/ltlvisit/simplify.cc: Remove a duplicate condition.
      * src/misc/formater.hh: Remove unused attribute.
      * src/misc/modgray.cc: Initialize done_ in the constructor.
      * src/saba/explicitstateconjunction.cc,
      src/saba/explicitstateconjunction.hh (operator=): Fix prototype.
      * src/saba/sabacomplementtgba.cc: Remove unused default constructor.
      * src/ta/taexplicit.cc, src/ta/taproduct.cc, src/ta/tgtaproduct.cc,
      src/ta/tgtaproduct.hh, src/taalgos/emptinessta.cc,
      src/taalgos/minimize.cc, src/taalgos/reachiter.cc,
      src/taalgos/tgba2ta.cc, src/tgbaalgos/cutscc.cc: Use C++ casts, and
      ++it instead of it++.
      * src/taalgos/dotty.cc, src/tgbatest/ltl2tgba.cc: Refine the scope of
      variables.
      * src/tgba/tgbakvcomplement.hh (bdd_order): Always initialize bdd_.
      * src/tgba/tgbasgba.cc, src/tgba/wdbacomp.cc: Use the initialization
      line to initialize all members.
      a577850e
  24. 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
  25. 14 Nov, 2012 1 commit