Proving the Correctness of Program Transformations with Abstract Execution and REFINITY

Summary. Abstract Execution (AE) is a new program analysis technique for automatically proving second-order properties about programs. It is based on the symbolic execution of abstract programs with second-order symbolic stores. Abrupt completion is analyzed in separate SE branches. AE has been successfully applied to show that almost all statement-based Java refactoring techniques are unsound—unless constrained with suitable preconditions. Assuming these preconditions, we automatically proved the transformations correct. With REFINITY, there is now tool support for using AE for your own problems.

Continue reading “Proving the Correctness of Program Transformations with Abstract Execution and REFINITY”

Report about the 1st International HacKeYthon 2018

Two weeks ago, at the 6th and 7th of December, 2018, the 1st International HacKeYthon took place in the rooms of the KIT in Karlsruhe, Germany. In five groups consisting of 3 to 4 participants each we worked on small projects contributing to the overall good of the KeY system. The projects were addressing properties such as usability and performance of the system which are frequently ignored or postponed since their direct value for research is limited.

Continue reading “Report about the 1st International HacKeYthon 2018”

KeY’s SED Successfully Applied in an Industrial Setting

The Symbolic Execution Debugger (SED) is a debugging and visualization tool based on KeY’s symbolic execution engine that can be used, just like a standard debugger, without any specialist knowledge. Now, the SED has successfully been applied by Aniket Kulkarni from Tata Consultancy Services in the validation of an industrial software component. He concludes that the “SED tool is useful for applying Symbolic Execution techniques as visual feedback is given to the developer”.

Continue reading “KeY’s SED Successfully Applied in an Industrial Setting”