runtimeverification / runtimeverification/haskell-backend

Expand all alias applications (in order) before internalising a pattern

Open
#3,775 2 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

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:

  1. all aliases in the kore file are declared before they are applied (location-wise)
  2. 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

  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 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.