Skip to content

Commit 939d51a

Browse files
committed
BMC: reconsider lasso-shaped encodings
This replaces the lasso-shaped encodings in the word-level BMC property encoding. The lasso and straigth-line encodings are now built as separate obligations. In the lasso encoding, all operators follow the same lasso shape. This avoids spurious traces where the eventually operator follows the lasso but a safety part of the property does not.
1 parent ff4221b commit 939d51a

16 files changed

+298
-80
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
* SystemVerilog: fix for |-> and |=> for empty matches
88
* LTL/SVA to Buechi with --buechi
99
* SMV: abs, bool, count, max, min, toint, word1
10+
* BMC: new encoding for F, avoiding spurious traces
1011

1112
# EBMC 5.6
1213

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
KNOWNBUG
2-
smv_ltlspec_AFAG1.smv
3-
--bound 3
4-
^\[spec1\] AF AG !buechi_state: PROVED$
1+
CORE
2+
smv_ctlspec_AFAG1.smv
3+
--bound 10
4+
^\[spec1\] AF AG !buechi_state: PROVED up to bound 10$
55
^EXIT=0$
66
^SIGNAL=0$
77
--
88
^warning: ignoring
99
--
10-
The BMC engine returns the wrong answer.
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
KNOWNBUG
1+
CORE
22
smv_ltlspec_F4.smv
3-
--bound 3
3+
--bound 2
44
^\[spec1\] F \(some_input <-> X some_input\): REFUTED$
55
^EXIT=10$
66
^SIGNAL=0$
77
--
88
^warning: ignoring
99
--
10-
The BMC engine gives the wrong answer.

regression/smv/LTL/smv_ltlspec_F6.desc

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
KNOWNBUG
1+
CORE
22
smv_ltlspec_F6.smv
3-
--bound 3 --numbered-trace
3+
--bound 1 --numbered-trace
44
^\[spec1\] F X some_input: REFUTED$
5+
^some_input@0 = FALSE$
6+
^some_input@1 = FALSE$
57
^EXIT=10$
68
^SIGNAL=0$
79
--
810
^warning: ignoring
911
--
10-
The BMC engine gives the wrong answer.
Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
KNOWNBUG
1+
CORE
22
smv_ltlspec_FG1.smv
3-
--bound 2
4-
^\[spec1\] F G x!=1: PROVED$
3+
--bound 10
4+
^\[spec1\] F G x != 1: PROVED up to bound 10$
55
^EXIT=0$
66
^SIGNAL=0$
77
--
88
^warning: ignoring
99
--
10-
The BMC engine returns the wrong answer.

regression/smv/LTL/smv_ltlspec_FG1.smv

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,8 @@ TRANS x=1 -> next(x)=2
1010

1111
TRANS x=2 -> next(x)=2
1212

13+
-- This should pass.
14+
-- There are traces of two kinds:
15+
-- 0, 0, 0, ...
16+
-- 0, ..., 0, 1, 2, 2, ...
1317
LTLSPEC F G x!=1
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
smv_ltlspec_FX1.smv
3+
--bdd
4+
^\[spec1\] F X X p: REFUTED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
--
8+
^warning: ignoring
9+
--
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
smv_ltlspec_FX1.smv
3+
--bound 1
4+
^\[spec1\] F X X p: REFUTED$
5+
^EXIT=10$
6+
^SIGNAL=0$
7+
--
8+
^warning: ignoring
9+
--
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
MODULE main
2+
3+
VAR p : boolean;
4+
5+
-- This should fail for any bound >= 1.
6+
-- The shortest lasso is FALSE, FALSE, ...
7+
LTLSPEC F X X p
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
CORE
2+
smv_ltlspec_U3.smv
3+
--bound 5
4+
^\[.*\] TRUE U x -> F x: PROVED up to bound 5$
5+
^EXIT=0$
6+
^SIGNAL=0$
7+
--
8+
^warning: ignoring
9+
--

0 commit comments

Comments
 (0)