How to eliminate cut?

(note: some readers may find the LaTeX easier to read on LessWrong)

The purpose of this post isn’t to convince you that cut elimination is important. See, for example, the nLab article. Rather, the purpose of this post is to (semi-formally) prove cut elimination in a way that I at least find easy to understand. I have consulted existing sources (such as these lecture notes), but have found it hard to fill in all the details, given the sparsity of the usual presentations. I’ll build on the previous post (on Gödel’s Completeness Theorem) and show cut elimination in the first-order sequent calculus defined in that post. Recall that the cut rule states:

\frac{\Gamma ~ \vdash ~ \Delta, P ~~~~~~ \Gamma, P ~ \vdash ~ \Delta}{\Gamma ~ \vdash ~ \Delta}

We can think of \Gamma as the assumptions, \Delta as the conclusion, and P as a lemma. Intuitively, this states that, if it’s possible to prove the conclusion or the lemma from the assumptions, and it’s possible to prove the conclusion from the assumptions and the lemma, then it’s possible to prove the conclusions from the assumptions. Cut-elimination is, therefore, the automated elimination of lemmas in a sequent proof. (As stated in the previous post, this presentation of the cut rule is somewhat nonstandard, but it can be shown equivalent to the standard form using weakening and contraction.)

Throughout the post, I will use the notion of the depth of a sentence, and the cut rank of a proof. The depth of a sentence is the depth of nesting of compound sentences; in particular, the depth of an atomic sentence is 0, the depth of a negation is one plus the depth of its inner sentence, the depth of a conjunction is one plus the maximum depth of the inner sentences, and the depth of a universal is one plus the depth of the inner sentence. The cut rank of a proof is a mapping f : \mathbb{N} \rightarrow \mathbb{N}, where f(i) is the number of times a cut is performed on a sentence of depth i; note that this is zero almost everywhere. We compare cut ranks lexicographically, with later entries counting more than previous ones.

Constant substitution

As a preliminary, we will show that constants can be substituted with terms in proofs without changing the proof structure (in particular, cut rank stays the same). As notation, if P is a term, sentence, or set of sentences, let P[t/c] indicate replacing the constant c with the term t anywhere in P. Suppose we have a proof of the judgment \Gamma ~ \vdash ~ \Delta. We wish to show that there is a proof of \Gamma[t/c] ~ \vdash ~ \Delta[t/c] with the same cut rank as the original proof.

Call the height of a sequent proof the longest path from top to bottom, counting by number of rule applications. I will show by induction that, for all natural n \geq 1, constant substitution holds for a proof whose height is n.

In the base case, the only rule is the assumption rule. Then \Gamma and \Delta both contain some sentence P. So \Gamma[t/c] and \Delta[t/c] both contain P[t/c]. So the assumption rule also shows \Gamma[t/c] ~ \vdash ~ \Delta[t/c].

In the inductive case, we consider different cases for the bottom-most rule. Suppose the bottom-most rule in the proof is the weakening rule. Then the proof looks like:

\frac{\Gamma ~ \vdash ~ \Delta}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Sigma}

By the inductive assumption, we have a proof of \Gamma[t/c] ~ \vdash ~ \Delta[t/c]. Then we straightforwardly show \Gamma[t/c] \cup \Sigma[t/c] ~ \vdash ~ \Delta[t/c] \cup \Sigma[t/c] using weakening.

Suppose the bottom-most rule in the proof is the cut rule. Then the proof looks like:

\frac{\Gamma ~ \vdash ~ \Delta, P ~~~~~~ \Gamma, P ~ \vdash ~ \Delta}{\Gamma ~ \vdash ~ \Delta}

By the inductive assumption, we have proofs of \Gamma[t/c] ~ \vdash ~ \Delta[t/c], P[t/c] and \Gamma[t/c], P[t/c] ~ \vdash ~ \Delta[t/c]. Now we cut on P[t/c] to get the result.

Suppose the bottom-most rule in the proof is the left negation rule. Then the proof looks like:

\frac{\Gamma ~ \vdash ~ \Delta, P}{\Gamma, \neg P ~ \vdash ~ \Delta}

