runtimeverification / runtimeverification/haskell-backend
Z3 bindings for booster: how to implement SMT hooks
Open
Nobody has claimed this yet.
runtimeverification/hs-backend-booster
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
After inspecting the SMT bindings for haskell-backend, the idea came up to use a different technique for smt-hook functions:
- define a function of the same name as in K, and assert that its value is equal to the smt-hook body expression
- partial functions can be encoded by asserting an implication (definedness condition => function value equal). This will require a modified hook syntax, probably by adding a new attribute that can express the condition.
(related issue in the old backend: https://github.com/runtimeverification/haskell-backend/issues/3603)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the SMT bindings for the haskell-backend and the related old-backend issue 3603; no specific file or test is named here. The work would be complete when Z3 bindings support the proposed total and partial smt-hook encoding and the required hook syntax condition is defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100