# Biography

I am a fourth-year doctoral student in computer science at Carnegie Mellon University. I am advised by Prof. Jan Hoffmann. I am broadly interested in programming languages and software engineering, especially probabilistic programming, type systems, static resource analysis, and program synthesis. Currently, I am working on language-level integrations for Bayesian inference and probabilistic programming systems.

I completed my undergraduate at Peking University, China where I worked with Prof. Yingfei Xiong on summarization techniques to analyze programs sharing big libraries.

Here is my Curriculum Vitae.

# Recent Publications

(2020). Liquid Resource Types. In ICFP.

(2020). Raising Expectations: Automating Expected Cost Analysis with Types. In ICFP.

(2020). Tail Bound Analysis for Probabilistic Programs via Central Moments.

(2019). Resource-Guided Program Synthesis. In PLDI.

(2019). A Denotational Semantics for Low-Level Probabilistic Programs with Nondeterminism. In MFPS.

(2019). Type-Guided Worst-Case Input Generation. In POPL.

(2018). PMAF: An Algebraic Framework for Static Analysis of Probabilistic Programs. In PLDI.

(2017). TiML: A Functional Language for Practical Complexity Analysis with Invariants. In OOPSLA.

(2017). Conditional Dyck-CFL Reachability Analysis for Complete and Efficient Library Summarization. In ESOP.

# Recent Posts

### Using FFT to Speed Up DP

Problem link: Counting Road Networks | HackerRank. You are supposed to count the number of connected undirected labeled graphs with $n$ vertices. Algorithms with $O(n \log^2 n)$ time complexity are preferable.

### Nondeterministic Interpretation

Suppose you have a toy specification with built-in nondeterminism, and you want to generate answers with respect to the specification: type exp = EInt of int | EPair of exp * exp | ENdet of exp * exp type ans = VInt of int | VPair of ans * ans For example, from the following specification

# Contact

• GHC 9003, 4902 Forbes Ave, Pittsburgh, PA 15217