Metamath Proof Explorer


Theorem sticksstones5

Description: Count the number of strictly monotonely increasing functions on finite domains and codomains. (Contributed by metakunt, 28-Sep-2024)

Ref Expression
Hypotheses sticksstones5.1 ( 𝜑𝑁 ∈ ℕ0 )
sticksstones5.2 ( 𝜑𝐾 ∈ ℕ0 )
sticksstones5.3 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) }
Assertion sticksstones5 ( 𝜑 → ( ♯ ‘ 𝐴 ) = ( 𝑁 C 𝐾 ) )

Proof

Step Hyp Ref Expression
1 sticksstones5.1 ( 𝜑𝑁 ∈ ℕ0 )
2 sticksstones5.2 ( 𝜑𝐾 ∈ ℕ0 )
3 sticksstones5.3 𝐴 = { 𝑓 ∣ ( 𝑓 : ( 1 ... 𝐾 ) ⟶ ( 1 ... 𝑁 ) ∧ ∀ 𝑥 ∈ ( 1 ... 𝐾 ) ∀ 𝑦 ∈ ( 1 ... 𝐾 ) ( 𝑥 < 𝑦 → ( 𝑓𝑥 ) < ( 𝑓𝑦 ) ) ) }
4 eqid { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } = { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 }
5 1 2 4 3 sticksstones4 ( 𝜑𝐴 ≈ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } )
6 hasheni ( 𝐴 ≈ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } → ( ♯ ‘ 𝐴 ) = ( ♯ ‘ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } ) )
7 5 6 syl ( 𝜑 → ( ♯ ‘ 𝐴 ) = ( ♯ ‘ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } ) )
8 fzfid ( 𝜑 → ( 1 ... 𝑁 ) ∈ Fin )
9 2 nn0zd ( 𝜑𝐾 ∈ ℤ )
10 hashbc ( ( ( 1 ... 𝑁 ) ∈ Fin ∧ 𝐾 ∈ ℤ ) → ( ( ♯ ‘ ( 1 ... 𝑁 ) ) C 𝐾 ) = ( ♯ ‘ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } ) )
11 8 9 10 syl2anc ( 𝜑 → ( ( ♯ ‘ ( 1 ... 𝑁 ) ) C 𝐾 ) = ( ♯ ‘ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } ) )
12 11 eqcomd ( 𝜑 → ( ♯ ‘ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } ) = ( ( ♯ ‘ ( 1 ... 𝑁 ) ) C 𝐾 ) )
13 hashfz1 ( 𝑁 ∈ ℕ0 → ( ♯ ‘ ( 1 ... 𝑁 ) ) = 𝑁 )
14 1 13 syl ( 𝜑 → ( ♯ ‘ ( 1 ... 𝑁 ) ) = 𝑁 )
15 14 oveq1d ( 𝜑 → ( ( ♯ ‘ ( 1 ... 𝑁 ) ) C 𝐾 ) = ( 𝑁 C 𝐾 ) )
16 12 15 eqtrd ( 𝜑 → ( ♯ ‘ { 𝑠 ∈ 𝒫 ( 1 ... 𝑁 ) ∣ ( ♯ ‘ 𝑠 ) = 𝐾 } ) = ( 𝑁 C 𝐾 ) )
17 7 16 eqtrd ( 𝜑 → ( ♯ ‘ 𝐴 ) = ( 𝑁 C 𝐾 ) )