Meetup summary

2026-10-23 - Reverse engineering with LLMs

Agenda:

Neil will talk about how to use AI assistants to reverse engineer software for fun and for profit (but mostly for fun). Fun applications to Thrill Digger and Chalo Chalo, a fan-favorite favorite party game (apparently now abandonware, as far as I can tell). This will also tie into our upcoming Thrill Digger agent competition (date TBD—we will need to work through some prerequisites first). He’ll also go over how to solve the full marginal distribution iteratively using a clever “two-column” approach, which avoids some pathologies of the approach I discussed previously where the search space grows exponentially with the size of the “fringe” (the set of cells adjacent to anything you’ve dug up so far during the course of a game).

If there’s time left after this, I’ll introduce Exucal. The goal was to produce an exact-precision calculator (to “arbitrary” precision) with access to special functions that are most useful in math, probability, and physics. It’s already useful for much of the stuff we’ve been doing in combinatorics. It’s a web app which can be installed for use offline, and the entire math engine is written in browser-native JavaScript. Beyond acting as a calculator, it is also unit-aware and can perform conversions (all in “exact” precision). Its grammar was heavily inspired by (but is not identical to or cross-compatible with) GNU Units. However, there some subtleties around “exact”, and I plan to drill into those details. I think that the underlying number representation is unique: it uses a strictly rational significand with a base-10 exponent (and some canonicalization) to represent core numbers, and adds to this a strict (but not tight!) error radius1. It also includes a “traditional” decimal mode with intermediate (rather than whole-expression) rounding.

Footnotes

  1. I borrowed the idea of a midpoint-plus-error-radius from Arb, which is now part of FLINT. We’ve used the latter in previous sessions for numerical series manipulation and expansion. It’s super useful when applying constructive analytic techniques to get exact answers to some gnarly combinatorics problems. ↩