1. 31 Jul, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      hoa: fix I/O of determinism · d3607a7c
      Alexandre Duret-Lutz authored
      Fixes #212.
      
      * spot/parseaut/parseaut.yy, spot/twaalgos/hoa.cc: Recognize
      exist-branch, and adjust printer to the 1.1 semantics.
      * tests/core/alternating.test, tests/core/complete.test,
      tests/core/det.test, tests/core/explsum.test,
      tests/core/parseaut.test, tests/core/readsave.test,
      tests/core/sbacc.test, tests/core/tgbagraph.test,
      tests/python/alternating.py, tests/python/dualize.py: Adjust test
      cases.
      * NEWS: Mention the change.
      d3607a7c
  2. 03 Jun, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      simulation: do not depend on bdd numbers for ordering classes · ae0e84ac
      Alexandre Duret-Lutz authored
      Fixes #262 again.  Reported by Maximilien Colange.
      
      * spot/twaalgos/simulation.cc: Use state numbers to order classes, not
      their signatures.  The problem was that even if two simulation of the
      same automaton assign the same signature, the BDD identifier used for
      that signature might be different, and therefore the ordering obtained
      by using BDDs as keys in a map can be different.  A side-effect of
      this change is that the order of states in automata produced by
      simulation-based reduction may change; many tests had to be updated.
      * tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
      report.
      * tests/core/complement.test, tests/core/det.test,
      tests/core/parseaut.test, tests/core/prodor.test,
      tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
      tests/python/decompose.ipynb, tests/python/highlighting.ipynb,
      tests/python/piperead.ipynb, tests/python/testingaut.ipynb,
      tests/python/word.ipynb: Update test cases for new order of states.
      ae0e84ac
  3. 02 Jun, 2017 1 commit
    • Alexandre Duret-Lutz's avatar
      simulation: do not depend on bdd numbers for ordering classes · 9ab4b840
      Alexandre Duret-Lutz authored
      Fixes #262 again.  Reported by Maximilien Colange.
      
      * spot/twaalgos/simulation.cc: Use state numbers to order classes, not
      their signatures.  The problem was that even if two simulation of the
      same automaton assign the same signature, the BDD identifier used for
      that signature might be different, and therefore the ordering obtained
      by using BDDs as keys in a map can be different.  A side-effect of
      this change is that the order of states in automata produced by
      simulation-based reduction may change; many tests had to be updated.
      * tests/core/ltl2tgba.test: Add a new test case based on Maximilien's
      report.
      * tests/core/complement.test, tests/core/det.test,
      tests/core/parseaut.test, tests/core/prodor.test, tests/core/scc.test,
      tests/python/atva16-fig2a.ipynb, tests/python/automata.ipynb,
      tests/python/decompose.ipynb, tests/python/decompose_scc.py,
      tests/python/highlighting.ipynb, tests/python/piperead.ipynb,
      tests/python/sccinfo.py, tests/python/simstate.py,
      tests/python/testingaut.ipynb, tests/python/word.ipynb: Update
      test case for new order of states.
      9ab4b840
  4. 19 Jul, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      simplifier: new LTL simplifications · d5b2de7f
      Alexandre Duret-Lutz authored
      if e is pure eventuality and g => e, then e U g = Fg
      if u is purely universal and u => g, then u R g = Gg
      
      Fixes #93.
      
      * doc/tl/tl.tex, NEWS: Document the rules.
      * spot/tl/simplify.cc: Implement them.
      * tests/core/reduccmp.test: Test them.
      * tests/core/det.test: Adjust.
      d5b2de7f
  5. 18 Jul, 2016 3 commits
  6. 04 Jan, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      Merge the core and python tests in the tests/ directory · 5cb94a1a
      Alexandre Duret-Lutz authored
      * tests/: Rename as...
      * tests/core/: ... this.
      * python/tests/: Rename as...
      * tests/python/: ... this.
      * python/tests/run.in: Move as...
      * tests/run.in: This, and adjust.
      * tests/Makefile.am: Adjust to run both core and python tests.
      * configure.ac, README, debian/python3-spot.examples, debian/rules,
      doc/org/tut.org, python/Makefile.am, spot/ltsmin/Makefile.am,
      spot/ltsmin/kripke.test, spot/sanity/ipynb.test: Adjust.
      5cb94a1a
  7. 27 Dec, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      move spot/bin/ and spot/tests/ up by one level · 134dfc73
      Alexandre Duret-Lutz authored
      * spot/bin/: Move...
      * bin/: ... here.
      * spot/tests/: Move...
      * tests/: ... here.
      * Makefile.am, README, bench/stutter/Makefile.am,
      bench/stutter/stutter_invariance_formulas.cc, doc/Makefile.am,
      configure.ac, debian/rules, spot/Makefile.am, spot/ltsmin/Makefile.am,
      spot/ltsmin/kripke.test, spot/sanity/style.test, python/tests/run.in:
      Adjust.
      134dfc73
  8. 04 Dec, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      rename src/ as spot/ and use include <spot/...> · f120dd32
      Alexandre Duret-Lutz authored
      * NEWS: Mention the change.
      * src/: Rename as ...
      * spot/: ... this, adjust all headers to include <spot/...> instead of
      "...", and adjust all Makefile.am to search headers from the top-level
      directory.
      * HACKING: Add conventions about #include.
      * spot/sanity/style.test: Add a few more grep to catch cases
      that do not follow these conventions.
      * .gitignore, Makefile.am, README, bench/stutter/Makefile.am,
      bench/stutter/stutter_invariance_formulas.cc,
      bench/stutter/stutter_invariance_randomgraph.cc, configure.ac,
      debian/rules, doc/Doxyfile.in, doc/Makefile.am,
      doc/org/.dir-locals.el.in, doc/org/g++wrap.in, doc/org/init.el.in,
      doc/org/tut01.org, doc/org/tut02.org, doc/org/tut03.org,
      doc/org/tut10.org, doc/org/tut20.org, doc/org/tut21.org,
      doc/org/tut22.org, doc/org/tut30.org, iface/ltsmin/Makefile.am,
      iface/ltsmin/kripke.test, iface/ltsmin/ltsmin.cc,
      iface/ltsmin/ltsmin.hh, iface/ltsmin/modelcheck.cc,
      wrap/python/Makefile.am, wrap/python/ajax/spotcgi.in,
      wrap/python/spot_impl.i, wrap/python/tests/ltl2tgba.py,
      wrap/python/tests/randgen.py, wrap/python/tests/run.in: Adjust.
      f120dd32
  9. 12 Jun, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      Rename src/tests/ltl2tgba as src/tests/ikwiad. · 17dc2f86
      Alexandre Duret-Lutz authored
      Fixes #23.
      
      * src/tests/ltl2tgba.cc: Rename as ...
      * src/tests/ikwiad.cc: ... this.
      * src/tests/Makefile.am, src/tests/babiak.test, src/tests/checkta.cc,
      src/tests/complementation.test, src/tests/cycles.test,
      src/tests/dbacomp.test, src/tests/degendet.test,
      src/tests/degenid.test, src/tests/det.test, src/tests/dfs.test,
      src/tests/dstar.test, src/tests/dupexp.test, src/tests/emptchke.test,
      src/tests/kv.test, src/tests/ltl2neverclaim-lbtt.test,
      src/tests/ltl2neverclaim.test, src/tests/ltl2tgba.test,
      src/tests/ltlcounter.test, src/tests/ltlcross.test,
      src/tests/neverclaimread.test, src/tests/obligation.test,
      src/tests/parseaut.test, src/tests/randaut.test,
      src/tests/randpsl.test, src/tests/renault.test,
      src/tests/satmin2.test, src/tests/sccsimpl.test, src/tests/sim2.test,
      src/tests/simdet.test, src/tests/spotlbtt.test, src/tests/wdba.test,
      src/tests/wdba2.test, bench/emptchk/README, bench/emptchk/defs.in,
      bench/ltlclasses/run, bench/ltlcounter/run, bench/wdba/run: Adjust.
      17dc2f86
  10. 28 Apr, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      dot: heuristic to switch between circles and ellipses · a4b63e8e
      Alexandre Duret-Lutz authored
      * src/twaalgos/dotty.cc: Add an option (e) to force elliptic shape, and
      a heuristic to choose between circle and ellipse by default.
      * src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc: Document 'e'.
      * src/taalgos/dotty.cc: Ignore 'e'.
      * wrap/python/spot.py (setup): Do not force circular states.  The
      default should be fine.
      * src/tests/det.test, src/tests/dstar.test, src/tests/monitor.test,
      src/tests/neverclaimread.test, src/tests/readsave.test,
      src/tests/sccdot.test, src/tests/tgbagraph.test: Adjust expected
      results.
      * NEWS: Adjust.
      a4b63e8e
  11. 24 Apr, 2015 1 commit
  12. 24 Mar, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      remove_fin: remove useless states · 020bbd44
      Alexandre Duret-Lutz authored
      * src/tgba/tgbagraph.cc (purge_dead_states): Using a DFS to compute a
      topological order, allowing to remove useless using a second
      pass (instead of iterating the passes until there is nothing to remove).
      * src/tgbaalgos/remfin.cc: Call purge_dead_states().
      * src/tgbatest/remfin.test, src/tgbatest/det.test: Adjust expected
      output.
      * doc/org/autfilt.org: Update example.
      020bbd44
  13. 13 Feb, 2015 1 commit
  14. 22 Jan, 2015 1 commit
  15. 04 Jan, 2015 1 commit
  16. 03 Jan, 2015 2 commits
    • Alexandre Duret-Lutz's avatar
      dotty: Specialize for tgba_digraph_ptr · 77cb836e
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/dotty.cc: Specialize for tgba_digraph_ptr.
      * src/tgba/tgbagraph.hh, src/tgbaalgos/dupexp.cc: Copy properties by
      default when cloning an automaton.
      * src/tgbatest/det.test, src/tgbatest/dstar.test,
      src/tgbatest/ltl2tgba.test, src/tgbatest/monitor.test,
      src/tgbatest/neverclaimread.test, src/tgbatest/tgbaread.test: Adjust
      tests.
      77cb836e
    • Alexandre Duret-Lutz's avatar
      dotty: switch to horizontal output and add options · 0f178288
      Alexandre Duret-Lutz authored
      * src/tgbaalgos/dotty.cc, src/tgbaalgos/dotty.hh: Add an options
      parameter.
      * src/bin/randaut.cc, src/bin/autfilt.cc, src/bin/dstar2tgba.cc,
      src/bin/ltl2tgba.cc, wrap/python/ajax/spot.in: Use it.
      * src/tgbatest/det.test, src/tgbatest/dstar.test,
      src/tgbatest/ltl2tgba.cc, src/tgbatest/monitor.test,
      src/tgbatest/neverclaimread.test, src/tgbatest/tgbaread.test,
      src/graphtest/tgbagraph.test: Adjust
      because automata are now output horizontally.
      * NEWS: Mention the change.
      0f178288
  17. 11 Dec, 2014 1 commit
  18. 02 Dec, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      graph: store the source indices in the transition vector · 0db0eca1
      Alexandre Duret-Lutz authored
      ... and use it to sort transitions.
      
      * src/graph/graph.hh: Adjust storage of source index.  Provide
      remove_dead_transitions_(), sort_transitions_() and
      chain_transitions_() methods.
      * src/tgba/tgbagraph.cc (merge_transitions): Rewrite using
      above methods.
      * src/tgba/tgbagraph.hh: Add a comparison operator for
      transitions.
      * src/tgbatest/degenlskip.test, src/tgbatest/det.test,
      src/tgbatest/ltl2ta.test, src/tgbatest/neverclaimread.test,
      src/tgbatest/readsave.test: Adjust expected transition order in test
      cases.
      0db0eca1
  19. 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
  20. 24 Oct, 2014 1 commit
  21. 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
  22. 12 Aug, 2014 1 commit
    • Alexandre Duret-Lutz's avatar
      get rid of tgba_tba_proxy · 5739240c
      Alexandre Duret-Lutz authored
      Replace it by a new degeneralize_tba(), that use the same tricks as
      degeneralize().
      
      * src/tgba/tgbatba.cc, src/tgba/tgbatba.hh: Delete.
      * src/tgba/Makefile.am: Adjust.
      * src/tgbaalgos/degen.cc, src/tgbaalgos/degen.hh: Implement
      a degeneralize_tba() function sharing its code
      with degeneralize().
      * src/tgbatest/ltl2tgba.cc: Rename -D to -DT so that we can pass it the
      same option as -DS.
      * src/tgbatest/degenid.test, src/tgbatest/emptchk.test,
      src/tgbatest/emptchke.test, src/tgbatest/ltlcounter.test,
      src/tgbatest/ltlcross.test, src/tgbatest/spotlbtt.test,
      src/tgbatest/ltl2tgba.test: Adjust.
      * src/tgbatest/det.test, src/tgbatest/emptchk.test: Adjust numbers to
      the smaller output.
      * src/saba/sabacomplementtgba.cc, src/saba/sabacomplementtgba.hh,
      src/tgbaalgos/minimize.cc, src/tgbaalgos/neverclaim.cc,
      src/tgbaalgos/neverclaim.hh, src/tgbaalgos/postproc.cc,
      src/tgbatest/randtgba.cc, src/tgbatest/complementation.cc,
      wrap/python/spot.i, wrap/python/tests/ltl2tgba.py,
      src/sabatest/sabacomplementtgba.cc: Adjust to the removal
      of tgba_tba_proxy, using degeneralize_tba() if needed.
      5739240c
  23. 10 Aug, 2014 1 commit
  24. 06 Dec, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      bin: add support for reading formulas from CSV files. · 0faea814
      Alexandre Duret-Lutz authored
      * NEWS: Mention it.
      * src/bin/common_finput.cc, src/bin/common_finput.hh: Implement it.
      * src/bin/common_output.cc, src/bin/common_output.hh: Add the %< and
      %> escapes.
      * src/bin/ltlfilt.cc: Connect %< and %> to the
      prefix andsuffix of the input, and document them.
      * src/tgbatest/det.test, src/tgbatest/nondet.test: Simplify these
      tests that read CSV files.
      0faea814
  25. 26 Sep, 2013 1 commit
    • Alexandre Duret-Lutz's avatar
      Arrange multops so that Boolean arguments come first. · 536e45b3
      Alexandre Duret-Lutz authored
      This helps recursive implication checks.  Also order
      atomic propositions with strverscmp().
      
      * src/ltlast/formula.hh (formula_ptr_less_than_multop,
      is_literal, atomic_prop_cmp): New.
      * src/ltlast/formula.cc (is_literal, atomic_prop_cmp): Implement them.
      * src/ltlast/multop.cc: Use formula_ptr_less_than_multop.
      * src/ltltest/isop.test, src/ltltest/ltlfilt.test,
      src/tgbatest/det.test, src/tgbatest/dstar.test,
      src/tgbatest/explicit.test, src/tgbatest/explpro2.test,
      src/tgbatest/explpro3.test, src/tgbatest/explprod.test,
      src/tgbatest/nondet.test, src/tgbatest/tripprod.test: Adjust tests.
      * NEWS: Mention the new order.
      536e45b3
  26. 26 Aug, 2013 2 commits