Skip to content

Commit 0493376

Browse files
authored
Merge pull request #678 from diffblue/not_s_eventually
Simplify ¬ sva_s_eventually φ --> sva_always ¬φ
2 parents d183e1d + 097ca91 commit 0493376

File tree

2 files changed

+12
-0
lines changed

2 files changed

+12
-0
lines changed

src/temporal-logic/normalize_property.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,16 @@ exprt normalize_pre_not(not_exprt expr)
5353
// ¬Xφ --> X¬φ
5454
return X_exprt{not_exprt{to_X_expr(op).op()}};
5555
}
56+
else if(op.id() == ID_sva_always)
57+
{
58+
// ¬ sva_always φ --> sva_s_eventually ¬φ
59+
return sva_s_eventually_exprt{not_exprt{to_sva_always_expr(op).op()}};
60+
}
61+
else if(op.id() == ID_sva_s_eventually)
62+
{
63+
// ¬ sva_s_eventually φ --> sva_always ¬φ
64+
return sva_always_exprt{not_exprt{to_sva_eventually_expr(op).op()}};
65+
}
5666

5767
return std::move(expr);
5868
}

src/temporal-logic/normalize_property.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ Author: Daniel Kroening, [email protected]
3333
/// a sva_reject_on b --> ¬a ∧ b
3434
/// a sva_sync_accept_on b --> a ∨ b
3535
/// a sva_sync_reject_on b --> ¬a ∧ b
36+
/// ¬ sva_s_eventually φ --> sva_always ¬φ
37+
/// ¬ sva_always φ --> sva_s_eventually ¬φ
3638
/// ¬Xφ --> X¬φ
3739
/// ¬¬φ --> φ
3840
/// ¬Gφ --> F¬φ

0 commit comments

Comments
 (0)