Skip to content

Commit 5b3e023

Browse files
authored
Merge pull request #773 from diffblue/issue669-implies
Update issue669.sv to use 'implies'
2 parents 1bac041 + 94b8967 commit 5b3e023

File tree

2 files changed

+16
-13
lines changed

2 files changed

+16
-13
lines changed

regression/verilog/SVA/issue669.desc

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
1-
KNOWNBUG
1+
CORE
22
issue669.sv
33
--bound 5 --top top
4+
\[top\.assert\.1\] always not s_eventually 0: PROVED up to bound 5$
5+
\[top\.assert\.2\] always \(\(top\.a until_with top\.b\) implies \(not \(\(not top\.b\) s_until \(not top\.a\)\)\)\): PROVED up to bound 5$
6+
\[top\.assert\.3\] always \(\(not \(\(not top\.b\) s_until \(not top\.a\)\)\) implies \(top\.a until_with top\.b\)\): PROVED up to bound 5$
7+
\[top\.assert\.4\] always \(\(top\.a until_with top\.b\) implies \(top\.a until \(top\.a and top\.b\)\)\): PROVED up to bound 5$
8+
\[top\.assert\.5\] always \(\(top\.a until \(top\.a and top\.b\)\) implies \(top\.a until_with top\.b\)\): PROVED up to bound 5$
9+
\[top\.assert\.6\] always \(\(s_eventually top\.a\) implies \(1 s_until top\.a\)\): PROVED up to bound 5$
10+
\[top\.assert\.7\] always \(\(1 s_until top\.a\) implies \(s_eventually top\.a\)\): PROVED up to bound 5$
11+
\[top\.assert\.8\] always \(\(top\.a s_until top\.b\) implies \(\(s_eventually top\.b\) and \(top\.a until top\.b\)\)\): PROVED up to bound 5$
12+
\[top\.assert\.9\] always \(\(\(s_eventually top\.b\) and \(top\.a until top\.b\)\) implies \(top\.a s_until top\.b\)\): PROVED up to bound 5$
413
^EXIT=0$
514
^SIGNAL=0$
615
--

regression/verilog/SVA/issue669.sv

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,19 @@ module top(input x, input y, input clk);
1010
assert property (not s_eventually 0);
1111

1212
// Using until_with
13-
assert property (a until_with b |-> not ((not b) s_until (not a)));
14-
assert property (not ((not b) s_until (not a)) |-> a until_with b);
13+
assert property ((a until_with b) implies not ((not b) s_until (not a)));
14+
assert property (not ((not b) s_until (not a)) implies (a until_with b));
1515

1616
// Until_with equivalence with until
17-
assert property ((a until_with b) |-> (a until (a and b)));
18-
assert property ((a until (a and b)) |-> (a until_with b));
19-
20-
// Property implies itself should always be true
21-
assert property ((b or (always b)) |-> (b or (always b)));
22-
assert property ((b or (always b)) implies (b or (always b)));
17+
assert property ((a until_with b) implies (a until (a and b)));
18+
assert property ((a until (a and b)) implies (a until_with b));
2319

2420
// Definitions of strong eventually
25-
assert property ((s_eventually a) |-> (1 s_until a));
26-
assert property ((1 s_until a) |-> (s_eventually a));
21+
assert property ((s_eventually a) implies (1 s_until a));
22+
assert property ((1 s_until a) implies (s_eventually a));
2723

2824
// Definitions of strong until
29-
assert property ((a s_until b) |-> ((s_eventually b) and (a until b)));
3025
assert property ((a s_until b) implies ((s_eventually b) and (a until b)));
31-
assert property (((s_eventually b) and (a until b)) |-> (a s_until b));
3226
assert property (((s_eventually b) and (a until b)) implies (a s_until b));
3327

3428
endmodule

0 commit comments

Comments
 (0)