Combinatorial compactness and the Rado selection lemma #
This file contains compactness arguments for constructing infinite objects from finite approximations. The main result is a formalization of Rado's selection principle, as an application of compactness to combinatorics.
We give four versions, depending on whether the "partial" functions are defined locally or globally,
and whether we use Finset or Set.Finite. The precise formulation of the lemma is therefore
Finset.rado_selection_subtype or Set.Finite.rado_selection_subtype, but the versions avoiding
subtypes are easier to prove and often easier to apply, so they are provided too.
Main results #
Finset.rado_selection: Given functionsg : Finset α → α → βwhereβis finite, there exists a single functionχ : α → βwhich is constructed out ofg. More precisely, for each finite sets, there exists a larger sett ⊇ ssuch thatχandg tagree ons. In fact, we can more generally allow eachg sto be a dependent function, as(a : α) → β a, so the type ofgwill beFinset α → (a : α) → β a.Finset.rado_selection_subtype: A variant wheregtakes elements in the subtype.Set.Finite.rado_selection: A variant usingSet.Finite.Set.Finite.rado_selection: A variant usingSet.Finiteand wheregtakes elements in the subtype.
Implementation notes #
The proof uses the fact that the product of finite discrete spaces is compact
(by Tychonoff's theorem). The closed sets corresponding to "agreeing with g s on s"
have the finite intersection property, so their intersection is nonempty.
References #
- de Bruijn, N. G.; Erdős, P. (1951). "A colour problem for infinite graphs and a problem in the theory of relations".
- Rado, R. (1949). "Axiomatic treatment of rank in infinite sets".
Given a (dependent) function g s : (a : α) → β a for each finset s of α, provided that
each β a is finite, we can find another function χ : (a : α) → β a such that on every s,
there is some larger t such that χ agrees with g t on s.
Informally, we are stitching together the local functions g s into a global χ such that on
each s, χ can be expressed in terms of one of the g.
Given a (dependent) function g s : (a : s) → β a for each finset s of α, provided that
each β a is finite, we can find another function χ : (a : α) → β a such that on every s,
there is some larger t such that χ agrees with g t on s.
Informally, we are stitching together the local functions g s into a global χ such that on
each s, χ can be expressed in terms of one of the g.
Given a (dependent) function g s : (a : α) → β a for each finite set s of α, provided that
each β a is finite, we can find another function χ : (a : α) → β a such that on every s,
there is some larger t such that χ agrees with g t on s.
Informally, we are stitching together the local functions g s into a global χ such that on
each s, χ can be expressed in terms of one of the g.
Given a (dependent) function g s : (a : s) → β a for each finite set s of α, provided that
each β a is finite, we can find another function χ : (a : α) → β a such that on every s,
there is some larger t such that χ agrees with g t on s.
Informally, we are stitching together the local functions g s into a global χ such that on
each s, χ can be expressed in terms of one of the g.