[guided]The point of this step is to justify the main syntactic move used in every beta-reduction case. A local proof reduction removes an introduction followed immediately by an elimination, and the result is obtained by inserting the proof of the introduced premise into the place where the eliminated assumption was used. The term-level version of that operation is ordinary substitution of a term for a variable.
Formally, let $\mathcal E$ be a derivation of $\Gamma \vdash A$, and let $\mathcal F$ be a derivation of $\Gamma,A \vdash B$. The distinguished assumption $A$ is represented in the translated context by a variable $x:A^\ast$. Replacing the distinguished assumption in $\mathcal F$ by the proof $\mathcal E$ gives a derivation $\mathcal F[\mathcal E/A]$ of $\Gamma \vdash B$. We prove
\begin{align*}
t_{\mathcal F[\mathcal E/A]} = t_{\mathcal F}[t_{\mathcal E}/x]
\end{align*}
by induction on the construction of $\mathcal F$.
If $\mathcal F$ is exactly the distinguished assumption $A$, then the proof substitution gives $\mathcal E$. Its assigned term is $t_{\mathcal E}$. The assigned term of the distinguished assumption is $x$, and term substitution gives $x[t_{\mathcal E}/x]=t_{\mathcal E}$.
If $\mathcal F$ is an assumption different from the distinguished assumption, then proof substitution leaves it unchanged. Its assigned variable is some $y$ with $y \ne x$, and term substitution gives $y[t_{\mathcal E}/x]=y$.
For an introduction or elimination rule, the derivation $\mathcal F$ is built from one or more immediate subderivations. Proof substitution acts on those subderivations, while the Curry–Howard assignment applies the corresponding term constructor after translating the subderivations. The induction hypothesis identifies each translated substituted subderivation with the corresponding term substitution. Applying the same constructor preserves equality. Whenever a constructor binds a variable, such as $\lambda x:A^\ast.\,u$, $\operatorname{case}(s;x.u;y.v)$, or $\operatorname{let}(z,x)=p\operatorname{ in }u$, bound variables are first renamed to avoid capture. Thus the equality holds up to alpha-equivalence.
The existential case also requires substitution of an object witness for an eigenvariable, not only substitution of a proof for a formula assumption. Let $w:S$ be a term, and let $\mathcal F$ be a derivation of $\Gamma,z:S,A(z) \vdash C$. In existential elimination, the variable $z:S$ is an eigenvariable: it is fresh for the ambient context $\Gamma$ and does not occur free in the conclusion $C$. These side conditions are what allow the reduced derivation to remain a derivation over $\Gamma$ with conclusion $C$ after the witness is substituted.
Write $\mathcal F[w/z]$ for the derivation obtained by capture-avoiding substitution of $w$ for $z$ throughout formulas, assumptions, and term annotations in $\mathcal F$. First, the formulas-as-types translation is compatible with this substitution. For every formula $A(z)$, structural induction on $A$ gives
\begin{align*}
(A(z)[w/z])^\ast = A(z)^\ast[w/z].
\end{align*}
For atomic formulas this is the definition of the translation on atomic predicates. The implication, conjunction, and disjunction cases follow because translation is defined recursively by the corresponding type formers. In the existential case, bound variables are renamed before substitution if necessary, so substitution is capture-avoiding and commutes with the dependent pair type former.
Now we prove the corresponding statement for derivations. A simultaneous induction on the construction of $\mathcal F$ gives
\begin{align*}
t_{\mathcal F[w/z]} = t_{\mathcal F}[w/z]
\end{align*}
up to alpha-equivalence. In an assumption case, the previous formula-substitution compatibility identifies the substituted assumption type with the substituted translated type. In each introduction or elimination case, object substitution acts recursively on the immediate subderivations, and the term assignment then applies the same constructor as before. The induction hypothesis identifies the translated substituted subderivations with the corresponding object substitutions in their assigned terms. Constructors with binders are handled after renaming bound variables away from the free variables of $w$, so no variable capture occurs.[/guided]