By the inductive assumption, we have a proof of \Gamma[t/c] ~ \vdash ~ \Delta[t/c], P[t/c]. We apply the left negation rule on P[t/c] to get a proof of \Gamma[t/c], \neg P[t/c] ~ \vdash ~ \Delta[t/c].

Most of the remaining rules are similar, so I will skip them. I will consider the non-trivial case of the right universal rule. In this case, the proof looks like this:

\frac{\Gamma ~ \vdash ~ \Delta, \phi[d]}{\Gamma ~ \vdash ~ \Delta, (\forall x, \phi[x])}

where d is a constant not appearing in \Gamma, \Delta, or \phi. Let d’ be a constant not appearing in \Gamma, \Delta, \phi, or t, and not equal to c. First we apply the inductive assumption to get a proof of \Gamma[d'/d] ~ \vdash ~ \Delta[d'/d], \phi[d][d'/d] or equivalently \Gamma ~ \vdash ~ \Delta, \phi[d']. Now we apply the inductive assumption again to get a proof of \Gamma[t/c] ~ \vdash ~ \Delta[t/c], \phi[d'][t/c]. Since d’ does not appear in t and is unequal to c, we can swap the substitution order to get a proof of \Gamma[t/c] ~ \vdash ~ \Delta[t/c], \phi[t/c][d']. At this point, since d’ does not appear in \Gamma[t/c], \Delta[t/c], or \phi[t/c], we can apply the right universal rule to get a proof of \Gamma[t/c] ~ \vdash ~ \Delta[t/c], (\forall x, \phi[x])[t/c].

Eliminating weakening

It will be easier to show cut elimination in a logic without weakening. So it is more convenient to eliminate weakening before eliminating cut. This has the added benefit of eliminating weakening in addition to cut. Recall the weakening rule:

\frac{\Gamma ~ \vdash ~ \Delta}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi}

I will show by induction that, for all natural n \geq 1, weakening can be eliminated for a proof whose height is n+1, and whose last step is weakening.

Let’s consider the base case. If the proof has height 2, and the bottom-most rule is weakening, then the top-most rule must be the assumption rule. In this case, the assumption rule could have been applied to the pre-weakened judgment.

Let’s consider the inductive case. Suppose weakening can be eliminated form any proof whose height is at most n and whose last step is weakening. We now consider showing weakening can be eliminated from a proof whose height is n+1 and whose last step is weakening.

We do this by cases on the second-to-last rule. We have no need to handle the assumption rule, as that would make the height 2 (the base case).

Suppose the second-to-last rule is weakening. Then the two weakenings can be combined into one weakening. This reduces the height of the proof by one, so weakening can be eliminated inductively.

Suppose the second-to-last rule is cut. Then the proof looks like this:

\frac{\Gamma ~ \vdash ~ \Delta, P ~~~~~~ \Gamma, P ~ \vdash ~ \Delta}{\frac{\Gamma ~ \vdash ~ \Delta}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi}}

Call the proof of the top-left judgment X and the proof of the top-right judgment Y. Then X and Y have height at most n-1. Now we consider re-writing the proof to put weakening higher:

\frac{\frac{\Gamma ~ \vdash ~ \Delta, P}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi, P} ~~~~~~ \frac{\Gamma, P ~ \vdash ~ \Delta}{\Gamma \cup \Sigma, P ~ \vdash ~ \Delta \cup \Pi}}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi}

The left proof of \Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi, P has height at most n, and the right proof of \Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi has height at most n. So weakening can be eliminated from both sides (using the inductive assumption).

Suppose the second-to-last rule is left negation. Then the proof looks like this:

\frac{\frac{\Gamma ~ \vdash ~ \Delta, P}{\Gamma, \neg P ~ \vdash ~ \Delta}}{\Gamma \cup \Sigma, \neg P ~ \vdash ~ \Delta \cup \Pi}

As before, we re-write to move weakening higher:

\frac{\frac{\Gamma ~ \vdash ~ \Delta, P}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi, P}}{\Gamma \cup \Sigma, \neg P ~ \vdash ~ \Delta \cup \Pi}

And observe that the size of the proof with weakening at the bottom is now at most n, so weakening can be eliminated from it inductively.

I will skip most of the rules, as they are similar. The only nontrivial case is the right universal rule. The proof would look like this:

