runtimeverification / runtimeverification/haskell-backend

Handle substitutions in Booster directly

Open
#3,781 0 comments 0 reactions 0 assignees View on GitHub

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

Currently, in kore-rpc-booster we rely on Kore's simplifier to simplify the execution state before returning it to the client. One of the reasons for that is that Kore extracts the substitution from constraints and applies it to the configuration. We, however, could do it in Booster.

Here's an idea by @jberthold on what we should do:

I think we could take a different approach, namely to identify substitution-like constraints in the internal format and then apply the substitution as well as return it.

That would probably be part of the final simplification before returning the execute result. An even more invasive change would be to carry a substitution within the Pattern type which is accumulated as we rewrite the term (accommodates the substitution that is returned by kore-rpc when we fall back).
We do not have to extend the internal Pattern type with a substitution field if we only handle substitutions at the end.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the kore-rpc-booster execute result and its final simplification over the internal Pattern format. Compare the proposed end-only approach with carrying substitutions in Pattern; done means Booster identifies substitution-like constraints, applies the substitution, and returns it without requiring a Pattern substitution field.

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
Mostly clear
Newbie friendliness
32/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.