← Latest papers
🔢 mathematics

Induction and Recursion Principles in a Higher-Order Quantitative Logic for Probability

This paper introduces an affine higher-order quantitative logic equipped with novel induction and guarded recursion principles for $1$-bounded complete metric spaces and probability measures, demonstrating its utility in verifying probabilistic programs and processes through case studies on bisimilarity distances, temporal learning convergence, and random walks.

Original authors: Giorgio Bacci, Rasmus Ejlers Møgelberg

Published 2026-05-21
📖 5 min read🧠 Deep dive

Original authors: Giorgio Bacci, Rasmus Ejlers Møgelberg

Original paper licensed under CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). This is an AI-generated explanation of the paper below. It is not written or endorsed by the authors. For technical accuracy, refer to the original paper. Read full disclaimer

Imagine you are trying to judge how similar two things are. In the old days of computer science, logic was like a strict judge who only cared about "Yes" or "No." Two programs were either exactly the same, or they were completely different. There was no middle ground.

But in the modern world of probabilistic programming (where computers make random choices, like rolling dice), things aren't so black and white. Sometimes Program A is almost the same as Program B, or maybe it's only slightly different. This paper introduces a new kind of "logic" that can measure these shades of gray.

Here is a breakdown of the paper's ideas using simple analogies:

1. The World of "Fuzzy" Equality (Metric Spaces)

Think of a standard computer program as a point on a map. In traditional logic, if you have two points, they are either the same spot or they aren't.

In this paper, the authors treat programs like points on a rubber sheet.

  • Distance: The "distance" between two points isn't just physical space; it's a measure of how different their behavior is. If two programs behave almost the same, they are close together on the sheet. If they behave very differently, they are far apart.
  • The Goal: Instead of asking "Are they equal?", the logic asks, "How far apart are they?" and tries to prove that the distance is small enough to be acceptable.

2. The "Sensitivity" Tag (The Affine Calculus)

Imagine you are a chef following a recipe. Some ingredients are very sensitive: if you change the amount of salt by a tiny bit, the whole dish tastes ruined. Other ingredients are robust: adding a little more water doesn't change much.

The authors created a programming language (a "calculus") where every variable comes with a sensitivity tag.

  • If a variable is tagged with a high sensitivity, the logic knows that small changes in that input will cause big changes in the output.
  • If it's tagged with low sensitivity, the output is stable.
  • Why it matters: This allows the computer to mathematically track how errors or random choices ripple through a program. It's like having a built-in "error meter" that tells you exactly how much a mistake in the input will mess up the result.

3. The "Safe Loop" (Guarded Recursion)

Usually, when you write a computer program that repeats itself (a loop or recursion), it can get stuck in an infinite loop that never finishes.

The authors use a concept called Banach's Fixed Point Theorem (a famous math rule) to create a "safe loop."

  • The Analogy: Imagine a mirror reflecting a mirror. If the mirrors are perfectly parallel, you see an infinite tunnel. But if you angle them slightly so that the image gets smaller and smaller with every reflection, the image eventually shrinks to a single point and stops.
  • The Logic: The authors ensure that every time their program loops, it "shrinks" the problem slightly (by a factor less than 1). This guarantees the loop will eventually finish and settle on a single, stable answer. This is crucial for defining things like "geometric distributions" (randomly picking numbers) or simulating processes that run forever but settle into a pattern.

4. The "Coupling" Trick (Induction and Probability)

One of the hardest things to prove in probability is that two random processes are similar.

  • The Problem: You can't just compare the final results of two dice rolls because they are random.
  • The Solution (Coupling): The paper introduces a principle called Coupling. Imagine you have two people rolling dice. Instead of rolling them separately, you force them to roll the same dice at the same time. If you can show that, under this "shared" scenario, their results are always close, then you know the two processes are close, even if they usually roll separately.
  • The paper provides a logical rule that lets you prove things about probability distributions by "coupling" them together in your proof.

5. What They Actually Did (Case Studies)

The paper doesn't just talk theory; they used their new logic to solve three specific puzzles:

  1. Markov Processes: They proved upper limits on how different two "random walk" systems (like a drunk person wandering a city) can be.
  2. Learning Algorithms: They showed that a specific type of machine learning algorithm (Temporal Difference learning) actually converges to a stable answer, rather than going crazy.
  3. Random Walks on a Hypercube: They used the "coupling" trick to prove that a random walker on a multi-dimensional cube (a complex shape) will eventually reach a state of balance.

Summary

This paper builds a new mathematical toolkit for reasoning about computer programs that involve randomness and uncertainty.

  • It replaces "Yes/No" with "How far apart?"
  • It tags variables with "sensitivity" to track how errors spread.
  • It uses "shrinking loops" to ensure programs don't get stuck.
  • It uses "shared scenarios" (coupling) to prove that random processes behave similarly.

The result is a system that can rigorously prove that probabilistic programs are safe, stable, and behave as expected, even when they involve complex random choices.

Drowning in papers in your field?

Get daily digests of the most novel papers matching your research keywords — with technical summaries, in your language.

Try Digest →