Posted in 2025
Refine yourself a code for great good!
- 30 May 2025
How do you code? Andrej Karpathy who coined the term “vibe coding,” says that for professional coding tasks, he picks single concrete incremental changes and, with AI assistance, plans them, executes them, and evaluates them. Refinement is the process of making incremental changes. It is not just the primary way we design and construct code, but also how we repair them and upgrade them, often collaboratively with other coders, designers and users.
The central objects in refinement are partially implemented programs. Partial programs are examples of open systems - each has a formal external specification (e.g. a function type) and an implementation with internal holes which are also formally specified. Partial proofs, such as those manipulated by the proof assistants, are also examples of open systems. Open systems compose by refinement or hole-filling, where a typed hole can only be filled by an open system of the right spec. An open system in some representation can also be translated (transported, projected or lifted) to some open system in another representation. In fact, open systems, with their refinements and translations, form a double category!
Relative information and the dual numbers
- 10 January 2025
Relative information (Kullback-Leibler divergence) is a key concept in statistics, machine learning and information theory. In fact, singular learning theory tells us that the generalization error of a learning algorithm depends on the structure of algebraic geometric singularities of relative information. This leads us to wonder, what properties of relative information contribute to its ubiquity? In this talk, we will study fundamental characteristics of conditional relative information I_{q||p}(Y|X) where q, p are joint distributions on random variables X, Y. We define the rig category C of random variables and their conditional maps, as well as the rig category R(e) of dual numbers. Relative information can then be constructed, up to a scalar multiple, via rig monoidal functors from C to R(e). Closely related to this construction is the information cohomology of Baudot, Bennequin and Vigneaux.