use reduce_parity in translator and posprocessor

* spot/twaalgos/postproc.cc, spot/twaalgos/translate.cc: Here.
* tests/core/genltl.test, tests/core/parity2.test,
tests/core/sccsimpl.test, tests/python/twagraph-internals.ipynb:
Adjust test cases.
* NEWS: Mention it.
This commit is contained in:
Alexandre Duret-Lutz 2019-06-12 22:01:51 +02:00
parent ebfa3a377a
commit eb7b68ad58
7 changed files with 2319 additions and 2034 deletions

View file

@ -1,6 +1,6 @@
#!/bin/sh
# -*- coding: utf-8 -*-
# Copyright (C) 2016-2018 Laboratoire de Recherche et Développement
# Copyright (C) 2016-2019 Laboratoire de Recherche et Développement
# de l'Epita (LRDE).
#
# This file is part of Spot, a model checking library.
@ -185,28 +185,28 @@ cat >exp<<EOF
"ms-example=4,3",11,11
"ms-example=4,4",12,12
"ms-phi-r=0",1,2
"ms-phi-r=1",1,16
"ms-phi-r=2",1,29
"ms-phi-s=0",1,5
"ms-phi-s=1",1,8
"ms-phi-s=2",1,494
"ms-phi-r=1",1,12
"ms-phi-r=2",1,28
"ms-phi-s=0",1,3
"ms-phi-s=1",1,7
"ms-phi-s=2",1,375
"ms-phi-h=0",1,1
"ms-phi-h=1",2,3
"ms-phi-h=2",4,7
"ms-phi-h=3",8,15
"ms-phi-h=4",16,31
"gf-equiv=0",1,1
"gf-equiv=1",1,4
"gf-equiv=2",1,8
"gf-equiv=3",1,21
"gf-equiv=4",1,81
"gf-equiv=5",1,431
"gf-equiv=1",1,3
"gf-equiv=2",1,7
"gf-equiv=3",1,20
"gf-equiv=4",1,80
"gf-equiv=5",1,430
"gf-implies=0",1,1
"gf-implies=1",1,5
"gf-implies=2",1,12
"gf-implies=3",1,41
"gf-implies=4",1,186
"gf-implies=5",1,1047
"gf-implies=1",1,4
"gf-implies=2",1,11
"gf-implies=3",1,33
"gf-implies=4",1,131
"gf-implies=5",1,653
"gf-equiv-xn=1",2,2
"gf-equiv-xn=2",4,4
"gf-equiv-xn=3",8,8

View file

