Skip to content

Commit 756bb95

Browse files
committed
EBMC: basic engine selection heuristic
This adds a trivial engine selection heuristic, as follows: 1) First, try 1-induction, which may refute (base case) or prove (step case) the property. 2) If still unresolved, try BMC with bound 5. The heuristic is activated when no engine is specified on the command line.
1 parent 4b0c862 commit 756bb95

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+256
-190
lines changed

CHANGELOG

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# EBMC 5.5
22

3+
* If no engine is given, EBMC now selects an engine heuristically, instead
4+
of doing BMC with k=1
35
* Verilog: bugfix for $onehot0
46
* Verilog: fix for primitive gates with more than two inputs
57
* Verilog: Support $past when using AIG-based engines

regression/ebmc/example1/test.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
example1.sv
3-
--bound 10
4-
PROVED up to bound 10$
3+
4+
^\[.*\] always 2'\(main\.a\) \+ main\.b == main\.result: PROVED$
55
^EXIT=0$
66
^SIGNAL=0$

regression/smv/smv/bmc_unsupported_property1.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
bmc_unsupported_property1.smv
3-
3+
--bound 1
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[spec1\] EG x = FALSE: FAILURE: property not supported by BMC engine$

regression/smv/smv/bmc_unsupported_property2.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
bmc_unsupported_property2.smv
3-
3+
--bound 1
44
^EXIT=10$
55
^SIGNAL=0$
66
^\[spec1\] EG x = FALSE: FAILURE: property not supported by BMC engine$

regression/verilog/SVA/immediate2.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
CORE
22
immediate2.sv
3-
--bound 0
3+
44
^\[main\.assume\.1\] assume always 0: ASSUMED$
5-
^\[main\.assert\.2\] always main\.index < 10: PROVED up to bound 0$
5+
^\[main\.assert\.2\] always main\.index < 10: PROVED$
66
^\[main\.assert\.3\] always 0: REFUTED$
77
^EXIT=10$
88
^SIGNAL=0$

regression/verilog/SVA/immediate3.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
immediate3.sv
3-
--bound 0
4-
^\[full_adder\.assert\.1\] always \{ full_adder\.carry, full_adder\.sum \} == \{ 1'b0, full_adder\.a \} \+ full_adder\.b \+ full_adder\.c: PROVED up to bound 0$
3+
4+
^\[full_adder\.assert\.1\] always \{ full_adder\.carry, full_adder\.sum \} == \{ 1'b0, full_adder\.a \} \+ full_adder\.b \+ full_adder\.c: PROVED$
55
^EXIT=0$
66
^SIGNAL=0$
77
--

regression/verilog/SVA/named_property1.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
named_property1.sv
3-
--bound 0
4-
^\[main\.assert\.1\] always main\.x_is_ten: PROVED up to bound 0$
3+
4+
^\[main\.assert\.1\] always main\.x_is_ten: PROVED$
55
^EXIT=0$
66
^SIGNAL=0$
77
--

regression/verilog/SVA/named_sequence1.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
named_sequence1.sv
3-
--bound 0
4-
^\[main\.assert\.1\] always main\.x_is_ten: PROVED up to bound 0$
3+
4+
^\[main\.assert\.1\] always main\.x_is_ten: PROVED up to bound 5$
55
^EXIT=0$
66
^SIGNAL=0$
77
--

regression/verilog/SVA/sequence5.desc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
CORE
22
sequence5.sv
3-
--bound 0
4-
^\[main\.p0\] 1: PROVED up to bound 0$
3+
4+
^\[main\.p0\] 1: PROVED up to bound 5$
55
^\[main\.p1\] 0: REFUTED$
66
^\[main\.p2\] 1'bx: REFUTED$
77
^\[main\.p3\] 1'bz: REFUTED$

regression/verilog/SVA/sequence_first_match1.desc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
CORE
22
sequence_first_match1.sv
3-
3+
--bound 5
44
^\[.*\] first_match\(main\.x == 0\): FAILURE: property not supported by BMC engine$
55
^EXIT=10$
66
^SIGNAL=0$

0 commit comments

Comments
 (0)