Skip to content

Unsoundness: a heap dependent function is instantiated even when its precondition does not hold #376

@viper-admin

Description

@viper-admin

Created by @vakaras on 2019-05-06 11:48
Last updated on 2019-05-08 09:13

The following example verifies in Silicon while it should not:

function Void$discriminant(self: Ref): Int
  requires acc(Void(self))
  ensures false
{
  unfolding acc(Void(self)) in 8
}

predicate Void(self: Ref) {
  false
}

method m_void$$unreachable$opensqu$0$closesqu$() returns (_0: Ref)
{
  assert false
}

Metadata

Metadata

Assignees

No one assigned

    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