Kruskal-Katona theorem: Why shifting preserves the neighborhood?

When proving the Kruskal-Katona theorem in Sect. 10.4, we used the fact that neighbors of shifted vectors are shifts of neighbors of vectors themselves. We only sketched the proof of this claim. Bellow is a detailed its proof.

Recall that a neighbor of a binary vector $v$ is a vector which can be obtained from $v$ by flipping one of its $1$-entries to $0$. A shadow of a set $B\subseteq\{0,1\}^n$ of vectors is the set $\partial(B)$ of all its neighbors. The $j$-th shift of a vector $v\in B$ is defined by: \[ s_j(v)=\begin{cases} v\oplus e_1\oplus e_j & \mbox{if $v_1=0$, $v_j=1$ and $v\oplus e_1\oplus e_j\not\in B$}\\ v & \mbox{otherwise} \end{cases} \] Note that, due to the condition $v\oplus e_1\oplus e_j\not\in B$, the definition of shifts depends on what set $B$ of vectors we are dealing with. Note also that \begin{equation} \mbox{$s_j(v)=v$ if either $v_1=1$ or $v_1=v_j=0$.}\tag{i} \end{equation} The $j$-th shift of $B$ is $s_j(B)=\{s_j(v)\colon v\in B\}$.

Claim: Neighbors of shits are shifts of neighbors. That is, for every every $1 < j\leq n$, \[ \partial(s_j(B))\subseteq s_j(\partial(B))\,. \]
In the book we only sketched the proof idee (via diagram). We now give a more formal proof.

Proof: We have to show that for every $v\in B$, $\partial(s_j(v))\subseteq s_j(\partial(B))$ holds. So let $u$ be a neighbor of the $j$-th shift $s_j(v)$ of $v$. It is enough to show that \begin{equation} \mbox{$u=s_j(w)$ for some neighbor $w$ of $v$.} \tag{ii} \end{equation} In all the case below, except for the last one, (ii) will hold for $w=u$.

We first consider the case when $s_j(v)=v$, that is, when either $v_1=v_j=0$ or $v_1=1$. Then $u=v\oplus e_k$ is a neighbor of $v$ for some $k\in\{1,\ldots,n\}$. If $k\neq 1$, then (ii) holds with $w=u$. If $k=1$, then $v_1=1$.

Case $k=1$ and $v_j=0$
In this case, (ii) again holds with $w=u$. \[ \begin{array}{rccccc} & & 1 & & j & \\ v =s_j(v) & = & 1 & \cdots\cdots & 0 & \cdots\cdots \\ u & = & 0 & \cdots\cdots & 0 & \cdots\cdots \\ \end{array} \]
Case $k=1$ and $v_j=1$
In this case, vector $u\oplus e_1\oplus e_j$ is a neighbor of $v$, and hence, belongs to $\partial(B)$. By the definition of the shift, this implies that $s_j(u)=u$. Since, $u$ is a neighbor of $s_j(v)=v$, (ii) again holds with $w=u$. \[ \begin{array}{rccccc} & & 1 & & j & \\ v =s_j(v) & = & 1 & \cdots\cdots & 1 & \cdots\cdots \\ u & = & 0 & \cdots\cdots & 1 & \cdots\cdots \\ u\oplus e_1\oplus e_j& = & 1 & \cdots\cdots & 0 & \cdots\cdots \\ \end{array} \]

Suppose now that $s_j(v)\neq v$, that is, $v_1=0$, $v_j=1$ and $s_j(v)=v\oplus e_1\oplus e_j$. Let $u< s_j(v)$ be a neighbor of $s_j(v)$.

Case $u_1=0$
In this case $u$ is also a neighbor of the vector $v\in B$ and, by (i), is a shift of this neighbor (of itself), because $s_j(u)=u$. That is, in this case (ii) holds with $w=u$. \[ \begin{array}{rccccc} & & 1 & & j & \\ v& = & 0 & \cdots\cdots & 1 & \cdots\cdots \\ s_j(v)& = & 1 & \cdots\cdots & 0 & \cdots\cdots \\ u & = & 0 & \cdots\cdots & 0 & \cdots\cdots \\ \end{array} \]
Case $u_1=1$
In this case, $u$ is obtained form $s_j(v)$ by flipping some $k$-th bit $k\not\in\{1,j\}$ from $1$ to $0$. Since $u_1=1$, we have that $s_j(u)=u$. Hence, if $u\in\partial(B)$, then (ii) holds with $w=u$.
So assume that $u\not\in\partial(B)$. The vector $x=v\oplus e_k$ is a neighbor of $v$. Moreover, $x\oplus e_1\oplus e_j=u\not\in\partial(B)$. Since $x_1=0$ and $x_j=1$, we then have that $s_j(x)=x\oplus e_1\oplus e_j=u$ (by the definition of the shift). Hence, in this case, (ii) holds with $w=x$. \[ \begin{array}{rccccccc} & & 1 & & j & & k & \\ v & = & 0 & \cdots\cdots & 1 & \cdots\cdots & 1 & \cdots\cdots \\ s_j(v) & = & 1 & \cdots\cdots & 0 & \cdots\cdots & 1 & \cdots\cdots \\ u & = & 1 & \cdots\cdots & 0 & \cdots\cdots & 0 & \cdots\cdots \\ x & = & 0 & \cdots\cdots & 1 & \cdots\cdots & 0 & \cdots\cdots \\ x\oplus e_1\oplus e_j & = & 1 & \cdots\cdots & 0 & \cdots\cdots & 0 & \cdots\cdots \\ \end{array} \]

S. Jukna, April 2013