Metamath Proof Explorer


Theorem facubnd

Description: An upper bound for the factorial function. (Contributed by Mario Carneiro, 15-Apr-2016)

Ref Expression
Assertion facubnd N0N!NN

Proof

Step Hyp Ref Expression
1 fveq2 m=0m!=0!
2 fac0 0!=1
3 1 2 eqtrdi m=0m!=1
4 id m=0m=0
5 4 4 oveq12d m=0mm=00
6 0exp0e1 00=1
7 5 6 eqtrdi m=0mm=1
8 3 7 breq12d m=0m!mm11
9 fveq2 m=km!=k!
10 id m=km=k
11 10 10 oveq12d m=kmm=kk
12 9 11 breq12d m=km!mmk!kk
13 fveq2 m=k+1m!=k+1!
14 id m=k+1m=k+1
15 14 14 oveq12d m=k+1mm=k+1k+1
16 13 15 breq12d m=k+1m!mmk+1!k+1k+1
17 fveq2 m=Nm!=N!
18 id m=Nm=N
19 18 18 oveq12d m=Nmm=NN
20 17 19 breq12d m=Nm!mmN!NN
21 1le1 11
22 faccl k0k!
23 22 adantr k0k!kkk!
24 23 nnred k0k!kkk!
25 nn0re k0k
26 25 adantr k0k!kkk
27 simpl k0k!kkk0
28 26 27 reexpcld k0k!kkkk
29 nn0p1nn k0k+1
30 29 adantr k0k!kkk+1
31 30 nnred k0k!kkk+1
32 31 27 reexpcld k0k!kkk+1k
33 simpr k0k!kkk!kk
34 nn0ge0 k00k
35 34 adantr k0k!kk0k
36 26 lep1d k0k!kkkk+1
37 leexp1a kk+1k00kkk+1kkk+1k
38 26 31 27 35 36 37 syl32anc k0k!kkkkk+1k
39 24 28 32 33 38 letrd k0k!kkk!k+1k
40 30 nngt0d k0k!kk0<k+1
41 lemul1 k!k+1kk+10<k+1k!k+1kk!k+1k+1kk+1
42 24 32 31 40 41 syl112anc k0k!kkk!k+1kk!k+1k+1kk+1
43 39 42 mpbid k0k!kkk!k+1k+1kk+1
44 facp1 k0k+1!=k!k+1
45 44 adantr k0k!kkk+1!=k!k+1
46 30 nncnd k0k!kkk+1
47 46 27 expp1d k0k!kkk+1k+1=k+1kk+1
48 43 45 47 3brtr4d k0k!kkk+1!k+1k+1
49 48 ex k0k!kkk+1!k+1k+1
50 8 12 16 20 21 49 nn0ind N0N!NN