Skip to content
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

Failure to prune branch due to removal of exists in side condition #3606

Open
virgil-serbanuta opened this issue Jun 15, 2023 · 3 comments
Open

Comments

@virgil-serbanuta
Copy link
Contributor

See the info for reproducing this issue at the end.

As far as I can tell, what happens is that in a certain case, the backend rewrites config1(X) and not exists y . X == stuff(Y) to config2(stuff(Z)) and not stuff(Z) == stuff(Y), completely dropping the exists y quantifier. With the quantifier, most likely the backend would have been able to evaluate exists y . stuff(Z) == stuff(Y) to top, which would have pruned the branch.

report.tar.gz

$ kompile --version
K version:    v5.6.122-0-g77b76f004a-dirty
Build date:   Thu Jun 08 22:29:39 EEST 2023
$ kore-rpc --version
Kore version 0.60.0.0
Git:
  revision:	f7a90ba41aa98d79f400099e2a27156e07543540
  branch:	HEAD
  last commit:	Fri May 5 08:23:49 2023 -0600
@virgil-serbanuta
Copy link
Contributor Author

FWIW, this happens when applying these three rules twice for the same ADDR value (though the report may have only two of the rules):
https://github.com/runtimeverification/elrond-semantics/blob/master/elrond-config.md?plain=1#L197-L225

The first time each rule is applied properly, and the configuration is split into three. On the owise branch, when attempting to apply again these rules, the configuration is still split into three, and the thing mentioned in the first issue comment happens.

@goodlyrottenapple
Copy link
Contributor

related to #3605

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants