runtimeverification / runtimeverification/haskell-backend
Possible implies endpoint not giving correct result
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 224
- Forks
- 43
- PR merge metrics
- No merged PRs in 30d
Description
I have a simple configuration with just a k cell and a Map.
configuration <T color="yellow">
<k> $PGM:Pgm </k>
<state> .Map </state>
</T>
And am passing in something that looks like this (before being converted to kore)
antecedent: <generatedTop>
<T>
<k>
K_CELL
</k>
<state>
STATE_CELL
</state>
</T>
<generatedCounter>
GENERATEDCOUNTER_CELL
</generatedCounter>
</generatedTop>
consequent: #Exists X . #Exists Y . <generatedTop>
<T>
<k>
K_CELL
</k>
<state>
STATE_CELL
</state>
</T>
<generatedCounter>
GENERATEDCOUNTER_CELL
</generatedCounter>
</generatedTop>
#And { true #Equals 0 >Int Y }
#And { true #Equals 0 <=Int X }
with the goal of figuring out if { true #Equals 0 >Int Y } #And { true #Equals 0 <=Int X } is satisfiable, and the endpoint returns satisfiable=false. In #3601 it is mentioned that this satisfiable field should actually be called "valid", but I thought this implication should actually be valid because { true #Equals 0 >Int Y } #And { true #Equals 0 <=Int X } is satisfiable and the variables X and Y are existentially quantified. It's possible I'm just not using the endpoint correctly or am not understanding something matching-logic related.
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 with the attached bug_report.tar.gz and reproduce the request against the implies endpoint using the configuration and antecedent/consequent shown in the issue. Compare the returned satisfiable value with the expected matching-logic semantics and clarify whether the endpoint result or the field interpretation is incorrect; done means the behavior and expected result are established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100