\frac{\frac{\Gamma ~ \vdash ~ \Delta, \phi[c]}{\Gamma ~ \vdash ~ \Delta, (\forall x, \phi[x])}}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi, (\forall x, \phi[x])}

where c does not appear in \Gamma, \Delta, or \phi. Now we find a constant d which does not appear in \Gamma, \Sigma, \Delta, \Pi, or \phi. We move weakening up:

\frac{\frac{\Gamma ~ \vdash ~ \Delta, \phi[d]}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi, \phi[d]}}{\Gamma \cup \Sigma ~ \vdash ~ \Delta \cup \Pi, (\forall x, \phi[x])}

We can convert the original proof of \Gamma ~ \vdash ~ \Delta, \phi[c] to one of equal height and cut rank proving \Gamma ~ \vdash ~ \Delta, \phi[d] using constant substitution. Now weakening can be eliminated from this proof using the inductive assumption.

Note that throughout this process, the structure of cuts has not been changed; the same cuts are applied to the same sentences. As such, the cut rank is the same.

As a corollary of weakening elimination, we can transform proofs so that, if a rule application is of the form

\frac{\Sigma ~ \vdash ~ \Pi}{\Gamma ~ \vdash ~ \Delta}

then \Gamma \subseteq \Sigma and \Delta \subseteq \Pi. This is because the non-weakening rules, such as the negation rules, have “implicit contraction” where there is no requirement to eliminate any sentence, and weakening elimination means these extra sentences in judgments are not a problem (as they could be eliminated with weakening anyway, and then the weakenings could be eliminated). I will call this transformation “redundant contraction”. Note also that this does not change the cut rank of the proof.

Making the assumption rule only apply to atoms

Recall that an atomic sentence is a predicate applied to some terms. The assumption rule may apply to arbitrary sentences. We would like to transform sequent proofs to ones that only apply the assumption rule to atomic sentences.

To do this, we will consider proving judgments of the form \Gamma, P ~ \vdash ~ \Delta, P without using the assumption rule except on atomic sentences. We will do this by induction on the structure of P.

Now we consider what form P could take. If P is atomic, we simply apply the assumption rule. Suppose P is \neg Q. Then we prove the judgment as follows:

\frac{\Gamma, Q ~ \vdash ~ \Delta, Q}{\Gamma, \neg Q ~ \vdash ~ \Delta, \neg Q}

with the top judgment proven by the inductive assumption.

Suppose P is Q \wedge R. Then we prove the judgment as follows:

\frac{\Gamma, Q, R ~ \vdash ~ \Delta, Q ~~~~~~ \Gamma, Q, R ~ \vdash ~ \Delta, R}{\frac{\Gamma, Q, R ~ \vdash ~ \Delta, Q \wedge R}{\Gamma, Q \wedge R ~ \vdash ~ \Delta, Q \wedge R}}

with the top judgments proven by the inductive assumption.

Suppose P is (\forall x, \phi[x]). Then we prove the judgment as follows:

\frac{\Gamma, \phi[c] ~ \vdash ~ \Delta, \phi[c]}{\frac{\Gamma, (\forall x, \phi[x]) ~ \vdash ~ \Delta, \phi[c]}{\Gamma, (\forall x, \phi[x]) ~ \vdash ~ \Delta, (\forall x, \phi[x])}}

with the top judgment proven by the inductive assumption, and where c is a constant not appearing in \Gamma, \Delta, or \phi.

The inversion lemma

The rules for compound sentences are, for the most part, invertible, in that if the bottom judgment is provable with no cuts, so is the top judgment. I will show invertibility for these rules, assuming no weakening and that the assumption rule only applies to atoms.

In general, these proofs will work by applying redundant contraction to the proof of the bottom judgment and observing that the proof steps work for a modified version of the judgments, except for certain rule applications. Note that we intentionally omit the left universal rule, as it is not invertible like the others. It will instead be handled manually later.

A property that will be true throughout is that, if the original proof has no cuts, neither does the inverted proof.

Left negation

Consider the left negation rule:

\frac{\Gamma ~ \vdash ~ \Delta, P}{\Gamma, \neg P ~ \vdash ~ \Delta}

