GithubHelp home page GithubHelp logo

derdrodt / key Goto Github PK

View Code? Open in Web Editor NEW

This project forked from keyproject/key

0.0 0.0 0.0 126.94 MB

KeY Theorem Prover for Deductive Java Verification

Home Page: https://key-project.org

License: Other

Shell 0.15% Python 0.03% Perl 0.16% C 0.01% PHP 0.01% Java 97.56% Scilab 0.01% CSS 0.02% TeX 0.02% ANTLR 0.29% GAP 0.03% Gnuplot 0.01% Makefile 0.09% HTML 1.46% SMT 0.15% Dafny 0.01%

key's Introduction

KeY -- Deductive Java Program Verifier

Bugs Code Smells Coverage Duplicated Lines (%) Lines of Code Maintainability Rating Quality Gate Status Reliability Rating Security Rating Technical Debt Vulnerabilities

This repository contains the interactive theorem prover "KeY" for the verification of Java programs.

You can find more information about KeY on https://key-project.org or use the documentation in the companion repository key-docs. The content of the latter is also available as HTML version under https://key-project.org/docs.

The current version of KeY is 2.10.0, licensed under GPL v2.

Requirements:

  • Hardware: >=2 GB RAM
  • Operating System: Linux/Unix, MacOSX, Windows
  • Java SE 8 or newer
  • Optionally, KeY can make use of the following binaries:

Content of the KeY folder

This folder provides a gradle-managed project following Maven's standard folder layout. There are several subprojects in this folder. In general, every key.*/ subproject contains a core component of KeY. Additional and optional components are in keyext.*/ folders. The file build.gradle is the root build script describing the dependencies and common build tasks for all subprojects.

key.util, key.core and key.ui are the base for the product "KeY Prover". Special care is needed if you plan to make changes here.

Compile and Run KeY

Assuming you are in the directory of this README file, you can create a runnable and deployable version with one of these commands:

  1. With ./gradlew key.ui:run you can run the user interface of KeY directly from the repository. Use ./gradlew key.ui:run --args='--experimantal' to enable experimental features.

  2. Use ./gradlew classes to compile KeY, which includes running JavaCC and Antlr. Likewise, use ./gradlew testClasses if you also want to compile the JUnit test classes.

  3. Test your installation with ./gradlew test. Be aware that this will usually take multiple hours to complete. With ./gradlew testFast, you can run a more lightweight test suite that should complete in a few minutes.

    You can select a specific test case with the --tests argument. Wildcards are allowed.

    ./gradlew :key.<subproject>:test --tests "<class>.<method>"

    You can debug KeY by adding the --debug-jvm option, then attaching a debugger at localhost:5005.

  4. You can create a single jar-version, aka fat jar, of KeY with

    ./gradlew :key.ui:shadowJar

    The file is generated in key.ui/build/libs/key-*-exe.jar.

  5. A distribution is build with

    ./gradlew :key.ui:installDist :key.ui:distZip

    The distribution can be tested by calling key.ui/install/key/bin/key.ui and is zipped in key.ui/build/distributions.

    The distribution gives you potential of using single jar files.

Developing KeY

  • Quality is automatically assessed using SonarQube on each merge requests. The results of the assessments can be found on SonarCloud.io (Branches).

    The rules and quality gate are maintained by Alexander Weigl [email protected] currently.

  • More guideline and documentation for the KeY development can be found under key-docs.

Issues and Bug Reports

If you encounter problems, please send a message to

License Remark

This is the KeY project - Integrated Deductive Software Design
Copyright (C) 2001-2011 Universität Karlsruhe, Germany
						Universität Koblenz-Landau, Germany
						and Chalmers University of Technology, Sweden
Copyright (C) 2011-2022 Karlsruhe Institute of Technology, Germany
						Technical University Darmstadt, Germany
						Chalmers University of Technology, Sweden

The KeY system is protected by the GNU General Public License.
See LICENSE.TXT for details.

key's People

Contributors

csicar avatar danielgrahl avatar davidgiessing avatar fliegendewurst avatar flo2702 avatar gongxter avatar grekain1 avatar jwiesler avatar kamuno avatar lichtemo avatar lisa92 avatar lks9 avatar lululuong avatar mattulbrich avatar mi-ki avatar mlooz avatar pschmitt27 avatar pumpkinpietroelf avatar rheimbach avatar roundearedsengi avatar satiricalthumb avatar seevella avatar simongreiner avatar simongreinerkit avatar unp1 avatar vladrich avatar wadoon avatar woj76 avatar wolframpfeifer avatar zhao-nan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.