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

Automatically verifying the correctness of simplification rules. #4604

Open
Stevengre opened this issue Aug 22, 2024 · 2 comments
Open

Automatically verifying the correctness of simplification rules. #4604

Stevengre opened this issue Aug 22, 2024 · 2 comments

Comments

@Stevengre
Copy link
Contributor

Situation

Currently, we assume that simplification rules are correct, but that may not always be the case.

Expected

Given a simplification rule, we should be able to automatically check if it is correct or not.

Algorithm

A rule in the form of:

rule LHS => RHS requires PREV ensure POST

should be translated into the following SMT:

NOT(PREV -> (LHS == RHS) -> POST)

If there is no solution, then the simplification rule is proven to be correct.

@ehildenb
Copy link
Member

We did try this before: #1664

It actually didn't work very well, for the reasons that @PetarMax pointed out on Slack. Basically, most of the functions are uninpretpreted, so Z3 can't do much with them.

We are soon going to make a LEAN4 backend for K, and I think we will have a better chance of verifying simplification lemmas using that.

@Stevengre
Copy link
Contributor Author

I’m very excited about this backend and hope it will be actively maintained. I also hope to have the time and opportunity to contribute to it.

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