Metamath Proof Explorer


Theorem sticksstones16

Description: Sticks and stones with collapsed definitions for positive integers. (Contributed by metakunt, 20-Oct-2024)

Ref Expression
Hypotheses sticksstones16.1 ( 𝜑𝑁 ∈ ℕ0 )
sticksstones16.2 ( 𝜑𝐾 ∈ ℕ )
sticksstones16.3 𝐴 = { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑖 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑖 ) = 𝑁 ) }
Assertion sticksstones16 ( 𝜑 → ( ♯ ‘ 𝐴 ) = ( ( 𝑁 + ( 𝐾 − 1 ) ) C ( 𝐾 − 1 ) ) )

Proof

Step Hyp Ref Expression
1 sticksstones16.1 ( 𝜑𝑁 ∈ ℕ0 )
2 sticksstones16.2 ( 𝜑𝐾 ∈ ℕ )
3 sticksstones16.3 𝐴 = { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑖 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑖 ) = 𝑁 ) }
4 fveq2 ( 𝑖 = 𝑗 → ( 𝑔𝑖 ) = ( 𝑔𝑗 ) )
5 4 cbvsumv Σ 𝑖 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑖 ) = Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 )
6 5 eqeq1i ( Σ 𝑖 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑖 ) = 𝑁 ↔ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 )
7 6 anbi2i ( ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑖 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑖 ) = 𝑁 ) ↔ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ) )
8 7 abbii { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑖 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑖 ) = 𝑁 ) } = { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ) }
9 3 8 eqtri 𝐴 = { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ) }
10 9 a1i ( 𝜑𝐴 = { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ) } )
11 nfv 𝑔 𝜑
12 2 nncnd ( 𝜑𝐾 ∈ ℂ )
13 1cnd ( 𝜑 → 1 ∈ ℂ )
14 12 13 npcand ( 𝜑 → ( ( 𝐾 − 1 ) + 1 ) = 𝐾 )
15 14 eqcomd ( 𝜑𝐾 = ( ( 𝐾 − 1 ) + 1 ) )
16 15 oveq2d ( 𝜑 → ( 1 ... 𝐾 ) = ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) )
17 16 feq2d ( 𝜑 → ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ) )
18 16 sumeq1d ( 𝜑 → Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) )
19 18 eqeq1d ( 𝜑 → ( Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ↔ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) )
20 17 19 anbi12d ( 𝜑 → ( ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ) ↔ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) ) )
21 11 20 abbid ( 𝜑 → { 𝑔 ∣ ( 𝑔 : ( 1 ... 𝐾 ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... 𝐾 ) ( 𝑔𝑗 ) = 𝑁 ) } = { 𝑔 ∣ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) } )
22 10 21 eqtrd ( 𝜑𝐴 = { 𝑔 ∣ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) } )
23 22 fveq2d ( 𝜑 → ( ♯ ‘ 𝐴 ) = ( ♯ ‘ { 𝑔 ∣ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) } ) )
24 nnm1nn0 ( 𝐾 ∈ ℕ → ( 𝐾 − 1 ) ∈ ℕ0 )
25 2 24 syl ( 𝜑 → ( 𝐾 − 1 ) ∈ ℕ0 )
26 fveq2 ( 𝑗 = 𝑖 → ( 𝑔𝑗 ) = ( 𝑔𝑖 ) )
27 26 cbvsumv Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = Σ 𝑖 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑖 )
28 27 eqeq1i ( Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ↔ Σ 𝑖 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑖 ) = 𝑁 )
29 28 anbi2i ( ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) ↔ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑖 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑖 ) = 𝑁 ) )
30 29 abbii { 𝑔 ∣ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) } = { 𝑔 ∣ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑖 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑖 ) = 𝑁 ) }
31 1 25 30 sticksstones15 ( 𝜑 → ( ♯ ‘ { 𝑔 ∣ ( 𝑔 : ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ⟶ ℕ0 ∧ Σ 𝑗 ∈ ( 1 ... ( ( 𝐾 − 1 ) + 1 ) ) ( 𝑔𝑗 ) = 𝑁 ) } ) = ( ( 𝑁 + ( 𝐾 − 1 ) ) C ( 𝐾 − 1 ) ) )
32 23 31 eqtrd ( 𝜑 → ( ♯ ‘ 𝐴 ) = ( ( 𝑁 + ( 𝐾 − 1 ) ) C ( 𝐾 − 1 ) ) )