Spot 1.99.3 has been released

We are pleased to announce the release of Spot 1.99.3. This maintenance release fixes several bugs, and finally merges some of the important code that was duplicated between the handling of automata in ltl2dstar's format, and automata in the HOA format. http://www.lrde.epita.fr/dload/spot/spot-1.99.3.tar.gz See https://spot.lrde.epita.fr/ for documentation and installation instructions. Please direct any feedback to <spot@lrde.epita.fr>. New in spot 1.99.3 (2015-08-26) * The CGI script for LTL translation offers a HOA download link for each generated automaton. * The html documentation now includes a HTML copies of the man pages, and HTML copies of the Python notebooks. * scc_filter(aut, true) does not remove Fin marks from rejecting SCCs, but it now does remove Fin marks from transitions between SCCs. * All the unabbreviation functions (unabbreviate_ltl(), unabbreviate_logic(), unabbreviate_wm()) have been merged into a single unabbreviate() function that takes a string representing the list of operators to remove among "eFGiMRW^" where 'e', 'i', and '^' stand respectively for <->, ->, and xor. This feature is also available via ltlfilt --unabbreviate. * In LTL formulas, atomic propositions specified using double-quotes can now include \" and \\. (This is more consistent with the HOA format, which already allows that.) * All the conversion routines that were written specifically for ltl2dstar's output format (DRA->BA & DRA->TGBA) have been ported to the new TωA structure supporting the HOA format. The DRA->TGBA conversion was reimplemented in the previous release, and the DRA->BA conversion has been reimplemented in this release (but it is still restricted to state-based acceptance). All these conversions are called automatically by to_generalized_buchi() or remove_fin() so there should be no need to call them directly. As a consequence: - "autfilt --remove-fin" or "autfilt -B" is better at converting state-based Rabin automata: it will produce a DBA if the input is deterministic and DBA-realizable, but will preserve as much determinism as possible otherwise. - a lot of obsolete code that was here only to support the old conversion routines has been removed. (The number of lines removed by this release is twice the number of lines added.) - ltlcross now uses automata in ltl2dstar's format directly, without converting them to Büchi (this makes the statistics reported in CSV files more relevant). - ltlcross no longer outputs additional columns about the size of the input automaton in the case ltl2dstar's format is used. - ltldo uses results in ltl2dstar's format directly, without converting them to Büchi. - dstar2tgba has been greatly simplified and now uses the same output routines as all the other tools that output automata. This implies a few minor semantic changes, for instance --stats=%A used to output the number of acceptance *pairs* in the input automaton, while it now outputs the number of acceptance sets like in all the other tools. * Bugs fixed - Some acceptance conditions like Fin(0)|Fin(1)|Fin(2)&Inf(3) were not detected as generalized-Rabin. - Unknown arguments for print_hoa() (i.e., option -H in command-line tools) are now diagnosed. - The CGI script for LTL translation now forces transition-based acceptance on WDBA-minimized automata when TGBA is requested. - ltlgrind --help output had some options documented twice, or in the wrong place. - The man page for ltlcross had obsolete examples. - When outputting atomic propositions in double quotes, the escaping routine used by the two styles of LaTeX output was slightly wrong. For instance ^ was incorrectly escaped, and the double quotes where not always properly rendered. - A spurious assertion was triggered by streett_to_generalized_buchi(), but only when compiled in DEBUG mode. - LTL formula rewritten in Spin's syntax no longer have their -> and <-> rewritten away. - Fix some warnings reported by the development version of GCC 6. - The spot.translate() function of the Python binding had a typo preventing the use of 'low'/'medium'/'high' as argument. - Fix spurious failure of uniq.test under different locales. - ltlcross now recovers from out-of-memory errors during state-space products. - bitvect.test was failing on 32bit architectures with assertions enabled because of a bug in the test case. -- Alexandre Duret-Lutz
participants (1)
-
Alexandre Duret-Lutz