1. 26 Aug, 2013 13 commits
  2. 23 Aug, 2013 3 commits
    • Alexandre Duret-Lutz's avatar
      dstar2tgba: new command. · d3b81809
      Alexandre Duret-Lutz authored
      * src/bin/dstar2tgba.cc, src/bin/man/dstar2tgba.x: New files.
      * src/bin/Makefile.am, src/bin/man/Makefile.am: Add them.
      * NEWS: Mention it.
      * src/bin/ltl2tgba.cc, src/tgbaalgos/stats.cc, doc/org/ltl2tgba.org:
      Rename the %S sequence as %c, for consistency with dstar2tgba.
      * src/tgbatest/ltl2dstar.test: Add more tests.
      * src/tgbatest/ltl2dstar2.test: New file.
      * src/tgbatest/Makefile.am: Add it.
      d3b81809
    • Alexandre Duret-Lutz's avatar
      Introduce spot::state_set. · 68ce9980
      Alexandre Duret-Lutz authored
      * src/tgba/state.hh: Define state_set and shared_state_set.
      * src/tgba/taatgba.cc, src/tgba/taatgba.hh: Rename the existing
      state_set (that inherits from spot::state) as set_state.
      * src/tgba/tgbakvcomplement.cc: Use shared_state_set instead
      of state_set.
      * src/tgbaalgos/minimize.cc (state_set): Rename as...
      (build_state_set): ... this.
      68ce9980
    • Alexandre Duret-Lutz's avatar
      degen: Improve when initial state is accepting without self-loop. · dfc5ff95
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/degen.cc: Choose the initial level according
      to acceptance condition common to all outgoing transitions.
      * src/tgbatest/degenid.test: Add test case.
      * NEWS: Mention it.
      dfc5ff95
  3. 29 Jul, 2013 10 commits
    • Alexandre Duret-Lutz's avatar
      ltlcross: give an example of accepted word for nonempty cross-products · e7522056
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/word.cc, src/tgbaalgos/word.hh: New files.
      * src/tgbaalgos/Makefile.am: Add them.
      * src/tgbatest/ltlcrossce.test: New file.
      * src/tgbatest/Makefile.am: Add it.
      * src/bin/ltlcross.cc: Compute and display an accepted word
      for nonempty cross-products.
      * NEWS, doc/org/ltlcross.org: Document it.
      e7522056
    • Alexandre Duret-Lutz's avatar
      7f31d703
    • Alexandre Duret-Lutz's avatar
      Use the count_state() function instead of stats_reachable(). · f00d97b4
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/postproc.cc: Move the count_state() function...
      * src/priv/countstates.cc, src/priv/countstates.hh: ... in these
      new files.
      * src/priv/Makefile.am: Add them.
      * src/saba/sabacomplementtgba.cc, src/tgba/tgbakvcomplement.cc,
      src/tgbaalgos/minimize.cc: Use count_states() instead of
      stats_reachable().
      f00d97b4
    • Alexandre Duret-Lutz's avatar
      Use -fvisibility=hidden globally. · 43b3df0e
      Alexandre Duret-Lutz authored
      * configure.ac: Check for flags and fill CXXFLAGS and CFLAGS.
      * iface/dve2/dve2.hh: Mark load_dve2 for export.
      * src/eltlparse/Makefile.am, src/kripke/Makefile.am,
      src/kripkeparse/Makefile.am, src/ltlast/Makefile.am,
      src/ltlenv/Makefile.am, src/ltlparse/Makefile.am,
      src/ltlvisit/Makefile.am, src/misc/Makefile.am,
      src/neverparse/Makefile.am, src/priv/Makefile.am, src/saba/Makefile.am,
      src/sabaalgos/Makefile.am, src/ta/Makefile.am, src/taalgos/Makefile.am,
      src/tgba/Makefile.am, src/tgbaalgos/Makefile.am,
      src/tgbaalgos/gtec/Makefile.am, src/tgbaparse/Makefile.am:
      Remove $(VISIBILITY_CXXFLAGS) now that it is set globally.
      43b3df0e
    • Alexandre Duret-Lutz's avatar
      Add a sanity check for installed private headers. · aeca44e0
      Alexandre Duret-Lutz authored
      If an installed header has an associated *.cc file (in the source
      tree), but does not declare any SPOT_API symbol, something is fishy.
      Either that header should not be installed, or it is missing the
      SPOT_API markers.
      
      * src/sanity/private.test: New test.
      * src/sanity/Makefile.am: Call it.
      * src/ltlast/Makefile.am: Do not install formula_tree.hh.
      * src/ltlvisit/Makefile.am: Do not install mark.hh.
      * src/tgbaalgos/Makefile.am: Do not intall weight.hh.
      aeca44e0
    • Alexandre Duret-Lutz's avatar
      Use -fvisibility=hidden in src/tgbaalgos/. · a0f5d53e
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/Makefile.am, src/tgbaalgos/gtec/Makefile.am: Add
      $(VISIBILITY_CXXFLAGS).
      * src/tgbaalgos/bfssteps.hh, src/tgbaalgos/compsusp.hh,
      src/tgbaalgos/cutscc.hh, src/tgbaalgos/cycles.hh,
      src/tgbaalgos/degen.hh, src/tgbaalgos/dotty.hh,
      src/tgbaalgos/dottydec.hh, src/tgbaalgos/dupexp.hh,
      src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/emptiness.hh,
      src/tgbaalgos/gtec/ce.hh, src/tgbaalgos/gtec/explscc.hh,
      src/tgbaalgos/gtec/gtec.hh, src/tgbaalgos/gtec/nsheap.hh,
      src/tgbaalgos/gtec/sccstack.hh,
      src/tgbaalgos/gtec/status.hh, src/tgbaalgos/gv04.hh,
      src/tgbaalgos/isdet.hh, src/tgbaalgos/isweakscc.cc,
      src/tgbaalgos/isweakscc.hh, src/tgbaalgos/lbtt.hh,
      src/tgbaalgos/ltl2taa.hh, src/tgbaalgos/ltl2tgba_fm.hh,
      src/tgbaalgos/ltl2tgba_lacim.hh, src/tgbaalgos/magic.hh,
      src/tgbaalgos/minimize.hh, src/tgbaalgos/neverclaim.hh,
      src/tgbaalgos/postproc.hh, src/tgbaalgos/powerset.hh,
      src/tgbaalgos/projrun.hh, src/tgbaalgos/randomgraph.hh,
      src/tgbaalgos/reachiter.hh, src/tgbaalgos/reducerun.hh,
      src/tgbaalgos/reductgba_sim.cc, src/tgbaalgos/reductgba_sim.hh,
      src/tgbaalgos/replayrun.hh, src/tgbaalgos/rundotdec.hh,
      src/tgbaalgos/safety.hh, src/tgbaalgos/save.hh, src/tgbaalgos/scc.hh,
      src/tgbaalgos/sccfilter.hh, src/tgbaalgos/se05.hh,
      src/tgbaalgos/simulation.hh, src/tgbaalgos/stats.hh,
      src/tgbaalgos/stripacc.hh, src/tgbaalgos/tau03.hh,
      src/tgbaalgos/tau03opt.hh, src/tgbaalgos/translate.hh: Mark public
      symbol with SPOT_API.
      a0f5d53e
    • Alexandre Duret-Lutz's avatar
      Use -fvisibility=hidden in src/tgba/. · a12922b3
      Alexandre Duret-Lutz authored
      * src/tgba/Makefile.am: Use $(VISIBILITY_CXXFLAGS).
      * src/tgba/bdddict.hh, src/tgba/bddprint.hh, src/tgba/formula2bdd.hh,
      src/tgba/futurecondcol.hh, src/tgba/state.hh, src/tgba/statebdd.hh,
      src/tgba/succiter.hh, src/tgba/succiterconcrete.hh, src/tgba/taatgba.hh,
      src/tgba/tgba.hh, src/tgba/tgbabddconcrete.hh,
      src/tgba/tgbabddconcretefactory.hh, src/tgba/tgbabddconcreteproduct.hh,
      src/tgba/tgbabddcoredata.hh, src/tgba/tgbabddfactory.hh,
      src/tgba/tgbaexplicit.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: Mark exported symbols with
      SPOT_API.
      * src/tgba/public.hh: Mark the file as deprecated.
      * src/tgbaalgos/cutscc.hh: Adjust.
      a12922b3
    • Alexandre Duret-Lutz's avatar
      Move bdd_allocator to src/priv/. · 1ed43038
      Alexandre Duret-Lutz authored
      * src/misc/bddalloc.cc, src/misc/bddalloc.hh,
      src/misc/freelist.cc, src/misc/freelist.hh: Move ...
      * src/priv/bddalloc.cc, src/priv/bddalloc.hh,
      src/priv/freelist.cc, src/priv/freelist.hh: ... here.
      * src/misc/Makefile.am, src/priv/Makefile.am: Adjust.
      * src/tgba/bdddict.cc: Adjust include.
      * src/tgbaalgos/ltl2tgba_fm.cc: Remove useless include.
      1ed43038
    • 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
    • Alexandre Duret-Lutz's avatar
      Fix interpretation of {e[*]} and !{e[*]}. · cb7bdf8c
      Alexandre Duret-Lutz authored
      This follows from a discussion with Ernesto Posse.
      
      The semantics for the {...} operator we use in Spot comes from the
      cl(...) operator defined by Dax et al. (ATVA'09).  This is slightly
      different from the the way the PSL spec interprets a SERE used in the
      context of a temporal formula (appendix B.3.1.1.2, item 7).
      
      cl({a;b}[*]) would match any infinite word that starts with a;b, while
      in PSL {a;b}[*] would match any infinite word that alternates a and b.
      
      Spot documents that {SERE} in a temporal formula is interpreted like
      cl(SERE) however it failed to ignore the empty prefix of SERE.  So
      {{a;b}[*]} would match anything, because the empty word is a prefix of
      any word, and is also accepted by {a;b}[*].  Some trivial identities
      and basic rewritings were also wrongly considering these empty
      prefixes as well.
      
      This patch therefore fixes the translation and syntactic
      simplification rules, to really ignore these empty prefixes.
      
      In some future version it should probably be wise to rename this {...}
      operator as cl(...), and use {...} for the semantics given in appendix
      B.3.1.1.2 (item 7) of the PSL specs.
      
      * src/ltlast/unop.cc: Fix trivial identities.  We have
      {[*0]} = 0 and !{[*0]} = 1.
      * src/ltlvisit/simplify.cc: Fix basic rewriting rules.
      {e[*]} = {e} and !{e[*]} = !{e}.
      * doc/tl/tl.tex: Adjust documentation.
      * doc/tl/tl.bib (dax.09.atva): New entry.
      * src/tgbaalgos/ltl2tgba_fm.cc: Do not accept any
      infinite word for {e[*]} just because the empty
      prefix is matched by e[*].
      * src/tgbatest/ltl2tgba.test: Add a test case.
      * NEWS: Mention it.
      * THANKS: Add Ernesto.
      cb7bdf8c
  4. 23 Jul, 2013 1 commit
  5. 20 Jul, 2013 1 commit
  6. 19 Jun, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Fix "BDD Error" in scc_filter(). · fc5d4e1a
      Alexandre Duret-Lutz authored
      If all the acceptance set of an SCC but the first one were useless, the
      scc_filter() algorithm could abort with a BDD error because of a bug in
      the logic.
      
      * src/tgbaalgos/sccfilter.cc (scc_filter): Fix.
      * src/tgbatest/sccsimpl.test: Add a test case supplied by Étienne
      Renault.
      fc5d4e1a
  7. 09 Jun, 2013 2 commits
    • Alexandre Duret-Lutz's avatar
      Improve documentation here and there. · 178ba876
      Alexandre Duret-Lutz authored
      * doc/Doxyfile.in: Update to Doxygen 1.8.4
      * doc/footer.html: Point to the mailing list.
      * doc/mainpage.dox: Point to spot::translator,
      and spot::kripke.
      * src/ta/tgta.hh: Do not use \emph.
      * src/tgba/succiter.hh: Fix rendering of example.
      * src/tgba/tgba.hh: Correct documentation.
      * src/tgbaalgos/cycles.hh: Improve rendering of
      documentation.
      * src/tgbaalgos/lbtt.hh, src/tgbaalgos/minimize.hh:
      Document missing arguments.
      178ba876
    • Alexandre Duret-Lutz's avatar
      Fix verbatim blocks of Doxygen comments. · 1cd9b204
      Alexandre Duret-Lutz authored
      * src/ltlast/formula.hh, src/ltlvisit/contain.hh,
      src/ltlvisit/randomltl.hh, src/ltlvisit/reduce.hh,
      src/ltlvisit/remove_x.hh, src/ltlvisit/simplify.hh, src/ltlvisit/snf.hh,
      src/misc/minato.hh, src/misc/optionmap.hh,
      src/saba/sabacomplementtgba.hh, src/taalgos/emptinessta.hh,
      src/taalgos/minimize.hh, src/taalgos/tgba2ta.hh,
      src/tgba/tgbakvcomplement.hh, src/tgbaalgos/cycles.hh,
      src/tgbaalgos/eltl2tgba_lacim.hh, src/tgbaalgos/gtec/gtec.hh,
      src/tgbaalgos/gv04.hh, src/tgbaalgos/ltl2taa.hh,
      src/tgbaalgos/ltl2tgba_fm.hh, src/tgbaalgos/ltl2tgba_lacim.hh,
      src/tgbaalgos/magic.hh, src/tgbaalgos/minimize.hh,
      src/tgbaalgos/randomgraph.hh, src/tgbaalgos/se05.hh,
      src/tgbaalgos/simulation.hh, src/tgbaalgos/tau03.hh,
      src/tgbaalgos/tau03opt.hh: Surround verbatim blocks with /** ... */
      instead of using /// on each line.  Otherwise Doxygen will output the
      leading "///" tokens -- apparently this is a feature.
      * src/sanity/style.test: Strip multi-line comments before checking
      code style.
      1cd9b204
  8. 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
  9. 22 May, 2013 1 commit
  10. 12 May, 2013 3 commits
    • Alexandre Duret-Lutz's avatar
      bdddict: add an unregister_all_typed_variables() method · b4670f85
      Alexandre Duret-Lutz authored
      * src/tgba/bdddict.cc, src/tgba/bdddict.hh
      (unregister_all_typed_variables): New method.
      * src/tgbaalgos/degen.cc (degeneralize): Use it.
      * NEWS: Mention it.
      b4670f85
    • 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
    • Alexandre Duret-Lutz's avatar
      Introduce scc_filter_states(). · 6b5b002f
      Alexandre Duret-Lutz authored
      The main motivation is the upcoming patch that introduces
      simulation_sba() and requires this function.
      
      * src/tgbaalgos/sccfilter.hh, src/tgbaalgos/sccfilter.cc: Implement it.
      * src/tgbaalgos/postproc.cc: Use it for monitors, because we do not
      care about acceptance conditions.
      * NEWS: Mention it.
      6b5b002f
  11. 09 May, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      lbtt: improve the LBTT output · eed7e2df
      Alexandre Duret-Lutz authored
      Provide a way to output automata with state-based acceptance.  Also
      print the guards using to_lbt_string() for consistency: as a
      consequence, atomic proposition that do not match p[0-9]+ are now
      double-quoted.
      
      * src/tgbaalgos/lbtt.hh (lbtt_reachable): Add a sba option.
      * src/tgbaalgos/lbtt.cc: Implement it, and use to_lbt_string().
      * src/ltlvisit/lbt.cc (is_pnum): Reject 'p' without number.
      * src/bin/ltl2tgba.cc: Activate the sba option of --ba was given.
      Add an option --lbtt=t to get the old behavior.
      * src/bin/man/ltl2tgba.x: Document the LBTT format we use with
      some links and examples.
      * src/tgbatest/lbttparse.test: More tests.
      * src/tgbatest/ltlcross2.test: Add a check with --lbtt --ba.
      * NEWS: Update.
      eed7e2df
  12. 27 Apr, 2013 3 commits
    • Alexandre Duret-Lutz's avatar
      isweakscc: cleanup interfaces and code · cb7cd868
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/isweakscc.cc, src/tgbaalgos/isweakscc.hh: Do not pass
      automata since they are known from the scc.  Avoid several dynamic
      casts.  Try to match the established vocabulary wrt "weak" and
      "inherently weak".  The old is_weak_scc() that used to enumerate cycles
      is therefore renamed to is_inherently_weak_scc(), while the new
      is_weak_scc() will should ensure all transitions are fully accepting.
      * NEWS: Mention the new interface.
      cb7cd868
    • Etienne Renault's avatar
      Heuristics for SCC strength · 450ec22b
      Etienne Renault authored and Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz committed
      Provides 3 heurisitics to compute the strength of an SCC:
      inherent, structural and syntactic
      
      * src/tgbaalgos/isweakscc.cc: implementation
      * src/tgbaalgos/isweakscc.hh: definition
      450ec22b
    • Alexandre Duret-Lutz's avatar
      translate: use compositional suspension on request · b6d4806d
      Alexandre Duret-Lutz authored
      This has to be turned on using "-x comp-susp" and other
      related options documented in spot-x (7).
      
      * src/tgbaalgos/translate.hh, src/tgbaalgos/translate.cc:
      Add support for calling composition-suspension, with
      optional simulation, WDBA-minimization, and composition.
      * src/bin/spot-x.cc: Document the new options.
      * src/bin/man/spot-x.x: Add some bibliography.
      * src/tgbatest/ltlcross2.test: Test it.
      b6d4806d