Pigeonhole principles in finite types #
Main declarations #
We provide the following versions of the pigeonholes principle.
Fintype.exists_ne_map_eq_of_card_lt
andisEmpty_of_card_lt
: Finitely many pigeons and pigeonholes. Weak formulation.Finite.exists_ne_map_eq_of_infinite
: Infinitely many pigeons in finitely many pigeonholes. Weak formulation.Finite.exists_infinite_fiber
: Infinitely many pigeons in finitely many pigeonholes. Strong formulation.
Some more pigeonhole-like statements can be found in Data.Fintype.CardEmbedding
.
The pigeonhole principle for finitely many pigeons and pigeonholes.
This is the Fintype
version of Finset.exists_ne_map_eq_of_card_lt_of_maps_to
.
If ‖β‖ < ‖α‖
there are no embeddings α ↪ β
.
This is a formulation of the pigeonhole principle.
Note this cannot be an instance as it needs h
.
The pigeonhole principle for infinitely many pigeons in finitely many pigeonholes. If there are infinitely many pigeons in finitely many pigeonholes, then there are at least two pigeons in the same pigeonhole.
See also: Fintype.exists_ne_map_eq_of_card_lt
, Finite.exists_infinite_fiber
.
The strong pigeonhole principle for infinitely many pigeons in finitely many pigeonholes. If there are infinitely many pigeons in finitely many pigeonholes, then there is a pigeonhole with infinitely many pigeons.
See also: Finite.exists_ne_map_eq_of_infinite