Use uninterpreted functions for division
Open
- Dominant language
- Haskell
- Stars
- 358
- Forks
- 79
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 6
Description
SMT bitvector division (`bvudiv`, `bvsdiv`, `bvurem`, `bvsrem`) is expensive for solvers. Halmos uses **uninterpreted functions** during symbolic execution, deferring exact division semantics to a refinement phase. This dramatically speeds up path exploration while remaining sound.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing hevm's symbolic-execution and refinement phases, since the issue names no files or tests. Determine where bvudiv, bvsdiv, bvurem, and bvsrem are handled; done means symbolic execution uses uninterpreted functions while refinement preserves exact division semantics and soundness.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- security
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100