diem / diem/move

[Move Prover] Verification timeout when checking two proof targets together

Open
#9 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
378
Forks
137
PR merge metrics
No merged PRs in 30d

Description

The prover cannot verify two proof targets for the function [cmp_bcs_bytes](https://github.com/diem/diem/blob/47e43d9b5ea1aab5d1478f008a9820e61463e7d1/language/move-stdlib/nursery/sources/Compare.move#L41) in [Compare.move](https://github.com/diem/diem/blob/main/language/move-stdlib/nursery/sources/Compare.move).

The two proof targets can be found [here](https://github.com/rahxephon89/diem/blob/562c4bd57e6efcbad0c7e020f877832ce4d79555/language/move-stdlib/nursery/sources/Compare.move#L86). Both of them involve universal quantifiers with operators on vectors. We suspect this issue may relate to quantifier instantiation. More detailed investigation is needed.

Contributor guide

Open the contributing guide

Research direction

Start with language/move-stdlib/nursery/sources/Compare.move, focusing on cmp_bcs_bytes and the two proof targets around line 86. Investigate the verification timeout and the suspected quantifier-instantiation issue involving universal quantifiers and vector operators; done means both proof targets verify together.

Written by the indexing model from the issue text.

Assessment

Domain
compilers
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.