PhD Final Oral Exam: Michael Gerten
Software Engineering for Chemical Reaction Networks
The use of non-traditional computing mechanisms is a rapidly growing field of study. One paradigm uses chemical reaction networks (CRNs) to perform computations via chemical interactions. CRNs are used to develop molecular devices at the nanoscale, such as intelligent drug therapeutics. In practice, these programs are written and simulated in environments like MATLAB and later compiled into physical molecules such as DNA strands. However, techniques for testing the correctness of CRNs are lacking. Current methods of validating CRNs include using model checking and theorem proving, but these techniques are limited in scalability.
In this work, I present a series of software engineering techniques to improve the validation of CRN programs. Contributions include ChemTest, a testing framework for evaluating CRNs, and Chemflow, an automated test-generation technique using program invariants. I further developed a fault localization method, Traceback, for CRNs and created an automated program repair method, CRNRepair. We find that these methods are effective in testing CRNs and validating their behavior.
Committee: Myra Cohen (co-major professor), Jim Lathrop (co-major professor), Robyn Lutz, Jonathan Smith, and Liyi Li (substitute for Samik Basu)