Metamath Proof Explorer


Theorem subfaclefac

Description: The subfactorial is less than the factorial. (Contributed by Mario Carneiro, 19-Jan-2015)

Ref Expression
Hypotheses derang.d ⊢ D = x ∈ Fin ⟼ f | f : x ⟶ 1-1 onto x ∧ ∀ y ∈ x f ⁡ y ≠ y
subfac.n ⊢ S = n ∈ ℕ 0 ⟼ D ⁡ 1 … n
Assertion subfaclefac ⊢ N ∈ ℕ 0 → S ⁡ N ≤ N !

Proof

Step Hyp Ref Expression
1 derang.d ⊢ D = x ∈ Fin ⟼ f | f : x ⟶ 1-1 onto x ∧ ∀ y ∈ x f ⁡ y ≠ y
2 subfac.n ⊢ S = n ∈ ℕ 0 ⟼ D ⁡ 1 … n
3 anidm ⊢ f : 1 … N ⟶ 1-1 onto 1 … N ∧ f : 1 … N ⟶ 1-1 onto 1 … N ↔ f : 1 … N ⟶ 1-1 onto 1 … N
4 3 abbii ⊢ f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ f : 1 … N ⟶ 1-1 onto 1 … N = f | f : 1 … N ⟶ 1-1 onto 1 … N
5 fzfid ⊢ N ∈ ℕ 0 → 1 … N ∈ Fin
6 deranglem ⊢ 1 … N ∈ Fin → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ f : 1 … N ⟶ 1-1 onto 1 … N ∈ Fin
7 5 6 syl ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ f : 1 … N ⟶ 1-1 onto 1 … N ∈ Fin
8 4 7 eqeltrrid ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N ∈ Fin
9 simpl ⊢ f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y → f : 1 … N ⟶ 1-1 onto 1 … N
10 9 ss2abi ⊢ f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ⊆ f | f : 1 … N ⟶ 1-1 onto 1 … N
11 ssdomg ⊢ f | f : 1 … N ⟶ 1-1 onto 1 … N ∈ Fin → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ⊆ f | f : 1 … N ⟶ 1-1 onto 1 … N → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≼ f | f : 1 … N ⟶ 1-1 onto 1 … N
12 8 10 11 mpisyl ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≼ f | f : 1 … N ⟶ 1-1 onto 1 … N
13 deranglem ⊢ 1 … N ∈ Fin → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ∈ Fin
14 5 13 syl ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ∈ Fin
15 hashdom ⊢ f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ∈ Fin ∧ f | f : 1 … N ⟶ 1-1 onto 1 … N ∈ Fin → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≤ f | f : 1 … N ⟶ 1-1 onto 1 … N ↔ f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≼ f | f : 1 … N ⟶ 1-1 onto 1 … N
16 14 8 15 syl2anc ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≤ f | f : 1 … N ⟶ 1-1 onto 1 … N ↔ f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≼ f | f : 1 … N ⟶ 1-1 onto 1 … N
17 12 16 mpbird ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y ≤ f | f : 1 … N ⟶ 1-1 onto 1 … N
18 1 2 subfacval ⊢ N ∈ ℕ 0 → S ⁡ N = D ⁡ 1 … N
19 1 derangval ⊢ 1 … N ∈ Fin → D ⁡ 1 … N = f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y
20 5 19 syl ⊢ N ∈ ℕ 0 → D ⁡ 1 … N = f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y
21 18 20 eqtrd ⊢ N ∈ ℕ 0 → S ⁡ N = f | f : 1 … N ⟶ 1-1 onto 1 … N ∧ ∀ y ∈ 1 … N f ⁡ y ≠ y
22 hashfac ⊢ 1 … N ∈ Fin → f | f : 1 … N ⟶ 1-1 onto 1 … N = 1 … N !
23 5 22 syl ⊢ N ∈ ℕ 0 → f | f : 1 … N ⟶ 1-1 onto 1 … N = 1 … N !
24 hashfz1 ⊢ N ∈ ℕ 0 → 1 … N = N
25 24 fveq2d ⊢ N ∈ ℕ 0 → 1 … N ! = N !
26 23 25 eqtr2d ⊢ N ∈ ℕ 0 → N ! = f | f : 1 … N ⟶ 1-1 onto 1 … N
27 17 21 26 3brtr4d ⊢ N ∈ ℕ 0 → S ⁡ N ≤ N !