Prove2Me
Navigate
DiscoverCollectionsFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

Chapter DutchBook

Definition
ChapterDutchBook

by leonardopedro · Oct 1, 2026 · Mathlib 0df444a (Lean v4.33.1)

definitionsformalizationtimepiece

Formal definitions for the timepiece Lean 4 formalization (source chapter BookProof/ChapterDutchBook.lean): generated def bundle for ChapterDutchBook. See BookProof/ChapterDutchBook.lean for full context.

Definition code
import Mathlib


/-!
# The de Finetti Dutch-Book coherence theorem (finite sample space)

Source: `book.tex`, chapter *"Consciousness as a representation of a Bayesian
prior"*, §*"Non-informative priors vs. Fermi Paradox and Artificial General
Intelligence"* (`book.tex` line ~9142), where the book invokes the classical
**Dutch-book** argument (`\cite{dutchbook}`) underpinning the Bayesian
interpretation of probability that the whole book is built on: a system of
betting prices is *coherent* (cannot be turned into a guaranteed loss) **iff**
those prices are the expectations of a genuine probability distribution.

This module formalizes that statement (finite version, on a finite sample
space `Ω`).

## Setup

* An **event** is a `Finset Ω`; a **price function** `Pr : Finset Ω → ℝ`
  assigns each event its fair betting quotient.
* A **gamble** on an event `A` with stake `s` pays the bettor
  `s * (1_A(ω) - Pr A)` in state `ω` (they pay `s * Pr A` up front and
  receive `s` iff `A` occurs).  A finite family of gambles has total payoff
  `payoff Pr A s ω = ∑ i, s i * (1_{A i}(ω) - Pr (A i))`.
* `HasDutchBook Pr` — there is a finite family of gambles whose payoff is
  **strictly negative in every state** (a guaranteed loss).
* `Coherent Pr := ¬ HasDutchBook Pr`.
* `Represents Pr p` — `Pr A = ∑_{ω ∈ A} p ω`; `IsProb p` — `p ≥ 0` and
  `∑ p = 1`.

## Results (all `sorry`-free, axiom-clean)

* Easy direction `represents_isProb_coherent` — prices coming from a genuine
  probability distribution are coherent (the `p`-expected payoff is `0`, so it
  cannot be negative everywhere).
* From coherence, the probability axioms follow by explicit Dutch books:
  `Coherent.empty` (`Pr ∅ = 0`), `Coherent.univ` (`Pr univ = 1`),
  `Coherent.nonneg` (`0 ≤ Pr A`), `Coherent.le_one` (`Pr A ≤ 1`),
  `Coherent.additive` (finite additivity on disjoint events).
* `Coherent.represents_singleton` — `Pr A = ∑_{ω ∈ A} Pr {ω}` (additivity over
  singletons), whence the hard direction `coherent_exists_prob` — a coherent
  price function is represented by the probability distribution `ω ↦ Pr {ω}`.
* Headline `coherent_iff_exists_prob` — `Coherent Pr ↔ ∃ probability p,
  Represents Pr p`.
-/

open scoped BigOperators
open Finset

namespace BookProof.ChapterDutchBook

variable {Ω : Type*} [DecidableEq Ω]

/-- Indicator of an event as a real number: `1` if `ω ∈ A`, else `0`. -/
def betIndicator (A : Finset Ω) (ω : Ω) : ℝ := if ω ∈ A then 1 else 0



/-- Total payoff to the bettor of a finite family of gambles (events `A i`,
stakes `s i`) in state `ω`. -/
def payoff {m : ℕ} (Pr : Finset Ω → ℝ) (A : Fin m → Finset Ω) (s : Fin m → ℝ)
    (ω : Ω) : ℝ :=
  ∑ i, s i * (betIndicator (A i) ω - Pr (A i))

/-- A price function admits a **Dutch book**: a finite family of gambles whose
payoff is strictly negative in *every* state (a guaranteed loss). -/
def HasDutchBook (Pr : Finset Ω → ℝ) : Prop :=
  ∃ (m : ℕ) (A : Fin m → Finset Ω) (s : Fin m → ℝ), ∀ ω, payoff Pr A s ω < 0

/-- A price function is **coherent** if it admits no Dutch book. -/
def Coherent (Pr : Finset Ω → ℝ) : Prop := ¬ HasDutchBook Pr

/-- `p` is a probability distribution: nonnegative weights summing to `1`. -/
def IsProb [Fintype Ω] (p : Ω → ℝ) : Prop := (∀ ω, 0 ≤ p ω) ∧ ∑ ω, p ω = 1

/-- The price function `Pr` is represented by the weights `p`:
`Pr A = ∑_{ω ∈ A} p ω`. -/
def Represents (Pr : Finset Ω → ℝ) (p : Ω → ℝ) : Prop :=
  ∀ A : Finset Ω, Pr A = ∑ ω ∈ A, p ω

/-! ### Payoff of a single gamble -/





/-! ### Easy direction: probability ⇒ coherent -/



/-! ### Hard direction: coherent ⇒ probability, via explicit Dutch books -/

















end BookProof.ChapterDutchBook
Source
https://github.com/leonardopedro/timepiece/blob/61595bc/BookProof/ChapterDutchBook.lean

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me