-
Notifications
You must be signed in to change notification settings - Fork 33
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
BV/Int propagations #824
Milestone
Comments
bclement-ocp
added a commit
to bclement-ocp/alt-ergo
that referenced
this issue
Nov 23, 2023
This is a follow-up to OCamlPro#954 Somehow convinced myself that the cases where we perform simplifications were fine because we would only be simplifying into a subterm, but that is obviously not the case due to negation. Let's just do the safe thing and always return the original term with the appropriate equalities. All of this code should be removed in favor of doing these computations in the relations instead anyways, which would make sure we always treat [bv2nat] in the same way for literals and after substitution (see also OCamlPro#824 )
bclement-ocp
added a commit
to bclement-ocp/alt-ergo
that referenced
this issue
Nov 24, 2023
This is a follow-up to OCamlPro#954 Somehow convinced myself that the cases where we perform simplifications were fine because we would only be simplifying into a subterm, but that is obviously not the case due to negation. Let's just do the safe thing and always return the original term with the appropriate equalities. All of this code should be removed in favor of doing these computations in the relations instead anyways, which would make sure we always treat [bv2nat] in the same way for literals and after substitution (see also OCamlPro#824 )
bclement-ocp
added a commit
to bclement-ocp/alt-ergo
that referenced
this issue
Nov 24, 2023
This is a follow-up to OCamlPro#954 Somehow convinced myself that the cases where we perform simplifications were fine because we would only be simplifying into a subterm, but that is obviously not the case due to negation. Let's just do the safe thing and always return the original term with the appropriate equalities. All of this code should be removed in favor of doing these computations in the relations instead anyways, which would make sure we always treat [bv2nat] in the same way for literals and after substitution (see also OCamlPro#824 )
bclement-ocp
added a commit
that referenced
this issue
Nov 24, 2023
This is a follow-up to #954 Somehow convinced myself that the cases where we perform simplifications were fine because we would only be simplifying into a subterm, but that is obviously not the case due to negation. Let's just do the safe thing and always return the original term with the appropriate equalities. All of this code should be removed in favor of doing these computations in the relations instead anyways, which would make sure we always treat [bv2nat] in the same way for literals and after substitution (see also #824 )
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
When we have (dis|in)equalities between
int2bv
/bv2nat
terms we should propagate the relevant information to the other theory. For instance, if we havebv2nat(x) = bv2nat(y)
, we should be able to learnx = y
. This is the relational version of #801 (which is about computingint2bv
/bv2nat
values when their argument is known).See also #749 for an incomplete implementation of this.
The text was updated successfully, but these errors were encountered: