Welcome to Deryaft Home Page
Deryaft is a tool that discovers representation
invariants of structurally complex data manipulated by java programs. By
structurally complex data we mean that the inputs are structural (e.g.,
represented with linked data structures) and must satisfy complex constraints
that relate parts of the structure (e.g., acyclicity for linked data
structures).
Given a small set of concrete structures, Deryaft analyzes
their key characteristics to formulate local and global properties that the
structures exhibit. For effective formulation of structural invariants, Deryaft
focuses on graph properties and views the program heap as an edge-labeled
graph.
The invariants generated by Deryaft directly enable automation of various existing frameworks, such as the Korat test generation framework and the Juzi data structure repair framework, which otherwise require the user to provide the invariants.