simplify: fix related to event_univ handling

Fixes #260.  Reported by František Blahoudek.

The simplification F(f)|q = F(f|q), where q designates an event_univ
formula, was not always applied because of a couple of issue: (1) the
mospliter was ignoring event_univ unless favor_event_univ was set, (2)
when processing formulas from res_EventUniv they were not put back
into res_F or res_G to be subject to the F/G rules.

* spot/tl/simplify.cc: Improve handling of the above points.
* tests/core/reduccmp.test: Adjust and add test case.
* tests/core/ltl2tgba2.test, tests/python/atva16-fig2a.ipynb: Adjust.
This commit is contained in:
Alexandre Duret-Lutz 2017-05-08 10:28:13 +02:00
parent 19aae6f9cf
commit 845958834f
5 changed files with 113 additions and 123 deletions

View file

@ -1,7 +1,7 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2016 Laboratoire de
# Recherche et Developpement de l'Epita (LRDE).
# Copyright (C) 2009-2014, 2016-2017 Laboratoire de Recherche et
# Developpement de l'Epita (LRDE).
# Copyright (C) 2004, 2006 Laboratoire d'Informatique de Paris 6 (LIP6),
# département Systèmes Répartis Coopératifs (SRC), Université Pierre
# et Marie Curie.
@ -179,7 +179,8 @@ G(a | GFb), Ga | GFb
F(a & GFb & c), F(a & GFb & c)
G(a | GFb | c), G(a | c) | GFb
GFa <=> GFb, G(Fa&Fb)|FG(!a&!b)
GFa <=> GFb, F(G(Fa&Fb)|G(!a&!b))
FGa | (GFa & GFb), F(Ga | (G(Fa & Fb)))
Gb W a, Gb|a
Fb M Fa, Fa & Fb