Share on Facebook Share on Twitter Email
Answers.com

KeY

 

(1) A keyboard button. See qwerty keyboard.

(2) A numeric code that is used to encrypt text for security purposes. See key length, key space, cryptography and salt.

(3) A data field in a record. See key field and sort key.

Download Computer Desktop Encyclopedia to your iPhone/iTouch

Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
Wikipedia: KeY
Top
A screenshot of the KeY tool showing successful verification in 723 steps.
Screenshot of the KeY tool. The correctness of a charge routine on an electronic cash smart card has been shown automatically.

The KeY tool is used in formal verification of Java programs. It accepts both specifications written in JML or OCL. These are transformed into theorems of dynamic logic and then compared against program semantics which are likewise defined in terms of dynamic logic. KeY is significantly powerful in that it supports both interactive (i.e. by hand) and fully-automated correctness proofs. It can be integrated into CASE tools to extract specifications. There have been several extensions to KeY in order to apply it to the verification of C programs or hybrid systems. KeY is jointly developed by the University of Karlsruhe, Chalmers University of Technology in Gothenburg, and the University of Koblenz and is licensed under the GPL.

Contents

Java Card DL

The theoretical foundation of KeY is a formal logic called Java Card DL. It is a version of dynamic logic tailored to Java Card programs. As such, it for example allows statements (formulas) like \phi \rightarrow [\alpha]\psi, which intuitively says that the post-condition ψ must hold in all program states reachable by executing the Java Card program α in any state that satisfies the pre-condition φ. Proofs of the validity of such formulas can then be performed by means of a sequent calculus and symbolic execution.

Other Supported Logics

Besides the core tool based on Java Card DL, there are several variants of KeY which support reasoning for other kinds of logics:

(*) under active development/maintained

Variants of the KeY System

Symbolic Execution Debugger

The Symbolic Execution Debugger visualizes the control flow of a program as a symbolic execution tree that contains all feasible execution paths through the program up to a certain point.

The Symbolic Execution Debugger is provided as a plugin to the Eclipse development platform.

KeY-Hoare

KeY-Hoare is built on top of KeY and features a Hoare calculus with state updates. State updates are a means of describing state transitions in a Kripke structure.

KeYmaera

KeYmaera [6] (previously called HyKeY) is a deductive verification tool for hybrid systems based on a calculus for the differential dynamic logic dL [7]. It extends the KeY tool with computer algebra systems like Mathematica and corresponding algorithms and proof strategies such that it can be used for practical verification of hybrid systems.

KeYmaera has been developed at the University of Oldenburg and the Carnegie Mellon University.

KeY Test Case Generator

KeY is usable as a model-based testing tool that can generate unit tests for Java programs. The model from which test data and the test case are derived consists of a formal specification (provided in JML or OCL) and a symbolic execution tree of the implementation under test which is computed by the KeY system.

KeY for C

KeY for C is an adaption of the KeY System to MISRA C, a subset of the C programming language.

Sources

See also

External links


Shopping: KeY
Top
 
 

 

Copyrights:

Computer Desktop Encyclopedia. THIS DEFINITION IS FOR PERSONAL USE ONLY.
All other reproduction is strictly prohibited without permission from the publisher.
© 1981-2010 The Computer Language Company Inc.  All rights reserved.  Read more
Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "KeY" Read more