Commit graph

6718 commits

Author SHA1 Message Date
932f670f86 nix: setup Nix Flake file
* flake.nix, flake.lock: here
2025-03-09 17:17:55 +01:00
c4e3509d18 * bin/.gitignore: Add ltlmix to gitignore 2025-03-07 10:34:56 +01:00
Alexandre Duret-Lutz
539d250587 * spot/twaalgos/gtec/gtec.cc: Work around spurious warning. 2025-02-26 12:08:46 +01:00
Alexandre Duret-Lutz
00456e5211 ltlfilt: add a --save-part-file option
* bin/ltlfilt.cc: Add support for --save-part-file.
* NEWS, doc/org/ltlfilt.org: Mention it.
* tests/core/ltlfilt.test: Test it.
2025-02-25 22:47:51 +01:00
Alexandre Duret-Lutz
b1b06ef7bd ltlsynt: remove superfluous output options
No point in having options such as --spin, --lbtt, --check, etc.
Also --dot was documented twice...

* bin/ltlsynt.cc (children): Remove aoutput_argp.
(options): Add explicit support for -d, -H, -q.
* bin/common_aoutput.cc, bin/common_aoutput.hh: Share the HOA help
text.
2025-02-25 22:47:10 +01:00
Alexandre Duret-Lutz
d0e404fec0 gnulib: fix argp --help formatting
This is a patch that was sent by Simon Reinhardt to gnulib and has
never been applied.  It fixes a several formatting issues in --help.
https://lists.gnu.org/archive/html/bug-gnulib/2016-02/msg00013.html

* lib/argp-fmtstream.c (__argp_fmtstream_update): Flush output as soon
as possible.
* lib/argp-fmtstream.h (struct argp_fmtstream): Member point_offs is
no longer needed.
* lib/argp-help.c (indent_to): Flush output to avoid a spurious
newline before an overlong word.
2025-02-25 17:26:36 +01:00
Alexandre Duret-Lutz
27fb175276 ltlsynt: fix a memory leak
* bin/ltlsynt.cc: Declare the realizability_simplifier as a unique_ptr
so that it gets deleted after use.
* NEWS: Mention the bug.
2025-02-25 17:26:18 +01:00
Alexandre Duret-Lutz
aba0e8dd24 * spot/twaalgos/mealy_machine.hh: Typo in documentation. 2025-02-25 17:26:10 +01:00
Alexandre Duret-Lutz
602aad013f aiger: never use state names for encoding
* spot/twaalgos/aiger.cc (mealy_machine_to_aig): Remove the code that
attempted to convert state names to integer, throwing exceptions on
failure.  That code was not exercised anywhere, but it caused failure
in the implementation of an LTLf->AIG pipeline in which LTLf formulas
that label states are preserved.
2025-02-25 17:26:01 +01:00
Alexandre Duret-Lutz
c5a0f323c8 Merge branch 'master' into next 2025-01-18 22:36:56 +01:00
Alexandre Duret-Lutz
5cbc28897e * configure.ac, NEWS: Bump version to 2.12.2.dev. 2025-01-18 16:20:57 +01:00
Alexandre Duret-Lutz
ec3e6750ee release Spot 2.12.2
* configure.ac, doc/org/setup.org: Bump version to 2.12.2.
* bin/common_setup.cc, debian/copyright: Bump copyright year to 2025.
* NEWS: Update.
2025-01-18 16:20:46 +01:00
Philipp Schlehuber-Caissier
480e5e999b Fix slight error in aiger
The negation of global equivalences for outputs
contained a slight error when the output corresponded
to a negated gate.

* spot/twaalgos/aiger.cc: Fix
* tests/core/ltlsynt.test: Test
2025-01-17 22:33:35 +01:00
Alexandre Duret-Lutz
465210cbc9 python: improve ACD's CSS
Some colleagues complained that the highlighting of edges and nodes
in the ACD display where not very readable, especially when sharing
screen during some video call.  This should improve it.

