Metamath Proof Explorer


Theorem ficard

Description: A set is finite iff its cardinal is a natural number. (Contributed by Jeff Madsen, 2-Sep-2009)

Ref Expression
Assertion ficard
|- ( A e. V -> ( A e. Fin <-> ( card ` A ) e. _om ) )

Proof

Step Hyp Ref Expression
1 isfi
 |-  ( A e. Fin <-> E. x e. _om A ~~ x )
2 carden
 |-  ( ( A e. V /\ x e. _om ) -> ( ( card ` A ) = ( card ` x ) <-> A ~~ x ) )
3 cardnn
 |-  ( x e. _om -> ( card ` x ) = x )
4 eqtr
 |-  ( ( ( card ` A ) = ( card ` x ) /\ ( card ` x ) = x ) -> ( card ` A ) = x )
5 4 expcom
 |-  ( ( card ` x ) = x -> ( ( card ` A ) = ( card ` x ) -> ( card ` A ) = x ) )
6 3 5 syl
 |-  ( x e. _om -> ( ( card ` A ) = ( card ` x ) -> ( card ` A ) = x ) )
7 eleq1a
 |-  ( x e. _om -> ( ( card ` A ) = x -> ( card ` A ) e. _om ) )
8 6 7 syld
 |-  ( x e. _om -> ( ( card ` A ) = ( card ` x ) -> ( card ` A ) e. _om ) )
9 8 adantl
 |-  ( ( A e. V /\ x e. _om ) -> ( ( card ` A ) = ( card ` x ) -> ( card ` A ) e. _om ) )
10 2 9 sylbird
 |-  ( ( A e. V /\ x e. _om ) -> ( A ~~ x -> ( card ` A ) e. _om ) )
11 10 rexlimdva
 |-  ( A e. V -> ( E. x e. _om A ~~ x -> ( card ` A ) e. _om ) )
12 1 11 syl5bi
 |-  ( A e. V -> ( A e. Fin -> ( card ` A ) e. _om ) )
13 cardnn
 |-  ( ( card ` A ) e. _om -> ( card ` ( card ` A ) ) = ( card ` A ) )
14 13 eqcomd
 |-  ( ( card ` A ) e. _om -> ( card ` A ) = ( card ` ( card ` A ) ) )
15 14 adantl
 |-  ( ( A e. V /\ ( card ` A ) e. _om ) -> ( card ` A ) = ( card ` ( card ` A ) ) )
16 carden
 |-  ( ( A e. V /\ ( card ` A ) e. _om ) -> ( ( card ` A ) = ( card ` ( card ` A ) ) <-> A ~~ ( card ` A ) ) )
17 15 16 mpbid
 |-  ( ( A e. V /\ ( card ` A ) e. _om ) -> A ~~ ( card ` A ) )
18 17 ex
 |-  ( A e. V -> ( ( card ` A ) e. _om -> A ~~ ( card ` A ) ) )
19 18 ancld
 |-  ( A e. V -> ( ( card ` A ) e. _om -> ( ( card ` A ) e. _om /\ A ~~ ( card ` A ) ) ) )
20 breq2
 |-  ( x = ( card ` A ) -> ( A ~~ x <-> A ~~ ( card ` A ) ) )
21 20 rspcev
 |-  ( ( ( card ` A ) e. _om /\ A ~~ ( card ` A ) ) -> E. x e. _om A ~~ x )
22 21 1 sylibr
 |-  ( ( ( card ` A ) e. _om /\ A ~~ ( card ` A ) ) -> A e. Fin )
23 19 22 syl6
 |-  ( A e. V -> ( ( card ` A ) e. _om -> A e. Fin ) )
24 12 23 impbid
 |-  ( A e. V -> ( A e. Fin <-> ( card ` A ) e. _om ) )