I am a Ph.D. student in the Programming Languages Group at the University of Waterloo (since Fall 2021), co-supervised by Yizhou Zhang and Ondřej Lhoták.
I care about software safety and efficiency across the entire life cycle: from design (model checking), to program (program analysis, and formal verification via automatic and interactive theorem proving such as Coq, Agda, and Lean), to compilation (type checking, optimization, and compiler correctness).
I design probabilistic programming languages and implement compilers for sound and scalable (Bayesian) inference. My work applies type systems, program analyses, and logical relations to achieve efficient, reliable, and certified probabilistic programming.
Previously, I worked on formal verification of adversarial robustness of deep neural networks.
I am currently seeking both academic and industrial positions.[CV]
Geni: A compiler that compiles functional-programming-style probabilistic programs into probability-generating functions, a compact and exact compilation target representing measures.
Mappl: A compiler that enables scalable inference by factorizing recursive probabilistic programs via continuation-passing-style (CPS) compilation and information-flow typing (with a denotational, logical-relations model).
[DOI]
CS 450/650 Computer Architecture
CS 444/644 Compiler Construction
CS 245 & CS 245E Logic and Computation
CS 241 Foundations of Sequential Programs