Skip to content

Commit 31c4ec8

Browse files
authored
Merge pull request #1061 from diffblue/smv-false-R-x
simplify `false R ψ` to `G ψ`
2 parents 9b692d0 + cef89a8 commit 31c4ec8

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

Diff for: regression/smv/LTL/smv_ltlspec_R2.desc

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
KNOWNBUG broken-smt-backend
1+
CORE
22
smv_ltlspec_R2.smv
3-
--bound 10
3+
--bound 10 --numbered-trace
44
^\[.*\] FALSE V x != 3: REFUTED$
55
^Counterexample with 3 states:$
66
^x@0 = 1$
@@ -11,4 +11,3 @@ smv_ltlspec_R2.smv
1111
--
1212
^warning: ignoring
1313
--
14-
The trace has too many states.

Diff for: regression/smv/LTL/smv_ltlspec_V2.desc

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
KNOWNBUG broken-smt-backend
1+
CORE
22
smv_ltlspec_V2.smv
3-
--bound 10
3+
--bound 10 --numbered-trace
44
^\[.*\] FALSE V x != 3: REFUTED$
55
^Counterexample with 3 states:$
66
^x@0 = 1$
@@ -11,4 +11,3 @@ smv_ltlspec_V2.smv
1111
--
1212
^warning: ignoring
1313
--
14-
The trace has too many states.

Diff for: src/temporal-logic/normalize_property.cpp

+8
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,14 @@ exprt normalize_property_rec(exprt expr)
103103
op = normalize_property_rec(op); // recursive call
104104

105105
// post-traversal
106+
if(expr.id() == ID_R)
107+
{
108+
if(to_R_expr(expr).lhs().is_false())
109+
{
110+
// false R ψ ≡ G ψ
111+
expr = G_exprt{to_R_expr(expr).rhs()};
112+
}
113+
}
106114

107115
return expr;
108116
}

Diff for: src/temporal-logic/normalize_property.h

+1
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ Author: Daniel Kroening, [email protected]
4040
/// ¬¬φ --> φ
4141
/// ¬Gφ --> F¬φ
4242
/// ¬Fφ --> G¬φ
43+
/// false R ψ --> G ψ
4344
exprt normalize_property(exprt);
4445

4546
#endif

0 commit comments

Comments
 (0)