Yao Li (李垚), Ph.D.
Tenure-track Assistant Professor
Portland State University
I develop programming-language techniques for building reliable systems, analyzing the cost of lazy programs, and improving AI-assisted verification.
I obtained my Ph.D. in computer and information science from the University of Pennsylvania in 2022, under the guidance of Stephanie Weirich.
You can call me Yao. My preferred pronoun is he/him or they/them.
Research
My research connects programming-language semantics with mechanized reasoning. These selected works illustrate three directions in this agenda.
Building and verifying reliable software systems
I develop programming abstractions for coordinating distributed programs and techniques for verifying existing software. This includes library-level choreographic programming, interaction-tree specifications, and proof-guided simplification.
-
Freer Arrows and Why You Need Them in Haskell
Freer arrows support static analysis of computations in Haskell, with choreographic programming as a case study.
-
Don't Sweat Interaction Trees: Proof-Guided Local Variable Lifting for Interaction Trees
Proof-guided local-variable lifting produces simplified interaction-tree programs and equivalence proofs together.
Mechanized cost analysis of lazy programs
I develop semantic models and mechanized proofs for the cost of lazy evaluation, including amortized analysis of persistent data structures.
-
Story of Your Lazy Function’s Life: A Bidirectional Demand Semantics for Mechanized Cost Analysis of Lazy Programs
Bidirectional demand semantics supports mechanized cost analysis of lazy programs, including proofs about amortization and persistent data structures.
-
The Memorist Tale: Every Thunk Every Cost All At Once
Deterministic memorist semantics records fine-grained cost and usage information through a monadic interface.
AI-assisted verification and reliable generated code
I study how large language models can assist proof development, and how formal verification and executable checks can assess the reliability of generated code.
-
A Case Study on the Effectiveness of LLMs in Verification with Proof Assistants
A case study examines LLM proof generation in hs-to-coq and Verdi, including the effects of dependencies and source-file context.
Complete publications and draftsResearch groupTeaching
Research Group
Student researchers and alumni in my group.
Current Ph.D. Students
- Ian Kariniemi
- Yiming Lin
- Grant VanDomelen
- Nicholas Coltharp
I am currently at capacity and not taking new Ph.D. students.
Past Students
- Laura Israel (Ph.D. student at Univ. of Konstanz)
Teaching
CS 358: Principles of Programming Languages
Spring, 2026 · Spring, 2025
Learn how programming languages work, from syntax to semantics.
CS 669: Scholarship Skills
Winter, 2026
Practice research, writing, presenting, and reviewing in computer science.
Public course materials are not available on this page.
CS 457/557: Functional Programming
Fall, 2025 · Fall, 2024 · Winter, 2024 · Winter, 2023
Learn functional programming in Haskell to write clear, modular code.
CS 410/510 TOP: Proof Assistants and Program Verification
Spring, 2025 · Spring, 2023
Use Coq to build machine-checked proofs of program correctness.
CS 410/510 TOP: Advanced Topics in Program Verification
Spring, 2024
Explore classical and modern approaches to program verification.
Publications
2026
-
Agent-Native Research Artifacts
-
Don't Sweat Interaction Trees: Proof-Guided Local Variable Lifting for Interaction Trees
-
Unifying Hindsight and Foresight: Lazy Cost Analysis as Functional Logic Programming
-
The Memorist Tale: Every Thunk Every Cost All At Once
-
SymCode: A Neurosymbolic Approach to Mathematical Reasoning via Verifiable Code Generation
2025
2024
2022
2021
2020
2019
2018
Drafts
2026
-
A Taxonomy of Predicate Transformer Monads for Specifying Monadic Programs
-
The Memorist Tale: Every Thunk Every Cost All At Once (Extended Version)
-
Parkour: Parallel Library-Level Choreographic Programming
Talks
-
Don't Sweat Interaction Trees: Proof-Guided Local Variable Lifting for Interaction Trees
-
Reasoning about Laziness is Reasoning about Future: Alternative Semantics to Lazy Evaluation
Harvard PL Seminar, virtual talk
-
"Shallower" Embeddings for Mechanized Reasoning
PurPL (Purdue Programming Languages Group) Seminar, West Lafayette, IN
-
The Expression Problem and Theorem Proving (Discussion)
Workshop on the Implementation of Type Systems (WITS), co-located with POPL, Philadelphia, PA
Effect-Oblivious Equivalence
Workshop on Principles of Secure Compilation (PriSC), co-located with POPL, Philadelphia, PA
-
Reasoning about the Garden of Forking Paths
- POPV seminar at Boston University (Longer Version, Invited Talk)
- The ACM SIGPLAN International Conference on Functional Programming (ICFP), virtual talk
- The ACM SIGPLAN Conference on Systems, Programming, Languages, and Applications: Software for Humanity (SPLASH), Chicago, IL
-
Embracing a Mechanized Formalization Gap: Interactive reasoning for Haskell at scale
Haskell Implementors' Workshop (HIW), co-located with ICFP, virtual talk
-
The Science of Deep Specification
NSF Expeditions in Computing - 10 Years of Transforming Science and Society, Washington, DC
-
Dependent Types in Scala
Philly Area Scala Enthusiasts Meetup (PHASE), Philadelphia, PA
Scala-Forklift: Type-Safe Data Migration Tool for Slick, Git and Beyond
Comcast Scala By the Schuyllkill Conference, Philadelphia, PA
Service & Awards
Academic Service
- Program Committee
- CPP'27 Haskell'26 TyDe'25 POPL'25 CoqPL'25 PLDI'24 TFP'24 POPL'24 SRC PLDI'23 PLDI'23 SRC
- External Reviewer
- Automated Software Engineering (Journal) CPP'26 OOPSLA'25 JFP CONCUR'23 ESOP'23 ECOOP'23 WoLLIC'23
- Organizing Committee
- PLDI'25 (Publicity Co-Chair) PLDI'24 (Publicity Co-Chair) SPLASH'22 (Student Volunteer Co-Chair)
- Founder & Organizer
- PorPL
- Member-At-Large
- Haskell Symposium
- Artifact Evaluation Committee
- ECOOP'23 POPL'22 ICFP'21 POPL'21
- Session Chair
- Haskell'26 PLDI'23 SPLASH'21
- Mentor
- DeepSpec REU'21 (UPenn) Google Summer of Code (Scala) 2016
Honors & Awards
- 2022 ICFP Distinguished Paper Award
- 2018 Google Open Source Peer Bonus (for Scala Forklift)
- 2016 Outstanding Graduate of Shanghai Jiao Tong University
- 2014 China National Scholarship
- 2013 Outstanding Graduate of Shanghai Jiao Tong University
- 2012 China National Scholarship
- 2012 Most Popular Collegiate Innovation Projects of SJTU
- 2011 1st Prize in 4th Intel Cup National Collegiate Software Innovation Contest