GKAT with Indicator Variables, Decompilation Verification in Nearly Linear Time
Speaker: Cheng Zhang
Cheng Zhang is a final year PhD student at Boston University working with Professor Marco Gaboardi. He is generally interested in the connection between mathematics and computer science. Specifically, he is interested in applying mathematical techniques in algebra to real world problems in program semantics and verification. Currently, most of his work is focused on derivatives of Kleene Algebra; both on the theoretical aspect and their applications in program verification.
Abstract
Decompilation is not only a method to solve practical problems, like binary analysis, binary migration, and binary optimization; it also gives us understanding of theoretical problems like the correspondence between structured and unstructured programs. Although plenty of works have been done in this area, with many automated tools developed; there are not many tools that can automatically verify the correctness of the decompilation result on a per-decompilation basis. In this talk, we will present a scalable algorithm based on techniques developed in Guarded Kleene Algebra with Tests (GKAT). This algorithm will automatically decide the trace-equivalence between a flowchart and its decompiled program in nearly linear time, thus verifying the correctness of the decompilation process.