scc_map: fix computation of ap_set_of, and (indirectly) aprec_set_of

Reported by Étienne Renault.

* src/tgbaalgos/scc.cc (build_map): Update root_.frond().supp for all
transitions leaving the top state, not only those causing a merge.
* src/tgbaalgos/scc.hh (ap_set_of): Clarify documentation.
* src/tgbatest/kv.test: Add a test case.
This commit is contained in:
Alexandre Duret-Lutz 2012-10-12 09:39:29 +02:00
parent 561b852106
commit 08175025c9
3 changed files with 28 additions and 9 deletions

View file

@ -1,6 +1,7 @@
#!/bin/sh
# Copyright (C) 2009, 2010, 2011 Laboratoire de Recherche et
# Development de l'EPITA.
# -*- coding: utf-8 -*-
# Copyright (C) 2009, 2010, 2011, 2012 Laboratoire de Recherche et
# Développement de l'EPITA.
#
# This file is part of Spot, a model checking library.
#
@ -40,3 +41,14 @@ check '((Xp2)U(X(1)))&(p1 R(p2 R p0))'
# Make sure escaped variables print OK.
check '"G1"U"GG" && "FF"'
# Make sure we count 4 atomic propositions in
# G("P_1.p2" <-> (F"P_1.p3" & ("P_0.p3" | (X"P_1.CS" U "P_1.p2")))) U G"P_1.p2"
# even after iterated simulation
# Report from Etienne Renault.
../ltl2tgba -KV -R3 -RIS >out \
'G("P_1.p2" <-> (F"P_1.p3" & ("P_0.p3" | (X"P_1.CS" U "P_1.p2")))) U G"P_1.p2"'
x=`sed -n '/APre/{s/.*APrec=\[\([^]]*\)\].*/\1/p;q}' out | tr ' ' '\n' | wc -l`
test "$x" = 4