1. 07 Mar, 2016 1 commit
    • Amaury Fauchille's avatar
      word: implement twa word parsing · 1fd76ee9
      Amaury Fauchille authored
      * spot/twaalgos/word.hh: add parse_word method and a new constructor
      * spot/twaalgos/word.cc: implement word parsing
      * python/spot/__init__.py: add parse_word method binding
      * tests/python/word.ipynb: add word parsing tests
      1fd76ee9
  2. 16 Feb, 2016 1 commit
  3. 12 Feb, 2016 1 commit
  4. 05 Feb, 2016 2 commits
    • Alexandre Duret-Lutz's avatar
      dot: add option C(COLOR) · 77b0b5b3
      Alexandre Duret-Lutz authored
      This fixes the output gliches visible in the previous patches,
      where highlighting a state would remove its fill color.
      
      * spot/twaalgos/dot.cc, spot/taalgos/dot.cc: Implement option C(COLOR).
      * bin/common_aoutput.cc, doc/org/oaut.org: Document it.
      * doc/org/.dir-locals.el.in, doc/org/init.el.in,
      python/spot/__init__.py: Use it.
      * tests/python/automata-io.ipynb, tests/python/automata.ipynb,
      tests/python/highlighting.ipynb: Test it.
      * tests/core/readsave.test: Adjust.
      * NEWS: Mention recent changes.
      77b0b5b3
    • Alexandre Duret-Lutz's avatar
      python: highlighting functions for edges and states · 23c2cbf4
      Alexandre Duret-Lutz authored
      * python/spot/impl.i (highlight_state, highlight_edge): New function.
      * python/spot/__init__.py (highlight_states, highlight_edges): New
      functions.
      * spot/twaalgos/dot.cc: Add a '#' option.
      * spot/taalgos/dot.cc: Ignore '#'.
      * tests/python/highlighting.ipynb: New file to illustrate everything.
      * tests/Makefile.am, doc/org/tut.org: Add it.
      23c2cbf4
  5. 29 Jan, 2016 1 commit
    • Alexandre Duret-Lutz's avatar
      dot: add a <N option · b11c07b3
      Alexandre Duret-Lutz authored
      * spot/twaalgos/dot.cc: Implement it.
      * spot/taalgos/dot.cc: Ignore it.
      * spot/twaalgos/copy.cc, spot/twaalgos/copy.hh: Add option
      to limit the number of states.
      * tests/python/ltsmin.ipynb: Improve test case.
      * tests/Makefile.am: Cleanup the files generated by ltsmin.ipynb.
      * python/spot/__init__.py (setup): Add a max_states argument
      that default to 50.
      * bin/common_aoutput.cc: Mention the <INT option.
      * NEWS: Likewise.
      b11c07b3
  6. 26 Jan, 2016 2 commits
    • Alexandre Duret-Lutz's avatar
      python: add bindings for ltsmin · 5a9b0aa1
      Alexandre Duret-Lutz authored
      * python/spot/ltsmin.i: New file.
      * python/Makefile.am: Add it.
      * python/spot/impl.i: Add bindings for kripke and fair_kripke.
      * tests/python/ltsmin.ipynb: New file.
      * tests/Makefile.am, doc/org/tut.org: Add it.
      * tests/python/ipnbdoctest.py: Make it possible for notebook
      to exit(77).
      * debian/control: Make the Python package dependent
      on libspotltsmin0.
      * python/spot/__init__.py: Typo.
      5a9b0aa1
    • Alexandre Duret-Lutz's avatar
      Make spot.py a python package instead of a module · 215fcb79
      Alexandre Duret-Lutz authored
      * python/spot.py, python/spot_impl.i: Rename as...
      * python/spot/__init__.py, python/spot/impl.i: ... these.
      * python/Makefile.am, tests/run.in: Adjust for new paths.
      * tests/python/automata-io.ipynb, tests/python/automata.ipynb,
      tests/python/decompose.ipynb, tests/python/piperead.ipynb,
      tests/python/testingaut.ipynb: Adjust messages to refer to spot.impl
      instead of spot_impl.
      215fcb79
  7. 23 Jan, 2016 1 commit
  8. 21 Jan, 2016 1 commit
  9. 25 Dec, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      rename wrap/python/ to python/ · 34c3c1ce
      Alexandre Duret-Lutz authored
      * wrap/python/: Rename to...
      * python/: ... this.
      * wrap/: Delete.
      * Makefile.am, README, configure.ac, debian/python3-spot.examples,
      debian/rules, doc/org/.dir-locals.el.in, doc/org/init.el.in,
      spot/sanity/ipynb.test: Adjust.
      34c3c1ce
  10. 17 Nov, 2015 1 commit
  11. 13 Nov, 2015 1 commit
  12. 05 Nov, 2015 1 commit
  13. 26 Oct, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      parse_aut: simplify the interface · dee73ee3
      Alexandre Duret-Lutz authored
      * src/parseaut/public.hh, src/parseaut/parseaut.yy,
      src/parseaut/fmterror.cc: Add a raise_errors options.  Remove the
      parse_strict() method.  Store parse errors and filename in the output
      parsed_aut to simplify usage.
      * doc/org/tut20.org, doc/org/tut21.org, doc/org/tut30.org,
      src/bin/autfilt.cc, src/bin/common_hoaread.cc, src/bin/dstar2tgba.cc,
      src/bin/ltlcross.cc, src/bin/ltldo.cc, src/tests/complementation.cc,
      src/tests/ikwiad.cc, src/tests/ltlcross3.test, src/tests/ltldo.test,
      wrap/python/spot.py, wrap/python/tests/parsetgba.py: Adjust usage.
      * NEWS: Mention the changes.
      dee73ee3
  14. 23 Oct, 2015 3 commits
    • Alexandre Duret-Lutz's avatar
      python: change postprocess to take an optional formula · 337925c9
      Alexandre Duret-Lutz authored
      Doing so also work around some differences between Swig 3.0.2 and 3.0.7
      observed on our build farm.
      
      * wrap/python/spot.py: Here.
      * wrap/python/spot_impl.i: Recognize None as a null formula
      on input.
      337925c9
    • Alexandre Duret-Lutz's avatar
      parseaut: Add a trust_hoa option. · 51a75a31
      Alexandre Duret-Lutz authored
      Fixes #114.
      
      * src/parseaut/public.hh: Add support for a trust_hoa option.
      * src/parseaut/parseaut.yy: If trust_hoa is set, recognize the
      "inherently-weak" and "stutter-invariant" properties.
      * src/bin/common_conv.cc, src/bin/common_conv.hh (read_automaton):
      Move...
      * src/bin/common_hoaread.cc, src/bin/common_hoaread.hh: ... in this
      new file, that also handle the --trust-hoa option.
      * src/bin/Makefile.am: Add them.
      * src/bin/autfilt.cc, src/bin/dstar2tgba.cc, src/bin/ltlcross.cc,
      src/bin/ltldo.cc: Use them.
      * src/tests/parseaut.test, src/tests/ltldo.test: Adjust, and test
      --trust-hoa=no.
      * src/tests/complement.test, src/tests/prodor.test,
      src/tests/sbacc.test: Adjust.
      * wrap/python/spot.py (automata): Add option trust_hoa.
      * NEWS: Update.
      51a75a31
    • Alexandre Duret-Lutz's avatar
      parseaut: change the interface to allow new options · 585e29e7
      Alexandre Duret-Lutz authored
      * src/parseaut/public.hh, src/parseaut/parseaut.yy: Make it easier to
      pass new options to the parser.
      * src/tests/ikwiad.cc, wrap/python/spot.py: Adjust.
      585e29e7
  15. 22 Oct, 2015 1 commit
  16. 21 Oct, 2015 3 commits
  17. 20 Oct, 2015 1 commit
  18. 19 Oct, 2015 1 commit
  19. 18 Oct, 2015 2 commits
    • Alexandre Duret-Lutz's avatar
      tl: rename ltl_simplifier to tl_simplifier · 176c9e2e
      Alexandre Duret-Lutz authored
      * doc/org/tut01.org, doc/tl/tl.tex, src/bin/common_r.hh,
      src/bin/ltlfilt.cc, src/tests/equalsf.cc, src/tests/ikwiad.cc,
      src/tests/randtgba.cc, src/tests/reduc.cc, src/tests/syntimpl.cc,
      src/tl/nenoform.cc, src/tl/randomltl.cc, src/tl/randomltl.hh,
      src/tl/simplify.cc, src/tl/simplify.hh, src/twaalgos/ltl2tgba_fm.cc,
      src/twaalgos/ltl2tgba_fm.hh, src/twaalgos/stutter.cc,
      src/twaalgos/translate.cc, src/twaalgos/translate.hh,
      wrap/python/ajax/spotcgi.in, wrap/python/spot.py,
      wrap/python/tests/interdep.py: Rename ltl_simplifier to tl_simplifier.
      * NEWS: Mention it.
      176c9e2e
    • Alexandre Duret-Lutz's avatar
      python: update the formulaiterator bindings · 9689c4cc
      Alexandre Duret-Lutz authored
      * wrap/python/spot.py: Add the unabbreviate() method, and
      remove unabbrivate_ltl() and get_literal().
      * wrap/python/tests/randltl.ipynb: Demonstrate unabbreviate().
      9689c4cc
  20. 08 Oct, 2015 1 commit
  21. 04 Oct, 2015 2 commits
  22. 03 Oct, 2015 2 commits
    • Alexandre Duret-Lutz's avatar
      python: implement formula.__format__ · 5bfd0267
      Alexandre Duret-Lutz authored
      Fixes #105.
      
      * src/bin/common_trans.cc (quote_shell_string): Move ...
      * src/misc/escape.cc, src/misc/escape.hh (quote_shell_string):
      ... here.
      * wrap/python/spot_impl.i: Wrap escape.hh.
      * wrap/python/spot.py: Implement formula.__format__.
      * wrap/python/tests/ltlsimple.py: Test it.
      * NEWS, doc/org/tut01.org, wrap/python/tests/formulas.ipynb: Document
      it.
      5bfd0267
    • Alexandre Duret-Lutz's avatar
      Work around weird Python 3.5 generator/iterator interaction · 6ff4fa97
      Alexandre Duret-Lutz authored
      * wrap/python/spot.py: Python 3.5 reports some unexpected SystemError
      messages when the stack of iterator(...(iterator(generator))) we build
      for random LTL generation raises a StopIteration.  The messages are
      attached either to delete_formula or delete_randltlgenerator, claiming
      that these functions exit with an error; but I have checked that they
      do not.  I've been unable to understand the cause of the issue.
      Replacing the generator by an iterator at least fixes the problem in a
      way that is transparent for our API.
      * wrap/python/tests/randltl.ipynb: Adjust expected formulas.
      6ff4fa97
  23. 28 Sep, 2015 3 commits
    • Alexandre Duret-Lutz's avatar
      python: work around old swig version · 3e10dba9
      Alexandre Duret-Lutz authored
      Swig 3.0.2 (currently installed by Debian), install strongly typed
      enumerator in the main namespace instead of in its own namespace.
      This is fixed in latter versions of Swig.
      
      * wrap/python/spot.py: If spot.op does not exists, populated it with all
      operators from the spot namespace.
      * wrap/python/tests/ltlsimple.py: Use operators from spot.op.
      3e10dba9
    • Alexandre Duret-Lutz's avatar
      formula: rename the constants for consistency · 8b4ec5de
      Alexandre Duret-Lutz authored
      False/True are problematic in Python, and I don't like that the
      enum is op::False but the constructor formula::ff().  So let's
      just use ff and tt everywhere, and also eword instead of EmptyWord.
      
      * src/ltlast/formula.hh (False, True, EmptyWord, AP, is_false, is_true):
      Rename to...
      (ff, tt, eword, ap, is_ff, is_tt): ... these.
      * iface/ltsmin/ltsmin.cc, src/ltlast/formula.cc,
      src/ltlvisit/apcollect.cc, src/ltlvisit/dot.cc, src/ltlvisit/mark.cc,
      src/ltlvisit/mutation.cc, src/ltlvisit/print.cc,
      src/ltlvisit/relabel.cc, src/ltlvisit/simpfg.cc,
      src/ltlvisit/simplify.cc, src/ltlvisit/snf.cc, src/ltlvisit/unabbrev.cc,
      src/twa/acc.cc, src/twa/acc.hh, src/twa/formula2bdd.cc,
      src/twaalgos/gtec/gtec.cc, src/twaalgos/hoa.cc, src/twaalgos/ltl2taa.cc,
      src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/neverclaim.cc,
      src/twaalgos/product.cc, src/twaalgos/remfin.cc, src/twaalgos/safety.cc,
      src/tests/parseerr.test, src/tests/utf8.test, wrap/python/spot.py:
      Adjust.
      8b4ec5de
    • Alexandre Duret-Lutz's avatar
      python: implement the map and transform functions for formulas · fad05632
      Alexandre Duret-Lutz authored
      * wrap/python/spot.py: Implement them.
      * wrap/python/tests/ltlsimple.py: New tests.
      fad05632
  24. 26 Sep, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      revamp the formula hierarchy (montro-patch) · b77f7e24
      Alexandre Duret-Lutz authored
      Flatten the formula ltl::formula hiearchy into a single ltl::vnode that
      has an enumerator to distinguish the types of node, and a common
      interface to access children, update reference counts, etc.  The
      ltl::formula class is now a thin wrapper around an ltl::vnode pointer to
      keep track of reference counts automatically.  Visitor are not used
      anymore; we now have map() and traversor() methods that are more
      concise.
      
      This basically fixes #43, but should be followed by some fine tuning
      that should now be localized to the formula.hh and formula.cc files.
      
      Some statistics about this patch.  I started working on it on Sep 9, had
      a first compiling version two weeks later on Sep 22, and it then took 5
      days to fixes the ~70 distincts bugs that were introduced during the
      conversion.  About 13200 lines were modified, and one third of those
      were removed.
      
      * src/ltlast/formula.cc, src/ltlast/formula.hh: Complete rewrite,
      including what was in separate nearby files.
      * src/ltlast/allnodes.hh, src/ltlast/atomic_prop.cc,
      src/ltlast/atomic_prop.hh, src/ltlast/binop.cc, src/ltlast/binop.hh,
      src/ltlast/bunop.cc, src/ltlast/bunop.hh, src/ltlast/constant.cc,
      src/ltlast/constant.hh, src/ltlast/multop.cc, src/ltlast/multop.hh,
      src/ltlast/unop.cc, src/ltlast/unop.hh, src/ltlvisit/dump.cc,
      src/ltlvisit/dump.hh, src/ltlast/predecl.hh: Delete these files.  Their
      feature have been merged in formula.hh and formula.cc.
      * src/ltlast/visitor.hh, src/ltlvisit/clone.cc, src/ltlvisit/clone.hh,
      src/ltlvisit/dump.hh, src/ltlvisit/postfix.cc, src/ltlvisit/postfix.hh:
      Delete these files, as we do not use visitors anymore.
      * bench/stutter/stutter_invariance_formulas.cc,
      bench/stutter/stutter_invariance_randomgraph.cc, doc/org/tut01.org,
      doc/org/tut02.org, doc/org/tut10.org, doc/org/tut22.org,
      iface/ltsmin/ltsmin.cc, iface/ltsmin/ltsmin.hh,
      iface/ltsmin/modelcheck.cc, src/bin/autfilt.cc,
      src/bin/common_aoutput.cc, src/bin/common_aoutput.hh,
      src/bin/common_finput.cc, src/bin/common_finput.hh,
      src/bin/common_output.cc, src/bin/common_output.hh,
      src/bin/common_trans.cc, src/bin/common_trans.hh, src/bin/dstar2tgba.cc,
      src/bin/genltl.cc, src/bin/ltl2tgba.cc, src/bin/ltl2tgta.cc,
      src/bin/ltlcross.cc, src/bin/ltldo.cc, src/bin/ltlfilt.cc,
      src/bin/ltlgrind.cc, src/bin/randaut.cc, src/bin/randltl.cc,
      src/kripke/kripkeexplicit.cc, src/kripke/kripkeexplicit.hh,
      src/kripkeparse/kripkeparse.yy, src/ltlast/Makefile.am,
      src/ltlenv/declenv.cc, src/ltlenv/declenv.hh, src/ltlenv/defaultenv.cc,
      src/ltlenv/defaultenv.hh, src/ltlenv/environment.hh,
      src/ltlparse/ltlparse.yy, src/ltlparse/public.hh,
      src/ltlvisit/Makefile.am, src/ltlvisit/apcollect.cc,
      src/ltlvisit/apcollect.hh, src/ltlvisit/contain.cc,
      src/ltlvisit/contain.hh, src/ltlvisit/dot.cc, src/ltlvisit/dot.hh,
      src/ltlvisit/exclusive.cc, src/ltlvisit/exclusive.hh,
      src/ltlvisit/length.cc, src/ltlvisit/length.hh, src/ltlvisit/mark.cc,
      src/ltlvisit/mark.hh, src/ltlvisit/mutation.cc,
      src/ltlvisit/mutation.hh, src/ltlvisit/nenoform.cc,
      src/ltlvisit/nenoform.hh, src/ltlvisit/print.cc, src/ltlvisit/print.hh,
      src/ltlvisit/randomltl.cc, src/ltlvisit/randomltl.hh,
      src/ltlvisit/relabel.cc, src/ltlvisit/relabel.hh,
      src/ltlvisit/remove_x.cc, src/ltlvisit/remove_x.hh,
      src/ltlvisit/simpfg.cc, src/ltlvisit/simpfg.hh,
      src/ltlvisit/simplify.cc, src/ltlvisit/simplify.hh, src/ltlvisit/snf.cc,
      src/ltlvisit/snf.hh, src/ltlvisit/unabbrev.cc, src/ltlvisit/unabbrev.hh,
      src/parseaut/parseaut.yy, src/ta/taexplicit.cc, src/ta/tgtaexplicit.cc,
      src/taalgos/minimize.cc, src/taalgos/tgba2ta.cc, src/tests/bare.test,
      src/tests/checkpsl.cc, src/tests/checkta.cc,
      src/tests/complementation.cc, src/tests/consterm.cc,
      src/tests/emptchk.cc, src/tests/equalsf.cc, src/tests/ikwiad.cc,
      src/tests/isop.test, src/tests/kind.cc, src/tests/length.cc,
      src/tests/ltldo.test, src/tests/ltlfilt.test, src/tests/ltlgrind.test,
      src/tests/ltlprod.cc, src/tests/ltlrel.cc,
      src/tests/parse_print_test.cc, src/tests/parseaut.test,
      src/tests/parseerr.test, src/tests/randtgba.cc, src/tests/readltl.cc,
      src/tests/reduc.cc, src/tests/syntimpl.cc, src/tests/taatgba.cc,
      src/tests/tostring.cc, src/tests/twagraph.cc, src/tests/utf8.test,
      src/twa/acc.cc, src/twa/bdddict.cc, src/twa/bdddict.hh,
      src/twa/bddprint.cc, src/twa/formula2bdd.cc, src/twa/formula2bdd.hh,
      src/twa/taatgba.cc, src/twa/taatgba.hh, src/twa/twa.cc, src/twa/twa.hh
      src/twa/twagraph.cc, src/twa/twagraph.hh, src/twa/twasafracomplement.cc,
      src/twaalgos/compsusp.cc, src/twaalgos/compsusp.hh,
      src/twaalgos/dtgbasat.cc, src/twaalgos/hoa.cc, src/twaalgos/lbtt.cc,
      src/twaalgos/ltl2taa.cc, src/twaalgos/ltl2taa.hh,
      src/twaalgos/ltl2tgba_fm.cc, src/twaalgos/ltl2tgba_fm.hh,
      src/twaalgos/minimize.cc, src/twaalgos/minimize.hh,
      src/twaalgos/neverclaim.cc, src/twaalgos/postproc.cc,
      src/twaalgos/postproc.hh, src/twaalgos/powerset.cc,
      src/twaalgos/powerset.hh, src/twaalgos/randomgraph.cc,
      src/twaalgos/remprop.cc, src/twaalgos/remprop.hh, src/twaalgos/stats.cc,
      src/twaalgos/stats.hh, src/twaalgos/stutter.cc, src/twaalgos/stutter.hh,
      src/twaalgos/translate.cc, src/twaalgos/translate.hh,
      wrap/python/ajax/spotcgi.in, wrap/python/spot.py,
      wrap/python/spot_impl.i, wrap/python/Makefile.am,
      wrap/python/tests/automata-io.ipynb, wrap/python/tests/formulas.ipynb,
      wrap/python/tests/ltl2tgba.py, wrap/python/tests/ltlparse.py,
      wrap/python/tests/ltlsimple.py, wrap/python/tests/randltl.ipynb: Adjust
      to use the new interface.
      * src/sanity/style.test: Accept more C++11 patterns.
      * NEWS: Mention the change.
      b77f7e24
  25. 21 Aug, 2015 1 commit
  26. 11 Jun, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      hoaparse: rename to parseaut · a86391ab
      Alexandre Duret-Lutz authored
      Because this parser is not specific to HOA anymore.
      
      * src/hoaparse/Makefile.am, src/hoaparse/fmterror.cc,
      src/hoaparse/hoaparse.yy, src/hoaparse/parsedecl.hh,
      src/parseaut/public.hh, src/hoaparse/hoascan.ll,
      src/tests/hoaparse.test: Rename to...
      * src/parseaut/Makefile.am, src/parseaut/fmterror.cc,
      src/parseaut/parseaut.yy, src/parseaut/parsedecl.hh,
      src/hoaparse/public.hh, src/parseaut/scanaut.ll,
      src/tests/parseaut.test: ... these, and also adjust the name internally.
      For instance hoa_aut_ptr is now parsed_aut_ptr; hoa_stream_parser is now
      automaton_stream_parser, and hoa_parse() has become parse_aut().
      * NEWS, README, configure.ac, doc/org/tut20.org, src/Makefile.am,
      src/bin/autfilt.cc, src/bin/common_aoutput.cc,
      src/bin/common_aoutput.hh, src/bin/common_conv.cc,
      src/bin/ltlcross.cc, src/bin/ltldo.cc, src/tests/Makefile.am,
      src/tests/complementation.cc, src/tests/ltl2tgba.cc,
      src/tests/readsave.test, wrap/python/ajax/spot.in,
      wrap/python/spot.py, wrap/python/spot_impl.i,
      wrap/python/tests/automata-io.ipynb, wrap/python/tests/parsetgba.py:
      Adjust.
      a86391ab
  27. 10 Jun, 2015 2 commits
    • Alexandre Duret-Lutz's avatar
      lbtt: take options as a string like other print functions · 9f32021e
      Alexandre Duret-Lutz authored
      * src/twaalgos/lbtt.hh (print_lbtt): Take a const char* opt argument.
      * src/twaalgos/lbtt.cc: Use it, select state-based
      vs. transition-based using automaton property, and implement output
      for generalized state-based acceptance.
      * src/bin/common_aoutput.cc, src/bin/common_aoutput.hh,
      src/bin/dstar2tgba.cc: Adjust usage.  We do not need to handle
      --lbtt=t as a special case anymore.
      * src/tests/lbttparse.test, wrap/python/spot.py,
      wrap/python/tests/automata-io.ipynb, wrap/python/tests/piperead.ipynb:
      Adjust.
      9f32021e
    • Alexandre Duret-Lutz's avatar
      rename hoa_reachable as print_hoa · b229bfc2
      Alexandre Duret-Lutz authored
      As actually claimed (but not done) by
      738f939f.
      
      * src/twaalgos/hoa.hh, src/twaalgos/hoa.cc: Rename it.
      * src/bin/common_aoutput.cc, src/bin/dstar2tgba.cc,
      src/bin/ltlcross.cc, src/tests/complementation.cc,
      src/tests/ltl2tgba.cc, src/tests/randtgba.cc, src/twaalgos/hoa.cc,
      wrap/python/spot.py: Adjust.
      b229bfc2
  28. 07 Jun, 2015 1 commit
    • Alexandre Duret-Lutz's avatar
      org: add example of LTL->BA translation · e7f5af6c
      Alexandre Duret-Lutz authored
      This addresses one item in #14.
      
      * doc/org/tut10.org: New file.
      * doc/Makefile.am: Add it.
      * src/twaalgos/translate.hh: Fix inclusion of types from
      postprocessor.
      * wrap/python/spot.py (translate): Fix typo in doc string.
      e7f5af6c