##Overview This is a project for automatically generating k specification from annotated java program, where the k specification is an input for k-program-verifier which can do program verification. Refer to docs/Annotation-Syntax.md for the syntax of the supported annotations.
###Two Modes of Usage
This software aims to be a service for programmers who want to do program verification using k framewrok, and therefore we've tried our best to present the service in a user-friendly way. We have provided an online interface (with syntax highlighting) for using the service in addition to the traditional command-line interface.
####Web-interface:
- Go to url http://k-spec-generator.herokuapp.com/
N.B. Due to the limitation of the free heroku service, the first time to open the url might be slower (5-10 seconds).
-
Either select a pre-defined example from the top-center pop-up menu, or directly paste the annotated java program into the central textbox.
-
Click the "Get K-SPEC" button and the generated k specification will be displayed in a new tab.
####Command-line interface:
-
open the terminal in some directory.
-
clone the repository from github and go to the root directory of the project.
git clone https://github.com/xiaohe27/K-Spec-Gen.git
cd K-Spec-Gen
- build the project via maven.
mvn package
- The generated executable is in the path:
<The-Path-To-Proj-Home>/KSpecGen/target/release/kspec-gen/kspec-gen/bin/
- If you add the path of the program "kspec-gen" to environment variable, then, it is easy to run it to generate k specification from java file:
kspec-gen <path-to-the-annotated-java-file-or-directory>
There are some simple descriptions about the current test cases in docs/Testing.md.
The project can be located in the github page.