runtimeverification / runtimeverification/kontrol

Construct an appropriate `is_mergable` heuristic for merging nodes and composable verification.

Open
#703 6 comments 0 reactions 1 assignee View on GitHub

Nobody has claimed this yet.

cse enhancement
Dominant language
Python
Stars
122
Forks
16
PR merge metrics
No merged PRs in 30d

Description

Currently, we have implemented a language-agnostic merge_node (K#4425). However, applying it to practical scenarios and solving problems like Kontrol#448 still requires addressing the following challenges:

  1. From the verification user’s perspective, what are the understandable benefits of merged nodes? For example, loop-invariant generation or support for composable verification at the function level?
  2. From a requirements/theoretical perspective, what kind of nodes are mergable or are reasonable to be merged?
  3. From a technical perspective, how to distinguish them by a simple specification.
  4. Theoretical reliability analysis: Can these specifications theoretically meet our requirements?
  5. Implementation reliability analysis: Can our implementation achieve the theoretical results?

Some answers to the above issues:

  1. According to the current, users are easy to check the unexpected result of the auto-merged function spec. However, they cannot specify concrete behavior of that function. They can only specify the function under different status.

Here are some small steps/tasks that I plan to complete next:

Contributor guide

Open the contributing guide

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.