Metamath Proof Explorer


Theorem hashge3el3dif

Description: A set with size at least 3 has at least 3 different elements. In contrast to hashge2el2dif , which has an elementary proof, the dominance relation and 1-1 functions from a set with three elements which are known to be different are used to prove this theorem. Although there is also an elementary proof for this theorem, it might be much longer. After all, this proof should be kept because it can be used as template for proofs for higher cardinalities. (Contributed by AV, 20-Mar-2019) (Proof modification is discouraged.)

Ref Expression
Assertion hashge3el3dif
|- ( ( D e. V /\ 3 <_ ( # ` D ) ) -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) )

Proof

Step Hyp Ref Expression
1 0nep0
 |-  (/) =/= { (/) }
2 0ex
 |-  (/) e. _V
3 2 sneqr
 |-  ( { (/) } = { { (/) } } -> (/) = { (/) } )
4 3 necon3i
 |-  ( (/) =/= { (/) } -> { (/) } =/= { { (/) } } )
5 1 4 ax-mp
 |-  { (/) } =/= { { (/) } }
6 snex
 |-  { (/) } e. _V
7 snnzg
 |-  ( { (/) } e. _V -> { { (/) } } =/= (/) )
8 6 7 ax-mp
 |-  { { (/) } } =/= (/)
9 1 5 8 3pm3.2i
 |-  ( (/) =/= { (/) } /\ { (/) } =/= { { (/) } } /\ { { (/) } } =/= (/) )
10 snex
 |-  { { (/) } } e. _V
11 2 6 10 3pm3.2i
 |-  ( (/) e. _V /\ { (/) } e. _V /\ { { (/) } } e. _V )
12 hashtpg
 |-  ( ( (/) e. _V /\ { (/) } e. _V /\ { { (/) } } e. _V ) -> ( ( (/) =/= { (/) } /\ { (/) } =/= { { (/) } } /\ { { (/) } } =/= (/) ) <-> ( # ` { (/) , { (/) } , { { (/) } } } ) = 3 ) )
13 11 12 ax-mp
 |-  ( ( (/) =/= { (/) } /\ { (/) } =/= { { (/) } } /\ { { (/) } } =/= (/) ) <-> ( # ` { (/) , { (/) } , { { (/) } } } ) = 3 )
14 9 13 mpbi
 |-  ( # ` { (/) , { (/) } , { { (/) } } } ) = 3
15 14 eqcomi
 |-  3 = ( # ` { (/) , { (/) } , { { (/) } } } )
16 15 a1i
 |-  ( D e. V -> 3 = ( # ` { (/) , { (/) } , { { (/) } } } ) )
17 16 breq1d
 |-  ( D e. V -> ( 3 <_ ( # ` D ) <-> ( # ` { (/) , { (/) } , { { (/) } } } ) <_ ( # ` D ) ) )
18 tpfi
 |-  { (/) , { (/) } , { { (/) } } } e. Fin
19 hashdom
 |-  ( ( { (/) , { (/) } , { { (/) } } } e. Fin /\ D e. V ) -> ( ( # ` { (/) , { (/) } , { { (/) } } } ) <_ ( # ` D ) <-> { (/) , { (/) } , { { (/) } } } ~<_ D ) )
20 18 19 mpan
 |-  ( D e. V -> ( ( # ` { (/) , { (/) } , { { (/) } } } ) <_ ( # ` D ) <-> { (/) , { (/) } , { { (/) } } } ~<_ D ) )
21 17 20 bitrd
 |-  ( D e. V -> ( 3 <_ ( # ` D ) <-> { (/) , { (/) } , { { (/) } } } ~<_ D ) )
22 brdomg
 |-  ( D e. V -> ( { (/) , { (/) } , { { (/) } } } ~<_ D <-> E. f f : { (/) , { (/) } , { { (/) } } } -1-1-> D ) )
23 11 a1i
 |-  ( ( D e. V /\ f : { (/) , { (/) } , { { (/) } } } -1-1-> D ) -> ( (/) e. _V /\ { (/) } e. _V /\ { { (/) } } e. _V ) )
24 7 necomd
 |-  ( { (/) } e. _V -> (/) =/= { { (/) } } )
25 6 24 ax-mp
 |-  (/) =/= { { (/) } }
26 1 25 5 3pm3.2i
 |-  ( (/) =/= { (/) } /\ (/) =/= { { (/) } } /\ { (/) } =/= { { (/) } } )
27 26 a1i
 |-  ( ( D e. V /\ f : { (/) , { (/) } , { { (/) } } } -1-1-> D ) -> ( (/) =/= { (/) } /\ (/) =/= { { (/) } } /\ { (/) } =/= { { (/) } } ) )
28 simpr
 |-  ( ( D e. V /\ f : { (/) , { (/) } , { { (/) } } } -1-1-> D ) -> f : { (/) , { (/) } , { { (/) } } } -1-1-> D )
29 23 27 28 f1dom3el3dif
 |-  ( ( D e. V /\ f : { (/) , { (/) } , { { (/) } } } -1-1-> D ) -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) )
30 29 expcom
 |-  ( f : { (/) , { (/) } , { { (/) } } } -1-1-> D -> ( D e. V -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) ) )
31 30 exlimiv
 |-  ( E. f f : { (/) , { (/) } , { { (/) } } } -1-1-> D -> ( D e. V -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) ) )
32 31 com12
 |-  ( D e. V -> ( E. f f : { (/) , { (/) } , { { (/) } } } -1-1-> D -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) ) )
33 22 32 sylbid
 |-  ( D e. V -> ( { (/) , { (/) } , { { (/) } } } ~<_ D -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) ) )
34 21 33 sylbid
 |-  ( D e. V -> ( 3 <_ ( # ` D ) -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) ) )
35 34 imp
 |-  ( ( D e. V /\ 3 <_ ( # ` D ) ) -> E. x e. D E. y e. D E. z e. D ( x =/= y /\ x =/= z /\ y =/= z ) )