Metamath Proof Explorer


Theorem logfacubnd

Description: A simple upper bound on the logarithm of a factorial. (Contributed by Mario Carneiro, 16-Apr-2016)

Ref Expression
Assertion logfacubnd
|- ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( ! ` ( |_ ` A ) ) ) <_ ( A x. ( log ` A ) ) )

Proof

Step Hyp Ref Expression
1 rpre
 |-  ( A e. RR+ -> A e. RR )
2 flge1nn
 |-  ( ( A e. RR /\ 1 <_ A ) -> ( |_ ` A ) e. NN )
3 1 2 sylan
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( |_ ` A ) e. NN )
4 3 nnnn0d
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( |_ ` A ) e. NN0 )
5 4 faccld
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ! ` ( |_ ` A ) ) e. NN )
6 5 nnrpd
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ! ` ( |_ ` A ) ) e. RR+ )
7 6 relogcld
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( ! ` ( |_ ` A ) ) ) e. RR )
8 1 adantr
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> A e. RR )
9 reflcl
 |-  ( A e. RR -> ( |_ ` A ) e. RR )
10 8 9 syl
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( |_ ` A ) e. RR )
11 3 nnrpd
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( |_ ` A ) e. RR+ )
12 11 relogcld
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( |_ ` A ) ) e. RR )
13 10 12 remulcld
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) e. RR )
14 relogcl
 |-  ( A e. RR+ -> ( log ` A ) e. RR )
15 14 adantr
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` A ) e. RR )
16 8 15 remulcld
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( A x. ( log ` A ) ) e. RR )
17 facubnd
 |-  ( ( |_ ` A ) e. NN0 -> ( ! ` ( |_ ` A ) ) <_ ( ( |_ ` A ) ^ ( |_ ` A ) ) )
18 4 17 syl
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ! ` ( |_ ` A ) ) <_ ( ( |_ ` A ) ^ ( |_ ` A ) ) )
19 3 4 nnexpcld
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( |_ ` A ) ^ ( |_ ` A ) ) e. NN )
20 19 nnrpd
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( |_ ` A ) ^ ( |_ ` A ) ) e. RR+ )
21 6 20 logled
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( ! ` ( |_ ` A ) ) <_ ( ( |_ ` A ) ^ ( |_ ` A ) ) <-> ( log ` ( ! ` ( |_ ` A ) ) ) <_ ( log ` ( ( |_ ` A ) ^ ( |_ ` A ) ) ) ) )
22 18 21 mpbid
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( ! ` ( |_ ` A ) ) ) <_ ( log ` ( ( |_ ` A ) ^ ( |_ ` A ) ) ) )
23 3 nnzd
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( |_ ` A ) e. ZZ )
24 relogexp
 |-  ( ( ( |_ ` A ) e. RR+ /\ ( |_ ` A ) e. ZZ ) -> ( log ` ( ( |_ ` A ) ^ ( |_ ` A ) ) ) = ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) )
25 11 23 24 syl2anc
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( ( |_ ` A ) ^ ( |_ ` A ) ) ) = ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) )
26 22 25 breqtrd
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( ! ` ( |_ ` A ) ) ) <_ ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) )
27 flle
 |-  ( A e. RR -> ( |_ ` A ) <_ A )
28 8 27 syl
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( |_ ` A ) <_ A )
29 simpl
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> A e. RR+ )
30 11 29 logled
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( |_ ` A ) <_ A <-> ( log ` ( |_ ` A ) ) <_ ( log ` A ) ) )
31 28 30 mpbid
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( |_ ` A ) ) <_ ( log ` A ) )
32 11 rprege0d
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( |_ ` A ) e. RR /\ 0 <_ ( |_ ` A ) ) )
33 log1
 |-  ( log ` 1 ) = 0
34 3 nnge1d
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> 1 <_ ( |_ ` A ) )
35 1rp
 |-  1 e. RR+
36 logleb
 |-  ( ( 1 e. RR+ /\ ( |_ ` A ) e. RR+ ) -> ( 1 <_ ( |_ ` A ) <-> ( log ` 1 ) <_ ( log ` ( |_ ` A ) ) ) )
37 35 11 36 sylancr
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( 1 <_ ( |_ ` A ) <-> ( log ` 1 ) <_ ( log ` ( |_ ` A ) ) ) )
38 34 37 mpbid
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` 1 ) <_ ( log ` ( |_ ` A ) ) )
39 33 38 eqbrtrrid
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> 0 <_ ( log ` ( |_ ` A ) ) )
40 12 39 jca
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( log ` ( |_ ` A ) ) e. RR /\ 0 <_ ( log ` ( |_ ` A ) ) ) )
41 lemul12a
 |-  ( ( ( ( ( |_ ` A ) e. RR /\ 0 <_ ( |_ ` A ) ) /\ A e. RR ) /\ ( ( ( log ` ( |_ ` A ) ) e. RR /\ 0 <_ ( log ` ( |_ ` A ) ) ) /\ ( log ` A ) e. RR ) ) -> ( ( ( |_ ` A ) <_ A /\ ( log ` ( |_ ` A ) ) <_ ( log ` A ) ) -> ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) <_ ( A x. ( log ` A ) ) ) )
42 32 8 40 15 41 syl22anc
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( ( |_ ` A ) <_ A /\ ( log ` ( |_ ` A ) ) <_ ( log ` A ) ) -> ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) <_ ( A x. ( log ` A ) ) ) )
43 28 31 42 mp2and
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( ( |_ ` A ) x. ( log ` ( |_ ` A ) ) ) <_ ( A x. ( log ` A ) ) )
44 7 13 16 26 43 letrd
 |-  ( ( A e. RR+ /\ 1 <_ A ) -> ( log ` ( ! ` ( |_ ` A ) ) ) <_ ( A x. ( log ` A ) ) )