translate: extract obligations terms when translating LTL to Parity

* spot/twaalgos/translate.cc: Here.
* NEWS: Mention the change.
* tests/core/genltl.test: Add parity automata sizes for a set of
formulas.
* tests/core/parity2.test: Add another formula to the tests.
This commit is contained in:
Alexandre Duret-Lutz 2018-06-25 15:36:05 +02:00
parent 0690a547a5
commit 0a8c6479b7
4 changed files with 948 additions and 94 deletions

View file

@ -156,60 +156,61 @@ test $(genltl --kr-n=4 | ltl2tgba --low --stats=%s) -ge 16
genltl --ms-example=0..4 --ms-phi-r=0..2 --ms-phi-s=0..2 --ms-phi-h=0..4 \
--gf-equiv=0..5 --gf-implies=0..5 --gf-equiv-xn=1..3 --gf-implies-xn=3 \
--format='"%F=%L",%f' |
ltl2tgba -G -D -F-/2 --stats='%<,%s' > out
ltl2tgba -G -D -F-/2 --stats='%f,%<,%s' |
ltl2tgba -P -D -F-/1 --stats='%>,%s' > out
cat >exp<<EOF
"ms-example=0,0",1
"ms-example=0,1",2
"ms-example=0,2",3
"ms-example=0,3",4
"ms-example=0,4",5
"ms-example=1,0",1
"ms-example=1,1",2
"ms-example=1,2",3
"ms-example=1,3",4
"ms-example=1,4",5
"ms-example=2,0",2
"ms-example=2,1",3
"ms-example=2,2",4
"ms-example=2,3",5
"ms-example=2,4",6
"ms-example=3,0",4
"ms-example=3,1",5
"ms-example=3,2",6
"ms-example=3,3",7
"ms-example=3,4",8
"ms-example=4,0",8
"ms-example=4,1",9
"ms-example=4,2",10
"ms-example=4,3",11
"ms-example=4,4",12
"ms-phi-r=0",1
"ms-phi-r=1",1
"ms-phi-r=2",1
"ms-phi-s=0",1
"ms-phi-s=1",1
"ms-phi-s=2",1
"ms-phi-h=0",1
"ms-phi-h=1",2
"ms-phi-h=2",4
"ms-phi-h=3",8
"ms-phi-h=4",16
"gf-equiv=0",1
"gf-equiv=1",1
"gf-equiv=2",1
"gf-equiv=3",1
"gf-equiv=4",1
"gf-equiv=5",1
"gf-implies=0",1
"gf-implies=1",1
"gf-implies=2",1
"gf-implies=3",1
"gf-implies=4",1
"gf-implies=5",1
"gf-equiv-xn=1",2
"gf-equiv-xn=2",4
"gf-equiv-xn=3",8
"gf-implies-xn=3",1
"ms-example=0,0",1,1
"ms-example=0,1",2,2
"ms-example=0,2",3,3
"ms-example=0,3",4,4
"ms-example=0,4",5,5
"ms-example=1,0",1,1
"ms-example=1,1",2,2
"ms-example=1,2",3,3
"ms-example=1,3",4,4
"ms-example=1,4",5,5
"ms-example=2,0",2,2
"ms-example=2,1",3,3
"ms-example=2,2",4,4
"ms-example=2,3",5,5
"ms-example=2,4",6,6
"ms-example=3,0",4,4
"ms-example=3,1",5,5
"ms-example=3,2",6,6
"ms-example=3,3",7,7
"ms-example=3,4",8,8
"ms-example=4,0",8,8
"ms-example=4,1",9,9
"ms-example=4,2",10,10
"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-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-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-equiv-xn=1",2,2
"gf-equiv-xn=2",4,4
"gf-equiv-xn=3",8,8
"gf-implies-xn=3",1,1
EOF
diff out exp
@ -217,7 +218,8 @@ diff out exp
genltl --ms-example=0..4 --ms-phi-r=0..2 --ms-phi-s=0..2 --ms-phi-h=0..4 \
--gf-equiv=0..5 --gf-implies=0..5 --gf-equiv-xn=1..3 --gf-implies-xn=3 \
--format='"%F=%L",%f' |
ltldo -F-/2 'ltl2tgba -G -D' --stats='%<,%s' > out
ltldo 'ltl2tgba -DG' -F-/2 --stats='%f,%<,%s' |
ltldo 'ltl2tgba -DP' -F-/1 --stats='%>,%s' > out
diff out exp
# Test out-of-range conditions

