0

In the u.g. book on combinatorics, by David Mazur, there is question #13 on proof in sec. 1.3.
Note: The book, use $[n]$ to denote the set of the first $n$ positive integers.

This exercise outlines a bijective proof of the formula $\left(\!\!\!\binom{n}{k}\!\!\!\right) = \binom{k+n-1}{k}$ from Section 1.1. Let $A $ be the set of $k$-multisets taken from $[n]$ and let $B$ be the set of $k$-subsets of $[k+n-1]$. Assume that the $k$-multiset $\{a_1,a_2,\ldots,a_k\}$ is written in non-decreasing order: $a_1 \le a_2 \le\ldots\le a_k$. Define $f: A \to B$ by $$ f({a_1, a_2, ..., a_k}) = {a_1, a_2+1, a_3+2,\ldots, a_k+k-1}.$$ This function, and proof, is originally due to Euler.
(a) Prove that the outputs of $f$ are indeed $k$-subsets of $[k + n - 1]$. This requires proof since it is not immediately clear from the definition of $f$.
(b) Prove that $f$ is a bijection.

My approach is given below for part (a) & request vetting & help (as in the final para.):
Out of $n$ unique elements, $k$ are chosen; with their size (how many of each type are chosen) being in non-decreasing order.
(a) For the function $f$, the elements are non-decreasing (weakly ordered) in domain (set $A$). However in range, the elements are in increasing order by addition of $j-1$ for $j$-th element. In set $B$, the $j$-th element in $ f({a_1, a_2, ..., a_k})$ is $a_j +j -1$.
The lower limit of values in set $B$ (i.e. the smallest value chosen as number of elements for any of the $k$ elements; let, in ordering be $a_1$) is $\ge 1$.
While the upper limit is derived below:
Since $\forall j \in [k]$:
(i) $(1\le a_1 \le a_j)$ & $(0\le j-1) \implies 1\le a_j +j - 1$.
(ii) $(a_j \le a_k \le n)$ & $(j-1 \le k-1)$

From (i) & (ii), get:
$\forall j \in [k],\,\, 1\le a_j +j - 1 \le k +n -1$, with $(k+n-1)$ being the upper limit.

So, all the different elements of $f({a_1, a_2, ..., a_k})$ belong to $[n+k-1]$, i.e. the set of first $n+k-1$ positive integers.

Next, need show that all the mappings are unique, as need show that the outputs of $f$ are unique. This can be shown by proving that the elements in range are in increasing order, i.e. none of the range elements is repeated.
This can be easily shown by taking the two components of the mapping $f(j)=a_j+j-1$, i.e. $a_j$ & $j-1$; out of which $a_j$ can repeat, but the second part is unique.

However, how to show that it is not possible for the quantity $a_j+j-1$ to not repeat is not clear. Given below is an example to elaborate the confusing part:
Let $n=6, k=4, a_1 = 1, a_2 = 2, a_3 =3, a_4=3$ by which I mean that the elements of domain that are chosen are four with their corresponding no. of elements being $1,2,3,3$. I want to know how it is possible to ensure with the mapping $f$ yielding unique values in range. Say, $i=2, j=4, a_i = 2, a_j = 3, i-1 = 1, j-1 = 3$, and it is clear that $a_i+i-1 = 3, a_j+j-1= 6$; but how to theoretically prove the uniqueness of $f(a_k)$ for all $k$ is not known.

jiten
  • 4,962
  • 1
    The sequence $(a_j+j-1)$ is strictly increasing. – Angina Seng Jan 26 '19 at 22:25
  • @LordSharktheUnknown But how it is not possible that if $i != j$, then the quantity $a_j+j-1$ never is repeated. I mean that $a_j=l, a_i=m$, with $i\le j$, hence $l\ge m$, but how to ensure that the value $a_j+j-1$ or $a_i +i-1$ is not taken up for any other $a_k+k-1$ for any $k$ in $[n]$. – jiten Jan 26 '19 at 22:38
  • 1
    What has $i!$ to do with anything? If $k>j$ then $a_k+k-1>a_j+j-1$, and if $k<j$ then $a_k+k-1<a_j+j-1$. That is what strictly increasing means. – Angina Seng Jan 26 '19 at 22:41
  • 1
    On my screen, your multiset notation looks like bold parentheses, which is a bit confusing. It looks much better with just one backspace instead of three: $\left(!\binom{n}{k}!\right)$ – TonyK Jan 04 '21 at 10:07

1 Answers1

1

For part $(a)$, for $i < j$, we have $a_i \le a_j$ and $i-1 < j-1 $,

Hence $$a_i +i-1 < a_j + j-1.$$

In general, if $a \le b$ and $c < d$, then we have $a+c < b+d$.

To see this note that

\begin{align} b+d - (a+c) &= (d-c)+(b-a) \end{align}

$d-c$ is positive and $b-a$ is nonnegative. Hence the sum is positive.

