runtimeverification / runtimeverification/haskell-backend
Usimplified <non-empty-user-list> #Equals <empty-user-list>
Open
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
For a user-defined list, the backend produces an unsimplified predicate that can be described as <list-element> .UserList #Equals .UserList. I think that the backend should simplify this to #Bottom.
To reproduce:
- Unpack the attached archive.
kore-exec haskellDefinition.bin --module ELROND-WASM --pattern program.kore --output result.kore --depth 2- result.kore contains this:
/* Sfa */
\not{SortGeneratedTopCell{}}(
/* Spa */
\equals{SortK{}, SortGeneratedTopCell{}}(
/* T Fn D Sfa */
kseq{}(
/* T Fn D Sfa */
/* Inj: */ inj{SortStmts{}, SortKItem{}}(
/* T Fn D Sfa */
Lbl'UndsUndsUnds'WASM-COMMON-SYNTAX'Unds'Stmts'Unds'Stmt'Unds'Stmts{}(
/* T Fn D Sfa Cl */
LblnewEmptyModule'UndsUnds'WASM-AUTO-ALLOCATE'Unds'Stmt'Unds'WasmString{}(
/* T Fn D Sfa Cli */
/* Inj: */ inj{SortWasmStringToken{}, SortWasmString{}}(
/* T Fn D Sfa Cl */
\dv{SortWasmStringToken{}}(/* T Fn D Sfa Cl */
"\"env\"")
)
),
/* T Fn D Sfa Cli */
/* Inj: */ inj{SortEmptyStmts{}, SortStmts{}}(
/* T Fn D Sfa Cl */
Lbl'Stop'List'LBraQuot'listStmt'QuotRBraUnds'EmptyStmts{}()
)
)
),
/* T Fn D Sfa Cl */ dotk{}()
),
/* T Fn D Sfa Cl */
kseq{}(
/* T Fn D Sfa Cli */
/* Inj: */ inj{SortEmptyStmts{}, SortKItem{}}(
/* T Fn D Sfa Cl */
Lbl'Stop'List'LBraQuot'listStmt'QuotRBraUnds'EmptyStmts{}()
),
/* T Fn D Sfa Cl */ dotk{}()
)
)
)
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 unpacking unsimplified.zip and running the kore-exec command with haskellDefinition.bin, the ELROND-WASM module, and program.kore pattern. Inspect result.kore for the user-list equality predicate; done means the unsimplified predicate is reduced to #Bottom.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100