spot/bin
Alexandre Duret-Lutz c766f58d5d sat_minimize: improve logs and document Python bindings
* spot/priv/satcommon.cc, spot/priv/satcommon.hh: Make it possible to
set the log file without setting the environment variable.  Adjust
print_log to take the input state and print it as a new column.
* spot/twaalgos/dtbasat.cc, spot/twaalgos/dtwasat.cc: Adjust all
calls to print_log.  Fix log output for incremental approaches.
Prefer purge_unreachable_states() over stats_reachable().  Do
not call scc_filter() on colored automata.
* spot/twaalgos/dtwasat.hh: Document the new "log" option.
* NEWS: Mention the changes.
* tests/python/satmin.ipynb: New file.
* tests/Makefile.am: Add it.
* doc/org/satmin.org, doc/org/tut.org: Link to it.
* doc/org/satmin.org, bin/man/spot-x.x: Adjust description
of CSV files.
* bench/dtgbasat/gen.py, bench/dtgbasat/tabl.pl,
bench/dtgbasat/tabl1.pl, bench/dtgbasat/tabl2.pl,
bench/dtgbasat/tabl3.pl, bench/dtgbasat/tabl4.pl: Adjust for
the new column.
* spot/misc/satsolver.cc, spot/misc/satsolver.hh (stats): Make it
const.
* python/spot/__init__.py (sat_minimize): Add display_log and
return_log options.
* tests/python/ipnbdoctest.py: Adjust to not compare SAT-minimization
logs as they contain timings.
2018-03-30 18:01:59 +02:00
..
man sat_minimize: improve logs and document Python bindings 2018-03-30 18:01:59 +02:00
.gitignore add ltlsynt executable 2017-09-25 12:23:47 +02:00
autcross.cc ltlcross, autcross, ltldo: support --fail-on-timeout 2017-10-15 12:22:15 +02:00
autfilt.cc autfilt --acceptance-is=Fin-less should reject "f" 2018-03-16 14:00:27 +01:00
common_aoutput.cc dot: make "a" the default 2018-03-10 23:23:51 +01:00
common_aoutput.hh bin: add %g options to print acceptance name 2017-11-04 07:43:41 +01:00
common_color.cc bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
common_color.hh ltlcross: extract the color handling code 2017-07-26 12:10:36 +02:00
common_conv.cc move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
common_conv.hh move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
common_cout.cc bin: workaround flushing issues 2016-10-03 15:27:06 +02:00
common_cout.hh move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
common_file.cc bin: diagnose more write errors 2016-08-14 18:18:20 +02:00
common_file.hh bin: diagnose more write errors 2016-08-14 18:18:20 +02:00
common_finput.cc bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
common_finput.hh bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
common_hoaread.cc sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
common_hoaread.hh bin: introduce autcross 2017-07-28 10:33:14 +02:00
common_output.cc Add support for computing operator nesting depth 2017-12-10 20:31:56 +01:00
common_output.hh Add support for computing operator nesting depth 2017-12-10 20:31:56 +01:00
common_post.cc autfilt: fix --sat-minimize -B 2018-03-28 18:20:44 +02:00
common_post.hh postproc: add support for colored-parity 2018-01-08 11:35:49 +01:00
common_r.cc move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
common_r.hh sanity: Replace tabulars by spaces in *.cc *.hh *.hxx 2016-03-10 17:40:46 +01:00
common_range.cc bin: improve range diagnostic 2016-06-21 18:15:08 +02:00
common_range.hh ltlfilt: implement --reject-word and --accept-word 2016-04-09 10:10:41 +02:00
common_setup.cc bump copyright year 2018-01-02 20:34:38 +01:00
common_setup.hh move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
common_sys.hh move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
common_trans.cc autcross: support %M in tool specifications 2018-03-19 15:25:30 +01:00
common_trans.hh ltlcross: add support for --reference translators 2017-10-15 19:35:28 +02:00
dstar2tgba.cc postproc: add support for colored-parity 2018-01-08 11:35:49 +01:00
genaut.cc bin: fix some --help typos 2017-09-07 16:13:28 +02:00
genltl.cc genltl: add --gf-implies 2018-01-09 10:59:10 +01:00
ltl2tgba.cc postproc: add support for colored-parity 2018-01-08 11:35:49 +01:00
ltl2tgta.cc ltl2tgba: clear simplification cache between translations 2017-05-10 16:18:37 +02:00
ltlcross.cc always capture exceptions by const references 2018-03-14 17:51:08 +01:00
ltldo.cc postproc: add support for colored-parity 2018-01-08 11:35:49 +01:00
ltlfilt.cc introduce is_obligation(f) 2017-11-16 07:26:34 +01:00
ltlgrind.cc bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
ltlsynt.cc Clean the usage of spot::acc_cond::mark_t 2018-03-15 10:05:24 +01:00
Makefile.am add ltlsynt executable 2017-09-25 12:23:47 +02:00
options.py move spot/bin/ and spot/tests/ up by one level 2015-12-27 20:10:59 +01:00
randaut.cc bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
randltl.cc bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
README bin: make sure that all options are in a named section 2017-09-26 21:28:16 +02:00
spot-x.cc specialized translation for GF(guarantee) and FG(safety) 2018-03-28 18:20:46 +02:00
spot.cc man: mention ltlsynt in spot(7) 2017-10-15 12:22:22 +02:00

This directory contains the source of some command-line tools that
expose some of Spot's algorithms to Unix users.

Man pages are generated from the --help output of each tool,
supplemented by any text in the man/*.x files.  Usually the extra text
contains either some bibliographical references, some formal
definitions or some examples that are too long for --help.  Having a
few short examples at the end of --help is good.

This directory also builds some non-installed binaries, like spot-x,
whose purpose is just to generate a man-page with the same format as
the other man pages (this includes keeping the version number
up-to-date).

There is also a script called 'options.py' that summerizes how the
different short options are used among the tools.

Routines that are shared by multiple command-line tools are stored in
files called common_*.{cc,hh}.


Recommendations when adding new tools or features:
--------------------------------------------------

 - Tools should be designed to work on multiple inputs (e.g., read
   different outputs from multiple files, and accept many inputs from
   the same file, including stdin).  They should also all be designed
   to produce several outputs, usually one per input.  This way they
   can be piped one onto the other easily.

 - When naming an option, seek inspiration from the POSIX standard, or
   from GNU extensions.  For instance ltlfilt and autfilt both have a
   -v option to invert the filter; this is inspired from grep's -v
   option.  The long version of this option (--invert-match) is also
   the same as in grep.

 - When adding a new option, implement only the --long-option by
   default.  Do not add a short version unless
     (1) you are sure it will be frequently used interactively
         (if it is only used in scripts, then a long option is enough)
     (2) this option can be shared by multiple tools.

 - As much as possible, use the same option names across tools.  Use
   the script options.py in this directory to check what short options
   are used.  It's OK if the same short option correspond to different
   long names in the various tools, as long as the intent is similar.
   For instance -n has different long options depending on the tool:
     autfilt -n N     means   --max-count=N
     randltl -n N     means   --formulas=N
     randaut -n N     means   --automata=N
  but in all cases, the intent is to specify the number of items
  to output.

 - In the --help output, all options should appear in a named
   section (like "Input options:", "Output options:"), and those
   sections are best ordered according to one's mental view
   of how the tool works: first, it reads the input, then
   it processes it, then it outputs the result.  Keep --help
   and --version at the very bottom.