Siong Thye Goh
  • 155,038
  • Kindlly give the notation to be used for the statement: "If $f$ function then $f^{-1}$ function iff $f$ function injective (one-to-one).", as given at : https://math.stackexchange.com/q/1764370/424260. I am confused as it is not clear as to which statement 'iff' associates with. For me, it is: "If $f$ function then ($f^{-1}$ function iff $f$ function injective (one-to-one))." But, unable to give notn. for that as : using the symbols : $\cup, \cap, \implies$. – jiten Jan 31 '19 at 00:32
  • your interpretation is correct. try to read the solutions? – Siong Thye Goh Jan 31 '19 at 01:03
  • I am not in question per se, but the notation used to express it. Before forming notation, need interpretation, which (you say that) mine is correct. As per it, meaning is : "If $f$ function then ($f^{−1}$ function iff $f$ function injective (one-to-one))." But, question is taken from same text as of this question (Ex. Q.7 , sec. 1.3). Book soln. considers two parts: (a) if part ($\implies$): Assume $f^{-1}$ is a fn.,need prove $f$ is one-to-one $\dots$; (b) only if part : Assume that $f$ is one-to-one. To prove that $f^{-1}$ is a fn., let $b$ be any element in domain of $f^{-1}$$\dots$ – jiten Jan 31 '19 at 01:23
  • i have no idea what you are asking about. – Siong Thye Goh Jan 31 '19 at 01:35
  • Request to join room : https://chat.stackexchange.com/rooms/89042/notation-for-statement-with-nested-iff. – jiten Jan 31 '19 at 01:38
  • Kindly see my post at : https://stackoverflow.com/q/54777535/3693431. Alternatively, can discuss the same in chat room. – jiten Feb 20 '19 at 02:27
  • Please rejoin chat room, had been waiting for net connection to restore. It got restored seconds back only. – jiten Feb 21 '19 at 08:36
  • My soln. version at: https://py3.codeskulptor.org/#user303_2antMXFISM_0.py got accepted at geeksforgeeks for the first practice problem out of 3. I also made a version that uses data from lists at: https://py3.codeskulptor.org/#user303_2A8LXEBc5T_9.py. The latter one gives reason (total1) why my program was earlier not accepted. It seems the site on 'Compilation & Test' gave wrongly correct results, leading to more difficulty in tracing it. My earliest program was not following rules for accepting input, but is stated for memory : https://py3.codeskulptor.org/#user303_eWZC6p8x2P_0.py. – jiten Feb 22 '19 at 06:46
  • Sorry, for stating that the geeksforgeeks site wrongly gave correct answer for wrong program, as the code is wrong and simply prints the indices from 1-2 (actually 0-1, but add 1 to that to give row no.), which is matching with the correct one. This can be checked at: https://py3.codeskulptor.org/#user303_btfc3pBqFB_0.py. – jiten Feb 22 '19 at 07:08
  • Please join the chatroom (repeating link, as the earlier comment stating link is too far up): https://chat.stackexchange.com/rooms/89042/notation-for-statement-with-nested-iff. It is for understanding python impl. of bfs (impl.) traversal of knight's tour. Although a very compact program, facing a lot of diificulties in new python syntax (and hence difficulty in understanding the logic), say: line #145> curmove = [_ for _ in cur[2]]. The program is at : https://py3.codeskulptor.org/#user303_tFvZ0S6gzO_4.py. The article is at>> https://helloacm.com/knight-tour-in-python/ – jiten Feb 26 '19 at 01:27
  • Please join the chatroom (repeating link) https://chat.stackexchange.com/rooms/89042/notation-for-statement-with-nested-iff. Unable to solve the problem stated in last comment. Although progressed (by my stds. a lot), but still stuck as tried an alternative data structure. I wanted the queue to just store only two fields in each element (tuple), rather than just 3. Failed miserably in that. I tried alternate at: https://py3.codeskulptor.org/#user303_of7mHBPsIG_5.py – jiten Mar 03 '19 at 13:38
  • Please join the chatroom. I am really stuck even on following a much more logical & cleaner approach than before. – jiten Mar 04 '19 at 11:58
  • Please join the chatroom, as even though correctly ran by flattening the nested lists (each having on tuple) , the disability to remove nested tuples is an issue, as at : https://py3.codeskulptor.org/#user303_hAi19OfsFT_1.py – jiten Mar 04 '19 at 14:33
  • Posted sometime back at : https://stackoverflow.com/q/54994524/3693431. If you wish can comment/answer there, or join chatroom. – jiten Mar 05 '19 at 04:11
  • i can't, ur question is beyond my ability. – Siong Thye Goh Mar 06 '19 at 00:35
  • your post has been closed, hence no answer can be provided. also, please avoid long comment thread. Do consider doing your own local back up and learn how to post minimal, sufficient, and clear question. – Siong Thye Goh Mar 06 '19 at 03:35
  • I feel that you can add answer still, it has happened with me in past too, where others gave answer to a post 'on hold'. I request you to try, as I wanted to give a smaller version; but that means omitting class, which in turn means omitting the decorators. It is a time-taking process, as need find alternative to the getter & setter functions. Might also need further reductions in no. of functions too. It would take some time for me, but in the meantime want the post to be preserved. – jiten Mar 10 '19 at 00:54
  • btw, please avoid posting futher comnents under this thread, this comment has been way too long. We see soem answers for 'on hold' thread due to the answers were posted before the question is closed. Also, your question is too "well hidden" for others to understand you. – Siong Thye Goh Mar 10 '19 at 02:17