diem / diem/move

[move-prover] Boogie exited with compilation errors when "--trace" is set

Open
#8 0 comments 0 reactions 0 assignees Claimed by @rahxephon89 View on GitHub
bug
Dominant language
Rust
Stars
378
Forks
137
PR merge metrics
No merged PRs in 30d

Description

When the prover is run against several Move modules in the DPN with the option “—trace”, output.bpl cannot pass compilation. To reproduce the error, using the following command:

`move package -p diem-move/diem-framework/DPN/sources/ prove -t VASP -- —trace`

The output:

Error: [internal] boogie exited with compilation errors:
output.bpl(8284,62): Error: undeclared identifier: a
output.bpl(8290,66): Error: undeclared identifier: a
output.bpl(8427,62): Error: undeclared identifier: a
output.bpl(8433,66): Error: undeclared identifier: a
output.bpl(8450,70): Error: undeclared identifier: parent
output.bpl(8457,73): Error: undeclared identifier: parent
output.bpl(8463,78): Error: undeclared identifier: parent
output.bpl(8592,62): Error: undeclared identifier: a
output.bpl(8598,66): Error: undeclared identifier: a
output.bpl(8615,70): Error: undeclared identifier: parent
output.bpl(8622,73): Error: undeclared identifier: parent
output.bpl(8628,78): Error: undeclared identifier: parent
output.bpl(8950,63): Error: undeclared identifier: a
output.bpl(8956,67): Error: undeclared identifier: a
output.bpl(8973,71): Error: undeclared identifier: parent
....
37 name resolution errors detected in output.bpl

The following code in output.bpl triggers the compilation failure:

// assume Identical($t5, exists(a)) at ./sources/VASP.move:252:37+20
assume {:print "$at(46,10573,10593)"} true;
assume ($t5 == $ResourceExists($1_VASP_ChildVASP_$memory, a));

The Move code at ./sources/VASP.move:252:37+20:
ensures forall a: address : exists(a) == old(exists(a));

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.