-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[proof-explore | low-priority] A Call for Improved Methods in Proof Exploration #743
Comments
@Stevengre can you provide an example of what you are thinking about specifically? Maybe type out the example interaction you hope to have in the Python terminal? |
Currently, I can only outline some potentially useful cases, but I am not sure how to design the Python interface to achieve them. Furthermore, I am not yet familiar with the workflow of using kontrol for verification, so it might be difficult for me to provide good examples. For me, I would like to:
It seems that these features could be achieved by directly importing kontrol and using the pyk interface (or putting the under verification program into kontrol's test-suite). I initially wanted to try this, but I found that using kontrol show with bash could achieve similar functionalities, so I gave up. However, I can only get some basic information from the generated KCFG and it is difficult for me to link it with the Solidity code. In other words, I am unable to determine if my algorithm will work effectively on a specific kcfg before trying it out. Therefore, I proposed #742 to integrate merging node directly into kontrol for testing. Other possible application scenarios include:
|
However, I believe these features might not be necessary once the output of kontrol is improved. Ideally, kontrol should automatically pinpoint the error location and output the possible cause of the error. For example, if verification fails, it should directly indicate which assertion was violated. In case of a timeout, it should output the branch conditions of all current branches or any abnormal call depth/loop count. Users of kontrol shouldn't need background knowledge of K and KEVM. The issues I encountered are actually problems that the developers of kontrol need to address. |
Therefore, I think I should close this issue and open a discussion about how to eliminate the need for background knowledge beyond Solidity when using kontrol. |
@Stevengre please also try out Perhaps look over the docs again? https://docs.runtimeverification.com/kontrol/guides/kontrol-example/k-control-flow-graph-kcfg |
The |
@Stevengre you can do node comparison with No need to close this issue, we can continue discussing how to meet your needs. The reason I ask these questions is to understand what the minimal and fastest improvements we can make are to make your more productive. |
Thank you! I don't know this option before. I'll try it out! |
The |
Requirement
When exploring the generated KCFG, I want to perform bulk operations similar to SQL/Cypher for querying, updating, and modifying configurations. Additionally, to better align with Solidity, it may be necessary to define some custom syntactic sugar.
Solution
My proposed solution is to provide a Python API rather than relying solely on command-line operations. By leveraging this API, users can quickly locate states with specific characteristics through Python scripts or Jupyter notebooks. This approach eliminates the need for manual and time-consuming mouse operations and ensures reproducibility.
Priority
Low
This is a usability feature that requires effort and is not urgent.
The
kontrol show
command andkaas
visualization can alleviate this issue to some extent.The text was updated successfully, but these errors were encountered: