runtimeverification / runtimeverification/evm-semantics

Symbolic Execution Slowdown with Summary Rules

Open
#2,789 0 comments 0 reactions 1 assignee View on GitHub

@Stevengre is already working on this.

Since Aug 8, 2025.

Dominant language
KCL
Stars
591
Forks
156
Avg merge
2h 19m
Merged PRs (30d)
1

Description

Issue:

The current implementation of summary rules does not consistently improve the performance of symbolic execution.

Description:

Based on the analysis in the evaluation report, it is evident that summary rules provide a definitive performance boost for concrete execution. However, their impact on symbolic execution is inconsistent and can sometimes lead to slower performance.

Potential Cause:

The root of the problem may lie in how the backend processes rules during symbolic execution. When the booster or the old backend encounters a high-priority rule (i.e., one with a lower priority number), it attempts to determine if this rule subsumes all possible cases of the current state. If it cannot definitively prove this, it is then forced to also evaluate all lower-priority rules. This process can introduce significant overhead and slow down execution.

It is possible that the existing summary rules are not general enough for the backend to easily recognize their broad applicability, thus triggering this time-consuming fallback mechanism.

Next Steps:

To address this issue, we need to:

  • Investigate the specific cases where symbolic execution is slower.
  • Identify which of these cases are triggering the old backend.
  • Pinpoint the specific rule or component within the backend that is causing the slowdown.

This investigation will help us understand the precise conditions under which summary rules fail to improve performance and guide the development of a more effective solution.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.