Skip to content

Commit 81966d1

Browse files
committed
SVA->Buechi: empty sequences
This adds the translation of SVA empty sequences [*0] to Spot's input language.
1 parent 897cb8c commit 81966d1

File tree

3 files changed

+5
-12
lines changed

3 files changed

+5
-12
lines changed
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
KNOWNBUG
1+
CORE
22
../../verilog/SVA/followed-by5.sv
33
--buechi --bdd
44
^\[main\.p0\] \(1 \[\*0\]\) #=# main\.x == 0: PROVED$
@@ -8,4 +8,3 @@ KNOWNBUG
88
--
99
^warning: ignoring
1010
--
11-
Empty LHS sequences are not implemented.
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
KNOWNBUG
1+
CORE
22
../../verilog/SVA/followed-by5.sv
33
--buechi --bound 2
4-
^\[main\.p0\] \(1 \[\*0\]\) #=# main\.x == 0: PROVED$
4+
^\[main\.p0\] \(1 \[\*0\]\) #=# main\.x == 0: PROVED up to bound 2$
55
^\[main\.p1\] \(1 \[\*0\]\) #-# 1: REFUTED$
66
^EXIT=10$
77
^SIGNAL=0$
88
--
99
^warning: ignoring
1010
--
11-
Empty LHS sequences are not implemented.

src/temporal-logic/ltl_sva_to_string.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ Author: Daniel Kroening, [email protected]
1414
#include <verilog/sva_expr.h>
1515

1616
#include "ltl.h"
17-
#include "rewrite_sva_sequence.h"
1817
#include "temporal_expr.h"
1918
#include "temporal_logic.h"
2019

@@ -304,11 +303,8 @@ ltl_sva_to_stringt::rec(const exprt &expr, modet mode)
304303
{
305304
PRECONDITION(mode == PROPERTY);
306305
auto &sequence = to_sva_sequence_property_expr_base(expr).sequence();
306+
auto op_rec = rec(sequence, SVA_SEQUENCE);
307307

308-
// re-write to get rid of empty matches
309-
auto sequence_rewritten = rewrite_sva_sequence(sequence);
310-
311-
auto op_rec = rec(sequence_rewritten, SVA_SEQUENCE);
312308
// weak closure
313309
return resultt{precedencet::ATOM, '{' + op_rec.s + '}'};
314310
}
@@ -456,8 +452,7 @@ ltl_sva_to_stringt::rec(const exprt &expr, modet mode)
456452
}
457453
else if(repetition.is_empty_match())
458454
{
459-
// handled by rewite_sva_sequence
460-
return resultt{precedencet::ATOM, "0"};
455+
return resultt{precedencet::ATOM, "[*0]"};
461456
}
462457
else if(repetition.is_singleton())
463458
{

0 commit comments

Comments
 (0)