* python/spot/__init__.py (acd): Fill the contents of the nodes when
they are highlighted.  Add some glowing effect the the highlighted
edges.
* tests/python/zlktree.ipynb: Adjust.
2025-01-17 22:30:44 +01:00
Alexandre Duret-Lutz
e4a49cda02 work around a change in python 3.13
* python/spot/__init__.py: Unindent the docstring for
formula.__format__.  Because Python 3.13 strips the indentation but
previous version didn't, the following test case failed with Python
3.13.
* tests/python/formulas.ipynb: Adjust to unindented docstring.
2025-01-17 22:30:19 +01:00
Alexandre Duret-Lutz
c67332f825 Fix LaTeX rendering of strong next
Fix #597.

* spot/tl/print.cc: Fix rendering of X[!].
* doc/tl/spotltl.sty: Add a \StrongX definition.
* tests/core/latex.test: Add a test case.
* NEWS: Mention the issue.
2025-01-17 22:29:59 +01:00
Alexandre Duret-Lutz
6e6219af54 correct to_finite
This fixes issue #596.

* spot/twaalgos/remprop.cc: Rewrite main loop.
* tests/core/ltlf.test: Add test case.
* tests/python/game.py: Remove a test that appears
to make incorrect assumptions about to_finite.
* NEWS: Mention the bug.
2025-01-17 22:29:55 +01:00
Alexandre Duret-Lutz
cd5ac041f2 hierarchy: improve error message
* spot/tl/hierarchy.cc (mp_class): Fix type of o so that it is
displayed as an character in error messages.
2025-01-17 22:29:53 +01:00
Philipp Schlehuber-Caissier
ddbe0e32b0 Fix slight error in aiger
The negation of global equivalences for outputs
contained a slight error when the output corresponded
to a negated gate.

* spot/twaalgos/aiger.cc: Fix
* tests/core/ltlsynt.test: Test
2025-01-09 08:56:43 +01:00
Alexandre Duret-Lutz
461dc842e9 work around a change in python 3.13
* python/spot/__init__.py: Unindent the docstring for
formula.__format__.  Because Python 3.13 strips the indentation but
previous version didn't, the following test case failed with Python
3.13.
* tests/python/formulas.ipynb: Adjust to unindented docstring.
2025-01-01 21:55:23 +01:00
Alexandre Duret-Lutz
c971ce57a6 Fix LaTeX rendering of strong next
Fix #597.

* spot/tl/print.cc: Fix rendering of X[!].
* doc/tl/spotltl.sty: Add a \StrongX definition.
* tests/core/latex.test: Add a test case.
* NEWS: Mention the issue.
2025-01-01 21:55:15 +01:00
Alexandre Duret-Lutz
82401b3254 correct to_finite
This fixes issue #596.

* spot/twaalgos/remprop.cc: Rewrite main loop.
* tests/core/ltlf.test: Add test case.
* tests/python/game.py: Remove a test that appears
to make incorrect assumptions about to_finite.
* NEWS: Mention the bug.
2025-01-01 21:55:12 +01:00
Alexandre Duret-Lutz
4a33f0fe65 hierarchy: improve error message
* spot/tl/hierarchy.cc (mp_class): Fix type of o so that it is
displayed as an character in error messages.
2024-10-30 12:07:55 +01:00
Alexandre Duret-Lutz
368eb6e0cd Merge branch 'master' into next 2024-09-23 13:42:31 +02:00
Alexandre Duret-Lutz
b05c90cd87 bump version to 2.12.1.dev
* NEWS, configure.ac: Here.
2024-09-23 13:33:08 +02:00
Alexandre Duret-Lutz
b63f16060a release Spot 2.12.1
* NEWS, configure.ac, doc/org/setup.org: Update.
2024-09-23 12:04:28 +02:00
Alexandre Duret-Lutz
c92418b51c * .gitlab-ci.yml (publish-stable): Add scp for LRE's dload host. 2024-09-23 11:56:34 +02:00
Alexandre Duret-Lutz
376755dbd4 game: avoid a spurious g++14 warning
* spot/twaalgos/game.cc, spot/twaalgos/game.hh (get_state_winners):
Declare a non-const version as well to avoid a "possibly dangling
reference" error in code show by tut40.org.
2024-09-23 11:55:22 +02:00
Alexandre Duret-Lutz
941475fbdb fix spurious g++-14 warning
* spot/twaalgos/mealy_machine.cc (mm_sat_prob_t<true>::get_sol): Here.
2024-09-23 11:55:02 +02:00
Alexandre Duret-Lutz
1a36ea6ce4 ltlsynt: fix usage for --dot's argument
* bin/ltlsynt.cc (dispatch_print_hoa): Pass the right argument to
print_dot.
* tests/core/ltlsynt.test: Test it.
* NEWS: Mention the bug.
2024-09-23 11:54:57 +02:00
Alexandre Duret-Lutz
514209e80f * configure.ac: Typo. 2024-09-23 11:54:51 +02:00
Alexandre Duret-Lutz
f5ab5678b5 python: improve support of spot-extra, and recent swig
I could not run "make check" in a copy of seminator 2.0 regenerated
with swig 4.0, because of changes in the way Swig imports its shared
libraries.

