[Move Prover] Verification timeout when checking two proof targets together
- 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
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