Metamath Proof Explorer


Theorem fiphp3d

Description: Infinite pigeonhole principle for partitioning an infinite set between finitely many buckets. (Contributed by Stefan O'Rear, 18-Oct-2014)

Ref Expression
Hypotheses fiphp3d.a φA
fiphp3d.b φBFin
fiphp3d.c φxADB
Assertion fiphp3d φyBxA|D=y

Proof

Step Hyp Ref Expression
1 fiphp3d.a φA
2 fiphp3d.b φBFin
3 fiphp3d.c φxADB
4 ominf ¬ωFin
5 iunrab yBxA|D=y=xA|yBD=y
6 risset DByBy=D
7 eqcom y=DD=y
8 7 rexbii yBy=DyBD=y
9 6 8 bitri DByBD=y
10 3 9 sylib φxAyBD=y
11 10 ralrimiva φxAyBD=y
12 rabid2 A=xA|yBD=yxAyBD=y
13 11 12 sylibr φA=xA|yBD=y
14 5 13 eqtr4id φyBxA|D=y=A
15 14 eleq1d φyBxA|D=yFinAFin
16 nnenom ω
17 entr AωAω
18 1 16 17 sylancl φAω
19 enfi AωAFinωFin
20 18 19 syl φAFinωFin
21 15 20 bitrd φyBxA|D=yFinωFin
22 4 21 mtbiri φ¬yBxA|D=yFin
23 iunfi BFinyBxA|D=yFinyBxA|D=yFin
24 2 23 sylan φyBxA|D=yFinyBxA|D=yFin
25 22 24 mtand φ¬yBxA|D=yFin
26 rexnal yB¬xA|D=yFin¬yBxA|D=yFin
27 25 26 sylibr φyB¬xA|D=yFin
28 18 16 jctir φAωω
29 ssrab2 xA|D=yA
30 29 jctl ¬xA|D=yFinxA|D=yA¬xA|D=yFin
31 ctbnfien AωωxA|D=yA¬xA|D=yFinxA|D=y
32 28 30 31 syl2an φ¬xA|D=yFinxA|D=y
33 32 ex φ¬xA|D=yFinxA|D=y
34 33 reximdv φyB¬xA|D=yFinyBxA|D=y
35 27 34 mpd φyBxA|D=y