Commit 927ea704 authored by Florian Renkin's avatar Florian Renkin

unit_propagation: Correct a problem with multiple marks

* spot/twa/acc.cc: Don't create a conjunction of Inf with multiple marks
in unit_propagation.
parent 8c480039
Pipeline #18143 failed with stage
in 108 minutes and 18 seconds
......@@ -2641,10 +2641,36 @@ namespace spot
while (find_unit_clause(result, conj, fin, mark))
{
acc_code init_code;
if (fin)
init_code = acc_code::fin(mark);
{
if (conj)
{
init_code = acc_code::t();
for (unsigned col : mark.sets())
init_code &= acc_code::fin({col});
} else
{
init_code = acc_code::f();
for (unsigned col : mark.sets())
init_code |= acc_code::fin({col});
}
}
else
init_code = acc_code::inf(mark);
{
if (conj)
{
init_code = acc_code::t();
for (unsigned col : mark.sets())
init_code &= acc_code::inf({col});
}
else
{
init_code = acc_code::f();
for (unsigned col : mark.sets())
init_code |= acc_code::inf({col});
}
}
if (conj)
result = init_code & result.remove(mark, fin == conj);
else
......
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