runtimeverification / runtimeverification/haskell-backend
Expand all alias applications (in order) before internalising a pattern
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
The current implementation (as of runtimeverification/hs-backend-booster#22 and runtimeverification/hs-backend-booster#29 ) expands aliases only in one expected place: the LHS of a rewrite rule.
(in runtimeverification/hs-backend-booster#29, we are ignoring priority aliases for the unused antiLeft to avoid a problem caused by applying one alias inside another).
Instead, all aliases should be expanded immediately while internalising patterns (i.e., inside other aliases and in rules, both LHS and RHS). The underlying assumptions are:
- all aliases in the kore file are declared before they are applied (location-wise)
- aliases are only applied inside the module where they are declared
Given assumption 2. the internalised definition could discard all aliases once the module has been internalised, they do not have to be stored (we can also keep them around, though).
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 tracing the current alias expansion during pattern internalisation, especially the LHS-only behavior described alongside runtimeverification/hs-backend-booster#22 and #29. Done means aliases expand immediately and in declaration order inside aliases and both sides of rules, while respecting the stated module and declaration-order assumptions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100