simplifier: new PSL simplifications

{e[*0..j]}<>->f = {e[*1..j]}<>->f
{e[*0..j]}[]->f = {e[*1..j]}[]->f

Fixes #81.

This required a small change to the bounded-star-normal-form to prevent
infinite recursion.

* spot/tl/simplify.cc: Implement these rules.
* doc/tl/tl.tex, NEWS: Document them.
* tests/core/reduccmp.test: Add tests, and adjust others.
* tests/core/unambig.test: Replace formula that used to generated an
ambiguous automaton, but now generates a deterministic one.
This commit is contained in:
Alexandre Duret-Lutz 2016-07-19 16:40:59 +02:00
parent d5b2de7fa8
commit abff7eba8e
5 changed files with 38 additions and 16 deletions

4
NEWS
View file

@ -111,9 +111,11 @@ New in spot 2.0.3a (not yet released)
implies that "autfilt --check=stutter" will now label all
automata, not just deterministic automata.
* New LTL simplification rules:
* New LTL and PSL simplification rules:
- if e is pure eventuality and g => e, then e U g = Fg
- if u is purely universal and u => g, then u R g = Gg
- {s[*0..j]}[]->b = {s[*1..j]}[]->b
- {s[*0..j]}<>->b = {s[*1..j]}<>->b
Python: