Metamath Proof Explorer


Theorem phpreu

Description: Theorem related to pigeonhole principle. (Contributed by Brendan Leahy, 21-Aug-2020)

Ref Expression
Assertion phpreu
|- ( ( A e. Fin /\ A ~~ B ) -> ( A. x e. A E. y e. B x = C <-> A. x e. A E! y e. B x = C ) )

Proof

Step Hyp Ref Expression
1 eleq1
 |-  ( x = C -> ( x e. A <-> C e. A ) )
2 1 biimpac
 |-  ( ( x e. A /\ x = C ) -> C e. A )
3 rabid
 |-  ( y e. { y e. B | C e. A } <-> ( y e. B /\ C e. A ) )
4 3 simplbi2com
 |-  ( C e. A -> ( y e. B -> y e. { y e. B | C e. A } ) )
5 2 4 syl
 |-  ( ( x e. A /\ x = C ) -> ( y e. B -> y e. { y e. B | C e. A } ) )
6 5 impancom
 |-  ( ( x e. A /\ y e. B ) -> ( x = C -> y e. { y e. B | C e. A } ) )
7 6 ancrd
 |-  ( ( x e. A /\ y e. B ) -> ( x = C -> ( y e. { y e. B | C e. A } /\ x = C ) ) )
8 7 expimpd
 |-  ( x e. A -> ( ( y e. B /\ x = C ) -> ( y e. { y e. B | C e. A } /\ x = C ) ) )
9 8 reximdv2
 |-  ( x e. A -> ( E. y e. B x = C -> E. y e. { y e. B | C e. A } x = C ) )
10 9 ralimia
 |-  ( A. x e. A E. y e. B x = C -> A. x e. A E. y e. { y e. B | C e. A } x = C )
11 3 simplbi
 |-  ( y e. { y e. B | C e. A } -> y e. B )
12 6 pm4.71rd
 |-  ( ( x e. A /\ y e. B ) -> ( x = C <-> ( y e. { y e. B | C e. A } /\ x = C ) ) )
13 df-mpt
 |-  ( y e. { y e. B | C e. A } |-> C ) = { <. y , x >. | ( y e. { y e. B | C e. A } /\ x = C ) }
14 13 breqi
 |-  ( y ( y e. { y e. B | C e. A } |-> C ) x <-> y { <. y , x >. | ( y e. { y e. B | C e. A } /\ x = C ) } x )
15 df-br
 |-  ( y { <. y , x >. | ( y e. { y e. B | C e. A } /\ x = C ) } x <-> <. y , x >. e. { <. y , x >. | ( y e. { y e. B | C e. A } /\ x = C ) } )
16 opabidw
 |-  ( <. y , x >. e. { <. y , x >. | ( y e. { y e. B | C e. A } /\ x = C ) } <-> ( y e. { y e. B | C e. A } /\ x = C ) )
17 14 15 16 3bitri
 |-  ( y ( y e. { y e. B | C e. A } |-> C ) x <-> ( y e. { y e. B | C e. A } /\ x = C ) )
18 12 17 bitr4di
 |-  ( ( x e. A /\ y e. B ) -> ( x = C <-> y ( y e. { y e. B | C e. A } |-> C ) x ) )
19 11 18 sylan2
 |-  ( ( x e. A /\ y e. { y e. B | C e. A } ) -> ( x = C <-> y ( y e. { y e. B | C e. A } |-> C ) x ) )
20 19 rexbidva
 |-  ( x e. A -> ( E. y e. { y e. B | C e. A } x = C <-> E. y e. { y e. B | C e. A } y ( y e. { y e. B | C e. A } |-> C ) x ) )
21 20 ralbiia
 |-  ( A. x e. A E. y e. { y e. B | C e. A } x = C <-> A. x e. A E. y e. { y e. B | C e. A } y ( y e. { y e. B | C e. A } |-> C ) x )
22 breq2
 |-  ( a = x -> ( b ( y e. { y e. B | C e. A } |-> C ) a <-> b ( y e. { y e. B | C e. A } |-> C ) x ) )
23 22 rexbidv
 |-  ( a = x -> ( E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a <-> E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) x ) )
24 nfcv
 |-  F/_ b { y e. B | C e. A }
25 nfrab1
 |-  F/_ y { y e. B | C e. A }
26 nfcv
 |-  F/_ y b
27 nfmpt1
 |-  F/_ y ( y e. { y e. B | C e. A } |-> C )
28 nfcv
 |-  F/_ y x
29 26 27 28 nfbr
 |-  F/ y b ( y e. { y e. B | C e. A } |-> C ) x
30 nfv
 |-  F/ b y ( y e. { y e. B | C e. A } |-> C ) x
