[proofplan]
The argument is the standard alternating-form evaluation lemma. We first record that every alternating $k$-form on $V$ is completely determined by its values on the strictly increasing $k$-tuples of basis vectors $(e_{i_1}, \dots, e_{i_k})$ with $i_1 < \dots < i_k$: alternation forces vanishing on tuples with repeats, and reorders unique-index tuples up to a sign. The coordinate wedges $dx_{i_1} \wedge \cdots \wedge dx_{i_k}$ act as a "delta basis" on these tuples — they take value $1$ on the matching tuple and $0$ on every other increasing tuple. Combining these two observations gives spanning. The same delta-basis property forces every coefficient in a vanishing linear combination to be zero, yielding [linear independence](/page/Linear%20Independence). The vanishing for $k > n$ is the pigeonhole consequence of alternation.
[/proofplan]
[step:Set up index notation and identify wedges of dual basis elements as a delta basis on increasing multi-indices]
For each integer $k \ge 1$, let
\begin{align*}
I_{n,k} &:= \bigl\{\, I = (i_1, \dots, i_k) \in \{1, \dots, n\}^k \,:\, i_1 < i_2 < \cdots < i_k \,\bigr\}
\end{align*}
denote the set of strictly increasing multi-indices of length $k$ in $\{1, \dots, n\}$. For $I = (i_1, \dots, i_k) \in I_{n,k}$, write
\begin{align*}
dx_I &:= dx_{i_1} \wedge \cdots \wedge dx_{i_k} \in \Lambda^k(V^*), \\
e_I &:= (e_{i_1}, \dots, e_{i_k}) \in V^k.
\end{align*}
Note $|I_{n,k}| = \binom{n}{k}$, and $I_{n,k} = \varnothing$ for $k > n$.
We claim that for all $I, J \in I_{n,k}$,
\begin{align*}
dx_I(e_J) &= \delta_{IJ} := \begin{cases} 1 & I = J, \\ 0 & I \ne J. \end{cases}
\end{align*}
By the definition of the wedge product,
\begin{align*}
dx_I(e_J) &= \det\!\bigl[\,dx_{i_a}(e_{j_b})\,\bigr]_{1 \le a, b \le k} = \det\!\bigl[\,\delta_{i_a, j_b}\,\bigr]_{1 \le a, b \le k}.
\end{align*}
If $I = J$ then $i_a = j_a$ for all $a$, so $\delta_{i_a, j_b} = \delta_{ab}$ and the determinant is $\det(I_k) = 1$, where $I_k$ denotes the $k \times k$ identity matrix. If $I \ne J$ then, since both $I$ and $J$ are strictly increasing, the sets $\{i_1, \dots, i_k\}$ and $\{j_1, \dots, j_k\}$ are distinct as subsets of $\{1, \dots, n\}$ — otherwise the strict-increase condition would force $I = J$. Hence there exists $a_0 \in \{1, \dots, k\}$ with $i_{a_0} \notin \{j_1, \dots, j_k\}$, so the $a_0$-th row of $\bigl[\delta_{i_a, j_b}\bigr]$ is the zero row and the determinant vanishes.
[guided]
We are about to do something that will appear repeatedly in the proof, so let us isolate the calculation. The wedge product was defined by a determinant formula, and the dual-basis relation $dx_i(e_j) = \delta_{ij}$ turns this determinant into a determinant of a $0/1$ matrix. The point of the present step is to observe that when we evaluate a wedge of dual-basis elements on a tuple of basis vectors — both indexed by **strictly increasing** multi-indices — the resulting determinant equals $1$ exactly when the multi-indices match.
For each $k \ge 1$ we organise the strictly increasing $k$-tuples into
\begin{align*}
I_{n,k} &:= \bigl\{\, I = (i_1, \dots, i_k) \in \{1, \dots, n\}^k \,:\, i_1 < i_2 < \cdots < i_k \,\bigr\},
\end{align*}
and we write $dx_I := dx_{i_1} \wedge \cdots \wedge dx_{i_k}$ and $e_I := (e_{i_1}, \dots, e_{i_k})$. The set $I_{n,k}$ corresponds bijectively to the $k$-element subsets of $\{1, \dots, n\}$, hence $|I_{n,k}| = \binom{n}{k}$; in particular, if $k > n$ then no strictly increasing tuple exists, so $I_{n,k} = \varnothing$.
We compute $dx_I(e_J)$ for $I, J \in I_{n,k}$. By the determinantal definition of the wedge product,
\begin{align*}
dx_I(e_J) &= \det\!\bigl[\,dx_{i_a}(e_{j_b})\,\bigr]_{a, b = 1}^{k} = \det\!\bigl[\,\delta_{i_a, j_b}\,\bigr]_{a, b = 1}^{k}.
\end{align*}
**Case $I = J$.** Here $i_a = j_a$ for every $a$, so the entry in row $a$ column $b$ is $\delta_{i_a, j_b} = \delta_{i_a, i_b} = \delta_{ab}$ (using strict increase: distinct indices give different basis-element subscripts, so $\delta_{i_a, i_b} = 1 \iff a = b$). The matrix is the $k \times k$ identity, whose determinant is $1$.
**Case $I \ne J$.** Both $I$ and $J$ list their elements in strictly increasing order, so a strictly increasing tuple is uniquely determined by the *set* of its entries. Since $I \ne J$, the sets $\{i_1, \dots, i_k\}$ and $\{j_1, \dots, j_k\}$ are distinct $k$-subsets of $\{1, \dots, n\}$, so there exists some $a_0 \in \{1, \dots, k\}$ for which $i_{a_0}$ is not among the $j_b$. The corresponding row of the matrix $\bigl[\delta_{i_a, j_b}\bigr]$ is then identically zero, and a matrix with a zero row has determinant $0$.
This gives the delta-basis identity
\begin{align*}
dx_I(e_J) &= \delta_{IJ} \qquad \text{for all } I, J \in I_{n,k}.
\end{align*}
This identity is the engine of the whole proof: it lets us read off coefficients in any putative expansion of an alternating form by simply evaluating on $e_J$.
[/guided]
[/step]
[step:Show that every alternating $k$-form is determined by its values on the increasing tuples $e_J$]
Fix $\alpha \in \Lambda^k(V^*)$. We claim that $\alpha$ is determined by the $\binom{n}{k}$ scalars $\bigl(\alpha(e_J)\bigr)_{J \in I_{n,k}}$.
Let $(v_1, \dots, v_k) \in V^k$ be arbitrary. Expanding each $v_b$ in the basis $e_1, \dots, e_n$ as $v_b = \sum_{j_b = 1}^n c_{j_b, b}\, e_{j_b}$ with $c_{j_b, b} \in \mathbb{R}$ and using $k$-linearity of $\alpha$,
\begin{align*}
\alpha(v_1, \dots, v_k) &= \sum_{j_1 = 1}^n \cdots \sum_{j_k = 1}^n c_{j_1, 1} \cdots c_{j_k, k}\, \alpha(e_{j_1}, \dots, e_{j_k}).
\end{align*}
We split the multi-sum according to the index tuple $(j_1, \dots, j_k)$:
(i) *Tuples with repeated entries.* If $j_a = j_{a'}$ for some $a \ne a'$, then $\alpha(e_{j_1}, \dots, e_{j_k}) = 0$ because $\alpha$ is alternating: swapping the $a$-th and $a'$-th arguments leaves the tuple unchanged but multiplies the value by $-1$.
(ii) *Tuples with distinct entries.* If $j_1, \dots, j_k$ are pairwise distinct, there exists a unique permutation $\sigma \in S_k$ such that the rearrangement $(j_{\sigma(1)}, \dots, j_{\sigma(k)})$ is strictly increasing; call this rearrangement $J^\sigma = (j_{\sigma(1)}, \dots, j_{\sigma(k)}) \in I_{n,k}$. Since $\alpha$ is alternating — by definition, swapping any two arguments multiplies its value by $-1$ — and every permutation $\sigma \in S_k$ factors as a product of transpositions whose parity equals $\operatorname{sgn}(\sigma) \in \{\pm 1\}$, applying $\sigma$ to the arguments multiplies the value by $\operatorname{sgn}(\sigma)$:
\begin{align*}
\alpha(e_{j_1}, \dots, e_{j_k}) &= \operatorname{sgn}(\sigma)\, \alpha(e_{j_{\sigma(1)}}, \dots, e_{j_{\sigma(k)}}) = \operatorname{sgn}(\sigma)\, \alpha(e_{J^\sigma}).
\end{align*}
In both cases the value $\alpha(e_{j_1}, \dots, e_{j_k})$ is determined by the values $\alpha(e_J)$ for $J \in I_{n,k}$ (in case (i) the value is zero; in case (ii) it is a signed copy of one such value). The displayed expansion then shows that $\alpha(v_1, \dots, v_k)$ is determined by $\bigl(\alpha(e_J)\bigr)_{J \in I_{n,k}}$, proving the claim.
[guided]
We want to argue that any alternating $k$-form $\alpha$ on $V$ is rigidly pinned down by a finite list of numbers — namely, its values on the $\binom{n}{k}$ strictly increasing tuples of basis vectors. Why should this be true? The form $\alpha$ is $k$-linear on $V$, so by general multilinear-algebra principles its value on any tuple is determined by its values on $k$-tuples of basis vectors — that is, by the $n^k$ numbers $\alpha(e_{j_1}, \dots, e_{j_k})$. The alternation property collapses this list dramatically: it forces vanishing on any tuple with a repeated index, and it identifies tuples that differ only by a permutation up to the permutation's sign. After this collapse, only the values on strictly increasing tuples remain as independent data.
Let us make this precise. Fix $\alpha \in \Lambda^k(V^*)$ and an arbitrary tuple $(v_1, \dots, v_k) \in V^k$. Expand each $v_b$ in the basis:
\begin{align*}
v_b &= \sum_{j_b = 1}^{n} c_{j_b, b}\, e_{j_b}, \qquad c_{j_b, b} \in \mathbb{R}.
\end{align*}
By $k$-linearity of $\alpha$ (one of the two defining properties of alternating multilinear forms),
\begin{align*}
\alpha(v_1, \dots, v_k) &= \sum_{j_1 = 1}^{n} \cdots \sum_{j_k = 1}^{n} c_{j_1, 1}\, c_{j_2, 2} \cdots c_{j_k, k}\, \alpha(e_{j_1}, \dots, e_{j_k}).
\end{align*}
The right-hand side is a sum over **all** $k$-tuples $(j_1, \dots, j_k) \in \{1, \dots, n\}^k$, not just the increasing ones. We now use alternation to collapse this sum.
**Tuples with a repeat.** Suppose $j_a = j_{a'}$ for some $a \ne a'$. Then swapping arguments $a$ and $a'$ in $\alpha(e_{j_1}, \dots, e_{j_k})$ does not change the tuple (the same basis vector sits in positions $a$ and $a'$), yet by the alternating property the value is multiplied by $-1$. Hence
\begin{align*}
\alpha(e_{j_1}, \dots, e_{j_k}) &= -\alpha(e_{j_1}, \dots, e_{j_k}),
\end{align*}
which forces $\alpha(e_{j_1}, \dots, e_{j_k}) = 0$. Such tuples contribute nothing to the sum.
**Tuples with distinct entries.** Suppose now $j_1, \dots, j_k$ are pairwise distinct. There is a unique permutation $\sigma \in S_k$ that puts them in increasing order: $j_{\sigma(1)} < j_{\sigma(2)} < \dots < j_{\sigma(k)}$. Write $J^\sigma := (j_{\sigma(1)}, \dots, j_{\sigma(k)}) \in I_{n,k}$. Reordering arguments according to $\sigma$ multiplies the value of an alternating form by $\operatorname{sgn}(\sigma)$ — this is the definition of alternating extended from transpositions to arbitrary permutations, valid because every permutation factors as a product of transpositions and the sign is multiplicative. Therefore
\begin{align*}
\alpha(e_{j_1}, \dots, e_{j_k}) &= \operatorname{sgn}(\sigma)\, \alpha(e_{J^\sigma}).
\end{align*}
So this tuple contributes a signed copy of one of the "blessed" values $\alpha(e_J)$, $J \in I_{n,k}$.
Putting these two cases together, every term in the expanded sum is either zero or a scalar multiple of one of the numbers $\alpha(e_J)$ with $J \in I_{n,k}$. The value $\alpha(v_1, \dots, v_k)$ is therefore an explicit (universal, $\alpha$-independent) linear functional of the finite list $\bigl(\alpha(e_J)\bigr)_{J \in I_{n,k}}$. This is what it means to say that $\alpha$ is **determined** by these $\binom{n}{k}$ scalars.
[/guided]
[/step]
[step:Span $\Lambda^k(V^*)$ by the coordinate wedges $dx_I$]
Let $\alpha \in \Lambda^k(V^*)$. Define
\begin{align*}
\beta &:= \sum_{I \in I_{n,k}} \alpha(e_I)\, dx_I \in \Lambda^k(V^*).
\end{align*}
We claim $\alpha = \beta$. By the previous step, both $\alpha$ and $\beta$ are alternating $k$-forms determined by their values on $\{e_J : J \in I_{n,k}\}$; thus it suffices to show that $\alpha(e_J) = \beta(e_J)$ for every $J \in I_{n,k}$. Using the delta-basis identity from the first step,
\begin{align*}
\beta(e_J) &= \sum_{I \in I_{n,k}} \alpha(e_I)\, dx_I(e_J) = \sum_{I \in I_{n,k}} \alpha(e_I)\, \delta_{IJ} = \alpha(e_J).
\end{align*}
Hence $\alpha = \beta$, so $\alpha$ lies in the span of $\mathcal{B}_k = \{dx_I : I \in I_{n,k}\}$. Since $\alpha \in \Lambda^k(V^*)$ was arbitrary, $\mathcal{B}_k$ spans $\Lambda^k(V^*)$.
[/step]
[step:Establish linear independence of the coordinate wedges $dx_I$]
Suppose $(c_I)_{I \in I_{n,k}}$ is a family of real scalars with
\begin{align*}
\sum_{I \in I_{n,k}} c_I\, dx_I &= 0 \quad \text{in } \Lambda^k(V^*).
\end{align*}
Fix any $J \in I_{n,k}$ and evaluate both sides at $e_J \in V^k$. Using the delta-basis identity,
\begin{align*}
0 &= \Biggl(\sum_{I \in I_{n,k}} c_I\, dx_I\Biggr)(e_J) = \sum_{I \in I_{n,k}} c_I\, dx_I(e_J) = \sum_{I \in I_{n,k}} c_I\, \delta_{IJ} = c_J.
\end{align*}
Since $J \in I_{n,k}$ was arbitrary, $c_J = 0$ for every $J \in I_{n,k}$. Therefore $\mathcal{B}_k$ is linearly independent.
Combined with the spanning property from the previous step, $\mathcal{B}_k$ is a basis of $\Lambda^k(V^*)$, and
\begin{align*}
\dim_{\mathbb{R}} \Lambda^k(V^*) &= |\mathcal{B}_k| = |I_{n,k}| = \binom{n}{k}.
\end{align*}
[/step]
[step:Handle the case $k > n$ via the pigeonhole principle for alternating forms]
Suppose $k > n$. Let $\alpha \in \Lambda^k(V^*)$ and $(v_1, \dots, v_k) \in V^k$ be arbitrary. Expanding each $v_b = \sum_{j_b = 1}^n c_{j_b, b}\, e_{j_b}$ and using $k$-linearity, as in the second step,
\begin{align*}
\alpha(v_1, \dots, v_k) &= \sum_{j_1 = 1}^{n} \cdots \sum_{j_k = 1}^{n} c_{j_1, 1} \cdots c_{j_k, k}\, \alpha(e_{j_1}, \dots, e_{j_k}).
\end{align*}
For each index tuple $(j_1, \dots, j_k) \in \{1, \dots, n\}^k$, since $k > n$, the pigeonhole principle forces at least two of the $j_a$ to coincide. By the alternating property (as established in the second step), $\alpha(e_{j_1}, \dots, e_{j_k}) = 0$ for every such tuple. The displayed sum is therefore identically zero, so $\alpha(v_1, \dots, v_k) = 0$. Since $(v_1, \dots, v_k)$ was arbitrary, $\alpha = 0$, and $\Lambda^k(V^*) = \{0\}$.
Equivalently, $\binom{n}{k} = 0$ for $k > n$, so the formula $\dim_{\mathbb{R}} \Lambda^k(V^*) = \binom{n}{k}$ remains valid in this range.
[guided]
We now turn to the case $k > n$. The strategy is short and clean: $k$-linearity reduces the value of $\alpha$ on an arbitrary tuple to a sum of values on tuples of basis vectors, and the pigeonhole principle — together with the alternating property — kills every term in that sum.
Fix $\alpha \in \Lambda^k(V^*)$ with $k > n$. We will show that $\alpha$ vanishes on every tuple $(v_1, \dots, v_k) \in V^k$. Expand each argument in the basis $e_1, \dots, e_n$ of $V$: for each $b \in \{1, \dots, k\}$, write
\begin{align*}
v_b &= \sum_{j_b = 1}^{n} c_{j_b,b}\, e_{j_b}, \qquad c_{j_b,b} \in \mathbb{R}.
\end{align*}
Because $\alpha$ is $k$-linear in its arguments, expanding all $k$ slots produces a multi-sum
\begin{align*}
\alpha(v_1, \dots, v_k) &= \sum_{j_1 = 1}^{n} \cdots \sum_{j_k = 1}^{n} c_{j_1, 1} \cdots c_{j_k, k}\, \alpha(e_{j_1}, \dots, e_{j_k}).
\end{align*}
We now show that every coefficient $\alpha(e_{j_1}, \dots, e_{j_k})$ in this sum vanishes. Fix any tuple $(j_1, \dots, j_k) \in \{1, \dots, n\}^k$. Since there are $k$ indices $j_1, \dots, j_k$ drawn from a set of size $n$ and $k > n$, the pigeonhole principle guarantees that at least two of them coincide: there exist $a, a' \in \{1, \dots, k\}$ with $a \ne a'$ and $j_a = j_{a'}$.
Now we invoke the alternating property of $\alpha$ directly: by definition, swapping any two arguments of an alternating form multiplies its value by $-1$. Swap the $a$-th and $a'$-th arguments of $\alpha(e_{j_1}, \dots, e_{j_k})$. On the one hand, the swap multiplies the value by $-1$; on the other hand, since $j_a = j_{a'}$ the same basis vector $e_{j_a} = e_{j_{a'}}$ sits in both positions, so the tuple is unchanged and the value is unchanged. Combining,
\begin{align*}
\alpha(e_{j_1}, \dots, e_{j_k}) &= -\alpha(e_{j_1}, \dots, e_{j_k}),
\end{align*}
which (since we are working over $\mathbb{R}$, where $2 \ne 0$) forces $\alpha(e_{j_1}, \dots, e_{j_k}) = 0$. Every term in the multi-sum is therefore zero, and hence $\alpha(v_1, \dots, v_k) = 0$.
The tuple $(v_1, \dots, v_k) \in V^k$ was arbitrary, so $\alpha$ is the zero $k$-form, and $\alpha \in \Lambda^k(V^*)$ was itself arbitrary, so $\Lambda^k(V^*) = \{0\}$.
This is consistent with the dimension formula $\dim_{\mathbb{R}} \Lambda^k(V^*) = \binom{n}{k}$ under the standard convention $\binom{n}{k} = 0$ for $k > n$: the index set $I_{n,k}$ of strictly increasing $k$-tuples in $\{1, \dots, n\}$ is empty whenever $k > n$, so no coordinate wedges $dx_I$ exist and $\Lambda^k(V^*)$ has empty basis.
[/guided]
[/step]
[step:Combine the cases to conclude]
For $1 \le k \le n$, the previous steps show that $\mathcal{B}_k = \{dx_I : I \in I_{n,k}\}$ is a basis of $\Lambda^k(V^*)$ with $\binom{n}{k}$ elements. For $k = 0$ we have $\Lambda^0(V^*) = \mathbb{R}$ with basis $\{1\}$, and the empty wedge $dx_\varnothing := 1$ provides the single basis element, in agreement with $\binom{n}{0} = 1$. For $k > n$, the previous step gives $\Lambda^k(V^*) = \{0\}$, with empty basis $\mathcal{B}_k = \varnothing$, in agreement with $\binom{n}{k} = 0$. This proves the theorem.
[/step]