Research Projects

  • Automatically Repairing Bugs in Hardware Designs

    While traditional automated software repair has increased in popularity over the past decade, the key techniques behind the success of software repair tools, such as fault localization and test-case based fitness evaluation, have not scaled well to hardware description languages (HDL) designs. The unique and expensive nature of hardware verification warrants further exploration of automated techniques to fix defects in such designs. To that end, I am working on developing an automated framework to find and repair faults in HDL descriptions.

  • Formal Verification of Distributed Systems

    Distributed systems are notoriously hard to get right. Recent years have been marked with an increased interest in formally verifying distributed systems due to their ever-increasing importance. Prior works on verifying such systems has involved significant amounts of time and human effort. In collaboration with the Michigan Systems Lab, I am working on an approach for automated formal verification of distributed protocols' specifications and implementations.

  • Formal Verification of Cyber-Physical Systems

    Recent echnological advances have resulted in our increased reliance on computer systems modeling and controlling objects of our physical world. Such systems, known as cyber-physical systems, fall under the category of hybrid systems: they exhibit both discrete and continuous behavior. The prevalence of such hybrid systems around us have necessitated further exploration of reasoning about the states of the systems. We need strong guarantees of correctness in the algorithms underlying the systems to be confident in their abilities to perform tasks for us safely. I am working on developing a program logic tailored to formally verifying hybrid systems by reasoning about their intermediate and final states.


  • Empirically Evaluating Genetic Algorithms For Generating Test Suites For Web Applications
    Hammad Ahmad
    Honors Thesis, 2019

  • A comparison of semantic-based initialization methods for genetic programming
    Hammad Ahmad, Thomas Helmuth
    In Proceedings of the Genetic and Evolutionary Computation Conference Companion, GECCO '18.