31 breq1
 |-  ( b = y -> ( b ( y e. { y e. B | C e. A } |-> C ) x <-> y ( y e. { y e. B | C e. A } |-> C ) x ) )
32 24 25 29 30 31 cbvrexfw
 |-  ( E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) x <-> E. y e. { y e. B | C e. A } y ( y e. { y e. B | C e. A } |-> C ) x )
33 23 32 bitrdi
 |-  ( a = x -> ( E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a <-> E. y e. { y e. B | C e. A } y ( y e. { y e. B | C e. A } |-> C ) x ) )
34 33 cbvralvw
 |-  ( A. a e. A E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a <-> A. x e. A E. y e. { y e. B | C e. A } y ( y e. { y e. B | C e. A } |-> C ) x )
35 21 34 bitr4i
 |-  ( A. x e. A E. y e. { y e. B | C e. A } x = C <-> A. a e. A E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a )
36 10 35 sylib
 |-  ( A. x e. A E. y e. B x = C -> A. a e. A E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a )
37 nfv
 |-  F/ b ( y e. { y e. B | C e. A } /\ x = C )
38 25 nfcri
 |-  F/ y b e. { y e. B | C e. A }
39 nfcsb1v
 |-  F/_ y [_ b / y ]_ C
40 39 nfeq2
 |-  F/ y x = [_ b / y ]_ C
41 38 40 nfan
 |-  F/ y ( b e. { y e. B | C e. A } /\ x = [_ b / y ]_ C )
42 eleq1
 |-  ( y = b -> ( y e. { y e. B | C e. A } <-> b e. { y e. B | C e. A } ) )
43 csbeq1a
 |-  ( y = b -> C = [_ b / y ]_ C )
44 43 eqeq2d
 |-  ( y = b -> ( x = C <-> x = [_ b / y ]_ C ) )
45 42 44 anbi12d
 |-  ( y = b -> ( ( y e. { y e. B | C e. A } /\ x = C ) <-> ( b e. { y e. B | C e. A } /\ x = [_ b / y ]_ C ) ) )
46 37 41 45 cbvopab1
 |-  { <. y , x >. | ( y e. { y e. B | C e. A } /\ x = C ) } = { <. b , x >. | ( b e. { y e. B | C e. A } /\ x = [_ b / y ]_ C ) }
47 df-mpt
 |-  ( b e. { y e. B | C e. A } |-> [_ b / y ]_ C ) = { <. b , x >. | ( b e. { y e. B | C e. A } /\ x = [_ b / y ]_ C ) }
48 46 13 47 3eqtr4i
 |-  ( y e. { y e. B | C e. A } |-> C ) = ( b e. { y e. B | C e. A } |-> [_ b / y ]_ C )
49 nfcv
 |-  F/_ y B
50 39 nfel1
 |-  F/ y [_ b / y ]_ C e. A
51 43 eleq1d
 |-  ( y = b -> ( C e. A <-> [_ b / y ]_ C e. A ) )
52 26 49 50 51 elrabf
 |-  ( b e. { y e. B | C e. A } <-> ( b e. B /\ [_ b / y ]_ C e. A ) )
53 52 simprbi
 |-  ( b e. { y e. B | C e. A } -> [_ b / y ]_ C e. A )
54 48 53 fmpti
 |-  ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } --> A
55 36 54 jctil
 |-  ( A. x e. A E. y e. B x = C -> ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } --> A /\ A. a e. A E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a ) )
56 dffo4
 |-  ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -onto-> A <-> ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } --> A /\ A. a e. A E. b e. { y e. B | C e. A } b ( y e. { y e. B | C e. A } |-> C ) a ) )
57 55 56 sylibr
 |-  ( A. x e. A E. y e. B x = C -> ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -onto-> A )
58 57 adantl
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -onto-> A )
59 relen
 |-  Rel ~~
60 59 brrelex2i
 |-  ( A ~~ B -> B e. _V )
61 ssrab2
 |-  { y e. B | C e. A } C_ B
62 ssdomg
 |-  ( B e. _V -> ( { y e. B | C e. A } C_ B -> { y e. B | C e. A } ~<_ B ) )
63 60 61 62 mpisyl
 |-  ( A ~~ B -> { y e. B | C e. A } ~<_ B )
64 ensym
 |-  ( A ~~ B -> B ~~ A )
65 domentr
 |-  ( ( { y e. B | C e. A } ~<_ B /\ B ~~ A ) -> { y e. B | C e. A } ~<_ A )
66 63 64 65 syl2anc
 |-  ( A ~~ B -> { y e. B | C e. A } ~<_ A )
67 66 ad2antlr
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> { y e. B | C e. A } ~<_ A )
68 enfi
 |-  ( A ~~ B -> ( A e. Fin <-> B e. Fin ) )
