spot: Add 'langmap' option with dichotomy (it helps to choose min val)

* python/spot/__init__.py: Handle 'dicho' option in 'sat_minimize'.
* spot/priv/satcommon.cc: Implement get_number_of_distinct_vals.
* spot/priv/satcommon.hh: Declare get_number_of_distinct_vals.
* spot/twaalgos/dtbasat.cc: Use get_number_of_distinct_vals.
* spot/twaalgos/dtbasat.hh: Change dichotomy function's prototype.
* spot/twaalgos/dtwasat.cc: Use get_number_of_distinct_vals.
* spot/twaalgos/dtwasat.hh: Change dichotomy function's prototype.
Handle options.
* spot/twaalgos/postproc.cc: Handle options.
* spot/twaalgos/postproc.hh: Add dicho_langmap_ var for options.
* tests/core/satmin2.test: Add tests for dichotomy.
* tests/core/satmin.test: Add tests for dichotomy.
* tests/python/satmin.py: Replace 'dichotomy' with 'dicho' option.
This commit is contained in:
Alexandre GBAGUIDI AISSE 2016-12-14 10:57:56 +01:00
parent 7046a49622
commit 67e3a4f28e
12 changed files with 229 additions and 31 deletions

View file

@ -103,21 +103,22 @@ $ltlcross -F formulas \
"{5} $ltl2tgba --det --lbtt -x sat-states=3 %f >%T" \
"{6} $ltl2tgba --det --lbtt -x sat-minimize %f >%T" \
"{7} $ltl2tgba --det --lbtt -x sat-minimize=2 %f >%T" \
"{8} $ltl2tgba --det --lbtt -x sat-minimize=3 %f >%T" \
"{9} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=-1' %f >%T" \
"{10} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=0' %f >%T" \
"{11} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=1' %f >%T" \
"{12} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=2' %f >%T" \
"{13} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=50' %f >%T" \
"{14} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=0' %f >%T" \
"{15} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=1' %f >%T" \
"{16} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=2' %f >%T" \
"{17} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=50' %f >%T" \
"{8} $ltl2tgba --det --lbtt -x 'sat-minimize=2,langmap' %f >%T" \
"{9} $ltl2tgba --det --lbtt -x sat-minimize=3 %f >%T" \
"{10} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=-1' %f >%T" \
"{11} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=0' %f >%T" \
"{12} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=1' %f >%T" \
"{13} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=2' %f >%T" \
"{14} $ltl2tgba --det --lbtt -x 'sat-minimize=3, param=50' %f >%T" \
"{15} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=0' %f >%T" \
"{16} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=1' %f >%T" \
"{17} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=2' %f >%T" \
"{18} $ltl2tgba --det --lbtt -x 'sat-minimize=4, param=50' %f >%T" \
--csv=det.csv
grep -v ',\"5\",' det.csv | cut -d ',' -f '1,2,6' > output
cat > expected <<EOF
cat >expected <<'EOF'
"formula","tool","states"
"X(X(p0))","1",4
"X(X(p0))","2",4
@ -135,6 +136,7 @@ cat > expected <<EOF
"X(X(p0))","15",4
"X(X(p0))","16",4
"X(X(p0))","17",4
"X(X(p0))","18",4
"!(X(X(p0)))","1",4
"!(X(X(p0)))","2",4
"!(X(X(p0)))","3",4
@ -151,6 +153,7 @@ cat > expected <<EOF
"!(X(X(p0)))","15",4
"!(X(X(p0)))","16",4
"!(X(X(p0)))","17",4
"!(X(X(p0)))","18",4
"G(F((p0) -> (X(X(X(p1))))))","1",1
"G(F((p0) -> (X(X(X(p1))))))","2",1
"G(F((p0) -> (X(X(X(p1))))))","3",1
@ -167,6 +170,7 @@ cat > expected <<EOF
"G(F((p0) -> (X(X(X(p1))))))","15",1
"G(F((p0) -> (X(X(X(p1))))))","16",1
"G(F((p0) -> (X(X(X(p1))))))","17",1
"G(F((p0) -> (X(X(X(p1))))))","18",1
"!(G(F((p0) -> (X(X(X(p1)))))))","1",2
"!(G(F((p0) -> (X(X(X(p1)))))))","2",2
"!(G(F((p0) -> (X(X(X(p1)))))))","3",2
@ -183,6 +187,7 @@ cat > expected <<EOF
"!(G(F((p0) -> (X(X(X(p1)))))))","15",2
"!(G(F((p0) -> (X(X(X(p1)))))))","16",2
"!(G(F((p0) -> (X(X(X(p1)))))))","17",2
"!(G(F((p0) -> (X(X(X(p1)))))))","18",2
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","1",5
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","2",5
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","3",5
@ -199,6 +204,7 @@ cat > expected <<EOF
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","15",5
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","16",5
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","17",5
"F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3))))))))))","18",5
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","1",4
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","2",4
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","3",4
@ -215,6 +221,7 @@ cat > expected <<EOF
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","15",4
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","16",4
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","17",4
"!(F((p0) & (X(F((p1) & (X(F((p2) & (X(F(p3)))))))))))","18",4
"F((p0) & (X((p1) U (p2))))","1",3
"F((p0) & (X((p1) U (p2))))","2",3
"F((p0) & (X((p1) U (p2))))","3",3
@ -231,6 +238,7 @@ cat > expected <<EOF
"F((p0) & (X((p1) U (p2))))","15",3
"F((p0) & (X((p1) U (p2))))","16",3
"F((p0) & (X((p1) U (p2))))","17",3
"F((p0) & (X((p1) U (p2))))","18",3
"!(F((p0) & (X((p1) U (p2)))))","1",2
"!(F((p0) & (X((p1) U (p2)))))","2",2
"!(F((p0) & (X((p1) U (p2)))))","3",2
@ -247,6 +255,7 @@ cat > expected <<EOF
"!(F((p0) & (X((p1) U (p2)))))","15",2
"!(F((p0) & (X((p1) U (p2)))))","16",2
"!(F((p0) & (X((p1) U (p2)))))","17",2
"!(F((p0) & (X((p1) U (p2)))))","18",2
"F((p0) & (X((p1) & (X(F(p2))))))","1",4
"F((p0) & (X((p1) & (X(F(p2))))))","2",4
"F((p0) & (X((p1) & (X(F(p2))))))","3",4
@ -263,6 +272,7 @@ cat > expected <<EOF
"F((p0) & (X((p1) & (X(F(p2))))))","15",4
"F((p0) & (X((p1) & (X(F(p2))))))","16",4
"F((p0) & (X((p1) & (X(F(p2))))))","17",4
"F((p0) & (X((p1) & (X(F(p2))))))","18",4
"!(F((p0) & (X((p1) & (X(F(p2)))))))","1",3
"!(F((p0) & (X((p1) & (X(F(p2)))))))","2",3
"!(F((p0) & (X((p1) & (X(F(p2)))))))","3",3
@ -279,6 +289,7 @@ cat > expected <<EOF
"!(F((p0) & (X((p1) & (X(F(p2)))))))","15",3
"!(F((p0) & (X((p1) & (X(F(p2)))))))","16",3
"!(F((p0) & (X((p1) & (X(F(p2)))))))","17",3
"!(F((p0) & (X((p1) & (X(F(p2)))))))","18",3
"(p0) U ((p1) & (X((p2) U (p3))))","1",4
"(p0) U ((p1) & (X((p2) U (p3))))","2",4
"(p0) U ((p1) & (X((p2) U (p3))))","3",4
@ -295,6 +306,7 @@ cat > expected <<EOF
"(p0) U ((p1) & (X((p2) U (p3))))","15",4
"(p0) U ((p1) & (X((p2) U (p3))))","16",4
"(p0) U ((p1) & (X((p2) U (p3))))","17",4
"(p0) U ((p1) & (X((p2) U (p3))))","18",4
"!((p0) U ((p1) & (X((p2) U (p3)))))","1",4
"!((p0) U ((p1) & (X((p2) U (p3)))))","2",4
"!((p0) U ((p1) & (X((p2) U (p3)))))","3",4
@ -311,6 +323,7 @@ cat > expected <<EOF
"!((p0) U ((p1) & (X((p2) U (p3)))))","15",4
"!((p0) U ((p1) & (X((p2) U (p3)))))","16",4
"!((p0) U ((p1) & (X((p2) U (p3)))))","17",4
"!((p0) U ((p1) & (X((p2) U (p3)))))","18",4
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","1",4
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","2",4
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","3",4
@ -327,6 +340,7 @@ cat > expected <<EOF
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","15",4
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","16",4
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","17",4
"(G((p0) -> (F(p1)))) & (G((p2) -> (F(p3))))","18",4
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","1",3
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","2",3
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","3",3
@ -343,6 +357,7 @@ cat > expected <<EOF
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","15",3
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","16",3
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","17",3
"!((G((p0) -> (F(p1)))) & (G((p2) -> (F(p3)))))","18",3
"(G(F(p0))) & (G(F(p1)))","1",1
"(G(F(p0))) & (G(F(p1)))","2",1
"(G(F(p0))) & (G(F(p1)))","3",1
@ -359,6 +374,7 @@ cat > expected <<EOF
"(G(F(p0))) & (G(F(p1)))","15",1
"(G(F(p0))) & (G(F(p1)))","16",1
"(G(F(p0))) & (G(F(p1)))","17",1
"(G(F(p0))) & (G(F(p1)))","18",1
"!((G(F(p0))) & (G(F(p1))))","1",3
"!((G(F(p0))) & (G(F(p1))))","2",3
"!((G(F(p0))) & (G(F(p1))))","3",3
@ -375,6 +391,7 @@ cat > expected <<EOF
"!((G(F(p0))) & (G(F(p1))))","15",3
"!((G(F(p0))) & (G(F(p1))))","16",3
"!((G(F(p0))) & (G(F(p1))))","17",3
"!((G(F(p0))) & (G(F(p1))))","18",3
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","1",1
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","2",1
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","3",1
@ -391,6 +408,7 @@ cat > expected <<EOF
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","15",1
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","16",1
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","17",1
"(G(F(p0))) | (G(F(p1))) | (G(F(p2)))","18",1
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","1",2
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","2",2
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","3",2
@ -407,6 +425,7 @@ cat > expected <<EOF
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","15",2
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","16",2
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","17",2
"!((G(F(p0))) | (G(F(p1))) | (G(F(p2))))","18",2
"G(F(p0))","1",1
"G(F(p0))","2",1
"G(F(p0))","3",1
@ -423,6 +442,7 @@ cat > expected <<EOF
"G(F(p0))","15",1
"G(F(p0))","16",1
"G(F(p0))","17",1
"G(F(p0))","18",1
"!(G(F(p0)))","1",2
"!(G(F(p0)))","2",2
"!(G(F(p0)))","3",2
@ -439,6 +459,7 @@ cat > expected <<EOF
"!(G(F(p0)))","15",2
"!(G(F(p0)))","16",2
"!(G(F(p0)))","17",2
"!(G(F(p0)))","18",2
"(p0) U ((p1) U ((p2) U (p3)))","1",4
"(p0) U ((p1) U ((p2) U (p3)))","2",4
"(p0) U ((p1) U ((p2) U (p3)))","3",4
@ -455,6 +476,7 @@ cat > expected <<EOF
"(p0) U ((p1) U ((p2) U (p3)))","15",4
"(p0) U ((p1) U ((p2) U (p3)))","16",4
"(p0) U ((p1) U ((p2) U (p3)))","17",4
"(p0) U ((p1) U ((p2) U (p3)))","18",4
"!((p0) U ((p1) U ((p2) U (p3))))","1",4
"!((p0) U ((p1) U ((p2) U (p3))))","2",4
"!((p0) U ((p1) U ((p2) U (p3))))","3",4
@ -471,6 +493,7 @@ cat > expected <<EOF
"!((p0) U ((p1) U ((p2) U (p3))))","15",4
"!((p0) U ((p1) U ((p2) U (p3))))","16",4
"!((p0) U ((p1) U ((p2) U (p3))))","17",4
"!((p0) U ((p1) U ((p2) U (p3))))","18",4
"(G((p0) -> (F(p1)))) & (G(p2))","1",2
"(G((p0) -> (F(p1)))) & (G(p2))","2",2
"(G((p0) -> (F(p1)))) & (G(p2))","3",2
@ -487,6 +510,7 @@ cat > expected <<EOF
"(G((p0) -> (F(p1)))) & (G(p2))","15",2
"(G((p0) -> (F(p1)))) & (G(p2))","16",2
"(G((p0) -> (F(p1)))) & (G(p2))","17",2
"(G((p0) -> (F(p1)))) & (G(p2))","18",2
"!((G((p0) -> (F(p1)))) & (G(p2)))","1",3
"!((G((p0) -> (F(p1)))) & (G(p2)))","2",3
"!((G((p0) -> (F(p1)))) & (G(p2)))","3",3
@ -503,6 +527,7 @@ cat > expected <<EOF
"!((G((p0) -> (F(p1)))) & (G(p2)))","15",3
"!((G((p0) -> (F(p1)))) & (G(p2)))","16",3
"!((G((p0) -> (F(p1)))) & (G(p2)))","17",3
"!((G((p0) -> (F(p1)))) & (G(p2)))","18",3
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","1",4
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","2",4
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","3",4
@ -519,6 +544,7 @@ cat > expected <<EOF
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","15",4
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","16",4
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","17",4
"((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1))))","18",4
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","1",3
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","2",3
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","3",3
@ -535,6 +561,7 @@ cat > expected <<EOF
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","15",3
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","16",3
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","17",3
"!(((G(p0)) -> (F(p1))) & ((G(!(p0))) -> (F(!(p1)))))","18",3
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","1",4
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","2",4
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","3",4
@ -551,6 +578,7 @@ cat > expected <<EOF
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","15",3
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","16",3
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","17",3
"(G((p0) -> (F(p1)))) & (G((p1) -> (F(p2))))","18",3
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","1",3
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","2",3
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","3",3
@ -567,6 +595,7 @@ cat > expected <<EOF
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","15",3
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","16",3
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","17",3
"!((G((p0) -> (F(p1)))) & (G((p1) -> (F(p2)))))","18",3
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","1",3
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","2",3
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","3",3
@ -583,6 +612,7 @@ cat > expected <<EOF
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","15",3
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","16",3
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","17",3
"(G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1)))))","18",3
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","1",3
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","2",3
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","3",3
@ -599,6 +629,7 @@ cat > expected <<EOF
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","15",3
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","16",3
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","17",3
"!((G((p0) -> (F(p1)))) & (G((!(p0)) -> (F(!(p1))))))","18",3
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","1",1
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","2",1
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","3",1
@ -615,6 +646,7 @@ cat > expected <<EOF
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","15",1
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","16",1
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","17",1
"(G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3)))","18",1
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","1",5
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","2",5
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","3",5
@ -631,6 +663,7 @@ cat > expected <<EOF
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","15",5
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","16",5
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","17",5
"!((G(F(p0))) & (G(F(p1))) & (G(F(p2))) & (G(F(p3))))","18",5
"G((p0) -> ((p1) U (p2)))","1",2
"G((p0) -> ((p1) U (p2)))","2",2
"G((p0) -> ((p1) U (p2)))","3",2
@ -647,6 +680,7 @@ cat > expected <<EOF
"G((p0) -> ((p1) U (p2)))","15",2
"G((p0) -> ((p1) U (p2)))","16",2
"G((p0) -> ((p1) U (p2)))","17",2
"G((p0) -> ((p1) U (p2)))","18",2
"!(G((p0) -> ((p1) U (p2))))","1",3
"!(G((p0) -> ((p1) U (p2))))","2",3
"!(G((p0) -> ((p1) U (p2))))","3",3
@ -663,6 +697,7 @@ cat > expected <<EOF
"!(G((p0) -> ((p1) U (p2))))","15",3
"!(G((p0) -> ((p1) U (p2))))","16",3
"!(G((p0) -> ((p1) U (p2))))","17",3
"!(G((p0) -> ((p1) U (p2))))","18",3
"G(F((p0) <-> (X(X(p1)))))","1",9
"G(F((p0) <-> (X(X(p1)))))","2",7
"G(F((p0) <-> (X(X(p1)))))","3",4
@ -679,6 +714,7 @@ cat > expected <<EOF
"G(F((p0) <-> (X(X(p1)))))","15",4
"G(F((p0) <-> (X(X(p1)))))","16",4
"G(F((p0) <-> (X(X(p1)))))","17",4
"G(F((p0) <-> (X(X(p1)))))","18",4
"!(G(F((p0) <-> (X(X(p1))))))","1",7
"!(G(F((p0) <-> (X(X(p1))))))","2",7
"!(G(F((p0) <-> (X(X(p1))))))","3",7
@ -695,6 +731,7 @@ cat > expected <<EOF
"!(G(F((p0) <-> (X(X(p1))))))","15",7
"!(G(F((p0) <-> (X(X(p1))))))","16",7
"!(G(F((p0) <-> (X(X(p1))))))","17",7
"!(G(F((p0) <-> (X(X(p1))))))","18",7
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","1",1
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","2",1
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","3",1
@ -711,6 +748,7 @@ cat > expected <<EOF
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","15",1
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","16",1
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","17",1
"(G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0))))","18",1
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","1",2
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","2",2
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","3",2
@ -727,6 +765,7 @@ cat > expected <<EOF
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","15",2
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","16",2
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","17",2
"!((G(!(p0))) & (G((p1) -> (F(p2)))) & (G((p2) -> (F(p0)))))","18",2
"G((p0) -> (X(X(X(p1)))))","1",8
"G((p0) -> (X(X(X(p1)))))","2",8
"G((p0) -> (X(X(X(p1)))))","3",8
@ -743,6 +782,7 @@ cat > expected <<EOF
"G((p0) -> (X(X(X(p1)))))","15",8
"G((p0) -> (X(X(X(p1)))))","16",8
"G((p0) -> (X(X(X(p1)))))","17",8
"G((p0) -> (X(X(X(p1)))))","18",8
"!(G((p0) -> (X(X(X(p1))))))","1",9
"!(G((p0) -> (X(X(X(p1))))))","2",9
"!(G((p0) -> (X(X(X(p1))))))","3",9
@ -759,6 +799,7 @@ cat > expected <<EOF
"!(G((p0) -> (X(X(X(p1))))))","15",9
"!(G((p0) -> (X(X(X(p1))))))","16",9
"!(G((p0) -> (X(X(X(p1))))))","17",9
"!(G((p0) -> (X(X(X(p1))))))","18",9
"G((p0) -> (F(p1)))","1",2
"G((p0) -> (F(p1)))","2",2
"G((p0) -> (F(p1)))","3",2
@ -775,6 +816,7 @@ cat > expected <<EOF
"G((p0) -> (F(p1)))","15",2
"G((p0) -> (F(p1)))","16",2
"G((p0) -> (F(p1)))","17",2
"G((p0) -> (F(p1)))","18",2
"!(G((p0) -> (F(p1))))","1",2
"!(G((p0) -> (F(p1))))","2",2
"!(G((p0) -> (F(p1))))","3",2
@ -791,6 +833,7 @@ cat > expected <<EOF
"!(G((p0) -> (F(p1))))","15",2
"!(G((p0) -> (F(p1))))","16",2
"!(G((p0) -> (F(p1))))","17",2
"!(G((p0) -> (F(p1))))","18",2
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","1",1
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","2",1
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","3",1
@ -807,6 +850,7 @@ cat > expected <<EOF
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","15",1
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","16",1
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","17",1
"G((p0) U ((p1) U ((!(p0)) U (!(p1)))))","18",1
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","1",2
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","2",2
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","3",2
@ -823,6 +867,7 @@ cat > expected <<EOF
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","15",2
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","16",2
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","17",2
"!(G((p0) U ((p1) U ((!(p0)) U (!(p1))))))","18",2
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","1",4
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","2",5
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","3",5
@ -839,6 +884,7 @@ cat > expected <<EOF
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","15",5
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","16",5
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","17",5
"X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1))","18",5
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","1",6
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","2",6
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","3",6
@ -855,6 +901,7 @@ cat > expected <<EOF
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","15",6
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","16",6
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","17",6
"!(X((((p0) & (p1)) R ((!(p0)) U (!(p2)))) R (p1)))","18",6
"((!(p0)) M (!(p1))) W (F(!(p2)))","1",4
"((!(p0)) M (!(p1))) W (F(!(p2)))","2",5
"((!(p0)) M (!(p1))) W (F(!(p2)))","3",3
@ -871,6 +918,7 @@ cat > expected <<EOF
"((!(p0)) M (!(p1))) W (F(!(p2)))","15",3
"((!(p0)) M (!(p1))) W (F(!(p2)))","16",3
"((!(p0)) M (!(p1))) W (F(!(p2)))","17",3
"((!(p0)) M (!(p1))) W (F(!(p2)))","18",3
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","1",3
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","2",3
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","3",3
@ -887,6 +935,7 @@ cat > expected <<EOF
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","15",3
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","16",3
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","17",3
"!(((!(p0)) M (!(p1))) W (F(!(p2))))","18",3
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","1",2
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","2",3
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","3",3
@ -903,6 +952,7 @@ cat > expected <<EOF
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","15",3
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","16",3
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","17",3
"((p0) & (F(p1)) & (G(F(p2)))) R (p1)","18",3
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","1",5
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","2",5
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","3",5
@ -919,6 +969,7 @@ cat > expected <<EOF
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","15",5
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","16",5
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","17",5
"!(((p0) & (F(p1)) & (G(F(p2)))) R (p1))","18",5
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","1",3
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","2",2
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","3",2
@ -935,6 +986,7 @@ cat > expected <<EOF
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","15",2
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","16",2
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","17",2
"((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2))))","18",2
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","1",4
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","2",4
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","3",4
@ -951,6 +1003,7 @@ cat > expected <<EOF
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","15",4
"!(((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
"!(((p0) R ((p1) W (p0))) W (G((!(p0)) M ((p1) | (p2)))))","18",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))))))","3",6
@ -967,6 +1020,7 @@ cat > expected <<EOF
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","15",6
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","16",6
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","17",6
"X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0))))))","18",6
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","1",8
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","2",8
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","3",8
@ -983,6 +1037,7 @@ cat > expected <<EOF
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","15",8
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","16",8
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","17",8
"!(X((G((!(p0)) M (!(p1)))) | (G((p0) | (G(!(p0)))))))","18",8
"(F(p0)) W (G(p1))","1",3
"(F(p0)) W (G(p1))","2",2
"(F(p0)) W (G(p1))","3",2
@ -999,6 +1054,7 @@ cat > expected <<EOF
"(F(p0)) W (G(p1))","15",2
"(F(p0)) W (G(p1))","16",2
"(F(p0)) W (G(p1))","17",2
"(F(p0)) W (G(p1))","18",2
"!((F(p0)) W (G(p1)))","1",2
"!((F(p0)) W (G(p1)))","2",2
"!((F(p0)) W (G(p1)))","3",2
@ -1015,6 +1071,7 @@ cat > expected <<EOF
"!((F(p0)) W (G(p1)))","15",2
"!((F(p0)) W (G(p1)))","16",2
"!((F(p0)) W (G(p1)))","17",2
"!((F(p0)) W (G(p1)))","18",2
"(G(F(p1))) | (G(p0))","1",3
"(G(F(p1))) | (G(p0))","2",3
"(G(F(p1))) | (G(p0))","3",2
@ -1031,6 +1088,7 @@ cat > expected <<EOF
"(G(F(p1))) | (G(p0))","15",2
"(G(F(p1))) | (G(p0))","16",2
"(G(F(p1))) | (G(p0))","17",2
"(G(F(p1))) | (G(p0))","18",2
"!((G(F(p1))) | (G(p0)))","1",3
"!((G(F(p1))) | (G(p0)))","2",3
"!((G(F(p1))) | (G(p0)))","3",3
@ -1047,6 +1105,7 @@ cat > expected <<EOF
"!((G(F(p1))) | (G(p0)))","15",3
"!((G(F(p1))) | (G(p0)))","16",3
"!((G(F(p1))) | (G(p0)))","17",3
"!((G(F(p1))) | (G(p0)))","18",3
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","1",5
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","2",5
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","3",5
@ -1063,6 +1122,7 @@ cat > expected <<EOF
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","15",5
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","16",5
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","17",5
"(p0) M (G((F(!(p1))) | (X(!(p0)))))","18",5
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","1",4
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","2",4
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","3",4
@ -1079,6 +1139,7 @@ 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
"!((p0) M (G((F(!(p1))) | (X(!(p0))))))","18",4
"(G(!(p0))) R (X(F(p1)))","1",4
"(G(!(p0))) R (X(F(p1)))","2",4
"(G(!(p0))) R (X(F(p1)))","3",3
@ -1095,6 +1156,7 @@ cat > expected <<EOF
"(G(!(p0))) R (X(F(p1)))","15",3
"(G(!(p0))) R (X(F(p1)))","16",3
"(G(!(p0))) R (X(F(p1)))","17",3
"(G(!(p0))) R (X(F(p1)))","18",3
"!((G(!(p0))) R (X(F(p1))))","1",3
"!((G(!(p0))) R (X(F(p1))))","2",3
"!((G(!(p0))) R (X(F(p1))))","3",3
@ -1111,6 +1173,7 @@ cat > expected <<EOF
"!((G(!(p0))) R (X(F(p1))))","15",3
"!((G(!(p0))) R (X(F(p1))))","16",3
"!((G(!(p0))) R (X(F(p1))))","17",3
"!((G(!(p0))) R (X(F(p1))))","18",3
"X(F((!(p0)) | (G(F(p1)))))","1",4
"X(F((!(p0)) | (G(F(p1)))))","2",4
"X(F((!(p0)) | (G(F(p1)))))","3",3
@ -1127,6 +1190,7 @@ cat > expected <<EOF
"X(F((!(p0)) | (G(F(p1)))))","15",3
"X(F((!(p0)) | (G(F(p1)))))","16",3
"X(F((!(p0)) | (G(F(p1)))))","17",3
"X(F((!(p0)) | (G(F(p1)))))","18",3
"!(X(F((!(p0)) | (G(F(p1))))))","1",3
"!(X(F((!(p0)) | (G(F(p1))))))","2",3
"!(X(F((!(p0)) | (G(F(p1))))))","3",3
@ -1143,6 +1207,7 @@ cat > expected <<EOF
"!(X(F((!(p0)) | (G(F(p1))))))","15",3
"!(X(F((!(p0)) | (G(F(p1))))))","16",3
"!(X(F((!(p0)) | (G(F(p1))))))","17",3
"!(X(F((!(p0)) | (G(F(p1))))))","18",3
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","1",6
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","2",6
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","3",5
@ -1159,6 +1224,7 @@ cat > expected <<EOF
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","15",5
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","16",5
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","17",5
"(G((F(!(p0))) U (!(p0)))) U (X(p0))","18",5
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","1",5
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","2",5
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","3",5
@ -1175,6 +1241,7 @@ cat > expected <<EOF
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","15",5
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","16",5
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","17",5
"!((G((F(!(p0))) U (!(p0)))) U (X(p0)))","18",5
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","1",4
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","2",5
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","3",4
@ -1191,6 +1258,7 @@ cat > expected <<EOF
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","15",4
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","16",4
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","17",4
"((p0) | (G((p0) M (!(p1))))) W (F(p2))","18",4
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","1",4
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","2",4
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","3",4
@ -1207,6 +1275,7 @@ cat > expected <<EOF
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","15",4
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","16",4
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","17",4
"!(((p0) | (G((p0) M (!(p1))))) W (F(p2)))","18",4
"(F(p0)) W (X(p1))","1",6
"(F(p0)) W (X(p1))","2",6
"(F(p0)) W (X(p1))","3",6
@ -1223,6 +1292,7 @@ cat > expected <<EOF
"(F(p0)) W (X(p1))","15",6
"(F(p0)) W (X(p1))","16",6
"(F(p0)) W (X(p1))","17",6
"(F(p0)) W (X(p1))","18",6
"!((F(p0)) W (X(p1)))","1",4
"!((F(p0)) W (X(p1)))","2",4
"!((F(p0)) W (X(p1)))","3",4
@ -1239,6 +1309,7 @@ cat > expected <<EOF
"!((F(p0)) W (X(p1)))","15",4
"!((F(p0)) W (X(p1)))","16",4
"!((F(p0)) W (X(p1)))","17",4
"!((F(p0)) W (X(p1)))","18",4
"(X(G(!(p0)))) R (F(p1))","1",2
"(X(G(!(p0)))) R (F(p1))","2",2
"(X(G(!(p0)))) R (F(p1))","3",2
@ -1255,6 +1326,7 @@ cat > expected <<EOF
"(X(G(!(p0)))) R (F(p1))","15",2
"(X(G(!(p0)))) R (F(p1))","16",2
"(X(G(!(p0)))) R (F(p1))","17",2
"(X(G(!(p0)))) R (F(p1))","18",2
"!((X(G(!(p0)))) R (F(p1)))","1",3
"!((X(G(!(p0)))) R (F(p1)))","2",3
"!((X(G(!(p0)))) R (F(p1)))","3",3
@ -1271,6 +1343,7 @@ cat > expected <<EOF
"!((X(G(!(p0)))) R (F(p1)))","15",3
"!((X(G(!(p0)))) R (F(p1)))","16",3
"!((X(G(!(p0)))) R (F(p1)))","17",3
"!((X(G(!(p0)))) R (F(p1)))","18",3
"(G(F(p0))) | ((p1) & (F(p2)))","1",4
"(G(F(p0))) | ((p1) & (F(p2)))","2",4
"(G(F(p0))) | ((p1) & (F(p2)))","3",4
@ -1287,6 +1360,7 @@ cat > expected <<EOF
"(G(F(p0))) | ((p1) & (F(p2)))","15",4
"(G(F(p0))) | ((p1) & (F(p2)))","16",4
"(G(F(p0))) | ((p1) & (F(p2)))","17",4
"(G(F(p0))) | ((p1) & (F(p2)))","18",4
"!((G(F(p0))) | ((p1) & (F(p2))))","1",5
"!((G(F(p0))) | ((p1) & (F(p2))))","2",5
"!((G(F(p0))) | ((p1) & (F(p2))))","3",5
@ -1303,6 +1377,7 @@ 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
"!((G(F(p0))) | ((p1) & (F(p2))))","18",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)))))","3",4
@ -1319,6 +1394,7 @@ cat > expected <<EOF
"X((p0) R ((F(p1)) R (F(!(p1)))))","15",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","16",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","17",4
"X((p0) R ((F(p1)) R (F(!(p1)))))","18",4
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","1",3
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","2",3
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","3",3
@ -1335,6 +1411,7 @@ cat > expected <<EOF
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","15",3
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","16",3
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","17",3
"!(X((p0) R ((F(p1)) R (F(!(p1))))))","18",3
"G((X(p0)) M (F(p0)))","1",2
"G((X(p0)) M (F(p0)))","2",2
"G((X(p0)) M (F(p0)))","3",1
@ -1351,6 +1428,7 @@ cat > expected <<EOF
"G((X(p0)) M (F(p0)))","15",1
"G((X(p0)) M (F(p0)))","16",1
"G((X(p0)) M (F(p0)))","17",1
"G((X(p0)) M (F(p0)))","18",1
"!(G((X(p0)) M (F(p0))))","1",2
"!(G((X(p0)) M (F(p0))))","2",2
"!(G((X(p0)) M (F(p0))))","3",2
@ -1367,6 +1445,7 @@ cat > expected <<EOF
"!(G((X(p0)) M (F(p0))))","15",2
"!(G((X(p0)) M (F(p0))))","16",2
"!(G((X(p0)) M (F(p0))))","17",2
"!(G((X(p0)) M (F(p0))))","18",2
"X((G(F(p1))) | (G(p0)))","1",4
"X((G(F(p1))) | (G(p0)))","2",4
"X((G(F(p1))) | (G(p0)))","3",3
@ -1383,6 +1462,7 @@ cat > expected <<EOF
"X((G(F(p1))) | (G(p0)))","15",3
"X((G(F(p1))) | (G(p0)))","16",3
"X((G(F(p1))) | (G(p0)))","17",3
"X((G(F(p1))) | (G(p0)))","18",3
"!(X((G(F(p1))) | (G(p0))))","1",4
"!(X((G(F(p1))) | (G(p0))))","2",4
"!(X((G(F(p1))) | (G(p0))))","3",4
@ -1399,6 +1479,7 @@ cat > expected <<EOF
"!(X((G(F(p1))) | (G(p0))))","15",4
"!(X((G(F(p1))) | (G(p0))))","16",4
"!(X((G(F(p1))) | (G(p0))))","17",4
"!(X((G(F(p1))) | (G(p0))))","18",4
"(G(p0)) R (F(p1))","1",2
"(G(p0)) R (F(p1))","2",2
"(G(p0)) R (F(p1))","3",2
@ -1415,6 +1496,7 @@ cat > expected <<EOF
"(G(p0)) R (F(p1))","15",2
"(G(p0)) R (F(p1))","16",2
"(G(p0)) R (F(p1))","17",2
"(G(p0)) R (F(p1))","18",2
"!((G(p0)) R (F(p1)))","1",3
"!((G(p0)) R (F(p1)))","2",3
"!((G(p0)) R (F(p1)))","3",3
@ -1431,6 +1513,7 @@ cat > expected <<EOF
"!((G(p0)) R (F(p1)))","15",3
"!((G(p0)) R (F(p1)))","16",3
"!((G(p0)) R (F(p1)))","17",3
"!((G(p0)) R (F(p1)))","18",3
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","1",2
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","2",3
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","3",2
@ -1447,6 +1530,7 @@ cat > expected <<EOF
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","15",2
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","16",2
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","17",2
"G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2))))))","18",2
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","1",4
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","2",4
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","3",4
@ -1463,6 +1547,7 @@ cat > expected <<EOF
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","15",4
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","16",4
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","17",4
"!(G((p0) U ((p1) | (X(((!(p0)) & (!(p2))) | ((p0) & (p2)))))))","18",4
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","1",4
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","2",5
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","3",5
@ -1479,6 +1564,7 @@ cat > expected <<EOF
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","15",5
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","16",5
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","17",5
"X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1))))))","18",5
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","1",7
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","2",7
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","3",7
@ -1495,6 +1581,7 @@ cat > expected <<EOF
"!(X(G(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","15",7
"!(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(((G(!(p0))) & (F(!(p1)))) | ((F(p0)) & ((p0) | (G(p1)))))))","18",7
"X((G(F(p0))) | (G(!(p0))))","1",4
"X((G(F(p0))) | (G(!(p0))))","2",4
"X((G(F(p0))) | (G(!(p0))))","3",3
@ -1511,6 +1598,7 @@ cat > expected <<EOF
"X((G(F(p0))) | (G(!(p0))))","15",3
"X((G(F(p0))) | (G(!(p0))))","16",3
"X((G(F(p0))) | (G(!(p0))))","17",3
"X((G(F(p0))) | (G(!(p0))))","18",3
"!(X((G(F(p0))) | (G(!(p0)))))","1",4
"!(X((G(F(p0))) | (G(!(p0)))))","2",4
"!(X((G(F(p0))) | (G(!(p0)))))","3",4
@ -1527,6 +1615,7 @@ cat > expected <<EOF
"!(X((G(F(p0))) | (G(!(p0)))))","15",4
"!(X((G(F(p0))) | (G(!(p0)))))","16",4
"!(X((G(F(p0))) | (G(!(p0)))))","17",4
"!(X((G(F(p0))) | (G(!(p0)))))","18",4
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","1",4
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","2",4
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","3",4
@ -1543,6 +1632,7 @@ cat > expected <<EOF
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","15",4
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","16",4
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","17",4
"G((G(!(p0))) | (F(!(p1))) | (G(!(p2))))","18",4
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","1",4
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","2",4
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","3",4
@ -1559,6 +1649,7 @@ cat > expected <<EOF
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","15",4
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","16",4
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","17",4
"!(G((G(!(p0))) | (F(!(p1))) | (G(!(p2)))))","18",4
"G((p0) | (F(p0)))","1",1
"G((p0) | (F(p0)))","2",1
"G((p0) | (F(p0)))","3",1
@ -1575,6 +1666,7 @@ cat > expected <<EOF
"G((p0) | (F(p0)))","15",1
"G((p0) | (F(p0)))","16",1
"G((p0) | (F(p0)))","17",1
"G((p0) | (F(p0)))","18",1
"!(G((p0) | (F(p0))))","1",2
"!(G((p0) | (F(p0))))","2",2
"!(G((p0) | (F(p0))))","3",2
@ -1591,6 +1683,7 @@ cat > expected <<EOF
"!(G((p0) | (F(p0))))","15",2
"!(G((p0) | (F(p0))))","16",2
"!(G((p0) | (F(p0))))","17",2
"!(G((p0) | (F(p0))))","18",2
EOF
diff expected output