View file

@ -21,13 +21,13 @@
. ./defs
set -e
rm -rf res res2
for x in P 'Pmin odd' 'Pmax even' p 'pmin odd' 'pmax even'; do
ltl2tgba "-$x" FGa 'GFa & GFb' >>res
ltl2tgba FGa 'GFa & GFb' | autfilt --name=%M --high "-$x" >>res2
ltl2tgba -D "-$x" FGa 'GFa & GFb' >>res3
ltl2tgba FGa 'GFa & GFb' | autfilt -D --name=%M --high "-$x" >>res4
ltl2tgba "-$x" FGa 'GFa & GFb' '(p0 W XXGp0) & GFp1 & FGp2' >>res
ltl2tgba FGa 'GFa & GFb' '(p0 W XXGp0) & GFp1 & FGp2' |
autfilt --name=%M --high "-$x" >>res2
ltl2tgba -D "-$x" FGa 'GFa & GFb' '(p0 W XXGp0) & GFp1 & FGp2' >>res3
ltl2tgba FGa 'GFa & GFb' '(p0 W XXGp0) & GFp1 & FGp2' |
autfilt -D --name=%M --high "-$x" >>res4
done
cat >expected<<EOF
@ -64,6 +64,33 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0] 0
[!0] 1
[0&1&2] 2
State: 1
[t] 3
[1&2] 4
State: 2
[!0] 1
[0&!1&2] 2
[0&1&2] 2 {0}
State: 3
[0] 3
[0&1&2] 4
State: 4
[0&!1&2] 4
[0&1&2] 4 {0}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -96,6 +123,33 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0] 0
[!0] 1
[0&1&2] 2
State: 1
[t] 3
[1&2] 4
State: 2
[!0] 1
[0&!1&2] 2
[0&1&2] 2 {1}
State: 3
[0] 3
[0&1&2] 4
State: 4
[0&!1&2] 4
[0&1&2] 4 {1}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -128,6 +182,33 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0] 0
[!0] 1
[0&1&2] 2
State: 1
[t] 3
[1&2] 4
State: 2
[!0] 1
[0&!1&2] 2
[0&1&2] 2 {0}
State: 3
[0] 3
[0&1&2] 4
State: 4
[0&!1&2] 4
[0&1&2] 4 {0}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -160,6 +241,33 @@ State: 1
[!0] 1 {0}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 3
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
properties: trans-labels explicit-labels trans-acc colored
--BODY--
State: 0
[0] 0 {1}
[!0] 1 {0}
[0&1&2] 2 {0}
State: 1
[t] 3 {0}
[1&2] 4 {0}
State: 2
[!0] 1 {0}
[0&!1&2] 2 {1}
[0&1&2] 2 {2}
State: 3
[0] 3 {1}
[0&1&2] 4 {0}
State: 4
[0&!1&2] 4 {1}
[0&1&2] 4 {2}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -192,6 +300,33 @@ State: 1
[!0] 1 {2}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity min odd 4
Acceptance: 4 Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))
properties: trans-labels explicit-labels trans-acc colored
--BODY--
State: 0
[0] 0 {2}
[!0] 1 {3}
[0&1&2] 2 {3}
State: 1
[t] 3 {3}
[1&2] 4 {3}
State: 2
[!0] 1 {3}
[0&1&2] 2 {1}
[0&!1&2] 2 {2}
State: 3
[0] 3 {2}
[0&1&2] 4 {3}
State: 4
[0&1&2] 4 {1}
[0&!1&2] 4 {2}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -223,6 +358,33 @@ State: 1
[0] 0 {2}
[!0] 1 {1}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 3
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
properties: trans-labels explicit-labels trans-acc colored
--BODY--
State: 0
[0] 0 {1}
[!0] 1 {1}
[0&1&2] 2 {1}
State: 1
[t] 3 {1}
[1&2] 4 {1}
State: 2
[!0] 1 {1}
[0&!1&2] 2 {1}
[0&1&2] 2 {2}
State: 3
[0] 3 {1}
[0&1&2] 4 {1}
State: 4
[0&!1&2] 4 {1}
[0&1&2] 4 {2}
--END--
EOF
diff expected res
@ -263,6 +425,35 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 6
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0] 0
[t] 2
[0&1&2] 3
State: 1
[2] 4
State: 2
[1&2] 4
[t] 5
State: 3
[2] 1
[0&!1&2] 3
[0&1&2] 3 {0}
State: 4
[0&!1&2] 4
[0&1&2] 4 {0}
State: 5
[0&1&2] 4
[0] 5
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -297,6 +488,35 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 6
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0] 0
[t] 2
[0&1&2] 3
State: 1
[2] 4
State: 2
[1&2] 4
[t] 5
State: 3
[2] 1
[0&!1&2] 3
[0&1&2] 3 {1}
State: 4
[0&!1&2] 4
[0&1&2] 4 {1}
State: 5
[0&1&2] 4
[0] 5
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -331,6 +551,35 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 6
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc
--BODY--
State: 0
[0] 0
[t] 2
[0&1&2] 3
State: 1
[2] 4
State: 2
[1&2] 4
[t] 5
State: 3
[2] 1
[0&!1&2] 3
[0&1&2] 3 {0}
State: 4
[0&!1&2] 4
[0&1&2] 4 {0}
State: 5
[0&1&2] 4
[0] 5
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -365,6 +614,35 @@ State: 1
[!0] 1 {0}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 6
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Streett 1
Acceptance: 2 Fin(0) | Inf(1)
properties: trans-labels explicit-labels trans-acc colored
--BODY--
State: 0
[0] 0 {0}
[t] 2 {0}
[0&1&2] 3 {0}
State: 1
[2] 4 {0}
State: 2
[1&2] 4 {0}
[t] 5 {0}
State: 3
[2] 1 {0}
[0&!1&2] 3 {0}
[0&1&2] 3 {1}
State: 4
[0&!1&2] 4 {0}
[0&1&2] 4 {1}
State: 5
[0&1&2] 4 {0}
[0] 5 {0}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -399,6 +677,35 @@ State: 1
[!0] 1 {2}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 6
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity min odd 3
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
properties: trans-labels explicit-labels trans-acc colored
--BODY--
State: 0
[0] 0 {2}
[t] 2 {2}
[0&1&2] 3 {2}
State: 1
[2] 4 {2}
State: 2
[1&2] 4 {2}
[t] 5 {2}
State: 3
[2] 1 {2}
[0&!1&2] 3 {2}
[0&1&2] 3 {1}
State: 4
[0&!1&2] 4 {2}
[0&1&2] 4 {1}
State: 5
[0&1&2] 4 {2}
[0] 5 {2}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -432,6 +739,35 @@ State: 1
[0] 0 {2}
[!0] 1 {1}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 6
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 3
Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))
properties: trans-labels explicit-labels trans-acc colored
--BODY--
State: 0
[0] 0 {1}
[t] 2 {1}
[0&1&2] 3 {1}
State: 1
[2] 4 {1}
State: 2
[1&2] 4 {1}
[t] 5 {1}
State: 3
[2] 1 {1}
[0&!1&2] 3 {1}
[0&1&2] 3 {2}
State: 4
[0&!1&2] 4 {1}
[0&1&2] 4 {2}
State: 5
[0&1&2] 4 {1}
[0] 5 {1}
--END--
EOF
diff expected2 res2
@ -469,6 +805,35 @@ State: 1
[0&1] 1 {0}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[0&!1 | 0&!2] 0
[!0] 1
[0&1&2] 2 {1}
State: 1
[!1 | !2] 3
[1&2] 4
State: 2
[0&!2] 0 {0}
[!0] 1
[0&!1&2] 2
[0&1&2] 2 {1}
State: 3
[0&!1 | 0&!2] 3
[0&1&2] 4 {1}
State: 4
[0&!2] 3 {0}
[0&!1&2] 4
[0&1&2] 4 {1}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -501,6 +866,35 @@ State: 1
[0&1] 1 {1}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[0&!1 | 0&!2] 0
[!0] 1
[0&1&2] 2 {1}
State: 1
[!1 | !2] 3
[1&2] 4
State: 2
[0&!2] 0 {0}
[!0] 1
[0&!1&2] 2
[0&1&2] 2 {1}
State: 3
[0&!1 | 0&!2] 3
[0&1&2] 4 {1}
State: 4
[0&!2] 3 {0}
[0&!1&2] 4
[0&1&2] 4 {1}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -533,6 +927,35 @@ State: 1
[0&1] 1 {0}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 2
Acceptance: 2 Fin(1) & Inf(0)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[0&!1 | 0&!2] 0
[!0] 1
[0&1&2] 2 {0}
State: 1
[!1 | !2] 3
[1&2] 4
State: 2
[0&!2] 0 {1}
[!0] 1
[0&!1&2] 2
[0&1&2] 2 {0}
State: 3
[0&!1 | 0&!2] 3
[0&1&2] 4 {0}
State: 4
[0&!2] 3 {1}
[0&!1&2] 4
[0&1&2] 4 {0}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -565,6 +988,36 @@ State: 1
[0&1] 1 {1}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity min odd 4
Acceptance: 4 Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))
properties: trans-labels explicit-labels trans-acc colored
properties: deterministic
--BODY--
State: 0
[0&!1 | 0&!2] 0 {2}
[!0] 1 {3}
[0&1&2] 2 {1}
State: 1
[!1 | !2] 3 {3}
[1&2] 4 {3}
State: 2
[0&!2] 0 {0}
[!0] 1 {3}
[0&1&2] 2 {1}
[0&!1&2] 2 {2}
State: 3
[0&!1 | 0&!2] 3 {2}
[0&1&2] 4 {1}
State: 4
[0&!2] 3 {0}
[0&1&2] 4 {1}
[0&!1&2] 4 {2}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -597,6 +1050,36 @@ State: 1
[0&1] 1 {1}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity min odd 4
Acceptance: 4 Fin(0) & (Inf(1) | (Fin(2) & Inf(3)))
properties: trans-labels explicit-labels trans-acc colored
properties: deterministic
--BODY--
State: 0
[0&!1 | 0&!2] 0 {2}
[!0] 1 {3}
[0&1&2] 2 {1}
State: 1
[!1 | !2] 3 {3}
[1&2] 4 {3}
State: 2
[0&!2] 0 {0}
[!0] 1 {3}
[0&1&2] 2 {1}
[0&!1&2] 2 {2}
State: 3
[0&!1 | 0&!2] 3 {2}
[0&1&2] 4 {1}
State: 4
[0&!2] 3 {0}
[0&1&2] 4 {1}
[0&!1&2] 4 {2}
--END--
HOA: v1
name: "FGa"
States: 1
Start: 0
@ -628,6 +1111,36 @@ State: 1
[!0] 1 {1}
[0&1] 1 {2}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 5
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 4
Acceptance: 4 Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))
properties: trans-labels explicit-labels trans-acc colored
properties: deterministic
--BODY--
State: 0
[0&!1 | 0&!2] 0 {1}
[!0] 1 {1}
[0&1&2] 2 {2}
State: 1
[!1 | !2] 3 {1}
[1&2] 4 {1}
State: 2
[0&!2] 0 {3}
[!0] 1 {1}
[0&!1&2] 2 {1}
[0&1&2] 2 {2}
State: 3
[0&!1 | 0&!2] 3 {1}
[0&1&2] 4 {2}
State: 4
[0&!2] 3 {3}
[0&!1&2] 4 {1}
[0&1&2] 4 {2}
--END--
EOF
diff expected3 res3
@ -668,6 +1181,57 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 10
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[!0] 1
[0&!1 | 0&!2] 2
[0&1&2] 3
State: 1
[!1 | !2] 4
[1&2] 5
State: 2
[!0&!1 | !0&!2] 1
[0&!1 | 0&!2] 2
[0&1&2] 3
[!0&1&2] 6
State: 3
[!0&!2] 1
[0&!2] 2 {0}
[!0&!1&2] 7
[!0&1&2] 8
[0&!1&2] 9
[0&1&2] 9 {1}
State: 4
[0&!1 | 0&!2] 4
[0&1&2] 5
State: 5
[0&!2] 4 {0}
[0&!1&2] 5
[0&1&2] 5 {1}
State: 6
[!0&!1 | !2] 4
[0&2 | 1&2] 5
State: 7
[!2] 4
[2] 5
State: 8
[!2] 4
[2] 5
State: 9
[!0&!2] 1
[0&!2] 2 {0}
[!0&2] 8
[0&!1&2] 9
[0&1&2] 9 {1}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -703,6 +1267,57 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 10
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: Rabin 1
Acceptance: 2 Fin(0) & Inf(1)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[!0] 1
[0&!1 | 0&!2] 2
[0&1&2] 3
State: 1
[!1 | !2] 4
[1&2] 5
State: 2
[!0&!1 | !0&!2] 1
[0&!1 | 0&!2] 2
[0&1&2] 3
[!0&1&2] 6
State: 3
[!0&!2] 1
[0&!2] 2 {0}
[!0&!1&2] 7
[!0&1&2] 8
[0&!1&2] 9
[0&1&2] 9 {1}
State: 4
[0&!1 | 0&!2] 4
[0&1&2] 5
State: 5
[0&!2] 4 {0}
[0&!1&2] 5
[0&1&2] 5 {1}
State: 6
[!0&!1 | !2] 4
[0&2 | 1&2] 5
State: 7
[!2] 4
[2] 5
State: 8
[!2] 4
[2] 5
State: 9
[!0&!2] 1
[0&!2] 2 {0}
[!0&2] 8
[0&!1&2] 9
[0&1&2] 9 {1}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -738,6 +1353,57 @@ State: 1
[!0] 1
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 10
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 2
Acceptance: 2 Fin(1) & Inf(0)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[!0] 1
[0&!1 | 0&!2] 2
[0&1&2] 3
State: 1
[!1 | !2] 4
[1&2] 5
State: 2
[!0&!1 | !0&!2] 1
[0&!1 | 0&!2] 2
[0&1&2] 3
[!0&1&2] 6
State: 3
[!0&!2] 1
[0&!2] 2 {1}
[!0&!1&2] 7
[!0&1&2] 8
[0&!1&2] 9
[0&1&2] 9 {0}
State: 4
[0&!1 | 0&!2] 4
[0&1&2] 5
State: 5
[0&!2] 4 {1}
[0&!1&2] 5
[0&1&2] 5 {0}
State: 6
[!0&!1 | !2] 4
[0&2 | 1&2] 5
State: 7
[!2] 4
[2] 5
State: 8
[!2] 4
[2] 5
State: 9
[!0&!2] 1
[0&!2] 2 {1}
[!0&2] 8
[0&!1&2] 9
[0&1&2] 9 {0}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -773,6 +1439,58 @@ State: 1
[!0] 1 {0}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 10
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity min odd 3
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
properties: trans-labels explicit-labels trans-acc colored
properties: deterministic
--BODY--
State: 0
[!0] 1 {2}
[0&!1 | 0&!2] 2 {2}
[0&1&2] 3 {2}
State: 1
[!1 | !2] 4 {2}
[1&2] 5 {2}
State: 2
[!0&!1 | !0&!2] 1 {2}
[0&!1 | 0&!2] 2 {2}
[0&1&2] 3 {2}
[!0&1&2] 6 {2}
State: 3
[!0&!2] 1 {2}
[0&!2] 2 {0}
[!0&!1&2] 7 {2}
[!0&1&2] 8 {2}
[0&!1&2] 9 {2}
[0&1&2] 9 {1}
State: 4
[0&!1 | 0&!2] 4 {2}
[0&1&2] 5 {2}
State: 5
[0&!2] 4 {0}
[0&!1&2] 5 {2}
[0&1&2] 5 {1}
State: 6
[!0&!1 | !2] 4 {2}
[0&2 | 1&2] 5 {2}
State: 7
[!2] 4 {2}
[2] 5 {2}
State: 8
[!2] 4 {2}
[2] 5 {2}
State: 9
[!0&!2] 1 {2}
[0&!2] 2 {0}
[!0&2] 8 {2}
[0&!1&2] 9 {2}
[0&1&2] 9 {1}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -808,6 +1526,58 @@ State: 1
[!0] 1 {2}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 10
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity min odd 3
Acceptance: 3 Fin(0) & (Inf(1) | Fin(2))
properties: trans-labels explicit-labels trans-acc colored
properties: deterministic
--BODY--
State: 0
[!0] 1 {2}
[0&!1 | 0&!2] 2 {2}
[0&1&2] 3 {2}
State: 1
[!1 | !2] 4 {2}
[1&2] 5 {2}
State: 2
[!0&!1 | !0&!2] 1 {2}
[0&!1 | 0&!2] 2 {2}
[0&1&2] 3 {2}
[!0&1&2] 6 {2}
State: 3
[!0&!2] 1 {2}
[0&!2] 2 {0}
[!0&!1&2] 7 {2}
[!0&1&2] 8 {2}
[0&!1&2] 9 {2}
[0&1&2] 9 {1}
State: 4
[0&!1 | 0&!2] 4 {2}
[0&1&2] 5 {2}
State: 5
[0&!2] 4 {0}
[0&!1&2] 5 {2}
[0&1&2] 5 {1}
State: 6
[!0&!1 | !2] 4 {2}
[0&2 | 1&2] 5 {2}
State: 7
[!2] 4 {2}
[2] 5 {2}
State: 8
[!2] 4 {2}
[2] 5 {2}
State: 9
[!0&!2] 1 {2}
[0&!2] 2 {0}
[!0&2] 8 {2}
[0&!1&2] 9 {2}
[0&1&2] 9 {1}
--END--
HOA: v1
name: "FGa"
States: 2
Start: 0
@ -842,9 +1612,61 @@ State: 1
[0] 0 {2}
[!0] 1 {1}
--END--
HOA: v1
name: "(p0 W XXGp0) & G(Fp1 & FGp2)"
States: 10
Start: 0
AP: 3 "p0" "p1" "p2"
acc-name: parity max even 4
Acceptance: 4 Fin(3) & (Inf(2) | (Fin(1) & Inf(0)))
properties: trans-labels explicit-labels trans-acc colored
properties: deterministic
--BODY--
State: 0
[!0] 1 {1}
[0&!1 | 0&!2] 2 {1}
[0&1&2] 3 {1}
State: 1
[!1 | !2] 4 {1}
[1&2] 5 {1}
State: 2
[!0&!1 | !0&!2] 1 {1}
[0&!1 | 0&!2] 2 {1}
[0&1&2] 3 {1}
[!0&1&2] 6 {1}
State: 3
[!0&!2] 1 {1}
[0&!2] 2 {3}
[!0&!1&2] 7 {1}
[!0&1&2] 8 {1}
[0&!1&2] 9 {1}
[0&1&2] 9 {2}
State: 4
[0&!1 | 0&!2] 4 {1}
[0&1&2] 5 {1}
State: 5
[0&!2] 4 {3}
[0&!1&2] 5 {1}
[0&1&2] 5 {2}
State: 6
[!0&!1 | !2] 4 {1}
[0&2 | 1&2] 5 {1}
State: 7
[!2] 4 {1}
[2] 5 {1}
State: 8
[!2] 4 {1}
[2] 5 {1}
State: 9
[!0&!2] 1 {1}
[0&!2] 2 {3}
[!0&2] 8 {1}
[0&!1&2] 9 {1}
[0&1&2] 9 {2}
--END--
EOF
diff expected4 res4
ltlcross 'ltl2tgba -P' 'ltl2tgba -P"odd max"' 'ltl2tgba -P"even min"' \
'ltl2tgba -p' 'ltl2tgba -p"odd max"' 'ltl2tgba -p"even min"' \
-f FGa -f 'GFa&GFb' -f 'GF(a <-> XXXb)'
-f FGa -f 'GFa&GFb' -f 'GF(a <-> XXXb)' -f '(p0 W XXGp0) & GFp1 & FGp2'