ltlmix: add support for the I/O variants

* bin/ltlmix.cc: Add options --ins, --outs, as well as the
two-argument form of -A/-P.
* bin/common_ioap.hh, bin/common_ioap.cc (is_output): New function.
* spot/tl/apcollect.cc, spot/tl/apcollect.hh (create_atomic_prop_set):
Allow the prefix string to be changed.
* spot/tl/randomltl.cc, spot/tl/randomltl.hh: Add support for an I/O
version with two set of atomic proposition, and a predicate to decide
if the original proposition was input or output.
* tests/core/ltlmix.test: More tests.
This commit is contained in:
Alexandre Duret-Lutz 2024-08-26 11:42:09 +02:00
parent 6fa42c90b8
commit 844fb887d9
8 changed files with 286 additions and 103 deletions

View file

@ -94,3 +94,30 @@ test 10 -eq `grep '&.*&' < out | wc -l`
ltlmix -fa -A500 -C3 -n10 | tee out2
diff out out2
ltlmix -fGi -fFo -A3,3 -C4 -n10 | tee out
cat >expected <<EOF
Fo1 & Gi1 & Gi2 & Fo0
Gi1 & Fo0 & Fo2
Fo1 & Gi1 & Gi2 & Fo2
Gi1 & Fo0 & Gi0
Fo1 & Gi1 & Gi2 & Gi0
Fo1 & Gi1 & Fo0 & Fo2
Fo1 & Gi1 & Fo2
Gi1 & Gi2 & Gi0
Fo1 & Gi1 & Fo0
Fo1 & Fo2 & Gi0
EOF
diff out expected
ltlmix -fGa -fFz -A3,3 --ins='/[a-m]/' -C4 -n10 > out
diff out expected
ltlmix -fGa -fFz -A3,3 --outs='/[m-o]/,z' -C4 -n10 > out
diff out expected
ltlmix -fGa -fFz -A3,3 -C4 -n10 2> err && exit 1
cat err
grep 'ins.*outs' err