Skip to content

Silicon generates invalid SMT code ("unknown constant") for functions with QP footprint #541

@aterga

Description

@aterga

The following code:

field val: Int

function snap(g: Set [Ref]): Map[Ref, Int]
    requires (forall n: Ref :: n in g ==> acc(n.val, 1/2))
    ensures forall u:Ref, v:Int :: 
            (u in domain(result) && v == result[u]) ==> (u in g && u.val == v)
    ensures forall u: Ref, F: Set[Ref] ::
            F subset g && u in F ==> u in domain(snap(F)) && snap(F)[u] == u.val

results in the following error:

java.util.concurrent.ExecutionException: viper.silicon.reporting.Z3InteractionFailed: Unexpected output of Z3. Expected 'success' but found: (error "line 912 column 101: unknown constant F@9@00")

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    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