* python/spot/__init__.py: If sys.path contains "/spot-extra"
directory, add it to spot.__path__ as well.  This helps situations
where a plugin use libtool and the development tree has the shared
libraries in .../spot-extra/.libs/
2024-09-23 11:54:40 +02:00
Alexandre Duret-Lutz
cc0f6f1e0d game: fix solving "parity min" games with multi-colored edges
* spot/twaalgos/game.cc: If the original acceptance is "parity min",
use min_set(), not max_set(), to read edge priorities.
* tests/python/game.py: Add a test case.
* NEWS: Mention the bug.
2024-09-23 11:54:22 +02:00
Alexandre Duret-Lutz
97832af321 randltl: fix generation without unary operators
* spot/tl/randomltl.hh (has_unary_ops): New method.
* spot/tl/randomltl.cc: Avoid creating subformulas of even size
when we do not have unary operators.
* tests/core/randpsl.test: Test it.
* NEWS: Mention it.
2024-09-23 11:53:41 +02:00
Alexandre Duret-Lutz
bdc63db9f0 ltlgrind: improve error message when formulas are missing
The error message, inherited from ltl2tgba, used to say "No formula to
translate", but "translate" isn't appropriate here.

* bin/common_finput.cc, bin/common_finput.hh (check_no_formula): Allow
"translate" to be changed.
* bin/ltlgrind.cc: Change it.
* tests/core/ltlgrind.test: Test it.
2024-09-23 11:52:43 +02:00
Alexandre Duret-Lutz
783efa2fe8 * doc/tl/tl.tex: Some typos. 2024-09-23 11:52:15 +02:00
Alexandre Duret-Lutz
e48506f548 improve some comments
* spot/twaalgos/complement.hh, spot/twaalgos/complement.cc: Here.
2024-09-23 11:51:59 +02:00
Alexandre Duret-Lutz
e13deeb143 * .gitlab-ci.yml (publish-stable): Add scp for LRE's dload host. 2024-09-23 11:49:26 +02:00
Alexandre Duret-Lutz
b9cb4022cf gen: rename pps-arbiter's APs
* bin/genltl.cc, spot/gen/formulas.cc: Adjust the name of the AP
produced by pps-arbiter.
* NEWS: Mention the change.
2024-09-19 18:45:44 +02:00
Alexandre Duret-Lutz
40a45eff22 * doc/org/ltlmix.org: Typos. 2024-09-19 18:45:44 +02:00
Alexandre Duret-Lutz
7b0e15a7fb implement maximum cardinality search
* spot/twaalgos/mcs.cc, spot/twaalgos/mcs.hh: New files.
* spot/twaalgos/Makefile.am: Add them.
* python/spot/impl.i: Include mcs.hh.
* bin/autfilt.cc: Add --mcs option.
* NEWS: Mention it.
* doc/spot.bib: Add reference.
* tests/core/mcs.test: New file.
* tests/Makefile.am: Add it.
2024-09-19 18:45:34 +02:00
Alexandre Duret-Lutz
77a17881a3 defrag_states: allow a permutation of state numbers
* spot/misc/permute.hh: New file.
* spot/misc/Makefile.am: Add it.
* spot/graph/graph.hh, spot/twa/twagraph.cc,
spot/twaalgos/randomize.cc: Use the new permute_vector() function.
* spot/twa/twagraph.hh: Update documentation.
* NEWS: Update.
2024-09-18 13:59:51 +02:00
Alexandre Duret-Lutz
4ccdcb4a5b tests: rewrite the syntimpl test
* tests/core/syntimpl.cc: Rewrite to test multiple formulas at once,
and test them with three different implication checks.
* tests/core/syntimpl.test: Adjust the test to execute syntimpl only
once.
2024-09-18 13:59:51 +02:00
Alexandre Duret-Lutz
99a622059c synthesis: fix handling of deadstates
* spot/twaalgos/synthesis.cc: Remove a debuging print
from the semisym code, and add an additional case
in the fullysym code.
* tests/core/ltlsynt.test: Add a some test case,
and remove some bashism.
2024-09-12 14:00:08 +02:00
Alexandre Duret-Lutz
90fb7b1cd9 * doc/org/ltlmix.org: Fix example. 2024-09-11 11:38:12 +02:00
Alexandre Duret-Lutz
1724d2b14c ltlsynt: -q should also hide status and AIG output
* bin/ltlsynt.cc: Honnor -q properly.
* doc/org/ltlsynt.org, tests/core/ltlsynt.test: Adjust.
* NEWS: Mention this bug.
2024-09-10 12:29:23 +02:00
Alexandre Duret-Lutz
950b205b63 ltlsynt: have --csv exclude the formula column by default
* bin/ltlsynt.cc: Add the --csv-with-formula option.
* doc/org/ltlsynt.org, tests/core/ltlsynt2.test, NEWS: Adjust.
2024-09-10 12:29:23 +02:00
Alexandre Duret-Lutz
5488cb75c6 ltlsynt: overhaul CSV output
Previous output was not very usable in presence of decomposed
specifications.  We now keep track of the number of parts, and also
prefix the columns names with "max_" or "sum_" to indicate how their
statistics are updated in presence of multiple part.  Other missing
statistics, like the size of the translated automaton, or maximal
number of colors seen in a game, have been added.

* spot/twaalgos/synthesis.hh (bench_var): Rename, augment, and
document each statistsic.
* spot/twaalgos/mealy_machine.cc, spot/twaalgos/synthesis.cc,
bin/ltlsynt.cc: Adjust to the new naming scheme.
* doc/org/ltlsynt.org: Show a CSV file, and document its columns.
* tests/core/ltlsynt-pgame.test, tests/core/ltlsynt2.test,
tests/core/ltlsynt.test: Adjust test cases.
* NEWS: Mention the backward incompatible change.
2024-09-10 12:29:14 +02:00
Alexandre Duret-Lutz
b729aa3f30 ltlsynt: fix a few issues with --csv
Some columns were superfluous, other had inconsistent names, and some
times where not tracked.

* spot/twaalgos/synthesis.cc: Improve tracking of times and verbose
messages.
* bin/ltlsynt.cc (print_csv): Adjust CSV columns.
* tests/core/ltlsynt.test, tests/core/ltlsynt2.test,
tests/core/ltlsynt-pgame.test: Adjust expected CSV and verbose
messages.
* doc/org/ltlsynt.org: Give some example.
2024-09-05 08:41:30 +02:00
Alexandre Duret-Lutz
a22a05b8ec ltlsynt: implement --csv-without-formula
* bin/ltlsynt.cc: Implement that new option.
* tests/core/ltlsynt2.test: Test it.
* NEWS: Mention the change.
2024-09-05 08:41:30 +02:00