Skip to content

Disjunctive aliasing constraints and permissions #72

Open
@viper-admin

Description

@viper-admin

Created by bitbucket user Korbinian Breu on 2014-02-21 09:11
Last updated on 2017-09-23 13:45

#!scala

method foo2(s: Seq[Ref])
  requires |s| > 2 && acc(s[0].f, write) && acc(s[1].f, write)
  requires (forall i2: Int :: i2 in [0..2) ==> s[i2].f == 0)
{}

Alternative syntax with quantified chunks works

#!scala

method foo2korbinian(s:Seq[Ref])
requires |s| > 2
requires forall i:Int :: i in [0..1) ==> acc(s[i].f, write)
requires forall i:Int :: i in [1..2) ==> acc(s[i].f, write)
requires forall i:Int :: i in [0..2) ==> s[i].f == 0
{}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions