implement SVA's first_match operator

* NEWS, doc/tl/tl.tex, doc/tl/tl.bib: Document it.
* spot/parsetl/parsetl.yy, spot/parsetl/scantl.ll: Parse it.
* spot/tl/formula.cc, spot/tl/formula.hh, spot/tl/dot.cc,
spot/tl/mutation.cc, spot/tl/print.cc, spot/tl/randomltl.cc,
spot/twaalgos/ltl2tgba_fm.cc: Adjust to support first_match.
* spot/tl/mark.cc, spot/tl/simplify.cc, spot/tl/snf.cc,
spot/tl/unabbrev.cc, spot/twa/formula2bdd.cc,
spot/twaalgos/ltl2taa.cc: Ignore it.
* tests/core/acc_word.test, tests/core/randpsl.test: Add more tests.
* tests/core/rand.test, tests/core/unambig.test,
tests/python/randltl.ipynb: Adjust.
* tests/python/formulas.ipynb: Show first_match.
This commit is contained in:
Alexandre Duret-Lutz 2019-05-06 14:59:05 +02:00
parent caf1eaa4ce
commit 6fac026454
24 changed files with 359 additions and 162 deletions

View file

@ -171,12 +171,12 @@
"name": "stdout",
"output_type": "stream",
"text": [
"{{p0 && p2}[*]}<>-> (Fp2 & Fp0)\n"
"{{1 | [*0]}[:*] & [*2]}\n"
]
}
],
"source": [
"f = spot.randltl(3, output='psl', seed=332)\n",
"f = spot.randltl(3, output='psl', seed=26)\n",
"print(next(f))"
]
},
@ -370,6 +370,7 @@
"star_b\t1\n",
"fstar\t1\n",
"fstar_b\t1\n",
"first_match\t1\n",
"and\t1\n",
"andNLM\t1\n",
"or\t1\n",
@ -403,6 +404,7 @@
"star_b\t1\n",
"fstar\t1\n",
"fstar_b\t1\n",
"first_match\t1\n",
"and\t1\n",
"andNLM\t1\n",
"or\t1\n",
@ -618,7 +620,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.6+"
"version": "3.7.3"
}
},
"nbformat": 4,