Metamath Proof Explorer


Theorem facavg

Description: The product of two factorials is greater than or equal to the factorial of (the floor of) their average. (Contributed by NM, 9-Dec-2005)

Ref Expression
Assertion facavg ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )

Proof

Step Hyp Ref Expression
1 nn0readdcl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( 𝑀 + 𝑁 ) ∈ ℝ )
2 1 rehalfcld ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( 𝑀 + 𝑁 ) / 2 ) ∈ ℝ )
3 flle ( ( ( 𝑀 + 𝑁 ) / 2 ) ∈ ℝ → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ ( ( 𝑀 + 𝑁 ) / 2 ) )
4 2 3 syl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ ( ( 𝑀 + 𝑁 ) / 2 ) )
5 reflcl ( ( ( 𝑀 + 𝑁 ) / 2 ) ∈ ℝ → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℝ )
6 2 5 syl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℝ )
7 nn0re ( 𝑀 ∈ ℕ0𝑀 ∈ ℝ )
8 7 adantr ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 𝑀 ∈ ℝ )
9 letr ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℝ ∧ ( ( 𝑀 + 𝑁 ) / 2 ) ∈ ℝ ∧ 𝑀 ∈ ℝ ) → ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ∧ ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑀 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑀 ) )
10 6 2 8 9 syl3anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ∧ ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑀 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑀 ) )
11 4 10 mpand ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑀 → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑀 ) )
12 nn0addcl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( 𝑀 + 𝑁 ) ∈ ℕ0 )
13 12 nn0ge0d ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 0 ≤ ( 𝑀 + 𝑁 ) )
14 halfnneg2 ( ( 𝑀 + 𝑁 ) ∈ ℝ → ( 0 ≤ ( 𝑀 + 𝑁 ) ↔ 0 ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ) )
15 1 14 syl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( 0 ≤ ( 𝑀 + 𝑁 ) ↔ 0 ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ) )
16 13 15 mpbid ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 0 ≤ ( ( 𝑀 + 𝑁 ) / 2 ) )
17 flge0nn0 ( ( ( ( 𝑀 + 𝑁 ) / 2 ) ∈ ℝ ∧ 0 ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℕ0 )
18 2 16 17 syl2anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℕ0 )
19 simpl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 𝑀 ∈ ℕ0 )
20 facwordi ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℕ0𝑀 ∈ ℕ0 ∧ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑀 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑀 ) )
21 20 3exp ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℕ0 → ( 𝑀 ∈ ℕ0 → ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑀 → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑀 ) ) ) )
22 18 19 21 sylc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑀 → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑀 ) ) )
23 faccl ( 𝑀 ∈ ℕ0 → ( ! ‘ 𝑀 ) ∈ ℕ )
24 23 nncnd ( 𝑀 ∈ ℕ0 → ( ! ‘ 𝑀 ) ∈ ℂ )
25 24 mulid1d ( 𝑀 ∈ ℕ0 → ( ( ! ‘ 𝑀 ) · 1 ) = ( ! ‘ 𝑀 ) )
26 25 adantr ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ 𝑀 ) · 1 ) = ( ! ‘ 𝑀 ) )
27 faccl ( 𝑁 ∈ ℕ0 → ( ! ‘ 𝑁 ) ∈ ℕ )
28 27 nnred ( 𝑁 ∈ ℕ0 → ( ! ‘ 𝑁 ) ∈ ℝ )
29 28 adantl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ 𝑁 ) ∈ ℝ )
30 23 nnred ( 𝑀 ∈ ℕ0 → ( ! ‘ 𝑀 ) ∈ ℝ )
31 23 nnnn0d ( 𝑀 ∈ ℕ0 → ( ! ‘ 𝑀 ) ∈ ℕ0 )
32 31 nn0ge0d ( 𝑀 ∈ ℕ0 → 0 ≤ ( ! ‘ 𝑀 ) )
33 30 32 jca ( 𝑀 ∈ ℕ0 → ( ( ! ‘ 𝑀 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑀 ) ) )
34 33 adantr ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ 𝑀 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑀 ) ) )
35 27 nnge1d ( 𝑁 ∈ ℕ0 → 1 ≤ ( ! ‘ 𝑁 ) )
36 35 adantl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 1 ≤ ( ! ‘ 𝑁 ) )
37 1re 1 ∈ ℝ
38 lemul2a ( ( ( 1 ∈ ℝ ∧ ( ! ‘ 𝑁 ) ∈ ℝ ∧ ( ( ! ‘ 𝑀 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑀 ) ) ) ∧ 1 ≤ ( ! ‘ 𝑁 ) ) → ( ( ! ‘ 𝑀 ) · 1 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
39 37 38 mp3anl1 ( ( ( ( ! ‘ 𝑁 ) ∈ ℝ ∧ ( ( ! ‘ 𝑀 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑀 ) ) ) ∧ 1 ≤ ( ! ‘ 𝑁 ) ) → ( ( ! ‘ 𝑀 ) · 1 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
40 29 34 36 39 syl21anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ 𝑀 ) · 1 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
41 26 40 eqbrtrrd ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ 𝑀 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
42 18 faccld ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ∈ ℕ )
43 42 nnred ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ∈ ℝ )
44 30 adantr ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ 𝑀 ) ∈ ℝ )
45 remulcl ( ( ( ! ‘ 𝑀 ) ∈ ℝ ∧ ( ! ‘ 𝑁 ) ∈ ℝ ) → ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ∈ ℝ )
46 30 28 45 syl2an ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ∈ ℝ )
47 letr ( ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ∈ ℝ ∧ ( ! ‘ 𝑀 ) ∈ ℝ ∧ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ∈ ℝ ) → ( ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑀 ) ∧ ( ! ‘ 𝑀 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
48 43 44 46 47 syl3anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑀 ) ∧ ( ! ‘ 𝑀 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
49 41 48 mpan2d ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑀 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
50 11 22 49 3syld ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑀 → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
51 nn0re ( 𝑁 ∈ ℕ0𝑁 ∈ ℝ )
52 51 adantl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 𝑁 ∈ ℝ )
53 letr ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℝ ∧ ( ( 𝑀 + 𝑁 ) / 2 ) ∈ ℝ ∧ 𝑁 ∈ ℝ ) → ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ∧ ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑁 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑁 ) )
54 6 2 52 53 syl3anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ ( ( 𝑀 + 𝑁 ) / 2 ) ∧ ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑁 ) → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑁 ) )
55 4 54 mpand ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑁 → ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑁 ) )
56 simpr ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 𝑁 ∈ ℕ0 )
57 facwordi ( ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℕ0𝑁 ∈ ℕ0 ∧ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑁 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑁 ) )
58 57 3exp ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ∈ ℕ0 → ( 𝑁 ∈ ℕ0 → ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑁 → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑁 ) ) ) )
59 18 56 58 sylc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ≤ 𝑁 → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑁 ) ) )
60 27 nncnd ( 𝑁 ∈ ℕ0 → ( ! ‘ 𝑁 ) ∈ ℂ )
61 60 mulid2d ( 𝑁 ∈ ℕ0 → ( 1 · ( ! ‘ 𝑁 ) ) = ( ! ‘ 𝑁 ) )
62 61 adantl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( 1 · ( ! ‘ 𝑁 ) ) = ( ! ‘ 𝑁 ) )
63 27 nnnn0d ( 𝑁 ∈ ℕ0 → ( ! ‘ 𝑁 ) ∈ ℕ0 )
64 63 nn0ge0d ( 𝑁 ∈ ℕ0 → 0 ≤ ( ! ‘ 𝑁 ) )
65 28 64 jca ( 𝑁 ∈ ℕ0 → ( ( ! ‘ 𝑁 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑁 ) ) )
66 65 adantl ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ 𝑁 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑁 ) ) )
67 23 nnge1d ( 𝑀 ∈ ℕ0 → 1 ≤ ( ! ‘ 𝑀 ) )
68 67 adantr ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → 1 ≤ ( ! ‘ 𝑀 ) )
69 lemul1a ( ( ( 1 ∈ ℝ ∧ ( ! ‘ 𝑀 ) ∈ ℝ ∧ ( ( ! ‘ 𝑁 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑁 ) ) ) ∧ 1 ≤ ( ! ‘ 𝑀 ) ) → ( 1 · ( ! ‘ 𝑁 ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
70 37 69 mp3anl1 ( ( ( ( ! ‘ 𝑀 ) ∈ ℝ ∧ ( ( ! ‘ 𝑁 ) ∈ ℝ ∧ 0 ≤ ( ! ‘ 𝑁 ) ) ) ∧ 1 ≤ ( ! ‘ 𝑀 ) ) → ( 1 · ( ! ‘ 𝑁 ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
71 44 66 68 70 syl21anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( 1 · ( ! ‘ 𝑁 ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
72 62 71 eqbrtrrd ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ 𝑁 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )
73 letr ( ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ∈ ℝ ∧ ( ! ‘ 𝑁 ) ∈ ℝ ∧ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ∈ ℝ ) → ( ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑁 ) ∧ ( ! ‘ 𝑁 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
74 43 29 46 73 syl3anc ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑁 ) ∧ ( ! ‘ 𝑁 ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
75 72 74 mpan2d ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ! ‘ 𝑁 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
76 55 59 75 3syld ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑁 → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) ) )
77 avgle ( ( 𝑀 ∈ ℝ ∧ 𝑁 ∈ ℝ ) → ( ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑀 ∨ ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑁 ) )
78 7 51 77 syl2an ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑀 ∨ ( ( 𝑀 + 𝑁 ) / 2 ) ≤ 𝑁 ) )
79 50 76 78 mpjaod ( ( 𝑀 ∈ ℕ0𝑁 ∈ ℕ0 ) → ( ! ‘ ( ⌊ ‘ ( ( 𝑀 + 𝑁 ) / 2 ) ) ) ≤ ( ( ! ‘ 𝑀 ) · ( ! ‘ 𝑁 ) ) )