Commit a18327d4 authored by Alexandre Duret-Lutz's avatar Alexandre Duret-Lutz
Browse files

stutter: improve closure

if a transition with the same label already exist, reuse it

* src/tgbaalgos/stutter.cc: Here.
* src/tgbatest/stutter.test: Add a test case.
parent 2f42c1c9
......@@ -487,13 +487,27 @@ namespace spot
{
if (!bdd_implies(cond, ts.cond))
{
ts.cond = ts.cond | cond;
ts.cond |= cond;
if (std::find(todo.begin(), todo.end(), t)
== todo.end())
todo.push_back(t);
}
need_new_trans = false;
break;
}
else if (cond == ts.cond)
{
acc |= ts.acc;
if (ts.acc != acc)
{
ts.acc = acc;
if (std::find(todo.begin(), todo.end(), t)
== todo.end())
todo.push_back(t);
}
need_new_trans = false;
break;
}
}
if (need_new_trans)
{
......
......@@ -42,7 +42,32 @@ $autfilt --states=12 prod.hoa -q
#
# We just run those without checking the output, it is enough to
# trigger assertions in the HOA output routines.
run 0 ../../bin/ltl2tgba -H 'X(a U b)' > det.hoa
run 0 ../../bin/autfilt --destut det.hoa -H
run 0 ../../bin/autfilt --instut=1 det.hoa -H
run 0 ../../bin/autfilt --instut=2 det.hoa -H
run 0 $ltl2tgba -H 'X(a U b)' > det.hoa
run 0 $autfilt --destut det.hoa -H
run 0 $autfilt --instut=1 det.hoa -H
run 0 $autfilt --instut=2 det.hoa -H
$ltl2tgba -H 'a & Fb' | $autfilt --destut -H > output
cat >expected <<EOF
HOA: v1
name: "a & Fb"
States: 3
Start: 2
AP: 2 "a" "b"
acc-name: Buchi
Acceptance: 1 Inf(0)
properties: trans-labels explicit-labels trans-acc deterministic
--BODY--
State: 0
[t] 0 {0}
State: 1
[1] 0 {0}
[!1] 1
State: 2
[0&1] 0 {0}
[0&!1] 1
--END--
EOF
diff output expected
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment