-
Notifications
You must be signed in to change notification settings - Fork 19
introduce sva_boolean_exprt
#1083
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
e7e9a69
to
679576c
Compare
eba0908
to
28c0ba6
Compare
regression/verilog/SVA/sva_and1.desc
Outdated
@@ -1,7 +1,7 @@ | |||
CORE | |||
sva_and1.sv | |||
|
|||
^\[main\.p0\] always \(1 and 1\): PROVED$ | |||
^\[main\.p0\] always \(1 and 1\): PROVED up to bound 5$ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why did we previously claim this was proved unboundedly?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Now fixed.
@@ -23,12 +23,26 @@ Author: Daniel Kroening, [email protected] | |||
exprt normalize_pre_sva_non_overlapped_implication( | |||
sva_non_overlapped_implication_exprt expr) | |||
{ | |||
// Same as a->always[1:1] b if lhs is not a sequence. | |||
if(!is_SVA_sequence_operator(expr.lhs())) | |||
// a|=>b is the same as a->always[1:1] b if lhs is not a proper sequence. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the difference between a sequence and a "proper" sequence?
src/trans-word-level/sequence.cpp
Outdated
DATA_CHECK_WITH_DIAGNOSTICS( | ||
validation_modet::INVARIANT, | ||
false, | ||
"unexpected sequence expression", | ||
expr.pretty()); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DATA_CHECK_WITH_DIAGNOSTICS( | |
validation_modet::INVARIANT, | |
false, | |
"unexpected sequence expression", | |
expr.pretty()); | |
DATA_INVARIANT_WITH_DIAGNOSTICS( | |
false, | |
"unexpected sequence expression", | |
expr.pretty()); |
b374490
to
36488ba
Compare
IEEE 1800-2017 16.6 Boolean expressions introduces rules on how to convert Boolean expressions into SVA sequences or properties. This introduces an expression for this conversion.
36488ba
to
9964659
Compare
IEEE 1800-2017 16.6 Boolean expressions introduces rules on how to convert Boolean expressions into SVA sequences or properties. This introduces an expression for this conversion.