relabel_bse: fix incorrect detection of common APs

Based on a report by Jean Kreber.

* spot/tl/relabel.cc (cut_points): Really connect children of Boolean
operators using undirected edges, not directed ones.
* tests/core/ltlrel.test: Add test cases.
* NEWS: Mention the bug.
This commit is contained in:
Alexandre Duret-Lutz 2020-04-11 23:50:07 +02:00
parent 0b25820211
commit 33289f5166
3 changed files with 35 additions and 10 deletions

View file

@ -1,6 +1,6 @@
#! /bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2013, 2016 Laboratoire de Recherche et Développement
# Copyright (C) 2013, 2016, 2020 Laboratoire de Recherche et Développement
# de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
@ -89,3 +89,22 @@ Fp0 -> ((p1 -> (!p0 U (!p0 & p2 & p3 & X((!p0 & p3) U p4)))) U p0)
p3 -> !p5
p4 -> p4
EOF
# The next two formulas come from a report by Jens Kreber.
t <<EOF
!b & e U (a & b & c)
!p0 & (p1 U (p0 & p2 & p3))
p0 -> b
p1 -> e
p2 -> a
p3 -> c
EOF
t <<EOF
X!c & X(b & c & d & a U e)
X!p0 & X(p0 & p1 & p2 & (p3 U p4))
p0 -> c
p1 -> b
p2 -> d
p3 -> a
p4 -> e
EOF