runtimeverification / haskell-backend

The symbolic execution engine powering the K Framework
BSD 3-Clause "New" or "Revised" License
208 stars 41 forks source link

Regression in the `implies` endpoint of `booster-dev` #3941

Closed tothtamas28 closed 1 month ago

tothtamas28 commented 3 months ago

Related:

K version: v7.1.3

From the kevm-pyk directory of runtimeverification/evm-semantics:

$ make test-integration PYTEST_ARGS='-n0 -k benchmarks/storagevar02-overflow-spec.k --use-booster-dev --bug-report'

Bug report: bug-report.zip

In order to produce the bug report I had to apply a patch to pyk:

Once fixed, the test (tests/specs/benchmarks/storagevar02-overflow-spec.k) should be removed from the failing list: https://github.com/runtimeverification/evm-semantics/blob/master/tests/failing-symbolic.haskell-booster-dev

goodlyrottenapple commented 3 months ago

Looking into the bug report, this looks like an issue with map matching. We may need to call simplify on the inputs in this case.

{"error":"match remainder: [ ( Map:update(VarS:SortMap{}, \"0\", \"0\")\n, Map:update(\n    VarS:SortMap{},\n    \"0\",\n    chop(_)_WORD_Int_Int(_+Int_(lookup(VarS:SortMap{}, \"0\"), \"1\"))\n) )\n, ( \"\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL\\NUL...truncated\"\n, buf(\"32\", chop(_)_WORD_Int_Int(_+Int_(lookup(VarS:SortMap{}, \"0\"), \"1\"))) ) ]"},"message":"Implication check error"}