Suppose the bottom judgment is provable. Apply redundant contraction to the proof. We will do induction over the proof to show that each sub-proof of a judgment can be converted to one of a converted form of the judgment, where \neg P is removed on the left and P is added to the right. Every step in the proof will convert automatically except for instances of the left negation rule applied to \neg P. Those cases originally look like

\frac{\Sigma, \neg P ~ \vdash ~ \Pi, P}{\Sigma, \neg P ~ \vdash ~ \Pi}

and in the conversion we are trying to show \Sigma ~ \vdash ~ \Pi, P. We can prove this by inductively converting the proof of \Sigma, \neg P ~ \vdash ~ \Pi, P.

Overall, the converted proof proves \Gamma ~ \vdash ~ \Delta, P. And if the original proof has no cuts, neither does the converted proof.

Right negation

Consider the right negation rule:

\frac{\Gamma, P ~ \vdash ~ \Delta}{\Gamma ~ \vdash ~ \Delta, \neg P}

Suppose the bottom judgment is provable. Symmetric with the left negation case, we convert the proof to a proof of \Gamma, P ~ \vdash ~ \Delta. And if the original proof has no cuts, neither does the converted proof.

Left conjunction

Consider the left conjunction rule:

\frac{\Gamma, P, Q ~ \vdash ~ \Delta}{\Gamma, P \wedge Q ~ \vdash ~ \Delta}

Suppose the bottom judgment is provable. Apply redundant contraction to the proof. We will do induction over the proof to show that each sub-proof of a judgment can be converted to one of a converted form of the judgment, where P \wedge Q is removed from and P and Q are added to the left. Every step in the proof will convert automatically except for when left conjunction is applied to P \wedge Q. Those cases look like:

\frac{\Sigma, P \wedge Q, P, Q ~ \vdash ~ \Pi}{\Sigma, P \wedge Q ~ \vdash ~ \Pi}

and in the conversion we are trying to show \Sigma, P, Q ~ \vdash ~ \Pi. We can prove this by inductively converting the proof of \Sigma, P \wedge Q, P, Q ~ \vdash ~ \Pi.

Overall, the converted proof proves \Gamma, P, Q ~ \vdash ~ \Delta, as desired. And if the original proof has no cuts, neither does the converted proof.

Right conjunction

Consider the right conjunction rule:

\frac{\Gamma ~ \vdash ~ \Delta, P ~~~~~~ \Gamma ~ \vdash ~ \Delta, Q}{\Gamma ~ \vdash ~ \Delta, P \wedge Q}

We will consider proofs of \Gamma ~ \vdash ~ \Delta, P and \Gamma ~ \vdash ~ \Delta, Q separately.

First consider \Gamma ~ \vdash ~ \Delta, P. Suppose the bottom judgment is provable. Apply redundant contraction to the proof. We will do induction over this proof to show that each sub-proof of a judgment can be converted to one of a converted form of the judgment, where P \wedge Q is removed from and P is added to the right side. Each step of the proof will convert automatically except for applications of the right conjunction rule to P \wedge Q. Those cases look like:

\frac{\Sigma ~ \vdash ~ \Pi, P \wedge Q, P ~~~~~~ \Sigma ~ \vdash ~ \Pi, P \wedge Q, Q}{\Sigma ~ \vdash ~ \Pi, P \wedge Q}

and in the conversion we are trying to show \Sigma ~ \vdash ~ \Pi, P. We prove this by inductively converting the proof of \Sigma ~ \vdash ~ \Pi, P \wedge Q, P.

Overall, the converted proof proves \Gamma ~ \vdash ~ \Delta, P, as desired.

Now consider \Gamma ~ \vdash ~ \Delta, Q. This is symmetric with the previous case, yielding a converted proof.

In both cases, if the original proof has no cuts, neither does the converted proof.

Right universal

Consider the right universal rule:

\frac{\Gamma ~ \vdash ~ \Delta, \phi[c]}{\Gamma ~ \vdash ~ \Delta, (\forall x, \phi[x])}

