simulation: improve merging of transiant-SCCs

* spot/twaalgos/simulation.cc: Code this.
* tests/core/det.test, tests/core/dra2dba.test,
tests/core/satmin.test, tests/core/sim3.test,
tests/python/decompose.ipynb, tests/python/dualize.py: Adjust test
cases.
* NEWS: Mention the optimization.
This commit is contained in:
Alexandre Duret-Lutz 2019-06-20 13:23:37 +02:00
parent c9ddbd0a73
commit f3e57901a4
8 changed files with 221 additions and 231 deletions

View file

@ -1,6 +1,6 @@
#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2013-2018 Laboratoire de Recherche et Développement de
# Copyright (C) 2013-2019 Laboratoire de Recherche et Développement de
# l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
@ -24,17 +24,17 @@ set -e
cat >formulas <<'EOF'
1,13,X((a M F((!b & !c) | (b & c))) W (G!c U b))
1,5,X(((a & b) R (!a U !c)) R b)
1,9,XXG(Fa U Xb)
1,8,XXG(Fa U Xb)
1,5,(!a M !b) W F!c
1,3,(b & Fa & GFc) R a
1,2,(a R (b W a)) W G(!a M (b | c))
1,11,(Fa W b) R (!a | Fc)
1,7,X(G(!a M !b) | G(a | G!a))
1,6,X(G(!a M !b) | G(a | G!a))
1,2,Fa W Gb
1,3,Ga | GFb
1,2,Ga | GFb
1,9,G((G!a & ((!b & X!c) | (b & Xc))) | (Fa & ((!b & Xc) | (b & X!c))))
1,5,a M G(F!b | X!a)
1,4,G!a R XFb
1,3,G!a R XFb
1,4,XF(!a | GFb)
1,5,X(GF!a U a)
1,5,(a | G(a M !b)) W Fc
@ -43,14 +43,14 @@ cat >formulas <<'EOF'
1,2,XG!a R Fb
1,4,GFc | (a & Fb)
1,6,X(a R (Fb R F!b))
1,2,G(Xa M Fa)
1,4,X(Gb | GFa)
1,1,G(Xa M Fa)
1,3,X(Gb | GFa)
1,9,X(Gc | XG((b & Ga) | (!b & F!a)))
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,9,(a U X!a) | XG(!b & Fc)
1,4,X(G!a | GFa)
1,7,(a U X!a) | XG(!b & Fc)
1,3,X(G!a | GFa)
1,4,G(G!a | F!c | G!b)
EOF

View file

@ -330,4 +330,5 @@ Acc-Sig: +2
EOF
autcross 'dstar2tgba -D' --language-preserved -F in.dra --csv=out.csv
grep '3,18,107,144,1,2,0,0,0$' out.csv
cat out.csv
grep '3,17,104,136,1,1,0,0,0$' out.csv

View file

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

View file

@ -47,7 +47,7 @@ State: 6 {0 3}
--END--
EOF
test "`autfilt --small input --stats=%S,%s`" = 7,2
test "`autfilt --small input --stats=%S,%s`" = 7,1
autfilt -S --high --small input -H > out
cat >expected <<EOF