Adharsh Kamath

About me

I'm a PhD candidate in the Siebel School of Computing and Data Science at the University of Illinois Urbana-Champaign. I'm fortunate to be advised by Prof. Sasa Misailovic. I work on formal methods, agentic AI and software engineering. Broadly, I'm interested in finding ways to ensure reliability of software systems (those comprised of AI agents and those generated using AI agents).

News

Research

Loopy: Leveraging LLMs for Program Verification

We study whether LLMs can supply inductive loop invariants for automated program verification. Loopy prompts an LLM for candidate loop invariants and ranking functions, then filters them with a Houdini-loop, which iteratively discards non-inductive clauses in the invariant (using a linear number of checker calls). Loopy infers correct invariants for 408/469 scalar-loop benchmarks. The symbolic baseline, Ultimate, verifies 430/469 benchmarks. Loopy and Ultimate together verify 461/469 benchmarks, hinting that combining symbolic tools with LLM-based techniques can improve the existing state-of-the-art.

Publications
Leveraging LLMs for Program Verification
FMCAD 2024 Adharsh Kamath, Nausheen Mohammed, Aditya Senthilnathan, Saikat Chakraborty, Pantazis Deligiannis, Shuvendu K. Lahiri, Akash Lal, Aseem Rastogi, Subhajit Roy, Rahul Sharma

Peepul: Certified Mergeable Replicated Data Types

MRDTs cast replicated data types in the mould of distributed version control. A purely functional data structure becomes replicated by equipping it with a three-way merge. Prior MRDTs verify only convergence, and their local operations are far slower than the sequential structures they replace. Peepul adapts an approach of using a replication-aware simulation relation to tie a data type's specification to its efficient implementation. We verify multiple MRDTs in F*, including the first formally verified replicated queue, and run them on Irmin.

Publications
Certified Mergeable Replicated Data Types
PLDI 2022 Vimala Soundarapandian, Adharsh Kamath, Kartik Nagar, KC Sivaramakrishnan
Marrying Replicated and Functional Data Structures
PaPoC 2022 Vimala Soundarapandian, Adharsh Kamath, Kartik Nagar, KC Sivaramakrishnan

ParaFuzz: Coverage-guided Property Fuzzing for Multicore OCaml programs

ParaFuzz extends Crowbar (AFL-based grey-box fuzzing with QuickCheck) to Multicore OCaml programs. ParaFuzz mocks Multicore OCaml's parallelism API with an effect-handler scheduler that yields at every synchronisation point and lets AFL pick which thread runs next. It effectively explores the joint space of possible inputs and thread interleavings. The framework allows for deterministic replay of buggy thread schedule + input combination.

Publications
ParaFuzz: Coverage-guided Property Fuzzing for Multicore OCaml programs
OCaml 2021 Sumit Padhiyar, Adharsh Kamath, KC Sivaramakrishnan

Timeline

  1. 2024 – now
    PhD, University of Illinois Urbana-Champaign advised by Sasa Misailovic
    1. 2026
      Research Intern, Microsoft Research, Redmond with Matthai Philipose
  2. 2022 – 24
    Research Fellow, Microsoft Research India with Akash Lal
  3. 2018 – 22
    BTech, National Institute of Technology Karnataka
    1. 2021 – 22
      Research Intern, Prism Lab, IIT Madras advised by KC Sivaramakrishnan and Kartik Nagar
    2. 2020
      Research Intern, IIT Madras advised by Rupesh Nasre

Service