My research is centered around learning mathematical reasoning, for humans and machines. This involves defining a suitable ``game of mathematics'' (on a formal system), learning to find proofs (using language models and deep reinforcement learning), discovering mathematical abstractions, and ultimately using these tools to build joyful and scalable experiences for mathematics education.
Certified Reasoning with Language Models
|Phil. Trans. of the Royal Society A 2023||
Peano: Learning Formal Mathematical Reasoning
Parsel: A Unified Natural Language Framework for Algorithmic Reasoning
|NeurIPS Math-AI 2022||
Lemma: Bootstrapping High-Level Mathematical Reasoning with Learned Symbolic Abstractions
Left to the Reader: Abstracting Solutions in Mathematical Reasoning
Synchromesh: Reliable Code Generation from Pre-trained Language Models
Contrastive Reinforcement Learning of Symbolic Reasoning Domains
Open-domain clarification question generation without question examples
Pragmatic Code Autocomplete
Dynamic Dispatch of Context-Sensitive Optimizations
Static Placement of Computation on Heterogeneous Devices
A Lossless Data Reduction for Mining Constrained Patterns in n-ary Relations
Programming contests. I used to be an ACM-ICPC competitor (world finalist in 2015), and generally involved in programming contests in various ways. In particular, I authored 3 problems for the ACM-ICPC Latin American regionals, 2 in 2017, one in 2020, and another one upcoming in 2023. I've also coached several teams, taught at training camps in Latin America, and co-authored the problems that selected high schoolers to represent Brazil in the International Olympiad of Informatics in 2018.
Data musicalization. I've been having a lot of fun in creating music from data, as a powerful way to subjectively experience information. One recent finished project on this line was a musicalization of the COVID deaths in Brazil, along with the equally disturbing reactions from our president at the time, which you can watch on YouTube.