#pigeonhole principle formally
42 messages · Page 1 of 1 (latest)
each of them go in different ones
i thought of some alternative proofs but not a perfect application of pigeonhole yet, ofc the difficulty is to find the cages that make it work
you're not putting all 27 children in 26 buildings that, say, are in the range of one particular building
thre are other buildings of choice
if they're all consecutive the two farthest from each other will be seeing each other
problem is that this is not exactly "the worst case scenario", you have to argue that better
but even so
i think we can come up with some proof thinking in such ways but that will not be a conventional application of pigeonhole
hmmm i thought of a solution
but i only apply pigeonhole after fixing one child in a building
would be more elegant if it was even before that
tell me if you need another hint
Fix a child in a building to begin with.
Then there are 27 buildings where the other 26 children can't stay, they'd have to be distributed among the other 50
now there is a way to consider pairs of buildings out of those 50 that will work as your cages
can you visualize where the 50 buildings left are situated?
maybe draw an imperfect sketch of the pokygon
can help
no
remember that you want to solve with pigeonhole
you need to put more than n pigeons inn n cages for some n
what are the cages? remember the hints i gave
26 children will go into 50 towers, one child per tower, correct?
let's say that you consider a partition of these towers into disjoint pairs of towers, say
{t1, t2}, {t3, t4}, ..., {t_{49}, t_{50}}
those are 25 pairs of (all distinct) towers
say that a child is "put in a pair P" if it is going inside a tower pertaining to the pair of towers P
so 26 children are being put in 25 pairs
by the pigeonhole principle, there will be a pair of towers where two children got put in
do you follow that?
that is the pigeonhole application
I just didn't tell you explicitly how exactly the pairing is and why it works
but the rest should be clear
@finite hollow any progress?
Yes! : }
that was the pairing i thought it, it's like quasi-symmetrical opposites
and I guess you understood the pigeonhole application too
yeah there are a lot of similar applications of pigeonhole
a formal proof in lean, written by Kha.
import data.set.finite
-- we don't need no infinite sets here
open finset
open function
-- `fin n` is the type of the first `n` natural numbers
theorem pigeonhole (n m : ℕ) (f : fin n → fin m) : n > m → ¬(injective f) :=
assume : n > m,
-- proof of negation: show contradiction
assume : injective f,
show false,
-- using ‹n > m› (these quotes refer to proofs of known facts), we can prove the
-- contradiction by proving `n ≤ m`
from suffices n ≤ m,
from nat.lt_le_antisymm ‹n > m› ‹n ≤ m›,
-- the type `fin n` has `n` elements
calc n = fintype.card (fin n) : by simp
-- ... which we can also express as the cardinality of its universal set
... = card (univ : finset (fin n)) : rfl
-- ... which is the same for its image under an injective function
... = card (image f univ) : by simp [card_image_of_injective univ ‹injective f›]
-- ... which is no larger than the universal set (in `fin m`)
... ≤ card (univ : finset (fin m)) : card_le_of_subset (subset_univ _)
... = fintype.card (fin m) : rfl
-- ... which has `m` elements
... = m : by simp