Skip to content

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

@pieter-bos

Description

@pieter-bos

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-BugB-ViperBackend: Silicon and Carbon

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions