1. 07 Sep, 2012 1 commit
  2. 28 Aug, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Add an option to use WDBA only if it reduces the size of the automaton. · 60ec3ace
      Alexandre Duret-Lutz authored
      * src/tgba/tgbaexplicit.hh (num_states): New method.
      * src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc
      (minimize_obligation): Add a reject_bigger option.
      * src/tgbatest/ltl2tgba.cc (-RM): New option.
      * src/tgbatest/spotlbtt.test: Test -RM.
      * bench/ltl2tgba/algorithms: Include -RM in addition to -Rm, and
      replace -RDS by -RIS.
      * NEWS: Mention this.
      60ec3ace
  3. 19 Jun, 2012 1 commit
  4. 03 May, 2012 1 commit
  5. 30 Apr, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Make it possible to output UTF-8 for dotty(). · e93ceeba
      Alexandre Duret-Lutz authored
      * src/tgba/tgbaexplicit.hh: Rerganize a bit to
      allow different functions to be used to format
      states.  Add an enabled_utf8() method to
      tgba_explicit_formula.
      * src/tgbaalgos/dotty.hh, src/tgbaalgos/dotty.cc:
      Simplify the interface by not depending on
      dotty_decorator explicitely.
      * src/tgba/bddprint.hh (enable_utf8): New function.
      * src/tgba/bddprint.cc (enable_utf8): Implement it
      and use the global utf8 flag in other functions.
      * src/tgbatest/ltl2tgba.cc: Add an -8 option for
      UTF-8 outpout.
      * wrap/python/spot.i: Adjust for tgbexplicit.hh
      changes.
      e93ceeba
  6. 28 Apr, 2012 1 commit
  7. 13 Apr, 2012 1 commit
    • Alexandre Duret-Lutz's avatar
      Declare the sba class in its own header. · 37a6b601
      Alexandre Duret-Lutz authored
      * src/tgba/sba.hh: New file, extrated from...
      * src/tgba/tgbaexplicit.hh: ... here.  Also rename
      sba_explicit::is_accepting as sba_explicit::state_is_accepting for
      consistency with tgba_sba_proxy.
      * src/tgbatest/explicit2.cc: Adjust to the renaming.
      * src/tgba/Makefile.am: Add sba.hh.
      37a6b601
  8. 12 Apr, 2012 5 commits
    • Pierre PARUTTO's avatar
      Correct a bug in tgba_explicit_succ_iterator class · 937248e5
      Pierre PARUTTO authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * src/tgba/tgbaexplicit.hh (current_acceptance_conditiosn):
      remove a suspect and in return statement
      937248e5
    • Pierre PARUTTO's avatar
      Modify is_accepting sba's method to run in constant time. · 9cfc4082
      Pierre PARUTTO authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * src/tgba/tgbaexplicit.hh: modify is_accepting method
      9cfc4082
    • Pierre PARUTTO's avatar
      Implement sba_explicit class, add tests · eec3a12f
      Pierre PARUTTO authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * src/tgba/tgbaexplicit.hh: Add sba_explicit implementation
      * src/tgbatest/explicit2.cc: Add test to check the good instantiation
      of sba_explicit_*
      eec3a12f
    • Alexandre Duret-Lutz's avatar
      tgba_explicit: make the new class work with Swig. · 603c5d60
      Alexandre Duret-Lutz authored
      * src/tgba/tgbaexplicit.hh (explicit_graph, tgba_explicit): Make the
      transition type explicit.
      (state_explicit_string::get_iterator): New method.
      (explicit_graph::get_transition): Use it.
      (tba): Rename as ...
      (sba): ... this.
      * wrap/python/spot.i: Instanciate explicit_graph and tgba_explicit
      for all three types.
      603c5d60
    • Pierre PARUTTO's avatar
      Revamp tgbaexplicit.hh · a15aac28
      Pierre PARUTTO authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      * src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc: Factor most of
      the code in an explicit_graph<State, Type> that inherits from type.
      The tgba_explicit type<State> now inherits from
      explicit_graph<State,tgba>.
      * src/ltlvisit/contain.cc, src/neverparse/neverclaimparse.yy
      src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh, src/tgbaalgos/cutscc.cc,
      src/tgbaalgos/dupexp.cc, src/tgbaalgos/dupexp.hh,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/minimize.cc,
      src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
      src/tgbaalgos/sccfilter.cc, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/complementation.cc, src/tgbatest/explicit.cc,
      src/tgbatest/explprod.cc, src/tgbatest/ltl2tgba.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/powerset.cc,
      src/tgbatest/tgbaread.cc, src/tgbatest/tripprod.cc:
      Replace tgba_explicit* by the actual type used.
      * src/tgbatest/explicit2.cc: New file.
      * src/tgbatest/Makefile.am: Add it.
      a15aac28
  9. 31 Mar, 2011 2 commits
    • Alexandre Duret-Lutz's avatar
      Introduct a down_cast macro. · 9f63bb66
      Alexandre Duret-Lutz authored
      * src/misc/casts.hh: New file.
      * src/misc/Makefile.am: Add it.
      * iface/dve2/dve2.cc, iface/gspn/gspn.cc, iface/gspn/ssp.cc,
      src/evtgba/explicit.cc, src/evtgba/product.cc, src/misc/casts.hh,
      src/tgba/state.hh, src/tgba/statebdd.cc, src/tgba/taatgba.cc,
      src/tgba/taatgba.hh, src/tgba/tgbabddconcrete.cc,
      src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh,
      src/tgba/tgbakvcomplement.cc, src/tgba/tgbaproduct.cc,
      src/tgba/tgbasafracomplement.cc, src/tgba/tgbasgba.cc,
      src/tgba/tgbatba.cc, src/tgba/tgbaunion.cc, src/tgba/wdbacomp.cc,
      src/tgbaalgos/ndfs_result.hxx, src/tgbaalgos/reductgba_sim.cc,
      src/tgbaalgos/reductgba_sim_del.cc: Use down_cast when
      appropriate.
      9f63bb66
    • Alexandre Duret-Lutz's avatar
      Make state_explicit instances persistent objects. · 36f7c648
      Alexandre Duret-Lutz authored
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh: Merge
      state_explicit and tgba_explicit::state.  In the past,
      state_explicit was a small object encapsulating a pointer to the
      persistent tgba_explicit::state; and we used to clone() and
      destroy() a lot of state_explicit instance.  Now state_explicit is
      persistent, and clone() and destroy() have no effects.
      * src/tgba/tgbareduce.cc: Adjust, since this inherits from
      tgbaexplicit and uses the internals of state_explicit.
      * src/tgbatest/reductgba.cc: Fix deletion order for automata.
      * src/tgba/tgba.hh (last_support_conditions_input_,
      last_support_variables_input_): Make these protected, so
      they can be zeroed by tgba_explicit.
      36f7c648
  10. 12 Jan, 2011 1 commit
  11. 05 Jan, 2011 2 commits
    • Alexandre Duret-Lutz's avatar
      Cleanup the minimize.hh interface. · 8c972ad3
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/minimize.hh, src/tgbaalgos/minimize.cc
      (minimize): Split into ...
      (minimize_wdba, minimize_monitor): ... these two functions.
      * src/tgbatest/ltl2tgba.cc (main): Adjust the call to
      minimize_monitor.
      * wrap/python/cgi-bin/ltl2tgba.in: Adjust the calls to
      minimize_monitor and minimize_obligation.
      * wrap/python/spot.i: Declare minimize_monitor, minimize_wdba,
      minimize_obligations.
      * src/tgba/tgbaexplicit.hh (tgba_explicit_string)
      (tgba_explicit_formula, tgba_explicit_number): Add fake
      declarations so that SWIG can see they inherits from tgba.
      8c972ad3
    • Felix Abecassis's avatar
      Modify the powerset algorithm to keep track of accepting states · e2e138f6
      Felix Abecassis authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      from the initial automaton.
      
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
      Added class tgba_explicit_number, a tgba_explicit where states are
      labelled by integers.
      * src/tgbaalgos/powerset.hh, src/tgbaalgos/powerset.cc:
      When building the deterministic automaton, keep track of which states
      were created from an accepting state in the initial automaton.
      The states are added to the new optional parameter (if not 0),
      acc_list.
      Use tgba_explicit_number instead of tgba_explicit_string to build
      the result.
      * src/tgbaalgos/scc.cc (spot): Small fix.
      Print everything on std::cout.
      e2e138f6
  12. 06 Nov, 2010 2 commits
    • Alexandre Duret-Lutz's avatar
      Cosmetics to please sanity checks. · 1e0f99e8
      Alexandre Duret-Lutz authored
      * src/neverparse/public.hh, src/neverparse/parsedecl.hh: Fix
      inclusion guards.
      * src/tgba/tgbaexplicit.hh, src/tgbatest/emptchk.test,
      src/tgbatest/ltl2tgba.cc: Fix trailing whitespaces.
      1e0f99e8
    • Alexandre Duret-Lutz's avatar
      Make sure the neverclaim parser works on the output of spin and · fe1f59cd
      Alexandre Duret-Lutz authored
      ltl2ba.
      
      * src/neverparse/neverclaimparse.yy: Accept multiple labels
      for the same state.  Honor accepting states.  Forward parse
      error from the parser used for guards.  Accept "false" as a
      single instruction for a state.
      * src/neverparse/neverclaimscan.ll: Recognize "false" specifically,
      and remove the ";" hack.
      * src/tgba/tgbaexplicit.cc
      (tgba_explicit_string::~tgba_explicit_string): Adjust not to
      destroy a state twice.
      * src/tgba/tgbaexplicit.hh
      (tgba_explicit_string::add_state_alias): New function.
      * src/tgbatest/defs.in (SPIN, LTL2BA): New variables.
      * src/tgbatest/neverclaimread.test: Check error messages for
      syntax errors in guards.  Make sure we can read the output
      of `spin -f' and `ltl2ba -f' on a few test formulae.
      fe1f59cd
  13. 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
  14. 20 Jan, 2010 1 commit
  15. 23 Nov, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      Specialize scc_filter when handling tgba_explicit_formula automata. · 81e0872b
      Alexandre Duret-Lutz authored
      If the input is a tgba_explicit_formula we can output a
      tgba_explicit_formula too, and we want to do that because it is
      more space efficient.
      
      * src/tgba/tgbaexplicit.hh (get_label): New method.
      * src/tgbaalgos/sccfilter.cc (create_transition): New function,
      to handle tgba_explicit_formula and tgba_explicit_string output
      differently.
      (filter_iter): Template it on the output tgba type, and adjust
      to call create_transition.
      (scc_filter): Use filter_iter<tgba_explicit_formula> or
      filter_iter<tgba_explicit_string> depending on the input tgba
      type.
      81e0872b
  16. 20 Nov, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      Strip useless acceptance conditions in scc_filter(). · dfb9c662
      Alexandre Duret-Lutz authored
      A useless acceptance conditions is one that is always implied by
      another.
      
      * src/misc/bddop.hh, src/misc/bddop.cc
      (compute_neg_acceptance_conditions): New function.
      * src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
      (set_acceptance_conditions): New function.
      * src/tgbaalgos/scc.cc (build_map, build_scc_stats, dump_scc_dot):
      Keep track of useful acceptance conditions.
      (useful_acc_of): New function.
      * src/tgbaalgos/scc.hh (scc_stats, scc_map::scc::useful_scc): New
      attributes.
      * src/tgbaalgos/sccfilter.cc (filter_iter): Adjust to filter
      useless acceptance conditions.
      (scc_filter): Compute useful acceptance conditions and pass them
      to filter_iter.
      dfb9c662
  17. 10 Nov, 2009 1 commit
    • Alexandre Duret-Lutz's avatar
      Introduce tgba_explicit_labelled<label> so that we can build · 4e22bb8b
      Alexandre Duret-Lutz authored
      tgba_explicit instances labelled by other objects than strings.
      
      * src/tgba/tgbaexplicit.cc, src/tgba/tgbaexplicit.hh:
      Split tgba_explicit in two levels: tgba_explicit with unlabelled
      states, and tgba_explicit_labelled templated by the type of
      the label.  Define tgba_explicit_string (with the interface
      of the former tgba_explicit class) and tgba_explicit_formula
      for future use in ltl2tgba.cc.
      * src/tgba/tgbareduc.cc, src/tgba/tgbareduc.hh,
      src/tgbaalgos/cutscc.cc, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/emptiness.cc, src/tgbaalgos/ltl2tgba_fm.cc,
      src/tgbaalgos/powerset.cc, src/tgbaalgos/randomgraph.cc,
      src/tgbaparse/public.hh, src/tgbaparse/tgbaparse.yy,
      src/tgbatest/explicit.cc, src/tgbatest/ltl2tgba.cc: Adjust to
      use tgba_explicit_string when appropriate.
      4e22bb8b
  18. 25 Feb, 2008 1 commit
  19. 08 Dec, 2004 2 commits
  20. 17 Nov, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgba/bdddict.hh, src/tgba/state.hh, src/tgba/statebdd.hh, · 2cd298e4
      Alexandre Duret-Lutz authored
      src/tgba/succiter.hh, src/tgba/succiterconcrete.hh,
      src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
      src/tgba/tgbabddconcreteproduct.hh, src/tgba/tgbaexplicit.hh,
      src/tgba/tgbaproduct.hh, src/tgba/tgbareduc.hh,
      src/tgba/tgbatba.hh, src/tgbaalgos/emptiness.hh,
      src/tgbaalgos/magic.hh, src/tgbaalgos/replayrun.hh,
      src/tgbaalgos/gtec/gtec.hh, iface/gspn/ssp.hh: Introduce Doxygen
      groups in the documentation.  Presently this only covers the
      tgba/ directory, and the emptiness-check algorithms.
      * doc/Doxyfile.in (EXCLUDE_PATTERNS): Skip Bison-generated files
      in src/evtgbaparse/.
      2cd298e4
  21. 12 Nov, 2004 1 commit
  22. 03 Nov, 2004 1 commit
    • Alexandre Duret-Lutz's avatar
      * tgbaalgos/reachiter.hh, tgbaalgos/reachiter.cc · 42b05c7a
      Alexandre Duret-Lutz authored
      (tgba_reachable_iterator::process_link): Take the state* as arguments
      in addition to the state numbers.
      * src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
      (tgba_explicit::copy_acceptance_conditions_of): New method.
      * tgbaalgos/dupexp.cc (dupexp_iter::dupexp_iter): Call
      copy_acceptance_conditions_of.
      (dupexp_iter::process_state, duplex_iter::declare_state,
      dupexp_iter::name_): Remove.
      (dupexp_iter::process_link): Adjust prototype, and format
      the state here rather than in process_state.
      * tgbaalgos/stats.cc, tgbaalgos/dotty.cc: Adjust prototype
      of process_link.
      42b05c7a
  23. 03 Dec, 2003 1 commit
  24. 28 Nov, 2003 2 commits
    • Alexandre Duret-Lutz's avatar
      * src/tgbaparse/tgbaparse.yy (cond_list): Simplify into... · 18117865
      Alexandre Duret-Lutz authored
      (condition): ... this.  We now accept only one condition, which
      is a formula.
      * src/tgba/tgbaexplicit.hh (tgba_explicit::add_neg_condition,
      tgba_explicit::get_condition): Remove, unused.
      * src/tgba/tgbaexplicit.cc: Likewise.
      18117865
    • Alexandre Duret-Lutz's avatar
      * iface/gspn/eesrg.cc, iface/gspn/eesrg.hh, iface/gspn/gspn.cc, · e341cc9a
      Alexandre Duret-Lutz authored
      iface/gspn/gspn.hh, src/tgba/bdddict.cc, src/tgba/bdddict.hh,
      src/tgba/bddprint.hh, src/tgba/succiter.hh,
      src/tgba/succiterconcrete.cc, src/tgba/succiterconcrete.hh,
      src/tgba/tgba.hh, src/tgba/tgbabddconcrete.cc,
      src/tgba/tgbabddconcrete.hh, src/tgba/tgbabddconcretefactory.cc,
      src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddcoredata.cc,
      src/tgba/tgbabddcoredata.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/dotty.cc, src/tgbaalgos/dupexp.cc,
      src/tgbaalgos/emptinesscheck.cc, src/tgbaalgos/emptinesscheck.hh,
      src/tgbaalgos/lbtt.cc, src/tgbaalgos/lbtt.hh,
      src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_lacim.cc,
      src/tgbaalgos/save.cc, src/tgbatest/explicit.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbaparse/tgbaparse.yy,
      wrap/python/tests/ltl2tgba.py:
      Rewrite `accepting condition' as `acceptance condition'.
      The symbols which have been renamed are:
      tgba::all_accepting_conditions
      tgba::neg_accepting_conditions
      succ_iterator::current_accepting_conditions
      bdd_dict::register_accepting_variable
      bdd_dict::register_accepting_variables
      bdd_dict::is_registered_accepting_variable
      tgba_bdd_concrete_factory::declare_accepting_condition
      tgba_bdd_core_data::accepting_conditions
      tgba_bdd_core_data::all_accepting_conditions
      tgba_explicit::declare_accepting_condition
      tgba_explicit::complement_all_accepting_conditions
      tgba_explicit::has_accepting_condition
      tgba_explicit::get_accepting_condition
      tgba_explicit::add_accepting_condition
      tgba_explicit::all_accepting_conditions
      tgba_explicit::neg_accepting_conditions
      state_tba_proxy::acceptance_cond
      accepting_cond_splitter
      e341cc9a
  25. 24 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Explicit automata can now have arbitrary logic formula on their · 20289e4e
      Alexandre Duret-Lutz authored
      arcs.  ltl2tgba_fm benefits from this and join multiple arcs with
      the same destination and acceptance conditions.
      * src/tgba/formula2bdd.cc, src/tgba/formula2bdd.hh: New files.
      * src/tgba/Makefile.am (tgba_HEADERS, libtgba_la_SOURCES): Add them.
      * src/tgba/bddprint.cc, src/tgba/bddprint.hh (bdd_pring_formula,
      bdd_format_formula): New functions.
      * src/tgba/tgbaexplicit.hh (tgba_explicit::get_condition,
      tgba_explicit::add_condition, tgba_explicit::add_neg_condition,
      tgba_explicit::declare_accepting_condition,
      tgba_explicit::has_accepting_condition,
      tgba_explicit::get_accepting_condition,
      tgba_explicit::add_accepting_condition): Take a const formula*.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::add_condition):
      Rewrite using formula_to_bdd.
      * src/tgbaalgos/dotty.cc (dotty_bfs::process_link): Use
      bdd_print_formula to display conditions.
      * src/tgbaalgos/save.cc (save_bfs::process_state): Likewise.
      * src/tgbaalgos/ltl2tgba_fm.cc (translate_dict::bdd_to_formula):
      New function.
      (translate_dict::conj_bdd_to_atomic_props): Remove.
      (ltl_to_tgba_fm): Factor successors on accepting conditions
      and destinations, not conditions.  Use bdd_to_formula to translate
      the conditions.
      * src/tgbaparse/tgbaparse.yy: Expect conditions as a formula
      in a string, call the LTL parser for this.
      * src/tgbaparse/tgbascan.ll: Process " and \ escapes in
      strings.
      * src/tgbatest/emptchke.test, src/tgbatest/explicit.test,
      src/tgbatest/explpro2.test, src/tgbatest/explpro3.test,
      src/tgbatest/explprod.test, src/tgbatest/mixprod.test,
      src/tgbatest/readsave.test, src/tgbatest/tgbaread.test,
      src/tgbatest/tripprod.test: Adjust to new syntax for explicit
      automata.
      20289e4e
  26. 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
  27. 14 Nov, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/ltltest/Makefile.am (AM_CXXFLAGS): New variable. · 982c5efc
      Alexandre Duret-Lutz authored
      * tgba/bdddict.hh (bdd_dict::register_propositions,
      bdd_dict::register_accepting_variables): New methods.
      * src/bdddict.cc: Likewise.
      * tgba/tgbaexplicit.cc (tgba_explicit::add_conditions,
      tgba_explicit::add_accepting_conditions): New methods.
      (tgba_explicit::get_init_state): Add an "empty" initial
      state to empty automata.
      * tgba/tgbaexplicit.hh: (tgba_explicit::add_conditions,
      tgba_explicit::add_accepting_conditions): New methods.
      * tgbaalgos/Makefiles.am (tgbaalgos_HEADERS, libtgbaalgos_la_SOURCES):
      Add dupexp.hh and dupexp.cc.
      * tgbaalgos/dupexp.hh, tgbaalgos/dupexp.cc: New files.
      * tgbatest/Makefile.am (AM_CXXFLAGS): New variable.
      (check_SCRIPTS): Add dupexp.test.
      (CLEANFILES): Add output1 and output2.
      * tgbatest/dupexp.test: New file.
      * tgbatest/ltl2tgba.cc: Handle -s and -S.
      * tgbatest/tgbaread.cc: Remove unused variable exit_code.
      982c5efc
  28. 29 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      * src/tgba/state.hh (state::hash): New method. · f0de3868
      Alexandre Duret-Lutz authored
      (state_ptr_equal, state_ptr_hash): New functors.
      * src/tgba/statebdd.hh, src/tgba/statebdd.cc (state_bdd::hash):
      New method.
      * src/tgba/tgbaexplicit.hh, src/tgba/tgbaexplicit.cc
      (state_explicit::hash): New method.
      (ns_map, sn_map): Use Sgi::hash_map instead of std::map.
      * src/tgba/tgbaproduct.hh, src/tgba/tgbaproduct.cc
      (state_product::hash): New method.
      * src/tgba/tgbatba.cc (state_tba_proxy::hash): New method.
      * src/tgbaalgos/lbtt.cc (acp_seen, todo_set, seen_map): Redefine
      using Sgi::hash_map or Sgi::hash_set.
      (lbtt_reachable): Don't erase a key that is pointed to by an
      iterator.
      * src/tgbaalgos/reachiter.cc
      (tgba_reachable_iterator::~tgba_reachable_iterator): Likewise.
      * src/tgbaalgos/magic.cc (magic_search::~magic_search()): Likewise.
      * src/tgbaalgos/magic.hh (hash_type): Redefine using Sgi::hash_map.
      * src/tgbaalgos/reachiter.hh (seen_map): Redefine using Sgi::hash_map.
      * iface/gspn/gspn.cc (state_gspn::hash): New method.
      * src/misc/hash.hh (string_hash): New functor.
      f0de3868
  29. 15 Aug, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      This implements Couvreur's FM'99 ltl2tgba translation. · 2b9f1720
      Alexandre Duret-Lutz authored
      * src/tgba/bdddict.cc (bdd_dict::is_registered): Split as ...
      (bdd_dict::is_registered_proposition, bdd_dict::is_registered_state,
      bdd_dict::is_registered_accepting_variable): ... these.
      * src/tgba/bdddict.hh: Likewise.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::set_init_state): New method.
      (tgba_explicit::declare_accepting_condition): Arrange so that this
      function can be called during the construction of the automaton.
      (tgba_explicit::complement_all_accepting_conditions): New method.
      (tgba_explicit::has_accepting_condition): Adjust to call
      bdd_dict::is_registered_accepting_variable.
      * src/tgba/tgbaexplicit.hh (tgba_explicit::set_init_state,
      tgba_explicit::complement_all_accepting_conditions): New methods.
      * src/tgbaalgos/ltl2tgba_fm.cc, src/tgbaalgos/ltl2tgba_fm.hh:
      New files.
      * src/tgbaalgos/Makefile.am (tgbaalgos_HEADERS,
      libtgbaalgos_la_SOURCES): Add them.
      * src/tgbaalgos/ltl2tgba.hh: Add bibtex entry in comment.
      * src/tgbatest/Makefile.am (check_PROGRAMS): Remove spotlbtt
      and tbalbtt.
      (tbalbtt_SOURCES, tbalbtt_CXXFLAGS, spotlbtt_SOURCES): Remove.
      * src/tgbatest/spotlbtt.cc: Delete, superseded by "ltl2tgba -F -t".
      * src/tgbatest/ltl2tgba.cc: Implement the -f and -F options.
      * src/tgbatest/spotlbtt.test: Use "ltl2tgba -F -t" instead of
      "spotlbtt", "ltl2tgba -F -t -D" instead of "tbalbtt", and add
      also check the ltl2tgba_fm translator.
      * wrap/python/spot.i: Wrap ltl2tgba_fm.
      * wrap/python/cgi/ltl2tgba.in: Add radio buttons to select
      between ltl2tgba and ltl2tgba_fm.
      * wrap/python/tests/ltl2tgba.py: Add support for the -f option.
      * wrap/python/tests/ltl2tgba.test: Try the -f option.
      2b9f1720
  30. 17 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Now succ_iter() can fetch extra information from · 1d9c3d64
      Alexandre Duret-Lutz authored
      the root of a product to reduce its number of successors.
      * src/tgba/Makefile.am (libtgba_la_SOURCES): Add tgba.cc.
      * src/tgba/tgba.hh (tgba::succ_iter): Add the global_state and
      global_automaton arguments.
      (tgba::support_conditions, tgba::support_variables,
      tgba::compute_support_conditions, tgba::compute_support_variables):
      New functions.
      (tgba::last_support_conditions_input_,
      tgba::last_support_conditions_output_,
      tgba::last_support_variables_input_,
      tgba::last_support_variables_output_): New attributes.
      * src/tgba/tgbabddconcrete.cc (tgba_bdd_concrete::succ_iter):
      Handle the two new arguments.
      (tgba_bdd_concrete::compute_support_conditions,
      tgba_bdd_concrete::compute_support_variables): Implement them.
      * src/tgba/tgbabddconcrete.hh: Adjust.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::succ_iter):	Ignore
      the two new arguments.
      (tgba_explicit::compute_support_conditions,
      tgba_explicit::compute_support_variables): Implement them.
      * src/tgba/tgbaexplicit.hh: Adjust.
      * src/tgba/tgbaproduct.cc (tgba_product::succ_iter): Handle the
      two new arguments.
      (tgba_product::compute_support_conditions,
      tgba_product::compute_support_variables): Implement them.
      * src/tgba/tgbaproduct.hh: Adjust.
      * iface/gspn/gspn.cc (tgba_gspn_private_::last_state_cond_input,
      tgba_gspn_private_::last_state_cond_output,
      (tgba_gspn_private_::tgba_gspn_private_): Set last_state_cond_input.
      (tgba_gspn_private_::~tgba_gspn_private_): Delete
      last_state_cond_input.
      (tgba_gspn_private_::state_conds): New function, eved out
      from tgba_gspn::succ_iter.
      (tgba_gspn::succ_iter): Use it.  Use the two new arguments.
      (tgba_gspn::compute_support_conditions,
      tgba_gspn::compute_support_variables): New functions.
      * iface/gspn/gspn.hh: Adjust.
      1d9c3d64
  31. 15 Jul, 2003 1 commit
    • Alexandre Duret-Lutz's avatar
      Homogenize passing of automata as pointers, not references. · 66b1630c
      Alexandre Duret-Lutz authored
      Disallow copy for security.
      
      * src/tgba/tgbabddconcrete.hh (tgba_bdd_concrete): Disallow copy.
      * src/tgba/tgbaexplicit.hh (tgba_explicit): Likewise.
      * src/tgba/tgbaexplicit.cc (tgba_explicit::operator=,
      tgba_explicit::tgba_explicit(tgba_explicit)): Remove.
      * src/tgba/tgbabddconcreteproduct.cc
      (tgba_bdd_concrete_product_factory::tgba_bdd_concrete_product_factory,
      product): Take operand automata as pointers.
      * src/tgba/tgbabddconcreteproduct.hh (product): Likewise.
      * src/tgba/tgbaproduct.cc, src/tgba/tgbaproduct.hh:
      (tgba_product): Disallow copy.
      (tgba_product::tgba_product): Take operand automata as pointers.
      * src/tgbaalgos/dotty.cc (dotty_state, dotty_rec, dotty_reachable):
      Take tgba arguments as pointer.
      * src/tgbaalgos/dotty.hh (dotty_reachable): Likewise.
      * src/tgbaalgos/lbtt.cc (fill_todo, lbtt_reachable): Likewise.
      * src/tgbaalgos/lbtt.hh (lbtt_reachable): Likewise.
      * src/tgbaalgos/ltl2tgba.cc, src/tgbaalgos/ltl2tgba.hh (ltl_to_tgba):
      Likewise.
      * src/tgbaalgos/save.cc (save_rec, tgba_save_reachable): Likewise.
      * src/tgbaalgos/save.hh (save): Likewise.
      * src/tgbatest/explicit.cc, src/tgbatest/explprod.cc,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/ltlprod.cc,
      src/tgbatest/mixprod.cc, src/tgbatest/readsave.cc,
      src/tgbatest/spotlbtt.cc, src/tgbatest/tgbaread.cc,
      src/tgbatest/tripprod.cc: Likewise.
      66b1630c