View file

@ -61,16 +61,22 @@ diff output expected
ltl2tgba -BD -x sat-minimize "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=3,param=0' "GF(a <-> XXb)" -H >out
ltl2tgba -BD -x sat-minimize=2 "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=3,param=1' "GF(a <-> XXb)" -H >out
ltl2tgba -BD -x 'sat-minimize=2,langmap' "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=3,param=2' "GF(a <-> XXb)" -H >out
ltl2tgba -BD -x 'sat-minimize=4,param=0' "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=3,param=50' "GF(a <-> XXb)" -H >out
ltl2tgba -BD -x 'sat-minimize=4,param=1' "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=4,param=2' "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=4,param=50' "GF(a <-> XXb)" -H >out
grep 'properties:.*state-acc' out
grep 'properties:.*deterministic' out
ltl2tgba -BD -x 'sat-minimize=3,param=-1' "GF(a <-> XXb)" -H >out
@ -128,6 +134,11 @@ EOF
# automata.
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)"' test.hoa --stats=%s >output
test `cat output` = 1
$autfilt --sat-minimize='dicho,acc="Fin(0)|Inf(1)"' test.hoa --stats=%s >output
test `cat output` = 1
$autfilt --sat-minimize='dicho,langmap,acc="Fin(0)|Inf(1)"' test.hoa \
--stats=%s >output
test `cat output` = 1
$autfilt --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=0' test.hoa \
--stats=%s >output
test `cat output` = 1
@ -161,6 +172,12 @@ test `cat output` = 1
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)"' test.hoa \
--stats=%s > output
test `cat output` = 3
$autfilt -S --sat-minimize='dicho,acc="Fin(0)|Inf(1)"' test.hoa \
--stats=%s > output
test `cat output` = 3
$autfilt -S --sat-minimize='dicho,langmap,acc="Fin(0)|Inf(1)"' test.hoa \
--stats=%s > output
test `cat output` = 3
$autfilt -S --sat-minimize='acc="Fin(0)|Inf(1)",assume,param=0' test.hoa \
--stats=%s > output
test `cat output` = 3
@ -199,6 +216,22 @@ grep 'States: 3' output
grep 'acc-name: parity max even 3' output
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
test 3 = `grep -c 'State: [012] {[012]}' output`
$autfilt -S --sat-minimize='acc="parity max even 3",colored,dicho' -H \
test.hoa > output
cat output
grep 'properties:.*colored' output
grep 'States: 3' output
grep 'acc-name: parity max even 3' output
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
test 3 = `grep -c 'State: [012] {[012]}' output`
$autfilt -S --sat-minimize='acc="parity max even 3",colored,dicho,langmap' -H \
test.hoa > output
cat output
grep 'properties:.*colored' output
grep 'States: 3' output
grep 'acc-name: parity max even 3' output
grep 'Acceptance: 3 Inf(2) | (Fin(1) & Inf(0))' output
test 3 = `grep -c 'State: [012] {[012]}' output`
$autfilt -S --sat-minimize='acc="parity max even 3",colored,assume,param=0' \
-H test.hoa > output
cat output
@ -306,6 +339,10 @@ State: 0
EOF
$autfilt -H --sat-minimize special.hoa > output
diff output expected
$autfilt -H --sat-minimize='dicho' special.hoa > output
diff output expected
$autfilt -H --sat-minimize='dicho,langmap' special.hoa > output
diff output expected
$autfilt -H --sat-minimize='assume,param=0' special.hoa > output
diff output expected
$autfilt -H --sat-minimize='assume,param=1' special.hoa > output
@ -343,6 +380,12 @@ EOF
$autfilt --sat-minimize='acc="Streett 1",max-states=2' foo.hoa \
--stats=%s >out
test "`cat out`" = 1
$autfilt --sat-minimize='acc="Streett 1",max-states=2,dicho' foo.hoa \
--stats=%s >out
test "`cat out`" = 1
$autfilt --sat-minimize='acc="Streett 1",max-states=2,dicho,langmap' foo.hoa \
--stats=%s >out
test "`cat out`" = 1
$autfilt --sat-minimize='acc="Streett 1",max-states=2,assume,param=0' foo.hoa \
--stats=%s >out
test "`cat out`" = 1
@ -375,6 +418,12 @@ test "`cat out`" = 1
$autfilt --sat-minimize='acc="Rabin 1",max-states=4' foo.hoa \
--stats=%s >out && exit 1
test -z "`cat out`"
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,dicho' foo.hoa \
--stats=%s >out && exit 1
test -z "`cat out`"
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,dicho,langmap' foo.hoa \
--stats=%s >out && exit 1
test -z "`cat out`"
$autfilt --sat-minimize='acc="Rabin 1",max-states=4,assume,param=0' foo.hoa \
--stats=%s >out && exit 1
test -z "`cat out`"
@ -407,6 +456,12 @@ test -z "`cat out`"
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1' foo.hoa \
--stats=%s >out
test "`cat out`" = 1
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,dicho' foo.hoa \
--stats=%s >out
test "`cat out`" = 1
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,dicho,langmap' \
foo.hoa --stats=%s >out
test "`cat out`" = 1
$autfilt --sat-minimize='acc="Inf(0)&Fin(1)|Inf(2)",states=1,assume,param=0' \
foo.hoa --stats=%s >out
test "`cat out`" = 1