Organizational Unit:
Undergraduate Research Opportunities Program

Research Organization Registry ID
Description
Previous Names
Parent Organization
Parent Organization
Organizational Unit
Includes Organization(s)

Publication Search Results

Now showing 1 - 3 of 3
  • Item
    Simplifier for Quantifier-Free Linear Arithmetical Expressions As a Means for Optimizing Automated Proofs of Partial Program Equivalence
    (Georgia Institute of Technology, 2018-12) Mints, Maxim
    The purpose of this study is to introduce performance optimizations and improvements to Pequod, an implementation of an algorithm capable of proving or disproving partial equivalence of two computer programs, given their source code or compiled code, without running them. This algorithm can also be re-purposed to solve different fundamental problems, such as proving multithreaded security. Here, partial equivalence of two programs, given matching inputs, means that, if both terminate (i.e. do not loop infinitely), they produce matching outputs. Programs are viewed as sets of procedures (a Java function is an example of a procedure). The following inputs are used: two procedures A and B, one in each program, and some mapping relations correlating the inputs and outputs of A to, respectively, the inputs and outputs of B. The algorithm used in Pequod is expected to be far more robust and reliable than any of the currently existing technology for proving partial equivalence, due to being applicable to a far wider range of programs because of the properties of the underlying concept of product programs. This technology could find applications in areas such as industry, where it could be used to prove the equivalence of some well-tested implementation with a more optimal replacement, or education, where it could be used to verify correctness of students’ solutions to programming problems. With Pequod, partial equivalence proofs could extend from being usable in select specific cases to a wide range of possible situations. The optimizations being introduced to, and proposed for Pequod mostly revolve around simplifying quantifier-free linear arithmetical expressions produced during the proof process.
  • Item
    Finding Kernels in Non-Linear Data-Driven CHC Solving
    (Georgia Institute of Technology, 2018-08) Eden, Michael
    Program verification has seen a lot of progress, but its still unable to automatically find proofs for industry programs. This paper builds on data-driven approaches from previous work [11] to provide a more robust automatic prover for programs with non-linear loop invariants. It does so by attempting to find the correct kernel for the relation that makes the invariant linear. This is an easy addition to existing systems and can be used with any data-driven approach, allowing it to be easily implemented on top of them. By finding a suitable kernel, many difficult non-linear invariants are easily found.
  • Item
    Program Analysis: An Exploration Of Relational Verification
    (Georgia Institute of Technology, 2016-07-18) Ryan, Nicholas K.
    Program analysis is a quickly growing field. We attempt to tackle new problems regarding program equivalence, concurrent programs, and information flow. As these problems have not been addressed at the same level we desire, there are no adequate testing suites. Previous tests for program analysis generally consisted of `toy programs' which was not a trend we wanted to follow. As such we began exploring new resources for testing such as coding practice problems, industry code, and related academic research. We found many unique testing materials which satisfy many program analysis problems as the code we analyzed was `real-world' code. By `real-world' we mean code which was not written purely for testing. This code was written to solve a problem in industry or research with no knowledge of our analysis. In the end we hope to provide a database of benchmarks which can be used for future projects by the program analysis community.