[guided]Now assume the final typing rule is application. Then the term being typed has the form $r\,s$ for terms $r,s \in \textsf{Tm}$. Because the conclusion is
\begin{align*}
\varnothing \vdash r\,s:A,
\end{align*}
inversion of the application typing rule gives a type $B \in \textsf{Ty}$ such that
\begin{align*}
\varnothing \vdash r:B \to A
\end{align*}
and
\begin{align*}
\varnothing \vdash s:B.
\end{align*}
The induction hypothesis applies to both premise derivations because both premises have smaller typing derivations than the application conclusion. Applying it to $\varnothing \vdash r:B \to A$, we get two possibilities. First, suppose there exists $r' \in \textsf{Tm}$ such that
\begin{align*}
r \to r'.
\end{align*}
Then the call-by-value function-position congruence rule permits reduction of the function part before inspecting the argument. Therefore
\begin{align*}
r\,s \to r'\,s.
\end{align*}
Since $t = r\,s$, this proves that $t$ can step.
The remaining possibility from the first induction hypothesis is that $r$ is a value. In call-by-value evaluation, the argument position may step only after the function position is already a value, so this is exactly the condition needed to use the argument congruence rule. Applying the induction hypothesis to
\begin{align*}
\varnothing \vdash s:B,
\end{align*}
we again get two possibilities. If there exists $s' \in \textsf{Tm}$ such that
\begin{align*}
s \to s',
\end{align*}
then, because $r$ is a value, the argument-position congruence rule gives
\begin{align*}
r\,s \to r\,s'.
\end{align*}
Thus $t$ can step in this case as well.
It remains only to handle the case where both $r$ and $s$ are values. The definition of values in this calculus says that the values are exactly the lambda abstractions. Since $r$ is a value, there exist a variable $x$, a type $C \in \textsf{Ty}$, and a term $u \in \textsf{Tm}$ such that
\begin{align*}
r = \lambda x:C.\,u.
\end{align*}
The term $s$ is also a value, so the hypothesis required by the call-by-value beta rule is satisfied. Therefore
\begin{align*}
(\lambda x:C.\,u)\,s \to u[s/x].
\end{align*}
Substituting $r = \lambda x:C.\,u$ and $t = r\,s$, we obtain a term
\begin{align*}
t' = u[s/x]
\end{align*}
with
\begin{align*}
t \to t'.
\end{align*}
So in every application subcase, the application either steps because one of its subterms steps, or it steps by beta-reduction once both subterms are ready.[/guided]