simplify: some new simplification rules

For #263, reported by Mikuláš Klokočka.

G(a & Xe1 & F(b & e2)) = G(a & e1 & Fb & e2)
F(a | Xu1 | G(b | u2)) = F(a | u1 | Gb | u2)

* spot/tl/simplify.cc: Implement the rules.
* doc/tl/tl.tex, NEWS: Document them.
* tests/core/reduccmp.test, tests/core/eventuniv.test: Add test cases.
* tests/core/det.test, tests/core/ltl2tgba2.test: Adjust to expect
smaller automata.
* THANKS: Add Mikuláš.
This commit is contained in:
Alexandre Duret-Lutz 2017-09-02 09:30:26 +02:00
parent cd6f1c2c3e
commit 646c5170ed
8 changed files with 89 additions and 20 deletions

View file

@ -51,7 +51,7 @@ cat >formulas <<'EOF'
1,2,Ga R Fb
1,3,G(a U (b | X((!a & !c) | (a & c))))
1,5,XG((G!a & F!b) | (Fa & (a | Gb)))
1,10,(a U X!a) | XG(!b & XFc)
1,9,(a U X!a) | XG(!b & Fc)
1,4,X(G!a | GFa)
1,4,G(G!a | F!c | G!b)
EOF

View file

@ -1,6 +1,6 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2012, 2013, 2014 Laboratoire de Recherche et
# Copyright (C) 2012, 2013, 2014, 2017 Laboratoire de Recherche et
# Developpement de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
@ -41,6 +41,11 @@ G(Ga & GXFb & c & FGd & FGe & Fc), G(Fb & FG(d & e)) & G(a & c)
Ga & Gb & GFd & FGe & FGf, G(Fd & FG(e & f)) & G(a & b)
G(Ga & Gb & GFd & FGe) & FGf, G(Fd & FG(e & f)) & G(a & b)
G(a & XFb), Ga & GFb
G(a & XF(b & XFc & Fd)), Ga & G(Fb & Fc & Fd)
F(a | XGb), Fa | FGb
F(a | XG(b | XGc | Gd)), Fa | F(Gb | Gc | Gd)
a U (b | Fc), (a U b) | Fc
a W (b | Fc), (a W b) | Fc
a U (b & GFc), (a U b) & GFc

View file

@ -100,7 +100,7 @@ eh-patterns,5, 4,32, 4,32, 4,32, 4,32
eh-patterns,6, 3,24, 3,24, 3,24, 3,24
eh-patterns,7, 3,14, 3,14, 4,18, 4,18
eh-patterns,8, 2,13, 2,13, 2,13, 2,13
eh-patterns,9, 5,58, 5,58, 8,80, 8,80
eh-patterns,9, 1,8, 1,8, 4,32, 4,32
eh-patterns,10, 1,32, 1,32, 6,192, 6,192
eh-patterns,11, 2,15, 2,15, 2,15, 2,15
eh-patterns,12, 4,60, 4,60, 4,60, 4,60
@ -264,7 +264,7 @@ p-patterns,20, 1,8, 1,8, 3,24, 3,24
!eh-patterns,6, 2,12, 2,12, 2,12, 2,12
!eh-patterns,7, 2,7, 2,7, 3,9, 3,9
!eh-patterns,8, 3,21, 3,21, 3,21, 3,21
!eh-patterns,9, 5,80, 5,80, 5,80, 5,80
!eh-patterns,9, 5,68, 5,68, 5,68, 5,68
!eh-patterns,10, 6,192, 6,192, 6,192, 6,192
!eh-patterns,11, 2,9, 2,9, 2,9, 2,9
!eh-patterns,12, 6,103, 6,103, 8,135, 8,135

View file

@ -300,6 +300,11 @@ a W ((a&b) W c), a W c
Fa M b, Fa & b
GFa M b, GFa & b
G(a & XFb), G(a & Fb)
G(a & XF(b & XFc & Fd)), G(a & Fb & Fc & Fd)
F(a | XGb), F(a | Gb)
F(a | XG(b | XGc | Gd)), F(a | Gb | Gc | Gd)
Fa|Xb|GFc, Fa | X(b|GFc)
Fa|GFc, F(a|GFc)
FGa|GFc, F(Ga|GFc)