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

(Un)folding no longer allows none in viper #1069

Open
pieter-bos opened this issue Oct 9, 2023 · 0 comments
Open

(Un)folding no longer allows none in viper #1069

pieter-bos opened this issue Oct 9, 2023 · 0 comments
Labels
A-Bug B-Viper Backend: Silicon and Carbon

Comments

@pieter-bos
Copy link
Member

pieter-bos commented Oct 9, 2023

See also:

We should consider what to do with this:

  • On a technical level we can just map through the error, I guess in the blame of fold/unfold/unfolding
  • We should consider whether the behaviour of Scale should change - my current interpretation of this is that e.g. [none](a == 1) is equivalent to true, not a == 1, and not disallowed as a well-formedness condition.
    • e.g. I think in parallel blocks we encode stuff as [1 / N]predicates() instead of N > 0 ==> [1 / N]predicates(), so that should then also change. this is nonsense
  • An alternative is to simply always encode a branch, i.e. unfold [p]x() -> if(p > 0) unfold [p](x)
@pieter-bos pieter-bos added A-Bug B-Viper Backend: Silicon and Carbon labels Oct 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-Bug B-Viper Backend: Silicon and Carbon
Projects
None yet
Development

No branches or pull requests

1 participant