69 68 biimpac
 |-  ( ( A e. Fin /\ A ~~ B ) -> B e. Fin )
70 rabfi
 |-  ( B e. Fin -> { y e. B | C e. A } e. Fin )
71 69 70 syl
 |-  ( ( A e. Fin /\ A ~~ B ) -> { y e. B | C e. A } e. Fin )
72 fodomfi
 |-  ( ( { y e. B | C e. A } e. Fin /\ ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -onto-> A ) -> A ~<_ { y e. B | C e. A } )
73 71 57 72 syl2an
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> A ~<_ { y e. B | C e. A } )
74 sbth
 |-  ( ( { y e. B | C e. A } ~<_ A /\ A ~<_ { y e. B | C e. A } ) -> { y e. B | C e. A } ~~ A )
75 67 73 74 syl2anc
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> { y e. B | C e. A } ~~ A )
76 simpll
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> A e. Fin )
77 fofinf1o
 |-  ( ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -onto-> A /\ { y e. B | C e. A } ~~ A /\ A e. Fin ) -> ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-onto-> A )
78 58 75 76 77 syl3anc
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-onto-> A )
79 f1of1
 |-  ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-onto-> A -> ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-> A )
80 78 79 syl
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-> A )
81 dff12
 |-  ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-> A <-> ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } --> A /\ A. a E* b b ( y e. { y e. B | C e. A } |-> C ) a ) )
82 81 simprbi
 |-  ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-> A -> A. a E* b b ( y e. { y e. B | C e. A } |-> C ) a )
83 22 mobidv
 |-  ( a = x -> ( E* b b ( y e. { y e. B | C e. A } |-> C ) a <-> E* b b ( y e. { y e. B | C e. A } |-> C ) x ) )
84 29 30 31 cbvmow
 |-  ( E* b b ( y e. { y e. B | C e. A } |-> C ) x <-> E* y y ( y e. { y e. B | C e. A } |-> C ) x )
85 83 84 bitrdi
 |-  ( a = x -> ( E* b b ( y e. { y e. B | C e. A } |-> C ) a <-> E* y y ( y e. { y e. B | C e. A } |-> C ) x ) )
86 85 cbvalvw
 |-  ( A. a E* b b ( y e. { y e. B | C e. A } |-> C ) a <-> A. x E* y y ( y e. { y e. B | C e. A } |-> C ) x )
87 82 86 sylib
 |-  ( ( y e. { y e. B | C e. A } |-> C ) : { y e. B | C e. A } -1-1-> A -> A. x E* y y ( y e. { y e. B | C e. A } |-> C ) x )
88 mormo
 |-  ( E* y y ( y e. { y e. B | C e. A } |-> C ) x -> E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x )
89 88 alimi
 |-  ( A. x E* y y ( y e. { y e. B | C e. A } |-> C ) x -> A. x E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x )
90 alral
 |-  ( A. x E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x -> A. x e. A E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x )
91 80 87 89 90 4syl
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> A. x e. A E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x )
92 18 rmobidva
 |-  ( x e. A -> ( E* y e. B x = C <-> E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x ) )
93 92 ralbiia
 |-  ( A. x e. A E* y e. B x = C <-> A. x e. A E* y e. B y ( y e. { y e. B | C e. A } |-> C ) x )
94 91 93 sylibr
 |-  ( ( ( A e. Fin /\ A ~~ B ) /\ A. x e. A E. y e. B x = C ) -> A. x e. A E* y e. B x = C )
95 94 ex
 |-  ( ( A e. Fin /\ A ~~ B ) -> ( A. x e. A E. y e. B x = C -> A. x e. A E* y e. B x = C ) )
96 95 pm4.71d
 |-  ( ( A e. Fin /\ A ~~ B ) -> ( A. x e. A E. y e. B x = C <-> ( A. x e. A E. y e. B x = C /\ A. x e. A E* y e. B x = C ) ) )
97 reu5
 |-  ( E! y e. B x = C <-> ( E. y e. B x = C /\ E* y e. B x = C ) )
98 97 ralbii
 |-  ( A. x e. A E! y e. B x = C <-> A. x e. A ( E. y e. B x = C /\ E* y e. B x = C ) )
99 r19.26
 |-  ( A. x e. A ( E. y e. B x = C /\ E* y e. B x = C ) <-> ( A. x e. A E. y e. B x = C /\ A. x e. A E* y e. B x = C ) )
100 98 99 bitri
 |-  ( A. x e. A E! y e. B x = C <-> ( A. x e. A E. y e. B x = C /\ A. x e. A E* y e. B x = C ) )
101 96 100 bitr4di
 |-  ( ( A e. Fin /\ A ~~ B ) -> ( A. x e. A E. y e. B x = C <-> A. x e. A E! y e. B x = C ) )