File tree Expand file tree Collapse file tree 4 files changed +32
-1
lines changed
regression/ebmc-spot/sva-buechi Expand file tree Collapse file tree 4 files changed +32
-1
lines changed Original file line number Diff line number Diff line change
1
+ CORE
2
+ ../../verilog/SVA/sequence2.sv
3
+ --buechi --bound 10
4
+ ^\[main\.p0] weak\(##\[0:\$\] main\.x == 10\): PROVED up to bound 10$
5
+ ^\[main\.p1] strong\(##\[0:\$\] main\.x == 10\): UNSUPPORTED: not convertible to Buechi$
6
+ ^EXIT=10$
7
+ ^SIGNAL=0$
8
+ --
9
+ ^warning: ignoring
10
+ --
Original file line number Diff line number Diff line change
1
+ CORE
2
+ ../../verilog/SVA/strong1.sv
3
+ --buechi --bound 4
4
+ ^\[main\.p0\] strong\(##\[0:9\] main\.x == 5\): UNSUPPORTED: not convertible to Buechi$
5
+ ^EXIT=10$
6
+ ^SIGNAL=0$
7
+ --
8
+ ^warning: ignoring
9
+ --
Original file line number Diff line number Diff line change @@ -27,6 +27,7 @@ void instrument_buechi(
27
27
!is_LTL (property.normalized_expr ) &&
28
28
!is_Buechi_SVA (property.normalized_expr ))
29
29
{
30
+ property.unsupported (" not convertible to Buechi" );
30
31
continue ;
31
32
}
32
33
Original file line number Diff line number Diff line change @@ -217,7 +217,18 @@ std::optional<exprt> LTL_to_CTL(exprt expr)
217
217
bool is_Buechi_SVA (const exprt &expr)
218
218
{
219
219
auto unsupported_operator = [](const exprt &expr)
220
- { return is_temporal_operator (expr) && !is_SVA_operator (expr); };
220
+ {
221
+ // tl2tgba produces the wrong anser for [->n] and [=n]
222
+ if (
223
+ expr.id () == ID_sva_implicit_strong || expr.id () == ID_sva_strong ||
224
+ expr.id () == ID_sva_sequence_goto_repetition ||
225
+ expr.id () == ID_sva_sequence_non_consecutive_repetition)
226
+ {
227
+ return true ;
228
+ }
229
+ else
230
+ return is_temporal_operator (expr) && !is_SVA_operator (expr);
231
+ };
221
232
222
233
return !has_subexpr (expr, unsupported_operator);
223
234
}
You can’t perform that action at this time.
0 commit comments