All Projects → jayhorn → jayhorn

jayhorn / jayhorn

Licence: other
Static checker for Java

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to jayhorn

klever
Read-only mirror of the Klever Git repository
Stars: ✭ 18 (-66.67%)
Mutual labels:  static-analysis, verification, model-checking
Tool lists
Links to tools by subject
Stars: ✭ 270 (+400%)
Mutual labels:  static-analysis, verification, model-checking
Seahorn
SeaHorn Verification Framework
Stars: ✭ 270 (+400%)
Mutual labels:  static-analysis, verification, model-checking
Vscode Tlaplus
TLA+ language support for Visual Studio Code
Stars: ✭ 152 (+181.48%)
Mutual labels:  verification, model-checking
vscode-tlaplus
TLA+ language support for Visual Studio Code
Stars: ✭ 213 (+294.44%)
Mutual labels:  verification, model-checking
Tlaplus
TLC is an explicit state model checker for specifications written in TLA+. The TLA+Toolbox is an IDE for TLA+.
Stars: ✭ 1,618 (+2896.3%)
Mutual labels:  verification, model-checking
Concuerror
Concuerror is a stateless model checking tool for Erlang programs.
Stars: ✭ 277 (+412.96%)
Mutual labels:  verification, model-checking
Software Quality Wiki
Software Quality Wiki
Stars: ✭ 1,991 (+3587.04%)
Mutual labels:  verification, model-checking
Sea Dsa
A new context, field, and array-sensitive heap analysis for LLVM bitcode based on DSA.
Stars: ✭ 90 (+66.67%)
Mutual labels:  static-analysis, verification
kani
Kani Rust Verifier
Stars: ✭ 229 (+324.07%)
Mutual labels:  verification, model-checking
maloss
Towards Measuring Supply Chain Attacks on Package Managers for Interpreted Languages
Stars: ✭ 46 (-14.81%)
Mutual labels:  static-analysis
opem
OPEM (Open Source PEM Fuel Cell Simulation Tool)
Stars: ✭ 107 (+98.15%)
Mutual labels:  static-analysis
steam-ts
Steam integration for TeamSpeak 3
Stars: ✭ 56 (+3.7%)
Mutual labels:  verification
averroes
Java bytecode generator for sound and precise partial program analysis
Stars: ✭ 19 (-64.81%)
Mutual labels:  static-analysis
yoti-java-sdk
The Java SDK for interacting with the Yoti Platform
Stars: ✭ 13 (-75.93%)
Mutual labels:  verification
sv-comp
Information to reproduce results from SV-COMP (MOVED, please follow the link)
Stars: ✭ 12 (-77.78%)
Mutual labels:  verification
errorprone-slf4j
An Error Prone plugin for SLF4J
Stars: ✭ 26 (-51.85%)
Mutual labels:  static-analysis
fingerprint
Fingerprint is a simple tool that can be used to verify the contents of a directory.
Stars: ✭ 71 (+31.48%)
Mutual labels:  verification
VerificationCode
简单的滑动验证码JS插件 图片验证码
Stars: ✭ 15 (-72.22%)
Mutual labels:  verification
pahout
A pair programming partner for writing better PHP. Pahout means PHP mahout 🐘
Stars: ✭ 43 (-20.37%)
Mutual labels:  static-analysis
master Build Status Coverage Status Coverity Scan Codacy Badge
devel Build Status Coverage Status Codacy Badge

Java and Horn clauses

JayHorn is a software model checking tool for Java. JayHorn tries to find a proof that certain bad states in a Java program are never reachable. These bad states are specified by adding runtime assertions (where some assertions may be generated, e.g., that an object reference must not be Null before being accessed).

JayHorn tries to err on the side of precision that is, when it is not able to proof that an assertion always holds, it will claim that the assertion may be violated (this is called soundness). JayHorn is currently sound (modulo bugs) for Java that use a single thread, have no dynamic class loading, and do not perform complex operations in static initializers.

For information on how to download and run JayHorn check our website. For information on how JayHorn is implemented check our JayHorn development blog.

Join the chat Join the chat at https://gitter.im/jayhorn/Lobby

Quick Guide

./gradlew assemble
java -jar jayhorn/build/libs/jayhorn.jar -help
java -jar jayhorn/build/libs/jayhorn.jar -j example/classes -solution -trace

Soundiness Statement

This project has been done in the spirit of soundiness. When building practical program analyses, it is often necessary to cut corners. In order to be open about language features that we do not support or support only partially, we are attaching this soundiness statement.

Our analysis does not have a fully sound handling of the following features:

  • JNI, implicit method invocations (finalizers, class initializers, Thread.<init>, etc.)
  • integer overflow
  • exceptions and flow related to that
  • reflection API (e.g., Method.invoke(), Class.newInstance )
  • invokedynamic
  • code generation at runtime, dynamic loading
  • different class loaders
  • key native methods (Object.run, Object.doPrivileged)

This statement has been produced with the Soundiness Statement Generator from soundiness.org.

Licenses

JayHorn is open-source and distributed under MIT license.

Libraries used in JayHorn include, in particular:

Acknowledgments and Disclaimers

JayHorn is partially funded by:

  • AFRL contract No. FA8750- 15-C-0010.
  • DARPA under agreement FA8750-15-2-0087
  • NSF award No. 1422705
  • The Swedish Research Council grant 2014-5484

Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) do not necessarily reflect the views of AFRL, DARPA, NSF or the Swedish Research Council.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].