simplify: rewrite GF(a & Fb) as G(Fa & Fb)

This addresses part of #35, and is just a generalization of the rules
from 646c5170 for #263 (hence, no new documentation).

* spot/tl/simplify.cc: Implement this.
* tests/core/reduccmp.test: Add test cases.
* tests/core/stutter-tgba.test: Adjust to expect smaller automata.
This commit is contained in:
Alexandre Duret-Lutz 2017-09-02 19:54:07 +02:00
parent e8527d5ae9
commit 6cd6802ace
3 changed files with 64 additions and 28 deletions

View file

@ -302,8 +302,10 @@ GFa M b, GFa & b
G(a & XFb), G(a & Fb)
G(a & XF(b & XFc & Fd)), G(a & Fb & Fc & Fd)
GF(a & XF(b & Fc)), G(Fa & Fb & Fc)
F(a | XGb), F(a | Gb)
F(a | XG(b | XGc | Gd)), F(a | Gb | Gc | Gd)
FG(a | XG(b | Gc)), F(Ga | Gb | Gc)
Fa|Xb|GFc, Fa | X(b|GFc)
Fa|GFc, F(a|GFc)