Skip to content

Commit

Permalink
Merge pull request #475 from diffblue/CTL-engine
Browse files Browse the repository at this point in the history
BDD engine: support full CTL
  • Loading branch information
kroening authored May 2, 2024
2 parents a4621dc + a2a369f commit 8561461
Show file tree
Hide file tree
Showing 35 changed files with 754 additions and 260 deletions.
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/AF1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
AF1.smv
--bdd
^\[main::spec1\] AF some_var = TRUE: REFUTED$
^\[main::spec2\] AF some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/AF1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

INVAR some_var = 0

-- should fail
SPEC AF some_var = 1

-- should pass
SPEC AF some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/AF2.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
AF2.smv
--bdd
^\[main::spec1\] AF some_var = TRUE: REFUTED$
^\[main::spec2\] AF some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/AF2.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

ASSIGN next(some_var) := 0;

-- should fail
SPEC AF some_var = 1

-- should pass
SPEC AF some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/AG1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
AG1.smv
--bdd
^\[main::spec1\] AG some_var = TRUE: REFUTED$
^\[main::spec2\] AG some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/AG1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

INVAR some_var = 0

-- should fail
SPEC AG some_var = 1

-- should pass
SPEC AG some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/AG2.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
AG2.smv
--bdd
^\[main::spec1\] AG some_var = TRUE: REFUTED$
^\[main::spec2\] AG some_var = FALSE: REFUTED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/AG2.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

ASSIGN next(some_var) := 0;

-- should fail
SPEC AG some_var = 1

-- should fail
SPEC AG some_var = 0
8 changes: 8 additions & 0 deletions regression/ebmc/BDD/AU1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
KNOWNBUG
AU1.smv
--bdd
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
16 changes: 16 additions & 0 deletions regression/ebmc/BDD/AU1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
MODULE main

VAR x : 0..10;

-- 1, 2, 3, ..., 10
ASSIGN init(x) := 1;
ASSIGN next(x) := case
x = 10 : 10;
1 : x + 1;
esac;

-- should fail, since x=0 is not reachable
SPEC A x>=1 U x=0

-- should pass
SPEC A x>=1 U x=10
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/AX1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
AX1.smv
--bdd
^\[main::spec1\] AX some_var = TRUE: REFUTED$
^\[main::spec2\] AX some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/AX1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

INVAR some_var = 0

-- should fail
SPEC AX some_var = 1

-- should pass
SPEC AX some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/EF1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
EF1.smv
--bdd
^\[main::spec1\] EF some_var = TRUE: REFUTED$
^\[main::spec2\] EF some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/EF1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

INVAR some_var = 0

-- should fail
SPEC EF some_var = 1

-- should pass
SPEC EF some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/EF2.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
EF2.smv
--bdd
^\[main::spec1\] EF some_var = TRUE: REFUTED$
^\[main::spec2\] EF some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/EF2.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

ASSIGN next(some_var) := 0;

-- should fail
SPEC EF some_var = 1

-- should pass
SPEC EF some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/EG1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
EG1.smv
--bdd
^\[main::spec1\] EG some_var = TRUE: REFUTED$
^\[main::spec2\] EG some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/EG1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

INVAR some_var = 0

-- should fail
SPEC EG some_var = 1

-- should pass
SPEC EG some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/EG2.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
EG2.smv
--bdd
^\[main::spec1\] EG some_var = TRUE: REFUTED$
^\[main::spec2\] EG some_var = FALSE: REFUTED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/EG2.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

ASSIGN next(some_var) := 0;

-- should fail
SPEC EG some_var = 1

-- should fail
SPEC EG some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/EX1.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
EX1.smv
--bdd
^\[main::spec1\] EX some_var = TRUE: REFUTED$
^\[main::spec2\] EX some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/EX1.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

INVAR some_var = 0

-- should fail
SPEC EX some_var = 1

-- should pass
SPEC EX some_var = 0
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/EX2.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
EX2.smv
--bdd
^\[main::spec1\] EX some_var = TRUE: REFUTED$
^\[main::spec2\] EX some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/EX2.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

ASSIGN next(some_var) := 0;

-- should fail
SPEC EX some_var = 1

-- should pass
SPEC EX some_var = 0
2 changes: 1 addition & 1 deletion regression/ebmc/BDD/GF1.desc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
KNOWNBUG
CORE
GF1.smv
--bdd
^\[main::spec1\] G F some_var: REFUTED$
Expand Down
10 changes: 10 additions & 0 deletions regression/ebmc/BDD/just_p.desc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
CORE
just_p.smv
--bdd
^\[main::spec1\] some_var = TRUE: REFUTED$
^\[main::spec2\] some_var = FALSE: PROVED$
^EXIT=10$
^SIGNAL=0$
--
^warning: ignoring
--
11 changes: 11 additions & 0 deletions regression/ebmc/BDD/just_p.smv
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
MODULE main

VAR some_var : boolean;

ASSIGN init(some_var) := 0;

-- should fail
SPEC some_var = 1

-- should pass
SPEC some_var = 0
5 changes: 2 additions & 3 deletions regression/ebmc/smv/smv_ltlspec2.desc
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
KNOWNBUG
CORE
smv_ltlspec2.smv
--bdd
^EXIT=0$
^SIGNAL=0$
^\[smv::main::spec1\] G F x = 3: PROVED$
^\[main::spec1\] G F x = 3: PROVED$
--
^warning: ignoring
--
The BDD engine returns REFUTED.
Loading

0 comments on commit 8561461

Please sign in to comment.