@ -317,14 +317,14 @@ State: 1
[1&2] 4 {2}
State: 2
[!0] 1 {2}
[0&1&2] 2 {1}
[0&!1&2] 2 {2}
[0&1&2] 2 {1}
State: 3
[0] 3 {2}
[0&1&2] 4 {2}
State: 4
[0&1&2] 4 {1}
[0&!1&2] 4 {2}
[0&1&2] 4 {1}
--END--
HOA: v1
name: "FGa"
@ -804,7 +804,7 @@ properties: trans-labels explicit-labels trans-acc deterministic
State: 0
[0&!1 | 0&!2] 0
[!0] 1
[0&1&2] 2 {1}
[0&1&2] 2
State: 1
[!1 | !2] 3
[1&2] 4
@ -815,7 +815,7 @@ State: 2
[0&1&2] 2 {1}
State: 3
[0&!1 | 0&!2] 3
[0&1&2] 4 {1}
[0&1&2] 4
State: 4
[0&!2] 3 {0}
[0&!1&2] 4
@ -865,7 +865,7 @@ properties: trans-labels explicit-labels trans-acc deterministic
State: 0
[0&!1 | 0&!2] 0
[!0] 1
[0&1&2] 2 {1}
[0&1&2] 2
State: 1
[!1 | !2] 3
[1&2] 4
@ -876,7 +876,7 @@ State: 2
[0&1&2] 2 {1}
State: 3
[0&!1 | 0&!2] 3
[0&1&2] 4 {1}
[0&1&2] 4
State: 4
[0&!2] 3 {0}
[0&!1&2] 4
@ -926,7 +926,7 @@ properties: trans-labels explicit-labels trans-acc deterministic
State: 0
[0&!1 | 0&!2] 0
[!0] 1
[0&1&2] 2 {0}
[0&1&2] 2
State: 1
[!1 | !2] 3
[1&2] 4
@ -937,7 +937,7 @@ State: 2
[0&1&2] 2 {0}
State: 3
[0&!1 | 0&!2] 3
[0&1&2] 4 {0}
[0&1&2] 4
State: 4
[0&!2] 3 {1}
[0&!1&2] 4
@ -988,22 +988,22 @@ properties: deterministic
State: 0
[0&!1 | 0&!2] 0 {2}
[!0] 1 {2}
[0&1&2] 2 {1}
[0&1&2] 2 {2}
State: 1
[!1 | !2] 3 {2}
[1&2] 4 {2}
State: 2
[0&!2] 0 {0}
[!0] 1 {2}
[0&1&2] 2 {1}
[0&!1&2] 2 {2}
[0&1&2] 2 {1}
State: 3
[0&!1 | 0&!2] 3 {2}
[0&1&2] 4 {1}
[0&1&2] 4 {2}
State: 4
[0&!2] 3 {0}
[0&1&2] 4 {1}
[0&!1&2] 4 {2}
[0&1&2] 4 {1}
--END--
HOA: v1
name: "FGa"
@ -1050,22 +1050,22 @@ properties: deterministic
State: 0
[0&!1 | 0&!2] 0 {2}
[!0] 1 {2}
[0&1&2] 2 {1}
[0&1&2] 2 {2}
State: 1
[!1 | !2] 3 {2}
[1&2] 4 {2}
State: 2
[0&!2] 0 {0}
[!0] 1 {2}
[0&1&2] 2 {1}
[0&!1&2] 2 {2}
[0&1&2] 2 {1}
State: 3
[0&!1 | 0&!2] 3 {2}
[0&1&2] 4 {1}
[0&1&2] 4 {2}
State: 4
[0&!2] 3 {0}
[0&1&2] 4 {1}
[0&!1&2] 4 {2}
[0&1&2] 4 {1}
--END--
HOA: v1
name: "FGa"
@ -1112,7 +1112,7 @@ properties: deterministic
State: 0
[0&!1 | 0&!2] 0 {1}
[!0] 1 {1}
[0&1&2] 2 {2}
[0&1&2] 2 {1}
State: 1
[!1 | !2] 3 {1}
[1&2] 4 {1}
@ -1123,7 +1123,7 @@ State: 2
[0&1&2] 2 {2}
State: 3
[0&!1 | 0&!2] 3 {1}
[0&1&2] 4 {2}
[0&1&2] 4 {1}
State: 4
[0&!2] 3 {3}
[0&!1&2] 4 {1}
@ -1135,20 +1135,17 @@ diff expected3 res3
cat >expected4<<EOF
HOA: v1
name: "FGa"
States: 2
States: 1
Start: 0
AP: 1 "a"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
acc-name: co-Buchi
Acceptance: 1 Fin(0)
properties: trans-labels explicit-labels trans-acc complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[!0] 0
[0] 1 {1}
State: 1
[0] 0
[!0] 0 {0}
[0] 1 {1}
--END--
HOA: v1
name: "G(Fa & Fb)"
@ -1199,20 +1196,17 @@ State: 4
--END--
HOA: v1
name: "FGa"
States: 2
States: 1
Start: 0
AP: 1 "a"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
acc-name: co-Buchi
Acceptance: 1 Fin(0)
properties: trans-labels explicit-labels trans-acc complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[!0] 0
[0] 1 {1}
State: 1
[0] 0
[!0] 0 {0}
[0] 1 {1}
--END--
HOA: v1
name: "G(Fa & Fb)"
@ -1263,20 +1257,17 @@ State: 4
--END--
HOA: v1
name: "FGa"
States: 2
States: 1
Start: 0
AP: 1 "a"
acc-name: parity max even 2
Acceptance: 2 Fin(1) & Inf(0)
properties: trans-labels explicit-labels trans-acc complete
properties: trans-labels explicit-labels trans-acc colored complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[!0] 0
[0] 1 {0}
State: 1
[0] 0 {0}
[!0] 0 {1}
[0] 1 {0}
--END--
HOA: v1
name: "G(Fa & Fb)"
@ -1327,20 +1318,17 @@ State: 4
--END--
HOA: v1
name: "FGa"
States: 2
States: 1
Start: 0
AP: 1 "a"
acc-name: parity min odd 3
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
acc-name: parity max even 2
Acceptance: 2 Fin(1) & Inf(0)
properties: trans-labels explicit-labels trans-acc colored complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[!0] 0 {2}
[0] 1 {1}
State: 1
[!0] 0 {0}
[0] 1 {1}
[0] 0 {0}
[!0] 0 {1}
--END--
HOA: v1
name: "G(Fa & Fb)"
@ -1392,20 +1380,17 @@ State: 4
--END--
HOA: v1
name: "FGa"
States: 2
States: 1
Start: 0
AP: 1 "a"
acc-name: parity min odd 3
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc colored complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[!0] 0 {2}
[0] 1 {1}
State: 1
[0] 0 {1}
[!0] 0 {0}
[0] 1 {1}
--END--
HOA: v1
name: "G(Fa & Fb)"
@ -1457,20 +1442,17 @@ State: 4
--END--
HOA: v1
name: "FGa"
States: 2
States: 1
Start: 0
AP: 1 "a"
acc-name: parity max even 4
Acceptance: 4 Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))
acc-name: parity max even 2
Acceptance: 2 Fin(1) & Inf(0)
properties: trans-labels explicit-labels trans-acc colored complete
properties: deterministic stutter-invariant
--BODY--
State: 0
[0] 0 {0}
[!0] 0 {1}
[0] 1 {2}
State: 1
[!0] 0 {3}
[0] 1 {2}
--END--
HOA: v1
name: "G(Fa & Fb)"
@ -1535,7 +1517,7 @@ cat >expected <<EOF
"input.states","output.states"
2,3
3,15
4,129
5,2057
4,120
5,1801
EOF
diff sizes.csv expected

View file

@ -292,16 +292,16 @@ HOA: v1
States: 2
Start: 1
AP: 1 "p0"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc complete
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels state-acc complete
properties: deterministic
--BODY--
State: 0
[t] 0 {1}
State: 0 {0}
[t] 0
State: 1
[0] 0
[!0] 1 {0}
[!0] 1
--END--
EOF
cat output