runtimeverification / runtimeverification/kontrol

Add `simplify-node lemma` feature

Open
#149 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

It would be useful if we could test if some lemma works to discharge some node in the command line, without having to write the lemma in the lemmas file, rekompile and then run the proof again. Take the example where some node has the following constraint:

#And { maxUInt8 <Int bool2Word ( maxUInt128 <Int VV0_x_114b9705:Int ) <<Int 7 #Equals true } 

And we want to easily check that the following lemma works to prove that the node has a contradiction:

rule A <Int bool2Word ( _ ) <<Int B => false
      requires A >=Int 1 <<Int B

Instead of having to add the lemma to the lemmas file and then rekompile, it would be useful to be able to:

kontrol simplify-node testName nodeId "A <Int bool2Word ( _ ) <<Int B => false requires A >=Int 1 <<Int B"

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.

Research direction

Start at the CLI entry point for kontrol simplify-node and trace how the test name, node ID, and lemma text would be handled. Compare this with the existing lemmas-file workflow. Done means the command can try the supplied lemma against the selected node without requiring a lemmas-file edit or rekompilation.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.