where c does not appear in \Gamma, \Delta, (\forall x, \phi[x]). Suppose the bottom judgment is provable. Apply redundant contraction to this proof. We will do induction over the proof to show that each sub-proof of a judgment can be converted to one of a converted form of the judgment, where (\forall x, \phi[x]) is removed from and \phi[c'] is added to the right, where c’ is a constant appearing nowhere in the proof. Every step will convert automatically except for applications of the right universal rule to (\forall x, \phi[x]). Those cases look like:

\frac{\Sigma~ \vdash ~ \Pi, (\forall x, \phi[x]), \phi[d]}{\Sigma ~ \vdash ~ \Pi, (\forall x, \phi[x])}

where d is a constant not appearing in \Sigma, \Pi, (\forall x, \phi[x]), and in the conversion we are trying to show \Sigma ~ \vdash ~ \Pi, \phi[c']. We inductively convert the proof of \Sigma ~ \vdash ~ \Pi, (\forall x, \phi[x]), \phi[d] to get a proof of \Sigma ~ \vdash ~ \Pi, \phi[d], \phi[c']. Then we apply constant substitution to this proof, replacing d with c’, to get a proof of \Sigma ~ \vdash ~ \Pi, \phi[c'].

Overall, the converted proof proves \Gamma ~ \vdash ~ \Delta, \phi[c']. Now we apply constant substitution again to get a proof of \Gamma ~ \vdash ~ \Delta, \phi[c]. And if the original proof has no cuts, neither does the converted proof.

Showing cut elimination

We are now ready to eliminate cut from an arbitrary proof. Assume the proof has no weakening and that the assumption rule is only used on atoms (we have already shown how to convert a proof to one of this form). An instance of the cut rule looks like this:

\frac{\Gamma ~ \vdash ~ \Delta, P ~~~~~~ \Gamma, P ~ \vdash ~ \Delta}{\Gamma ~ \vdash ~ \Delta}

We consider different forms P could take in turn. Each time, we eliminate one instance of cut from the proof (a “cut reduction”), in a way that reduces the cut rank of the overall proof. We only eliminate cuts where the proofs of the premises do not themselves have any cuts; if the proof has at least one cut, a cut exists whose premise proofs don’t have any cuts, so this is not an obstacle to the algorithm.

Atomic sentences

Suppose P is atomic. Assume the proofs of \Gamma ~ \vdash ~ \Delta, P and \Gamma, P ~ \vdash ~ \Delta are cut-free. Apply redundant contraction to the first proof. Each leaf of this proof now uses the assumption rule to prove \Sigma ~ \vdash ~ \Pi, P where \Gamma \subseteq \Sigma and \Delta \subseteq \Pi. Now we consider eliminating P from the right hand side of every judgment in this proof (so the converted “proof” now “proves” \Gamma ~ \vdash ~ \Delta); every non-assumption rule can still be applied, but some of the leaves will now fail to be proven with the assumption rule. In those cases, when the judgment of the leaf is \Sigma ~ \vdash ~ \Pi, we know P \in \Sigma, as the elimination of P from the right caused a failure of the assumption rule. In those cases, it is sufficient to show \Gamma, P ~ \vdash ~ \Delta, by weakening elimination (since \Gamma, P \subseteq \Sigma and \Delta \subseteq \Pi). But we already have a cut-free proof of this, the original cut-free proof of \Gamma, P ~ \vdash ~ \Delta. By repairing the leaves, we now have a cut-free proof of \Gamma ~ \vdash ~ \Delta.

Negations

Suppose P = \neg Q. Then the premises of the cut rule imply we have proofs of \Gamma ~ \vdash ~ \Delta, \neg Q and \Gamma, \neg Q ~ \vdash ~ \Delta. Assume these proofs are cut-free. Using invertibility, we can get cut-free proofs of \Gamma, Q ~ \vdash ~ \Delta and \Gamma ~ \vdash ~ \Delta, Q. Then apply cut on Q:

\frac{\Gamma ~ \vdash ~ \Delta, Q ~~~~~~ \Gamma, Q ~ \vdash ~ \Delta}{\Gamma ~ \vdash ~ \Delta}

This reduces the cut rank because cut is applied to a simpler sentence.

Conjunctions

Suppose P = Q \wedge R. Then the premises of the cut rule imply we have proofs of \Gamma ~ \vdash ~ \Delta, Q \wedge R and \Gamma, Q \wedge R ~ \vdash ~ \Delta. Assume these proofs are cut-free. Using invertibility we can get cut-free proofs of \Gamma ~ \vdash ~ \Delta, P, \Gamma ~ \vdash ~ \Delta, Q, and \Gamma, P, Q ~ \vdash ~ \Delta. Then apply cut twice:

\frac{\Gamma ~ \vdash ~ \Delta, P ~~~~~~ \frac{\Gamma, P ~ \vdash ~ \Delta, Q ~~~~~~ \Gamma, P, Q ~ \vdash ~ \Delta}{\Gamma, P ~ \vdash ~ \Delta}}{\Gamma ~ \vdash ~ \Delta}

This reduces the cut rank because cut is applied to simpler sentences. Note that we can convert the proof of \Gamma ~ \vdash ~ \Delta, Q to one of \Gamma, P ~ \vdash ~ \Delta, Q using weakening elimination.

Universals

Suppose P = (\forall x, \phi[x]). Then the premises of the cut rule imply that we have proofs of \Gamma ~ \vdash ~ \Delta, (\forall x, \phi[x]) and \Gamma, (\forall x, \phi[x]) ~ \vdash ~ \Delta. Assume both these proofs are cut-free, and apply redundant contraction to the second. Using invertibility on the first proof, we can get a cut-free proof of \Gamma ~ \vdash ~ \Delta, \phi[c] where c is a constant not appearing in \Gamma, \Delta, (\forall x, \phi[x]).

We will do induction over the proof of \Gamma, (\forall x, \phi[x]) ~ \vdash ~ \Delta to show that each sub-proof of a judgment can be converted to one of a converted form of the judgment, where (\forall x, \phi[x]) is removed from the left, and where we only introduce cuts on sentences of the form \phi[t]. Each step of the proof will convert automatically except for applications of the left universal rule, of the form

\frac{\Sigma, (\forall x, \phi[x]), \phi[t] ~ \vdash ~ \Pi}{\Sigma, (\forall x, \phi[x]) ~ \vdash ~ \Pi}

where \Gamma \subseteq \Sigma and \Delta \subseteq \Pi. In the converted proof, we are instead trying to show \Sigma ~ \vdash ~ \Pi. We can prove this by inductively converting the proof of \Sigma, (\forall x, \phi[x]), \phi[t] ~ \vdash ~ \Pi to one of \Sigma, \phi[t] ~ \vdash ~ \Pi, and then applying cut:

\frac{\Sigma ~ \vdash ~ \Pi, \phi[t] ~~~~~~  \Sigma, \phi[t] ~ \vdash ~ \Pi}{\Sigma ~ \vdash ~ \Pi}

We can show \Sigma ~ \vdash ~ \Pi, \phi[t] by applying constant substitution to our cut-free proof of \Gamma ~ \vdash ~ \Delta, \phi[c] to get a cut-free proof of \Gamma ~ \vdash ~ \Delta, \phi[t], and then applying weakening elimination.

While we introduce more cuts into the proof, these all apply to a sentences of the form \phi[t], which have lower depth than the original universal (\forall x, \phi[x]), so this still decreases the cut rank.

Summary

To summarize, we first modify our proof to have no weakening and to only apply the assumption rule to atoms. Then we find an instance of cut where the proofs of the premises are cut-free. Depending on what sentence is cut, we find a way to remove this cut, only replacing it with cuts on sentences with lower depth. Overall, this succeeds in reducing the cut rank of the proof. Since the set of cut ranks (assumed to be zero almost everywhere) are well-ordered, this iterative process will eventually eliminate all cuts from the proof.

Conclusion

Cut elimination is a fundamental theorem of formal logic. I have shown cut elimination for the first-order sequent calculus described in the post on Gödel’s completeness theorem, which is a simplified form of system LK. Compared to explanations of cut elimination I have found in the literature, this is a relatively complete proof relative to its simplicity. It helps me at least understand how cut elimination can proceed in an algorithmic, syntactic manner on the proof tree. While applications of cut elimination are beyond the scope of this post, understanding the actual proof might help to understand how these applications work.

Leave a comment