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

Relax isExpressionFresh and improve aliasing error messages #1468

Merged
merged 1 commit into from
Nov 2, 2023

Conversation

mario-bucev
Copy link
Collaborator

@mario-bucev mario-bucev commented Nov 2, 2023

Relax the condition over which an expression is considered to be "fresh" to include bindings of match expression and seeing through non-recursive function.
It also changes the rule for Let for which I'm not so sure about:
Before: Let(vd, e, b) expression fresh iff e is fresh and b as well, where we consider vd as fresh when recurring on b
Now: Let(vd, e, b) fresh iff b is fresh, where we add vd as a fresh binding when recurring on b provided e is fresh.
These changes allows to accept FreshExpr.scala (which was rejected before).

It also improves a bit the "illegal aliasing" error messages.

@vkuncak vkuncak merged commit 3e8403a into epfl-lara:main Nov 2, 2023
@mario-bucev mario-bucev deleted the freshexpr branch November 3, 2023 06:17
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

Successfully merging this pull request may close these issues.

2 participants