simulation: fix merging transiant SCCs

This fixes #452, and also fix a bug related to transiant SCCs
incorrectly merged in cosimulation: the source of the edges was
updated without fixing the chaining of the edges.

* spot/twaalgos/simulation.cc: Fix all the above.
* tests/python/simstate.py: Add test case from issue #452.
* tests/core/det.test, tests/core/ltlsynt.test,
tests/core/satmin.test: Lower expected sizes.
* tests/python/decompose.ipynb: Adjust for changed order.
This commit is contained in:
Alexandre Duret-Lutz 2021-04-19 23:38:50 +02:00
parent cfa3417449
commit fca6513604
6 changed files with 203 additions and 142 deletions

View file

@ -1,7 +1,7 @@
#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2013, 2017, 2018, 2019 Laboratoire de Recherche et Développement
# de l'Epita (LRDE).
# Copyright (C) 2013, 2017-2019, 2021 Laboratoire de Recherche et
# Développement de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
#
@ -1300,8 +1300,8 @@ cat >expected <<'EOF'
"!((G(F(p0))) | ((p1) & (F(p2))))","15",5
"!((G(F(p0))) | ((p1) & (F(p2))))","16",5
"!((G(F(p0))) | ((p1) & (F(p2))))","17",5
"X((p0) R ((F(p1)) R (F(!(p1)))))","1",6
"X((p0) R ((F(p1)) R (F(!(p1)))))","2",6
"X((p0) R ((F(p1)) R (F(!(p1)))))","1",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","2",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","3",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","4",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","6",4