The propositional proof terms of chapter 2 bind assumptions, but they do not bind individuals. In the expression ∀𝑥(𝑃(𝑥)→𝑄(𝑥)), the prefix ∀𝑥 is a quantifier: it binds 𝑥 and says “for every individual 𝑥.” The unary predicate symbols 𝑃,𝑄 in this example name properties of individuals. The expression therefore presents two new questions. Which individual may replace 𝑥, and which names are allowed to escape from a proof? A second obstruction appears when two proofs are composed. The first proof concludes a formula that the second proof consumes as an assumption; call this the intermediate formula. It may be much more complicated than the final conclusion. If backward search used only formulas occurring inside the final assumptions and conclusion, those finitely many formulas and their outermost connectives would give a finite list of rule applications to try. An arbitrary intermediate formula destroys that list. The chapter removes such formulas while controlling the names introduced by quantifier rules.
Terms, formulas, and substitution
Replacing an individual variable by a term can move a free name beneath a quantifier. To state which replacement avoids capture, the syntax must first separate individual variables from proof assumptions and record each binder. Fix an effective list of individual variables 𝑣0,𝑣1,𝑣2,…, ordered by their natural-number indices; also write them as 𝑥,𝑦,𝑧,𝑎,𝑏,…. The least variable outside any given finite set can then be found by scanning this list. Fix a first-order signatureΣ, a collection consisting of function symbols 𝑓 and predicate symbols 𝑃, each with a fixed finite arity. Constants are precisely the nullary function symbols.
Terms and formulas are the two syntactic classes generated by 𝑡::=𝑥∣𝑓(𝑡1,…,𝑡𝑛),𝐴::=𝑃(𝑡1,…,𝑡𝑛)∣⊥∣𝐴∧𝐴∣𝐴∨𝐴∣𝐴→𝐴∣∀𝑥𝐴∣∃𝑥𝐴. A term or formula is an abstract binding tree: a syntax tree whose binding structure is identified up to renaming of bound variables. Thus ∀𝑥𝑃(𝑥) and ∀𝑦𝑃(𝑦) are the same abstract binding tree: only the bound name changes. In ∀𝑥𝐴 and ∃𝑥𝐴, the quantifier binds free occurrences of 𝑥 in 𝐴; trees differing only in the choice of those bound names are identified, as in convention 2.3. The operations 𝐴[𝑡/𝑥] and 𝑠[𝑡/𝑥] are capture-avoiding substitution. Negation is an abbreviation, ¬𝐴:=𝐴→⊥, rather than a further formula constructor. Write |𝐴| for the number of logical connectives and quantifiers in 𝐴; atomic formulas and ⊥ have rank zero. Call this number the rank of 𝐴. A context Γ is a finite multiset of formulas, not the list of named assumptions of chapter 2: order does not matter, but repeated copies do. Thus exchanging two assumptions changes nothing, whereas contracting two copies into one changes the multiset.
Terms and formulas generated by definition 3.1 belong to the object language: they are the expressions whose proofs are studied. Claims that a formula is derivable, the inference rules that justify such claims, and side conditions such as freshness belong to the metalanguage: they are statements made about object-language expressions. Thus 𝐴→𝐵 is an object-language formula, whereas a rule display with premises above a line and a conclusion below it is a metalanguage definition of permitted derivations.
Write fv(𝐸) for the free individual variables of a term or formula. Recursively, fv(𝑥)={𝑥},fv(𝑓(¯𝑡))=⋃𝑖fv(𝑡𝑖),fv(𝑃(¯𝑡))=⋃𝑖fv(𝑡𝑖),fv(⊥)=∅,fv(𝐴∘𝐵)=fv(𝐴)∪fv(𝐵)(∘∈{∧,∨,→}),fv(𝑄𝑥𝐴)=fv(𝐴)∖{𝑥}(𝑄∈{∀,∃}). For a context, fv(Γ) is the union over its formulas. For any finite tuple of terms, formulas, and contexts, use the union convention fv(𝐸1,…,𝐸𝑘):=⋃1≤𝑖≤𝑘fv(𝐸𝑖).
For example, (∀𝑦𝑅(𝑥,𝑦))[𝑓(𝑧)/𝑥]=∀𝑦𝑅(𝑓(𝑧),𝑦), whereas substituting 𝑦 for 𝑥 first freshens the binder: (∀𝑦𝑅(𝑥,𝑦))[𝑦/𝑥]=𝛼∀𝑎𝑅(𝑦,𝑎),𝑎∉{𝑥,𝑦}. The freshening is not cosmetic. The unrenamed expression ∀𝑦𝑅(𝑦,𝑦) would capture the free argument.
The substitution-composition equation below records how two substitutions exchange order while updating the term inserted by the first substitution.
For terms and formulas, capture-avoiding substitution preserves formation and satisfies the following equations whenever the displayed freshness conditions hold: 𝐸[𝑡/𝑥][𝑢/𝑦]=𝐸[𝑢/𝑦][𝑡[𝑢/𝑦]/𝑥](𝑥≠𝑦,𝑥∉fv(𝑢)), and 𝐸[𝑡/𝑥]=𝐸 when 𝑥∉fv(𝐸). Moreover, term substitution does not change formula rank: |𝐴[𝑡/𝑥]|=|𝐴|.
For example, take 𝐸=𝑅(𝑥,𝑦), 𝑡=𝑓(𝑦), and 𝑢=𝑐. The two sides of the composition equation calculate to the same formula: 𝑅(𝑥,𝑦)[𝑓(𝑦)/𝑥][𝑐/𝑦]⏟_____⏟_____⏟𝑅(𝑓(𝑦),𝑦)[𝑐/𝑦]=𝑅(𝑓(𝑐),𝑐)=𝑅(𝑥,𝑦)[𝑐/𝑦][𝑓(𝑐)/𝑥]⏟_____⏟_____⏟𝑅(𝑥,𝑐)[𝑓(𝑐)/𝑥]. The replacement 𝑡[𝑢/𝑦]=𝑓(𝑐) on the right preserves the occurrence of 𝑦 already present inside 𝑡. The condition 𝑥≠𝑦 keeps the two substitution targets distinct. The condition 𝑥∉fv(𝑢) ensures that the final substitution for 𝑥 does not alter a copy of 𝑢 inserted earlier on the right.
Proof of Lemma 3.3 — First-order substitution laws
Proof. Here formation means that substituting a term for a variable in a term or formula produces another term or formula of the same syntactic category. Prove this claim and both equations simultaneously by structural induction on 𝐸. Function and predicate applications apply the induction hypothesis to each argument. For the absent-source equation at 𝐸=∀𝑧𝐵, first consider 𝑧=𝑥. Then (∀𝑥𝐵)[𝑡/𝑥]=∀𝑥𝐵 by the binding clause. If 𝑧≠𝑥, alpha-freshen it away from fv(𝑡)∪{𝑥}; the induction hypothesis for 𝐵 proves the equation under the reattached quantifier. For composition, alpha-freshen 𝑧 away from fv(𝑡)∪fv(𝑢)∪{𝑥,𝑦}. Both sides are ∀𝑧(𝐵[𝑡/𝑥][𝑢/𝑦])and∀𝑧(𝐵[𝑢/𝑦][𝑡[𝑢/𝑦]/𝑥]), which are equal by the induction hypothesis for 𝐵. The existential case is identical; each propositional connective recurses in both arguments. The rank equation holds in the same induction: replacing individual variables inside terms changes no logical connective or quantifier node. ◻
★☆☆ Compute (∃𝑦(𝑅(𝑥,𝑦)∧𝑃(𝑦)))[𝑦/𝑥] with a fresh binder 𝑎. Then show the free-variable set of your result and identify the variable that the naive textual replacement would capture.
Write Γ⊢𝖭𝐴 for natural-deduction derivability; the subscript 𝖭 names this proof system. It is intuitionistic: unlike classical logic, it has no rule that concludes 𝐴 from ¬¬𝐴 for arbitrary 𝐴. This is the first-order extension of the propositional system fixed in definition 2.38. The propositional rules are the familiar rules from chapter 2; the complete display fixes the exact rule set of this calculus. We omit ⊤ because its nullary introduction has no elimination case and does not occur among the intermediate formulas eliminated by the cut proof.
Quantifier rules. In the following display, a line without a derivability sign, such as 𝑎∉fv(Γ,∀𝑥𝐴), is a side condition to check, not another derivability premise.
Γ⊢𝖭𝐴[𝑎/𝑥]𝑎∉fv(Γ,∀𝑥𝐴)
Γ⊢𝖭∀𝑥𝐴
I
Γ⊢𝖭∀𝑥𝐴
Γ⊢𝖭𝐴[𝑡/𝑥]
E
Γ⊢𝖭𝐴[𝑡/𝑥]
Γ⊢𝖭∃𝑥𝐴
I
Γ⊢𝖭∃𝑥𝐴Γ,𝐴[𝑎/𝑥]⊢𝖭𝐶𝑎∉fv(Γ,𝐶,∃𝑥𝐴)
Γ⊢𝖭𝐶
E
The metavariable 𝑎 in the two side conditions is an eigenvariable: it represents an arbitrary individual and is not a witness chosen from the assumptions. Including the conclusion formula in the side condition prevents the eigenvariable from also occurring there as an unrelated free parameter. In a two-premise elimination rule, the derivation of the connective-bearing formula is the major premise; a derivation under a temporary branch assumption is a minor premise.
Let Γ={∀𝑥(𝑃(𝑥)→𝑄(𝑥)),∃𝑥𝑃(𝑥)}. Read the right branch below from its leaves: temporarily assume 𝑃(𝑎) for a fresh 𝑎, derive ∃𝑥𝑄(𝑥), and then use ∃E to discharge that temporary assumption. A complete derivation of Γ⊢𝖭∃𝑥𝑄(𝑥) is ∃𝑥𝑃(𝑥)∈ΓΓ⊢𝖭∃𝑥𝑃(𝑥)Hyp∀𝑥(𝑃(𝑥)→𝑄(𝑥))∈Γ,𝑃(𝑎)Γ,𝑃(𝑎)⊢𝖭∀𝑥(𝑃(𝑥)→𝑄(𝑥))HypΓ,𝑃(𝑎)⊢𝖭𝑃(𝑎)→𝑄(𝑎)E𝑃(𝑎)∈Γ,𝑃(𝑎)Γ,𝑃(𝑎)⊢𝖭𝑃(𝑎)HypΓ,𝑃(𝑎)⊢𝖭𝑄(𝑎)→EΓ,𝑃(𝑎)⊢𝖭∃𝑥𝑄(𝑥)IΓ⊢𝖭∃𝑥𝑄(𝑥)E with 𝑎∉fv(Γ,∃𝑥𝑄(𝑥),∃𝑥𝑃(𝑥)). Here ∃E has two derivation premises; its freshness check is printed beside them in definition 3.4. The witness introduced on the left is used locally and disappears from the conclusion.
An interpretationM consists of a nonempty set 𝐷, an element 𝑐M∈𝐷 for each constant 𝑐, a function 𝑓M:𝐷𝑛→𝐷 for each positive-arity function symbol 𝑓, and a subset 𝑃M⊆𝐷𝑛 for each 𝑛-ary predicate symbol 𝑃. An assignment𝜌 sends individual variables to elements of 𝐷. Write 𝜌[𝑥↦𝑑] for the assignment that sends 𝑥 to 𝑑 and agrees with 𝜌 on every other variable. Term denotation is defined recursively by [[𝑥]]𝜌=𝜌(𝑥),[[𝑐]]𝜌=𝑐M,[[𝑓(𝑡1,…,𝑡𝑛)]]𝜌=𝑓M([[𝑡1]]𝜌,…,[[𝑡𝑛]]𝜌). Write M,𝜌⊧𝐴 when 𝐴 is true. Its complete recursive definition is M,𝜌⊧𝑃(𝑡1,…,𝑡𝑛)⟺([[𝑡1]]𝜌,…,[[𝑡𝑛]]𝜌)∈𝑃M,M,𝜌⊧̸⊥,M,𝜌⊧𝐴∧𝐵⟺M,𝜌⊧𝐴andM,𝜌⊧𝐵,M,𝜌⊧𝐴∨𝐵⟺M,𝜌⊧𝐴orM,𝜌⊧𝐵,M,𝜌⊧𝐴→𝐵⟺M,𝜌⊧̸𝐴orM,𝜌⊧𝐵,M,𝜌⊧∀𝑥𝐴⟺M,𝜌[𝑥↦𝑑]⊧𝐴forevery𝑑∈𝐷,M,𝜌⊧∃𝑥𝐴⟺M,𝜌[𝑥↦𝑑]⊧𝐴forsome𝑑∈𝐷. A judgment is valid when, in every interpretation and assignment, truth of all its assumptions implies truth of its conclusion.
For a concrete calculation, take 𝐷={0,1}, interpret a constant 𝑐 by 0, set 𝑃M={1} and 𝑄M={0}, and choose 𝜌(𝑎)=0. Then [[𝑎]]𝜌=0, so 𝑃(𝑎) is false, while [[𝑐]]𝜌=0, so 𝑄(𝑐) is true. Consequently 𝑃(𝑎)→𝑄(𝑐) is true. The update 𝜌[𝑥↦1] makes 𝑃(𝑥) true, so ∃𝑥𝑃(𝑥) is true; the update 𝜌[𝑥↦0] makes it false, so ∀𝑥𝑃(𝑥) is false.
Fix an interpretation. If assignments 𝜌 and 𝜎 agree on the free variables of a term 𝑡, then [[𝑡]]𝜌=[[𝑡]]𝜎. If they agree on the free variables of a formula 𝐴, then M,𝜌⊧𝐴⟺M,𝜎⊧𝐴. Moreover, let 𝜌𝑢=𝜌[𝑥↦[[𝑢]]𝜌] be the assignment obtained by giving 𝑥 the denotation of 𝑢 under 𝜌. Then [[𝑡[𝑢/𝑥]]]𝜌=[[𝑡]]𝜌𝑢,M,𝜌⊧𝐴[𝑢/𝑥]⟺M,𝜌𝑢⊧𝐴.
Proof of Lemma 3.6 — Assignment agreement and semantic substitution
Proof. Prove all four assertions simultaneously by structural induction on terms and formulas. Variables use agreement directly, constants have fixed denotations, and a function application uses the term hypotheses for all arguments. The atomic case applies the term assertions to its arguments, and each propositional connective applies the formula hypotheses to its immediate subformulas. For ∀𝑦𝐵 and ∃𝑦𝐵, alpha-freshen 𝑦 away from 𝑥 and fv(𝑢). The induction hypothesis for 𝐵 then applies to each update at 𝑦. Updates at the distinct variables 𝑥 and 𝑦 commute, which gives the substitution equations under the reattached quantifier. ◻
Proof of Lemma 3.7 — Semantic soundness of natural deduction
Proof. Fix an interpretation M and induct on the natural-deduction derivation. Hypothesis and the propositional rules follow directly from the truth clauses in definition 3.5. In the quantifier cases, use assignment agreement and semantic substitution from lemma 3.6.
For ∀I, the semantic goal is to start from truth of Γ under 𝜌 and prove 𝐴 under every update 𝜌[𝑥↦𝑑]. Its premise derives Γ⊢𝖭𝐴[𝑎/𝑥], with 𝑎∉fv(Γ,∀𝑥𝐴). Suppose Γ is true under 𝜌, and fix 𝑑∈𝐷. Put 𝜌′=𝜌[𝑎↦𝑑]. Assignment agreement keeps every assumption true under 𝜌′. The induction hypothesis makes 𝐴[𝑎/𝑥] true under 𝜌′. Semantic substitution makes 𝐴 true under 𝜌′[𝑥↦𝑑]. If 𝑎=𝑥, this is exactly 𝜌[𝑥↦𝑑]. Otherwise it agrees with 𝜌[𝑥↦𝑑] on the free variables of 𝐴 because 𝑎∉fv(∀𝑥𝐴). Another application of assignment agreement therefore makes 𝐴 true under 𝜌[𝑥↦𝑑]. Since 𝑑 was arbitrary, ∀𝑥𝐴 is true under 𝜌.
For ∀E, the induction hypothesis makes ∀𝑥𝐴 true under 𝜌. Hence 𝐴 is true under 𝜌[𝑥↦[[𝑡]]𝜌]. Semantic substitution makes 𝐴[𝑡/𝑥] true under 𝜌, as required. For ∃I, the premise induction hypothesis makes 𝐴[𝑡/𝑥] true under 𝜌. The same equation makes 𝐴 true under 𝜌[𝑥↦[[𝑡]]𝜌], so that denotation is a witness for ∃𝑥𝐴.
For ∃E, suppose its major premise proves Γ⊢𝖭∃𝑥𝐴, its minor premise proves Γ,𝐴[𝑎/𝑥]⊢𝖭𝐶, and 𝑎∉fv(Γ,𝐶,∃𝑥𝐴). If Γ is true under 𝜌, the major induction hypothesis gives 𝑑∈𝐷 such that 𝐴 is true under 𝜌[𝑥↦𝑑]. Put 𝜌′=𝜌[𝑎↦𝑑]. The substitution equation makes 𝐴[𝑎/𝑥] true under 𝜌′, while assignment agreement keeps Γ true there. The minor induction hypothesis makes 𝐶 true under 𝜌′; assignment agreement and freshness of 𝑎 for 𝐶 make 𝐶 true under 𝜌. These are exactly the two cases using eigenvariable freshness. The four quantifier cases, together with the propositional truth clauses, exhaust the rule induction. ◻
If ∀I allowed 𝑎∈fv(Γ), then 𝑃(𝑎)⊢𝖭∀𝑥𝑃(𝑥) would be derivable, although the premise says nothing about individuals other than 𝑎. If it required freshness only for Γ, a free occurrence of 𝑎 already in the target formula could likewise be mistaken for the arbitrary individual being generalized.
Proof of Proposition 3.8 — Why the whole eigenvariable condition is necessary
Proof. Hypothesis gives 𝑃(𝑎)⊢𝖭𝑃(𝑎). The unsound rule would generalize this derivation to 𝑃(𝑎)⊢𝖭∀𝑥𝑃(𝑥). In a two-element interpretation with elements 𝑑0,𝑑1, let the assignment send 𝑎 to 𝑑0, and interpret 𝑃 by {𝑑0}. The premise is true and the conclusion false. The condition 𝑎∉fv(Γ) blocks exactly this derivation.
For the second failure, take 𝐴=𝑃(𝑥)→𝑃(𝑎) and an empty context. Implication identity derives ⊢𝖭𝑃(𝑎)→𝑃(𝑎)=𝐴[𝑎/𝑥]. A rule checking only the context would then derive ⊢𝖭∀𝑥(𝑃(𝑥)→𝑃(𝑎)). Interpret 𝑎 as one element where 𝑃 is false and let 𝑃 hold at another element. The displayed universal formula is false. Requiring 𝑎∉fv(Γ,∀𝑥𝐴) blocks this second derivation as well. ◻
By lemma 3.7, either counterinterpretation proves that the weakened rule is unsound. No semantic interpretation is needed in the syntactic developments below.
Let 𝑋 be a finite set of individual variables. Every natural-deduction derivation has a derivation of the same end judgment and the same height in which every locally introduced eigenvariable lies outside 𝑋.
Proof of Lemma 3.9 — Freshening natural-deduction eigenvariables
Proof. Prove by induction on the derivation the assertion for every finite forbidden set 𝑋. The induction hypothesis may therefore be applied to each immediate premise with any enlarged finite set. Rebuild every rule without an eigenvariable from the resulting premise derivations.
Suppose the last rule is ∀I with eigenvariable 𝑎; the ∃E case has the same two binding positions. Apply the induction hypothesis to each scoped premise with the strengthened forbidden set 𝑋∪{𝑎}. Let 𝑍 be the finite set of all individual variables occurring in that transformed premise derivation. If 𝑎∉𝑋, retain 𝑎. If 𝑎∈𝑋, choose 𝑏∉𝑋∪𝑍 and consistently rename the occurrences governed by the outer rule from 𝑎 to 𝑏. Structural induction on the transformed premise shows that each rule instance remains valid; in particular, 𝐴[𝑎/𝑥] becomes 𝐴[𝑏/𝑥]. No nested eigenvariable is captured because 𝑏∉𝑍. The outer eigenvariable is absent from the end judgment by the rule’s side condition, so the end judgment is unchanged. The premise height and final rule node are unchanged. Thus every nested eigenvariable avoids 𝑋, and the outer one does as well. ◻
Suppose a natural-deduction derivation ends in ∀I or ∃E, and let 𝑏 satisfy that rule’s freshness condition for the end judgment. The outer eigenvariable can be renamed to 𝑏 without changing the end judgment or height, while every eigenvariable nested in its scoped premise avoids any given finite set 𝑋∪{𝑏}.
Proof of Corollary 3.10 — Prescribed outer natural-deduction eigenvariable
Proof. Apply lemma 3.9 to each scoped premise with forbidden set 𝑋∪{𝑏}. The transformed nested eigenvariables therefore avoid 𝑏. Consistently rename the outer eigenvariable to 𝑏; the freshness hypothesis keeps the end judgment fixed, and the preceding avoidance prevents capture. Renaming changes no rule node. ◻
Part (c) below composes a derivation producing 𝐴 with one that uses 𝐴; it is the natural-deduction form of Cut. Eigenvariable freshening in its proof means the height-preserving operation of lemma 3.9.
Proof of Lemma 3.11 — Weakening and individual substitution
Proof. For (a), induct on the derivation and enlarge every context. In a quantifier case use lemma 3.9 with 𝑋=fv(Δ) before applying the induction hypothesis. For (b), induct again. The only binder case is ∀I or ∃E; choose its eigenvariable 𝑏 outside fv(𝑡)∪{𝑎}. Thus 𝑏≠𝑎, so substitution passes through the eigenbinder rather than stopping at it. Then lemma 3.3 gives the required commutation of formula substitution with the binder, while freshness preserves the rule’s side condition. For (c), induct on the derivation of Γ,𝐴⊢𝖭𝐶. A use of the distinguished hypothesis is replaced by the given derivation. If the leaf occurs under local assumptions Θ, clause (a) first weakens Δ⊢𝖭𝐴 to Δ,Θ⊢𝖭𝐴; the replacement therefore has exactly the leaf’s local context. At that leaf the transformation is 𝐴∈Γ,𝐴,ΘΓ,𝐴,Θ⊢𝖭𝐴HypisreplacedbyWΓ,Θ(D):Γ,Δ,Θ⊢𝖭𝐴, where D:Δ⊢𝖭𝐴 and WΓ,Θ is weakening by clause (a). Every rule above that leaf is reconstructed from the transformed premises. In an ∃E case freshen the local eigenvariable away from Δ before using the induction hypotheses. For clause (d), induct on the derivation. A hypothesis leaf depends only on membership, so replacing two copies of 𝐴 by one preserves it. Rebuild every connective rule from the induction hypotheses. In a quantifier rule, alpha-freshen its eigenvariable away from 𝐴 before rebuilding the rule; the side condition is then unchanged. ◻
The one-conclusion sequent calculus LJ
Natural deduction composes premises inside elimination. For example, →E combines a derivation of 𝐴→𝐵 with one of 𝐴 and returns 𝐵 directly. In LJ, →L instead analyzes an antecedent occurrence of the implication; the composition operation becomes a separate displayed rule.
A sequent is an assertion Γ⇒𝐴 that 𝐴 follows from the multiset of assumptions Γ. The symbol → is the object-language implication connective, whereas ⇒ separates an antecedent from its single succedent. Thus 𝑃(𝑐)→𝑄(𝑐) is a formula, while 𝑃(𝑐),𝑃(𝑐)→𝑄(𝑐)⇒𝑄(𝑐) is a sequent. Syntactically, a sequent assertion means derivability by the following rules. The structural and logical rules are
Γ,𝐴⇒𝐴
Ax
Γ⇒𝐴Δ,𝐴⇒𝐶
Γ,Δ⇒𝐶
Cut
Γ⇒𝐶
Γ,𝐴⇒𝐶
W_L
Γ,𝐴,𝐴⇒𝐶
Γ,𝐴⇒𝐶
C_L
Γ,⊥⇒𝐶
L
Γ⇒𝐴Γ⇒𝐵
Γ⇒𝐴∧𝐵
R
Γ,𝐴𝑖⇒𝐶
Γ,𝐴1∧𝐴2⇒𝐶
L_i
Γ⇒𝐴
Γ⇒𝐴∨𝐵
R_1
Γ⇒𝐵
Γ⇒𝐴∨𝐵
R_2
Γ,𝐴⇒𝐶Γ,𝐵⇒𝐶
Γ,𝐴∨𝐵⇒𝐶
L
Γ,𝐴⇒𝐵
Γ⇒𝐴→𝐵
→ R
Γ⇒𝐴Δ,𝐵⇒𝐶
Γ,Δ,𝐴→𝐵⇒𝐶
→ L
Γ⇒𝐴[𝑎/𝑥]𝑎∉fv(Γ,∀𝑥𝐴)
Γ⇒∀𝑥𝐴
R
Γ,𝐴[𝑡/𝑥]⇒𝐶
Γ,∀𝑥𝐴⇒𝐶
L
Γ⇒𝐴[𝑡/𝑥]
Γ⇒∃𝑥𝐴
R
Γ,𝐴[𝑎/𝑥]⇒𝐶𝑎∉fv(Γ,𝐶,∃𝑥𝐴)
Γ,∃𝑥𝐴⇒𝐶
L
All displayed terms and formulas are well formed over Σ. Exchange is implicit because contexts are multisets. An eigenvariable freshness line printed in a premise slot is a metalevel side condition on the rule instance, not another derivability judgment. Here Ax, Cut, W𝐿, and C𝐿 are the structural rules. ⊥L and every connective or quantifier rule are logical rules. The main text labels a logical rule by its symbol, such as ∀R. In compact rule names, And, Or, Imp, All, and Some denote ∧,∨,→,∀,∃, while L and R retain the same side designation. Thus All-R and ∀R name the same rule.
The displayed implication sequent already has a complete LJ derivation: 𝑋𝑃(𝑐)⇒𝑃(𝑐)Ax𝑋𝑄(𝑐)⇒𝑄(𝑐)Ax𝑃(𝑐),𝑃(𝑐)→𝑄(𝑐)⇒𝑄(𝑐)→L. The two Ax leaves have empty side contexts. The final rule analyzes the antecedent implication: its left premise establishes 𝑃(𝑐), and its right premise continues from 𝑄(𝑐).
The one-formula succedent is the intuitionistic restriction. Gentzen’s classical calculus LK uses finite multisets on both sides, Γ⇒Δ, and its logical rules may retain other formulas in Δ. LJ is not obtained by interpreting such a multisuccedent as a single implicit disjunction: the restriction to one displayed conclusion is part of the formal system. Only LJ is developed in this chapter.
Let 𝑋 be a finite set of individual variables. Every LJ derivation has a derivation of the same end sequent and height in which every eigenvariable introduced by ∀R or ∃L lies outside 𝑋.
Proof of Lemma 3.13 — Freshening LJ eigenvariables
Proof. Prove by induction on the LJ derivation the assertion for every finite forbidden set 𝑋. The induction hypothesis may therefore be applied to an immediate premise with any enlarged finite set. Rebuild a rule without an eigenvariable from the resulting premises.
Suppose the final rule has outer eigenvariable 𝑎. Apply the induction hypothesis to its scoped premise with forbidden set 𝑋∪{𝑎}. Let 𝑍 contain every individual variable occurring in the transformed premise derivation. Retain 𝑎 if 𝑎∉𝑋. Otherwise choose 𝑏∉𝑋∪𝑍 and rename the occurrences governed by the final rule from 𝑎 to 𝑏. Structural induction on the premise preserves every LJ rule instance and changes 𝐴[𝑎/𝑥] to 𝐴[𝑏/𝑥]. The side condition keeps the outer name absent from the end sequent, and 𝑏∉𝑍 prevents capture of nested eigenvariables. No rule node is added or deleted. ◻
If an LJ derivation ends in ∀R or ∃L, any variable 𝑏 satisfying that rule’s freshness condition can replace its outer eigenvariable without changing the end sequent or height. The nested eigenvariables may simultaneously be required to avoid a given finite set 𝑋∪{𝑏}.
Proof of Corollary 3.14 — Prescribed outer LJ eigenvariable
Proof. Freshen the scoped premise by lemma 3.13 with forbidden set 𝑋∪{𝑏}, and then consistently rename the outer eigenvariable to 𝑏. The rule’s freshness condition fixes the end sequent, and the nested avoidance condition prevents capture. ◻
Proof. Fix an interpretation and assignment 𝜌, and induct on the derivation. Ax selects a true antecedent formula. Weakening and contraction preserve the conditions imposed by antecedent truth. For Cut, antecedent truth and the left induction hypothesis make the cut formula true; the right induction hypothesis then makes the succedent true. For a representative branching propositional case, suppose the last rule is ∨L. Truth of 𝐴∨𝐵 gives either truth of 𝐴 or truth of 𝐵; apply the induction hypothesis for the corresponding premise. Rule →L first uses its left induction hypothesis to make 𝐴 true. Truth of 𝐴→𝐵 then makes 𝐵 true, so the right induction hypothesis yields the succedent. The remaining propositional rules apply the displayed truth clause for their principal connective.
For ∀L, truth of ∀𝑥𝐴 gives truth of 𝐴 under 𝜌[𝑥↦[[𝑡]]𝜌]. Semantic substitution makes 𝐴[𝑡/𝑥] true under 𝜌, so the premise induction hypothesis applies. For ∃R, the premise makes 𝐴[𝑡/𝑥] true; semantic substitution makes [[𝑡]]𝜌 a witness. The ∀R argument is the ∀I argument of lemma 3.7 with sequents in place of natural-deduction judgments. The ∃L argument is its ∃E minor-premise argument: update the fresh eigenvariable to the witness supplied by the true existential. These cases exhaust LJ. ◻
The split-context form of →E is admissible from the shared-context rule: weaken both premises to Γ,Δ and apply →E. In the notation just defined, Γ⊢𝖭𝐴→𝐵Δ⊢𝖭𝐴Γ,Δ⊢𝖭𝐵→E becomes the two-stage LJ construction Γ⇒𝐴→𝐵Δ⇒𝐴𝐵⇒𝐵Δ,𝐴→𝐵⇒𝐵→LΓ,Δ⇒𝐵Cut. The intermediate implication is now visible as the cut formula.
The principal formula of a logical rule instance is the formula it introduces in the conclusion; all unchanged formulas there are side formulas. In →L and Cut the two premises may use different assumption occurrences, so their contexts are joined. By additive here we mean a two-premise rule whose premises reuse the same context: ∧R and ∨L require both premises under the same assumptions. Because weakening and contraction are available, these choices do not restrict ordinary provability. They do determine which antecedent occurrences each cut permutation transports into a premise.
The running argument becomes 𝑃(𝑎)⇒𝑃(𝑎)𝑄(𝑎)⇒𝑄(𝑎)𝑄(𝑎)⇒∃𝑥𝑄(𝑥)R𝑃(𝑎),𝑃(𝑎)→𝑄(𝑎)⇒∃𝑥𝑄(𝑥)→L𝑃(𝑎),∀𝑥(𝑃(𝑥)→𝑄(𝑥))⇒∃𝑥𝑄(𝑥)L∀𝑥(𝑃(𝑥)→𝑄(𝑥)),∃𝑥𝑃(𝑥)⇒∃𝑥𝑄(𝑥)L. The final ∃L uses an eigenvariable 𝑎 fresh for ∀𝑥(𝑃(𝑥)→𝑄(𝑥)), ∃𝑥𝑃(𝑥), and ∃𝑥𝑄(𝑥). Both leaves are direct instances of Ax with empty side context; no weakening is needed there.
★★☆ Derive ∀𝑥(𝑃(𝑥)∧𝑄(𝑥))⇒(∀𝑥𝑃(𝑥))∧(∀𝑥𝑄(𝑥)). Write both eigenvariables. Write every Ax leaf in its full-side-context form Γ,𝐴⇒𝐴, recording the side context actually present (possibly empty), and state explicitly whether any W𝐿 applications remain necessary.
Individual substitution preserves cut-free LJ derivability. One or finitely many applications of W𝐿 and C𝐿 also preserve cut-freeness; the only formulas they add are the formulas explicitly weakened into the antecedent.
Proof of Lemma 3.16 — Structural bookkeeping without cut
Proof. Individual substitution is induction on the derivation, with eigenvariables freshened by lemma 3.13 away from the source variable and the free variables of the inserted term. In a final ∀R or ∃L case, choose the eigenvariable 𝑏 outside that set, apply the induction hypothesis to the premise, use lemma 3.3 to commute the two individual substitutions, and rebuild the same quantified rule. Each weakening or contraction is already a primitive LJ rule. Append the required rule instances one at a time. None is Cut, so the result remains cut-free. ◻
Proof of Lemma 3.17 — Split-context natural-deduction eliminations
Proof. For implication, weaken both premises to Γ,Δ, apply the shared-context →E rule, and obtain exactly Γ,Δ⊢𝖭𝐵. For disjunction, weaken all three premises to Γ,Δ,Θ, preserving the temporary assumption in each minor premise; the shared-context ∨E rule already has the required conclusion. For existential elimination, first use corollary 3.10 to choose its eigenvariable away from Γ,Δ,𝐶,∃𝑥𝐴. Weaken the major and minor premises to Γ,Δ and apply ∃E; again the shared rule has exactly the required context. Bottom elimination is followed by weakening. The unary forms are the original rule instances. ◻
Natural deductions and sequents prove the same formulas
The right-to-left translation handles a Cut by assumption substitution. The left-to-right translation needs Cut to simulate natural-deduction eliminations.
Proof. From natural deduction to LJ, induct on the natural-deduction derivation. Use the admissible forms of lemma 3.17; a shared-context source rule is their instance with equal contexts. Introduction rules become the corresponding right rules. For implication elimination, translate the premises to Γ⇒𝐴→𝐵 and Δ⇒𝐴. Rule →L, with the second premise 𝐵⇒𝐵, derives Δ,𝐴→𝐵⇒𝐵; Cut against the first translation derives Γ,Δ⇒𝐵. When the source is the primitive shared-context rule, Γ=Δ; contract the duplicated assumption occurrences to recover its one-copy source context.
Disjunction elimination is different because it has two minor branches. Translations Γ⇒𝐴∨𝐵,Δ,𝐴⇒𝐶,Θ,𝐵⇒𝐶 are first weakened so that the two minor premises share Δ,Θ. Rule ∨L then derives Δ,Θ,𝐴∨𝐵⇒𝐶, and Cut with the major translation derives Γ,Δ,Θ⇒𝐶. Contract precisely the occurrences duplicated when source contexts coincide.
For existential elimination, first use corollary 3.10 to choose its eigenvariable away from both source contexts. Translate its major and minor premises to Γ⇒∃𝑥𝐴,Δ,𝐴[𝑎/𝑥]⇒𝐶. Then ∃L derives Δ,∃𝑥𝐴⇒𝐶, and Cut derives Γ,Δ⇒𝐶. The source freshness condition is now exactly the LJ condition on the rebuilt left rule. Conjunction and universal elimination follow the same unary schema: use the matching left rule on an Ax leaf for the selected component or instance, then Cut the translated major premise. If the source existential elimination used one shared context, contract the two translated copies after the Cut. Bottom elimination uses ⊥L followed by Cut. These are all natural-deduction rule families.
From LJ to natural deduction, induct on the sequent derivation. Right rules are the corresponding introductions. For →L, the induction hypotheses give Γ⊢𝖭𝐴 and Δ,𝐵⊢𝖭𝐶. Under Γ,Δ,𝐴→𝐵, implication elimination applied to the principal hypothesis and the weakened proof of 𝐴 gives 𝐵; proof substitution from lemma 3.11(c) inserts that proof into the translated right premise.
For ∨L, use the principal hypothesis 𝐴∨𝐵 as the major premise of ∨E and the two translated premises as its minor branches. For ∃L, use the principal hypothesis ∃𝑥𝐴 as the major premise of ∃E and the translated LJ premise as its minor premise. The LJ side condition is literally the natural-deduction side condition. Conjunction left, universal left use the matching unary elimination on the principal hypothesis and then clause (c) to insert the result into the translated premise. The nullary ⊥L case is direct: from the principal hypothesis ℎ:⊥, rule ⊥E derives the required conclusion, with no translated premise to substitute into. Cut is clause (c) itself. Weakening uses clause (a), contraction uses clause (d), and Ax uses Hyp. The displayed constructions cover every branching and binding form; the unary schema covers exactly ∧L𝑖 and ∀L. ◻
For the running proof, the translation can be read from the outside inward. The final ∃L becomes ∃E: ∃𝑥𝑃(𝑥)∈ΓΓ⊢𝖭∃𝑥𝑃(𝑥)HypΓ,𝑃(𝑎)⊢𝖭∃𝑥𝑄(𝑥)Γ⊢𝖭∃𝑥𝑄(𝑥)E. Inside the minor premise, ∀L becomes ∀E on the hypothesis ∀𝑥(𝑃(𝑥)→𝑄(𝑥)), →L becomes →E with the hypothesis 𝑃(𝑎), and ∃R becomes ∃I. The uses of lemma 3.11(c) insert these derived formulas into the translated remainder; in the displayed running tree the relevant remainders are identity derivations, so that insertion is invisible.
★★☆ Translate the displayed LJ proof of the running formula into natural deduction. Circle the ∃E subderivation and state why its eigenvariable condition is unchanged by the translation.
A derivation with Cut may introduce a formula and immediately analyze it. We remove that detour by measuring the cut formula before measuring either proof.
An induction directly on the two premises of ordinary Cut fails in the contraction case. If the right derivation ends by contracting the cut formula, D:Γ⇒𝐴E:Δ,𝐴,𝐴⇒𝐶Δ,𝐴⇒𝐶CLΓ,Δ⇒𝐶Cut, the tempting sequential repair first cuts one selected copy in E and then cuts the other. The right premise of the second Cut is the output of the first Cut, not a proper subderivation of E; its height therefore need not decrease. The recursive call must remove all selected copies while its right premise is still the genuine subderivation E. An 𝐴-multicut therefore removes all marked copies in one recursive call.
The strengthened 𝐴-multicut takes Γ⇒𝐴 and Δ,𝐴[𝑛]⇒𝐶, with 𝑛≥1, removes 𝑛 marked occurrences of 𝐴 and concludes Γ,Δ⇒𝐶. The brackets are bookkeeping, not formula syntax: 𝐴[𝑛] means 𝑛 selected copies in the antecedent, while Δ contains every unselected occurrence, possibly including further copies of 𝐴. Only the selected copies are removed. Thus a multicut is indexed not just by the end sequent but by the chosen decomposition Δ,[𝐴]1,…,[𝐴]𝑛: the bracketed occurrences are selected and all occurrences inside Δ are retained.
For the contraction configuration that forced the strengthening, mark the two occurrences in the proper premise E: D:Γ⇒𝐴E:Δ,[𝐴]1,[𝐴]2⇒𝐶Δ,𝐴⇒𝐶CLΓ,Δ⇒𝐶Cut. Its repaired recursive call is D:Γ⇒𝐴E:Δ,[𝐴]1,[𝐴]2⇒𝐶Γ,Δ⇒𝐶A−MCut2. The subscripts select occurrences and are not formula syntax. If height is the number of rule nodes on a longest branch, the old recursive pair has height sum ℎ(D)+ℎ(E)+1, because its right derivation includes the final contraction. The repaired recursive pair is (D,E), with sum ℎ(D)+ℎ(E). It is therefore strictly smaller. A sequence of two ordinary cuts would make the right premise of the second cut the output of the first, rather than a proper subderivation of E.
Suppose two cut-free derivations end by introducing the cut formula 𝐴 on the right and on the left, respectively. Assume every cut between cut-free derivations on a formula of rank smaller than |𝐴| can be eliminated. Then their cut has a cut-free replacement.
Proof. The reductions are determined by the outer constructor of 𝐴.
For 𝐴=𝐴1∧𝐴2, the derivation producing 𝐴 ends in ∧R and the derivation using 𝐴 ends in ∧L𝑖. The complete local replacement is D1:Γ⇒𝐴1D2:Γ⇒𝐴2Γ⇒𝐴1∧𝐴2RE:Δ,𝐴𝑖⇒𝐶Δ,𝐴1∧𝐴2⇒𝐶LiΓ,Δ⇒𝐶Cut. Replace it by D𝑖:Γ⇒𝐴𝑖E:Δ,𝐴𝑖⇒𝐶Γ,Δ⇒𝐶Cut. The replacement cuts on the proper subformula 𝐴𝑖.
For 𝐴=𝐴1∨𝐴2, the producing rule is ∨R𝑖 and the using rule is ∨L. The reduction is D𝑖:Γ⇒𝐴𝑖Γ⇒𝐴1∨𝐴2RiE1:Δ,𝐴1⇒𝐶E2:Δ,𝐴2⇒𝐶Δ,𝐴1∨𝐴2⇒𝐶LΓ,Δ⇒𝐶Cut. Replace it by D𝑖:Γ⇒𝐴𝑖E𝑖:Δ,𝐴𝑖⇒𝐶Γ,Δ⇒𝐶Cut. The unused branch disappears.
For 𝐴=𝐴1→𝐴2, write the final rules as Γ,𝐴1⇒𝐴2Γ⇒𝐴1→𝐴2→R,Δ⇒𝐴1Θ,𝐴2⇒𝐶Δ,Θ,𝐴1→𝐴2⇒𝐶→L. First cut Δ⇒𝐴1 into Γ,𝐴1⇒𝐴2, obtaining Γ,Δ⇒𝐴2. Eliminate this lower-rank cut by the lemma’s assumption before the second is formed. Then cut its cut-free result into Θ,𝐴2⇒𝐶, and eliminate that lower-rank cut by the same assumption. The two new cut formulas are 𝐴1 and 𝐴2.
For 𝐴=∀𝑥𝐵, the derivation producing 𝐴 ends in ∀R with a fresh 𝑎, and the derivation using 𝐴 ends in ∀L at a term 𝑡. Freshen 𝑎 away from Γ,Δ,𝐶,𝑡, apply individual substitution 𝑡/𝑎 to the ∀R premise, and cut the resulting proof of 𝐵[𝑡/𝑥] against the ∀L premise: D[𝑡/𝑎]:Γ⇒𝐵[𝑡/𝑥]E:Δ,𝐵[𝑡/𝑥]⇒𝐶Γ,Δ⇒𝐶Cut. Here |𝐵[𝑡/𝑥]|=|𝐵|<|∀𝑥𝐵| by lemma 3.3, so the new cut has smaller rank. For 𝐴=∃𝑥𝐵, the producing rule has premise D:Γ⇒𝐵[𝑡/𝑥] for a witness 𝑡, and the using rule opens an eigenvariable 𝑎. Freshen 𝑎 away from the producing derivation, substitute 𝑡/𝑎 through the using premise, and cut D:Γ⇒𝐵[𝑡/𝑥]E[𝑡/𝑎]:Δ,𝐵[𝑡/𝑥]⇒𝐶Γ,Δ⇒𝐶Cut. Again |𝐵[𝑡/𝑥]|=|𝐵|<|∃𝑥𝐵| by lemma 3.3. In every displayed case, eliminate the new lower-rank cuts by the lemma’s assumption. Atomic formulas have no principal introduction pair, and ⊥ has no right introduction. ◻
Let 𝐻:=∀𝑥(𝑃(𝑥)→𝑄(𝑥)), and let 𝑎 be fresh. The complete right premise is E𝑎:=𝑋𝑃(𝑎)⇒𝑃(𝑎)Ax𝑋𝑄(𝑎)⇒𝑄(𝑎)Ax𝑄(𝑎)⇒∃𝑥𝑄(𝑥)R𝑃(𝑎),𝑃(𝑎)→𝑄(𝑎)⇒∃𝑥𝑄(𝑥)→L𝐻,𝑃(𝑎)⇒∃𝑥𝑄(𝑥)L𝐻,∃𝑥𝑃(𝑥)⇒∃𝑥𝑄(𝑥)L. Now form the cut itself: 𝑋𝑃(𝑐)⇒𝑃(𝑐)Ax𝑃(𝑐)⇒∃𝑥𝑃(𝑥)RE𝑎𝑃(𝑐),𝐻⇒∃𝑥𝑄(𝑥)Cut. Its measure has cut rank 1. The principal reduction substitutes 𝑐/𝑎 in the right minor premise and replaces that cut by 𝑃(𝑐)⇒𝑃(𝑐)𝐻,𝑃(𝑐)⇒∃𝑥𝑄(𝑥)𝑃(𝑐),𝐻⇒∃𝑥𝑄(𝑥)Cut. Its cut formula is the proper subformula 𝑃(𝑐). Its left premise is Ax, so the cut merely replaces uses of that same assumption by the identical assumption; deleting the Cut node leaves the instantiated right premise (up to exchange, which is implicit because 𝐻,𝑃(𝑐) and 𝑃(𝑐),𝐻 are the same multiset). No weakening or contraction is needed in this instance. Thus one concrete reduction visibly lowers rank from an existential formula to an atom and then terminates.
One nonprincipal step can be made equally concrete. Apply W𝐿 to E𝑎, adding an unrelated formula 𝑅, and cut the same left premise against that weakened conclusion. The right last rule is not principal for ∃𝑥𝑃(𝑥), so commuting produces 𝑃(𝑐)⇒∃𝑥𝑃(𝑥)E𝑎𝑃(𝑐),𝐻⇒∃𝑥𝑄(𝑥)Cut𝑃(𝑐),𝐻,𝑅⇒∃𝑥𝑄(𝑥)WL. The cut rank remains 1, but its right premise has lost the final weakening, so the height sum decreases by one. The principal reduction above then removes the remaining cut.
★★☆ Draw the complete principal reduction for a cut between ∃R with witness 𝑡 and ∃L with eigenvariable 𝑎. Mark the use of individual substitution and verify 𝑎∉fv(𝑡,Γ,𝐶) after alpha-freshening.
Write the Ax conclusion as Θ,𝐴⇒𝐴. Weaken E by every formula of Θ, then contract its 𝑛 selected copies of 𝐴 to the one retained from the identity context. The result is Θ,𝐴,Δ⇒𝐶, the required conclusion.
If 𝐶 is an unselected member of Δ, Ax directly gives Γ,Δ⇒𝐶. Otherwise the Ax leaf uses a selected copy, so 𝐶=𝐴; weaken D by Δ.
The context Γ contains ⊥. Hence ⊥L directly derives Γ,Δ⇒𝐶.
The unselected context Δ contains the principal ⊥, so the same zero-premise rule directly derives Γ,Δ⇒𝐶.
The premise of the weakening is Δ⇒𝐶. Weaken it by every formula occurrence of Γ.
Suppose none of the preceding base cases applies. If the selected formula 𝐴 is nonprincipal in the last rule of one premise, the multicut commutes above that rule. A final contraction of selected copies is handled by one multicut over all copies, and a final weakening is handled by a multicut over the selected copies that remain. Every recursive multicut has the same formula rank and strictly smaller height sum.
Proof. First suppose the last rule belongs to the derivation using 𝐴. Recurse on exactly those premises containing selected occurrences and rebuild the same rule. For an additive rule, such as ∧R, both recursive conclusions have the same context Γ,Δ, so the rule reapplies directly.
A split-context rule shows the extra bookkeeping. If a nonprincipal →L distributes the selected copies between its premises, its end is Δ,𝐴[𝑛1]⇒𝐵Θ,𝐴[𝑛2],𝐷⇒𝐶Δ,Θ,𝐴[𝑛1+𝑛2],𝐵→𝐷⇒𝐶→L. For each positive 𝑛𝑖, recursively multicut that premise with D:Γ⇒𝐴; leave a premise with 𝑛𝑖=0 unchanged. When both are positive, reapplying →L gives Γ,Δ⇒𝐵Γ,Θ,𝐷⇒𝐶Γ,Δ,Γ,Θ,𝐵→𝐷⇒𝐶→L. Contract the two inserted copies of every occurrence in Γ. If only one 𝑛𝑖 is positive, Γ is inserted only once and no contraction is needed. Thus the rebuilt conclusion is always Γ,Δ,Θ,𝐵→𝐷⇒𝐶.
Every recursive right premise is a proper subderivation, so its height sum is smaller. Before commuting through ∀R or ∃L, alpha-freshen the eigenvariable away from the other cut premise.
Now suppose the last rule belongs to the derivation producing 𝐴. These data are not obtained by exchanging the two multicut premises. If the producer ends in a split →L on a side formula 𝐵→𝐷, it has the form D1:Γ⇒𝐵D2:Θ,𝐷⇒𝐴Γ,Θ,𝐵→𝐷⇒𝐴→L. Only D2 still produces the cut formula. Recursively multicut D2 with E:Δ,𝐴[𝑛]⇒𝐶, obtaining Θ,𝐷,Δ⇒𝐶, and rebuild →L with the unchanged D1: D1:Γ⇒𝐵Θ,𝐷,Δ⇒𝐶Γ,Θ,Δ,𝐵→𝐷⇒𝐶→L. The recursive height sum is ℎ(D2)+ℎ(E), strictly below ℎ(D)+ℎ(E).
A branching producer-side ∨L has both premises ending in succedent 𝐴. Recurse once on each proper premise with the unchanged consumer, then rebuild ∨L; both recursive height sums decrease, and the shared Δ is a side context in each rebuilt branch. The producer-side ∧R case cannot be nonprincipal, because its succedent is its principal conjunction. For a unary logical left rule, recurse on its sole premise and rebuild it. If that rule is ∃L, first use lemma 3.13 to choose its eigenvariable away from Δ,𝐴,𝐶, so the rebuilt rule preserves its side condition.
For producer-side W𝐿 or C𝐿, recurse on the proper premise and reapply the same structural rule to the formula it added or contracted. A producer-side Ax or ⊥L is a base case. A producer-side right rule makes its succedent principal and is therefore not a commuting case. These observations cover every producer-side rule family; each recursive producer premise is proper, so every height sum decreases.
If the final rule contracts selected copies, its premise has one additional selected occurrence. One recursive multicut removes all of them, and the proper right premise lowers the height sum. For contraction of an unselected formula 𝐵, recurse on the premise containing 𝐵,𝐵, then apply C𝐿 to those two occurrences in the recursive conclusion. If a final weakening erases one selected copy while others remain, recurse on those remaining copies in its proper premise; the case in which none remains is base case 5. Finally, if E ends in ⊥L on a selected ⊥, no right rule can introduce the cut formula. The last rule of D is therefore a base case or is nonprincipal, so the producer-side construction described above applies. These cases exhaust the structural and zero-premise rules. ◻
Recall from definition 3.1 that |𝐴| counts the logical connectives and quantifiers in 𝐴. Let ℎ(D) be the number of rule instances on the longest root-to-leaf branch of D; a zero-premise rule has height one. A multicut with premises D,E has lexicographic measure (|𝐴|,ℎ(D)+ℎ(E)). Here (𝑚,𝑘)<lex(𝑚′,𝑘′) means either 𝑚<𝑚′, or 𝑚=𝑚′ and 𝑘<𝑘′. A principal reduction replaces the cut formula by proper subformulas, so the first component decreases. A commuting conversion keeps the formula and replaces one premise by a proper subderivation, so the second component decreases. Commuting past contraction may increase the selected multiplicity 𝑛, but it still uses the proper right subderivation; this is why 𝑛 is absent from the measure. Lexicographic induction is ordinary induction on the first component, with a nested induction on the second component at each fixed first component.
Proof. It suffices to prove the strengthened multicut statement: for every pair of cut-free derivations D:Γ⇒𝐴,E:Δ,𝐴[𝑛]⇒𝐶, a cut-free derivation of Γ,Δ⇒𝐶 exists. Induction on the measure of definition 3.24 applies this assertion recursively only to pairs of strictly smaller lexicographic measure.
The following decision table records the recursive invariant. Read the first column from top to bottom. A “yes” answer performs the action in the same row. Either nonprincipal row keeps the cut formula and lowers the height sum; the final row replaces it by proper subformulas and lowers rank. testansweractionbasecase?yesdirectcut-freetreeno↓producernonprincipal?yescommute;heightsumdecreasesno↓consumernonprincipal?yescommute;heightsumdecreasesno↓bothprincipalreduce;cutrankdecreases. In the two nonprincipal rows, a recursive call is made for every proper premise that still produces 𝐴 or contains a selected occurrence of 𝐴, as specified by lemma 3.23.
Test the last rule of D before changing E. Exactly one of the following three cases applies.
If a case of lemma 3.22 applies, use its direct cut-free construction. There is no recursive call.
If 𝐴 is nonprincipal in the last rule of D, commute the original 𝑛-multicut above that rule by lemma 3.23. A recursive pair is (D𝑖,E), where D𝑖 is a proper subderivation of D. Relative to the original pair its measure is (|𝐴|,ℎ(D𝑖)+ℎ(E))<lex(|𝐴|,ℎ(D)+ℎ(E)). After the recursive calls, rebuild the final rule of D. No principal cut reduction occurs in this case.
Suppose 𝐴 is principal in the last rule of D. If no selected occurrence is principal in the last rule of E, commute the original multicut above E. Its recursive pairs are (D,E𝑖) with E𝑖 proper, so their height sums are strictly smaller than the original height sum.
It remains that one selected occurrence is principal in the last logical left rule of E. For every proper premise containing additional selected side copies, recursively multicut exactly those copies with D. Each pair (D,E𝑖) has the same rank and smaller height sum because E𝑖 is a proper subderivation of the original E. Rebuild the left rule, retaining for the moment every copy of Γ inserted into its premises. The resulting derivation has one selected occurrence, the principal one. Apply lemma 3.20; every recursive cut it creates has a proper subformula of 𝐴, so the first component of the measure decreases, independently of the rebuilt derivation’s height. After eliminating those lower-rank cuts, apply C𝐿 to each duplicated occurrence of each formula in Γ until the conclusion contains exactly one copy of Γ. This gives Γ,Δ⇒𝐶.
After the base cases, the last rule of D is either nonprincipal or principal for 𝐴. In the latter case the last rule of E either has no principal selected occurrence or has one; the preceding two subcases cover those alternatives, including any additional selected side copies. The partition is therefore exhaustive.
For the theorem, induct on an arbitrary LJ derivation F, with the invariant that the end sequent of F has a cut-free derivation. Apply the induction hypotheses to all immediate premises. A non-Cut final rule reapplies to the cut-free premises. At a Cut final rule, the two induction hypotheses give cut-free premises, and the strengthened result with 𝑛=1 gives the cut-free conclusion. ◻
For the finitary first-order LJ of definition 3.12, with no nonlogical axiom schemes, every formula in a cut-free derivation of Γ⇒𝐴 is a subformula of a formula in Γ,𝐴, up to substituting terms for bound variables. In particular, ∅⇒⊥ is not derivable. This conclusion uses only finitary syntax trees, primitive recursion—recursive calls made on immediate subtrees and combined by one fixed case for each constructor—and induction on natural numbers and finite derivations fixed in chapter 1. It uses no semantic consistency assumption.
Proof of Corollary 3.26 — Subformula property and consistency
Proof. Induct on the cut-free derivation with this invariant: at every node, each formula is a subformula of an end-sequent formula, with zero or more bound variables instantiated by terms. Read a final rule from conclusion to premises. Every logical rule replaces its principal formula by immediate subformulas; the quantifier rules additionally instantiate one bound variable. Structural rules introduce or identify only antecedent formulas already present in the end context. This proves the invariant. If ∅⇒⊥ had a derivation, cut elimination would produce a cut-free one. No rule can be its last rule. There is no right rule for ⊥, and Ax and ⊥L require a formula in the antecedent. In a cut-free derivation, every remaining structural or logical left rule also requires a nonempty antecedent. The remaining right rules conclude a formula whose outer connective is not ⊥. ◻
Proof of Corollary 3.27 — Disjunction and existence properties
Proof. Apply cut elimination. With an empty antecedent, no structural or logical left rule can be last. Therefore a cut-free proof of a disjunction ends in ∨R1 or ∨R2, whose premise proves the corresponding disjunct. A cut-free proof of an existential ends in ∃R, whose displayed witness and premise give the second claim. ◻
For every two-valued interpretation, either 𝑃(𝑐) is true or it is false; hence 𝑃(𝑐)∨¬𝑃(𝑐) is true. It is not derivable in LJ. If it were, the disjunction property would give a derivation of 𝑃(𝑐) or of 𝑃(𝑐)→⊥. A cut-free derivation of the first has no possible last rule from an empty antecedent. A cut-free derivation of the second must end in →R, leaving 𝑃(𝑐)⇒⊥; that sequent also has no possible last rule. Thus two-valued truth includes formulas not derivable in the intuitionistic calculus. In this precise sense it does not characterize intuitionistic derivability.
★★☆ Commute a cut on 𝐴 above a final ∨L whose principal formula is 𝐵∨𝐷≠𝐴 and whose succedent is 𝐾. Display both new cuts and show that their formula rank is unchanged while each height sum decreases.
Cut elimination removes intermediate formulas from a derivation, but it does not yet say what computation occurs in the proof term carried by a quantifier rule. The missing operations bind and substitute two different sorts of names: individual variables and proof labels. Label assumptions by ℎ. The judgment Ξ⊢𝑝:𝐴, for Ξ=ℎ1:𝐴1,…,ℎ𝑛:𝐴𝑛, says that 𝑝 is a proof of 𝐴 from those labeled assumptions. Erasing the labels from Ξ yields the multiset antecedent of the corresponding natural-deduction or LJ judgment; contraction identifies two labels of the same formula and weakening discards an unused label. This assignment uses the same introduction and elimination constructors that proposition 2.33 read as programs, but it erases lambda-domain annotations and adds constructors for the individual quantifiers. It is therefore a proof-term notation for the first-order natural-deduction judgment, not a literal extension of chapter 2’s raw program grammar. Their grammar is 𝑝::=ℎ∣𝜆ℎ.𝑝∣𝑝𝑞∣⟨𝑝,𝑞⟩∣𝜋𝑖𝑝∣𝗂𝗇𝑖𝑝∣𝖼𝖺𝗌𝖾(𝑝;ℎ.𝑞;𝑗.𝑟)∣Λ𝑎.𝑝∣𝑝[𝑡]∣𝗉𝖺𝖼𝗄(𝑡,𝑝)∣𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑎,ℎ.𝑞)∣𝖺𝖻𝗈𝗋𝗍(𝑝). Here Λ𝑎.𝑝 binds the individual variable 𝑎 in 𝑝; 𝑝[𝑡] instantiates that binder. In 𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑎,ℎ.𝑞), both the witness name 𝑎 and the proof assumption ℎ are bound in 𝑞. The body 𝑞 is the continuation: the proof computation that runs after the package has exposed its witness and proof. The semicolon separates the package from those binders and the continuation. The propositional constructors carry the proof-term assignment corresponding to the rules of definition 2.38, as established by proposition 2.33: for example, 𝜆ℎ.𝑝 is →I, application is →E, pairs and projections are ∧I/E, and injections and case are ∨I/E.
The new typing rules are
Ξ⊢𝑝:𝐴[𝑎/𝑥]𝑎∉fv(Ξ,∀𝑥𝐴)
Ξ⊢Λ𝑎.𝑝:∀𝑥𝐴
I
Ξ⊢𝑝:∀𝑥𝐴
Ξ⊢𝑝[𝑡]:𝐴[𝑡/𝑥]
E
Ξ⊢𝑝:𝐴[𝑡/𝑥]
Ξ⊢𝗉𝖺𝖼𝗄(𝑡,𝑝):∃𝑥𝐴
I
Ξ⊢𝑝:∃𝑥𝐴Ξ,ℎ:𝐴[𝑎/𝑥]⊢𝑞:𝐶𝑎∉fv(Ξ,𝐶,∃𝑥𝐴)
Ξ⊢𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑎,ℎ.𝑞):𝐶
E
Ξ⊢𝑝:⊥
Ξ⊢𝖺𝖻𝗈𝗋𝗍(𝑝):𝐴
E
For a labeled context, fv(Ξ) is the union of the free individual variables in its formulas. The ∀I check also includes the result formula, so the term binder Λ𝑎 cannot silently capture an unrelated free parameter in that result.
Erasing proof labels from a derivation of Ξ⊢𝑝:𝐴 gives a derivation of |Ξ|⊢𝖭𝐴. Conversely, naming every assumption occurrence in a natural-deduction derivation of Γ⊢𝖭𝐴 gives a context Ξ with |Ξ|=Γ and a proof term 𝑝 such that Ξ⊢𝑝:𝐴.
Proof of Proposition 3.29 — First-order proof-term correspondence
Proof. For the first direction, induct on the typing derivation. Each propositional constructor erases to the natural-deduction rule named in definition 3.4; the five displayed first-order typing rules erase to their equally named rules, with the same formulas and freshness side conditions.
For decoration, induct on the natural-deduction derivation after assigning a distinct proof label to every assumption occurrence in each context. A hypothesis leaf receives its assumption’s label. Introduction and elimination rules receive the corresponding constructor. In particular, ∀I uses Λ𝑎.𝑝, ∀E uses 𝑝[𝑡], ∃I uses 𝗉𝖺𝖼𝗄(𝑡,𝑝), and ∃E uses 𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑎,ℎ.𝑞), where ℎ names its temporary assumption. If weakening leaves an assumption unused, its label does not occur in the term; if contraction identifies two occurrences, consistently identify their labels. Thus decoration preserves the multiset of formulas and every freshness condition. ◻
The proof-label substitution𝑝[𝑞/ℎ] replaces every free occurrence of proof label ℎ in 𝑝 by 𝑞. It is homomorphic on application, pairs, projections, injections, universal instantiation, packages, and abort. Its binding clauses are ℎ[𝑞/ℎ]=𝑞,𝑘[𝑞/ℎ]=𝑘(𝑘≠ℎ),𝜆𝑘.𝑝[𝑞/ℎ]=𝜆𝑘.𝑝[𝑞/ℎ],Λ𝑎.𝑝[𝑞/ℎ]=Λ𝑎.𝑝[𝑞/ℎ],𝐶[𝑞/ℎ]=𝖼𝖺𝗌𝖾(𝑝′;𝑘.𝑟′;𝑗.𝑠′),𝑈[𝑞/ℎ]=𝗎𝗇𝗉𝖺𝖼𝗄(𝑝′;𝑎,𝑘.𝑟′). Here 𝐶=𝖼𝖺𝗌𝖾(𝑝;𝑘.𝑟;𝑗.𝑠) and 𝑈=𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑎,𝑘.𝑟). In the case clause, 𝑝′=𝑝[𝑞/ℎ], 𝑟′=𝑟[𝑞/ℎ], and 𝑠′=𝑠[𝑞/ℎ]. The unpack clause uses the first two of these equations. Before a binding clause is used, its proof labels and individual variables are alpha-renamed away from the free names of 𝑞; when a displayed binder is ℎ, substitution does not descend into its body.
Capture-avoiding individual substitution𝑝[𝑡/𝑎] leaves proof labels fixed and is homomorphic on every propositional proof constructor. It acts on the first-order constructors by 𝑝[𝑢][𝑡/𝑎]=𝑝[𝑡/𝑎][𝑢[𝑡/𝑎]],𝗉𝖺𝖼𝗄(𝑢,𝑝)[𝑡/𝑎]=𝗉𝖺𝖼𝗄(𝑢[𝑡/𝑎],𝑝[𝑡/𝑎]),Λ𝑏.𝑝[𝑡/𝑎]=Λ𝑏.𝑝[𝑡/𝑎],𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑏,ℎ.𝑞)[𝑡/𝑎]=𝗎𝗇𝗉𝖺𝖼𝗄(𝑝[𝑡/𝑎];𝑏,ℎ.𝑞[𝑡/𝑎]). The last two equations use 𝑏≠𝑎 and 𝑏∉fv(𝑡), obtained by alpha-renaming; if 𝑏=𝑎, individual substitution does not descend under that individual binder.
The complete root contractions for the present proof-term grammar are (𝜆ℎ.𝑝)𝑞⇝𝗉𝑝[𝑞/ℎ],𝜋𝑖⟨𝑝1,𝑝2⟩⇝𝗉𝑝𝑖,𝖼𝖺𝗌𝖾(𝗂𝗇1𝑝;ℎ.𝑞;𝑗.𝑟)⇝𝗉𝑞[𝑝/ℎ],𝖼𝖺𝗌𝖾(𝗂𝗇2𝑝;ℎ.𝑞;𝑗.𝑟)⇝𝗉𝑟[𝑝/𝑗],(Λ𝑎.𝑝)[𝑡]⇝𝗉𝑝[𝑡/𝑎],𝗎𝗇𝗉𝖺𝖼𝗄(𝗉𝖺𝖼𝗄(𝑡,𝑝);𝑎,ℎ.𝑞)⇝𝗉𝑞[𝑡/𝑎][𝑝/ℎ]. Compatible contexts mark every proof-subterm position: 𝐾::=[−]∣𝜆ℎ.𝐾∣𝐾𝑝∣𝑝𝐾∣⟨𝐾,𝑝⟩∣⟨𝑝,𝐾⟩∣𝜋𝑖𝐾∣𝗂𝗇𝑖𝐾∣𝖼𝖺𝗌𝖾(𝐾;ℎ.𝑞;𝑗.𝑟)∣𝖼𝖺𝗌𝖾(𝑝;ℎ.𝐾;𝑗.𝑟)∣𝖼𝖺𝗌𝖾(𝑝;ℎ.𝑞;𝑗.𝐾)∣Λ𝑎.𝐾∣𝐾[𝑡]∣𝗉𝖺𝖼𝗄(𝑡,𝐾)∣𝗎𝗇𝗉𝖺𝖼𝗄(𝐾;𝑎,ℎ.𝑞)∣𝗎𝗇𝗉𝖺𝖼𝗄(𝑝;𝑎,ℎ.𝐾)∣𝖺𝖻𝗈𝗋𝗍(𝐾). After alpha-renaming bound names away from the inserted term, 𝑟⇝𝗉𝑟′𝐾[𝑟]⟶𝗉𝐾[𝑟′]P−Ctx. Individual terms have no reduction relation here, so neither a package witness nor a universal-instantiation argument may replace [−] in a compatible context.
The brackets in 𝑝[𝑡] are a proof-term constructor for universal elimination; the slash in 𝑝[𝑡/𝑎] distinguishes the metalevel operation that replaces free 𝑎’s by 𝑡.
The universal beta root computes on a closed instance. From the temporary assumption ℎ:𝑃(𝑎), ℎ:𝑃(𝑎)∈ℎ:𝑃(𝑎)ℎ:𝑃(𝑎)⊢ℎ:𝑃(𝑎)Hyp⋅⊢𝜆ℎ.ℎ:𝑃(𝑎)→𝑃(𝑎)→I⋅⊢Λ𝑎.𝜆ℎ.ℎ:∀𝑥(𝑃(𝑥)→𝑃(𝑥))I. Consequently (Λ𝑎.𝜆ℎ.ℎ)[𝑐]∀−𝑏𝑒𝑡𝑎⟶𝗉𝜆ℎ.ℎ, and the reduct has type 𝑃(𝑐)→𝑃(𝑐).
The existential beta root performs the individual substitution before the proof-label substitution. If 𝑓:∀𝑥(𝑃(𝑥)→𝑄(𝑥)) and 𝑝:𝑃(𝑐), then 𝗎𝗇𝗉𝖺𝖼𝗄(𝗉𝖺𝖼𝗄(𝑐,𝑝);𝑎,ℎ.𝗉𝖺𝖼𝗄(𝑎,𝑓[𝑎]ℎ)):∃𝑥𝑄(𝑥). Indeed, under ℎ:𝑃(𝑎), the term 𝑓[𝑎]ℎ has type 𝑄(𝑎), so the body packages witness 𝑎. The root contraction is the annotated calculation 𝗎𝗇𝗉𝖺𝖼𝗄(𝗉𝖺𝖼𝗄(𝑐,𝑝);𝑎,ℎ.𝗉𝖺𝖼𝗄(𝑎,𝑓[𝑎]ℎ))∃−𝑏𝑒𝑡𝑎⟶𝗉𝗉𝖺𝖼𝗄(𝑎,𝑓[𝑎]ℎ)[𝑐/𝑎][𝑝/ℎ]𝑖𝑛𝑑𝑖𝑣𝑖𝑑𝑢𝑎𝑙𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛=𝗉𝖺𝖼𝗄(𝑐,𝑓[𝑐]ℎ)[𝑝/ℎ]𝑝𝑟𝑜𝑜𝑓−𝑙𝑎𝑏𝑒𝑙𝑠𝑢𝑏𝑠𝑡𝑖𝑡𝑢𝑡𝑖𝑜𝑛=𝗉𝖺𝖼𝗄(𝑐,𝑓[𝑐]𝑝). The reduct has the same type ∃𝑥𝑄(𝑥).
Compatible reduction descends under the new individual binder as well as the propositional binders. For example, the raw proof term Λ𝑎.((𝜆ℎ.ℎ)𝑘)⟶𝗉Λ𝑎.𝑘 by 𝑃−𝐶𝑡𝑥 with context Λ𝑎.[−]. Thus the current relation is not merely a list of root contractions.
For the exact conclusion used below, define normal proofs 𝑛 and neutral proofs 𝑒 mutually: 𝑛::=𝑒∣𝜆ℎ.𝑛∣⟨𝑛,𝑛⟩∣𝗂𝗇𝑖𝑛∣Λ𝑎.𝑛∣𝗉𝖺𝖼𝗄(𝑡,𝑛),𝑒::=ℎ∣𝑒𝑛∣𝜋𝑖𝑒∣𝑒[𝑡]∣𝖼𝖺𝗌𝖾(𝑒;ℎ.𝑛;𝑗.𝑛)∣𝗎𝗇𝗉𝖺𝖼𝗄(𝑒;𝑎,ℎ.𝑛)∣𝖺𝖻𝗈𝗋𝗍(𝑒).
If Ξ⊢𝑝:𝐴, then 𝑝 has no ⟶𝗉-successor if and only if it is generated by the displayed normal grammar. A well-typed neutral term is generated by the displayed neutral grammar if and only if its elimination spine begins at a proof label and all its arguments and branch bodies are normal.
Proof of Lemma 3.31 — Normal-form characterization
Proof. Induct on the typing derivation. An introduction is normal exactly when each proof subterm is normal, because the compatible contexts descend into every proof position. For application, projection, and universal instantiation, an introduction at the head gives respectively an implication, product, or universal beta root; typing inversion excludes an introduction of any other shape at that head. Otherwise the induction hypothesis forces the head to be neutral and every argument to be normal. The two injection cases make a case scrutinee reducible; an existential package makes an unpack scrutinee reducible. If neither matching introduction occurs, the induction hypotheses force the case or unpack scrutinee to be neutral and every branch body to be normal. Abort is normal exactly when its scrutinee is neutral. These are all elimination constructors, and the resulting alternatives are precisely the two displayed grammars. ◻
Proof of Lemma 3.32 — Neutral substitution preserves normality
Proof. Induct simultaneously on the displayed grammars for 𝑛 and 𝑒. At the variable case, substituting for ℎ produces the neutral 𝑞, and every other variable is unchanged. An introduction constructor reapplies to normal induction hypotheses. An elimination constructor reapplies to a neutral induction hypothesis for its head and normal induction hypotheses for its arguments or branches. Alpha-freshen proof and individual binders before descending, so capture-avoiding substitution has exactly these componentwise clauses. Thus no introduction is placed at the head of an elimination. ◻
There is a translation assigning to every cut-free LJ derivation of Γ⇒𝐴 a labeled natural-deduction derivation Ξ⊢𝑝:𝐴, for a naming Ξ of the assumptions in Γ. Its proof term is a normal 𝑛 in the preceding mutual grammar.
Proof of Lemma 3.33 — Cut-free back-translation is beta-normal
Proof. Induct on the cut-free derivation with two simultaneous assertions:
the translated derivation has a normal proof term;
when a left rule analyzes a distinguished assumption, the term constructed from that assumption for the premise hypothesis is neutral.
A right rule contributes its introduction constructor to normal immediate subterms, proving (N).
For the left rules, let ℎ name the principal assumption and let 𝑘 name the premise formula discharged while rebuilding the rule. Conjunction left replaces 𝑘 in its normal premise translation 𝑝 by the neutral 𝜋𝑖ℎ, producing 𝑝[𝜋𝑖ℎ/𝑘]. Implication left has a normal translation 𝑟 of its left premise; ℎ𝑟 is neutral, so its right premise translation 𝑝 yields the normal 𝑝[ℎ𝑟/𝑘]. For universal left, instantiate the neutral principal hypothesis ℎ at the rule’s term 𝑡, then replace the premise name 𝑘 by that neutral term; the result is 𝑝[ℎ[𝑡]/𝑘]. These terms are normal by lemma 3.32. Disjunction left directly forms the neutral 𝖼𝖺𝗌𝖾(ℎ;𝑘.𝑝;𝑗.𝑞) from normal branch bodies, and existential left forms the neutral 𝗎𝗇𝗉𝖺𝖼𝗄(ℎ;𝑎,𝑘.𝑝). Bottom left gives the neutral 𝖺𝖻𝗈𝗋𝗍(ℎ).
Ax gives a variable, which is both neutral and normal. Weakening omits an unused name. Contraction replaces the two names in its normal premise term by the same neutral variable; two applications of lemma 3.32 preserve normality. There is no Cut case. These cases exhaust the rules and prove (N) and (E). ◻
Proof. The first direction of proposition 3.29 removes the proof labels and gives a natural-deduction derivation. Translate it to LJ by theorem 3.18 and eliminate all cuts. The back-translation of lemma 3.33 returns a beta-normal proof term for the same labeled context and formula. ◻
The theorem is a normal-inhabitation result: it proves that the same labeled context and formula have a beta-normal inhabitant. It does not prove that 𝑝 reaches 𝑞 by zero or more ⟶𝗉-steps. Such weak normalization requires a simulation from the selected cut reductions to the compatible proof reduction just defined; no such simulation is claimed.
Bounded proof search
A finite term pool and height bound give a decidable proof-search problem and produce a checkable LJ derivation when search succeeds. This bounded result also exposes the exact finite choices made at quantifier rules. If the symbol sets of Σ have the natural-number codes and decidable equality used by proposition 1.14, finite rule trees can be enumerated and checked. Therefore unrestricted derivability is semidecidable: as in chapter 1, an enumeration halts with “yes” exactly on derivable inputs and may run forever on an underivable one. No unrestricted decision or undecidability theorem is used.
Fix a finite set 𝑇 of closed terms. For a multiset Γ, let supp(Γ) be the set of formulas occurring in Γ. A search state is (𝑚,𝐺⇒𝐴,𝐸), where 𝑚 is the remaining logical height, 𝐺 is the set supporting an antecedent multiset, and 𝐸 is the finite list of eigenparameters introduced on the branch, in introduction order. An eigenparameter is an eigenvariable retained as a variable term for later rule instances on that branch. Members of 𝐸 are ordered state, not a set. Write rng(𝐸) for the set of entries in that list. The notation 𝐸,𝑎 appends 𝑎 at the right, so rng(𝐸,𝑎)=rng(𝐸)∪{𝑎}. Members of 𝐸 are regarded as variable terms when they occur in 𝑇∪rng(𝐸). The derived search judgment 𝐺⇒𝑚𝖲,𝐸𝐴 is generated by the following rules. A premise at bound 𝑚 gives its conclusion bound 𝑚+1; there is no rule at bound zero.
𝐴∈𝐺
𝐺⇒𝑚+1𝖲,𝐸𝐴
S-Ax
⊥∈𝐺
𝐺⇒𝑚+1𝖲,𝐸𝐶
S-Bot-L
𝐺⇒𝑚𝖲,𝐸𝐴𝐺⇒𝑚𝖲,𝐸𝐵
𝐺⇒𝑚+1𝖲,𝐸𝐴∧𝐵
S-And-R
𝐺⇒𝑚𝖲,𝐸𝐴𝑖
𝐺⇒𝑚+1𝖲,𝐸𝐴1∨𝐴2
S-Or-R_i
𝐺∪{𝐴}⇒𝑚𝖲,𝐸𝐵
𝐺⇒𝑚+1𝖲,𝐸𝐴→𝐵
S-Imp-R
𝐺⇒𝑚𝖲,𝐸,𝑎𝐴[𝑎/𝑥]𝑎=min{𝑏∣𝑏∉fv(𝐺,𝐴)∪rng(𝐸)}
𝐺⇒𝑚+1𝖲,𝐸∀𝑥𝐴
S-All-R
𝐺⇒𝑚𝖲,𝐸𝐴[𝑡/𝑥]𝑡∈𝑇∪rng(𝐸)
𝐺⇒𝑚+1𝖲,𝐸∃𝑥𝐴
S-Some-R
The natural-number enumeration fixed in section 3.1 makes the minimum in S-All-R defined and computable.
Search starts at (𝑛,supp(Γ)⇒𝐴,()), enumerates these named rule instances, and returns their derivation tree. Scanning the finite set 𝐺, the two injection choices, or the finite set 𝑇∪rng(𝐸) does not consume height; only descent to a rule premise changes 𝑚+1 to 𝑚.
For memoization, alpha-normalization renames bound variables by binder depth and sends the 𝑖-th member of 𝐸 to the canonical eigenparameter 𝜖𝑖. It also sorts 𝐺. A cache entry consists of the key (𝑚,̂𝐺,̂𝐴,|𝐸|) together with failure or a successful canonical derivation ̂D. On a hit, the requester constructs its own map 𝜖𝑖↦𝑎𝑖 from its current list 𝐸=(𝑎0,…,𝑎𝑘−1) and traverses the canonical derivation from the root. At a cached S-All-R or S-Some-L node, the decoder recomputes the least fresh request-side name 𝑎𝑘, extends the map by 𝜖𝑘↦𝑎𝑘, and decodes the premise under that extension. At S-All-L, it decodes the witness with the current map. The resulting success therefore contains names valid for the requesting state, not names copied from the state that populated the cache.
The state transition is visible before any metatheorem is proved. Take 𝑇={𝑐,𝑑}, where 𝑑≠𝑐, and temporarily enumerate that set as (𝑑,𝑐). Put 𝐻=∀𝑥(𝑃(𝑥)→𝑄(𝑥)) and 𝐺={𝐻,𝑃(𝑐)}. Trying S-All-L at 𝑑 first gives the failed sibling after writing 𝐺𝑑=𝐺∪{𝑃(𝑑)→𝑄(𝑑)}: (2,𝐺𝑑⇒𝑄(𝑐),())⟼{(1,𝐺𝑑⇒𝑃(𝑑),()),(1,𝐺𝑑∪{𝑄(𝑑)}⇒𝑄(𝑐),()). Neither child is an Ax state, so both fail at bound one and their canonical keys are stored. The next term choice gives (3,𝐺⇒𝑄(𝑐),())⟼(2,𝐺∪{𝑃(𝑐)→𝑄(𝑐)}⇒𝑄(𝑐),())⟼{(1,𝐺∪{𝑃(𝑐)→𝑄(𝑐)}⇒𝑃(𝑐),()),(1,𝐺∪{𝑃(𝑐)→𝑄(𝑐),𝑄(𝑐)}⇒𝑄(𝑐),()), and both children close by S-Ax. Choice scanning tried one failed sibling without spending an extra unit of proof height.
For a cache hit involving eigenparameters, suppose the variable enumeration begins 𝑎,𝑏,𝑐,…. Compare the two states ∅⇒3𝖲,(𝑎)∀𝑥(𝑃(𝑥)→𝑃(𝑥)),∅⇒3𝖲,(𝑏)∀𝑥(𝑃(𝑥)→𝑃(𝑥)). Both keys have the same canonical context, goal, and eigenparameter count. In the first state S-All-R introduces 𝑏; in the second it introduces 𝑎. The cached canonical proof records the newly introduced name as 𝜖1. A hit for the second state starts with 𝜖0↦𝑏, extends that map by 𝜖1↦𝑎, and returns a proof of 𝑃(𝑎)→𝑃(𝑎), not a proof containing the first state’s name 𝑏.
Call an LJ derivation search-analytic when every logical formula is a subformula of the end sequent, up to the permitted term instances and fresh eigenparameters, and it contains neither Cut nor an arbitrary weakening formula.
For a finite set 𝐺, 𝐺⇒𝑛𝖲,𝐸𝐴 has a derivation if and only if there is a search-analytic cut-free LJ derivation of 𝐺⇒𝐴 whose logical height is at most 𝑛, whose instantiation terms lie in 𝑇∪rng(𝐸′) at each node with branch list 𝐸′, and whose branch lists extend the initial 𝐸 in introduction order. Logical height counts Ax, ⊥L, and logical rules; it gives weakening and contraction height zero.
Proof of Lemma 3.36 — Derived search rules and literal LJ
Proof. From a search derivation, induct on its last rule. For a right rule, apply the matching LJ rule to the translated premises. For a retained-principal left rule, weaken each translated premise to the shared context 𝐺, apply the matching LJ left rule, and contract every duplicated formula occurrence. For example, S-Imp-L yields LJ premises 𝐺⇒𝐴 and 𝐺,𝐵⇒𝐶. Literal →L derives 𝐺,𝐺,𝐴→𝐵⇒𝐶; contract the two copies of each member of 𝐺 and the additional retained copy of 𝐴→𝐵. The other left rules use the same explicit weaken–logical-rule–contract construction. The search freshness conditions are the LJ conditions, so the quantifier rules rebuild. Structural nodes add no logical height.
Conversely, induct on a search-analytic cut-free LJ derivation after replacing each antecedent multiset by its support. Ax and ⊥L become the two zero-premise search rules. Weakening and contraction do not change support and contribute no search node. For a split LJ rule, form a shared base from the union of its side contexts and retain its principal formula; temporary premise formulas remain local to their premises. For example, an implication-left conclusion has side contexts Γ,Δ and principal formula 𝐴→𝐵. With 𝐺=supp(Γ,Δ,𝐴→𝐵), set weakening gives the search premises 𝐺⇒𝑚𝖲,𝐸𝐴 and 𝐺∪{𝐵}⇒𝑚𝖲,𝐸𝐶. It does not add 𝐵 to the first premise or to the conclusion. The other split rules follow the same side-context/principal/temporary-formula division. At ∀R or ∃L, use corollary 3.14 to rename the outer eigenvariable to the least fresh name required by the search rule; nested eigenvariables are freshened away from that name. Every logical premise has smaller logical height, so the induction hypotheses apply. ◻
Bounded search terminates. It returns a derivation only of its input sequent, and it succeeds exactly when there is a search-analytic cut-free derivation of logical height at most 𝑛, with structural rules implicit, whose witness and instantiation terms lie in 𝑇 together with eigenparameters already introduced on their branch.
Proof of Proposition 3.37 — Bounded-search correctness
Proof. Start the algorithm at (𝑛,supp(Γ)⇒𝐴,()). Every recursive rule-premise call has smaller 𝑚. At a fixed state, the rule, principal-formula, injection, and term-instance choices are finite; scanning those choices is structural recursion over finite lists and does not call search at the same bound. Hence search terminates.
On success, the returned tree is a derivation of 𝐺⇒𝑛𝖲,𝐸𝐴. The forward direction of lemma 3.36 reconstructs a literal LJ tree of supp(Γ)⇒𝐴. Append one W𝐿 for each repeated occurrence in the input multiset Γ; this recovers exactly Γ⇒𝐴 and proves soundness. For completeness, the reverse direction turns any target search-analytic LJ derivation into a search derivation. The algorithm enumerates its final named rule and, by induction on logical height, finds every premise.
Canonicalization is a bijective renaming of bound variables and the branch eigenparameters. Both directions of lemma 3.36 commute with that renaming. A cached failure therefore rules out every alpha-equivalent state, while a cached success is decoded under the requesting map, extended recursively at each fresh-name rule, before it is checked against the requesting state. ◻
For example, with 𝑇={𝑐}, backward search on ∀𝑥(𝑃(𝑥)→𝑄(𝑥)),𝑃(𝑐)⇒𝑄(𝑐) first uses ∀L with instance 𝑐, then →L. Its two remaining goals close by Ax: the first has 𝑃(𝑐) in its shared antecedent, and the second has 𝑄(𝑐) in both antecedent and succedent. The emitted literal LJ tree can therefore be chosen as 𝑋𝑃(𝑐)⇒𝑃(𝑐)Ax𝑋𝑄(𝑐)⇒𝑄(𝑐)Ax𝑃(𝑐),𝑃(𝑐)→𝑄(𝑐)⇒𝑄(𝑐)→L𝑃(𝑐),∀𝑥(𝑃(𝑥)→𝑄(𝑥))⇒𝑄(𝑐)L. With zero-premise rules at height one, this search derivation has height three; the emitted tree happens not to need extra structural nodes here.
★★☆ Take 𝑇={𝑐,𝑑}, enumerate 𝑐 before 𝑑, and put 𝐻=∀𝑥(𝑃(𝑥)→𝑄(𝑥)). Trace bounded search for 𝐻,𝑃(𝑑)⇒𝑄(𝑑). Display the failed 𝑐-instance before the successful 𝑑-instance and verify that the least successful height is three. Then reverse the term enumeration and compare the failed alternatives. Explain why changing the enumeration or enlarging the pool preserves soundness and the least proof height even though it changes the search work.
The calculus printed here has the full first-order connective signature and explicit structural rules, so every principal and commuting reduction used by the cut-elimination theorem is proved locally. The bounded-search proposition is also local; it is not a decidability theorem for first-order intuitionistic validity.
Bibliographic notes.
The strengthened many-occurrence cut is the traditional mix (German Mischung) route to Gentzen’s cut-elimination argument [Gen35]. Pfenning’s structurally formulated proof provides a contrasting organization: structural rules are admissible there, and the proof does not use the displayed mix [Pfe95].
Suggested first pass.
None of these problems is a prerequisite for later chapters. Begin with the proof-term calculation in exercise 3.7, then test the eigenvariable boundary in exercise 3.8. Continue to the cut/search synthesis in exercise 3.9; implement the bounded searcher only after that paper trace is complete.
★★☆ Extract a proof term from the running derivation of ∃𝑥𝑄(𝑥). Let 𝑝 be a proof term with 𝑝:𝑃(𝑐). Reduce the term obtained after replacing the existential hypothesis by 𝗉𝖺𝖼𝗄(𝑐,𝑝), and identify the corresponding principal ∃-cut reduction.
★★☆ Give the dual bad derivation obtained by deleting the side condition from ∃E. Use assumptions ∃𝑥𝑃(𝑥) and 𝑃(𝑎)→𝑅(𝑎), and state a two-element interpretation that refutes the resulting conclusion.
★★★ Let 𝐻=∀𝑥(𝑃(𝑥)→𝑄(𝑥)). First derive 𝑃(𝑐)⇒∃𝑥𝑃(𝑥) by ∃R, derive 𝐻,∃𝑥𝑃(𝑥)⇒∃𝑥𝑄(𝑥) by the running argument, and cut them on ∃𝑥𝑃(𝑥). Eliminate that Cut, recording its measure at every transformation. Then run bounded search on the same end sequent with term pool {𝑐} and compare the cut-free trees. Explain why equality of end sequents does not require the two trees to be literally identical.
★★★Practical project.bounded-lj-search Implement the Ax, →R/L, and ∀R/L fragment of definition 3.35 with alpha-normalized cache keys. The fragment uses only unary predicates 𝑃 and 𝑄, implication, and universal formulas whose bound token does not occur beneath a nested universal. The chapter’s general first-order binding syntax is therefore outside the executable language of this project. The fragment must still maintain the ordered eigenparameter state and exercise a cache hit between two alpha-equivalent ∀R branches. Maintain the invariant that every successful return contains an LJ derivation of the input sequent whose universal-left instances lie in the supplied finite term pool together with the branch eigenparameters. The acceptance test with pool {𝑐} must find 𝐻,𝑃(𝑐)⇒𝑄(𝑐) first at height three, reject it at height two, and reject 𝐻⇒𝑄(𝑐) at every bound from zero through six. Print the successful derivation and check each node against the named rule used. At height two it must also accept 𝑃(𝑐),𝑃(𝑐)→(𝑃(𝑐)→𝑄(𝑐))⇒𝑃(𝑐)→𝑄(𝑐): the failed →R attempt must fall back to →L. Also test the states ∅⇒3𝖲,(𝑎)∀𝑥(𝑃(𝑥)→𝑃(𝑥))and∅⇒3𝖲,(𝑏)∀𝑥(𝑃(𝑥)→𝑃(𝑥)), where 𝑎 precedes 𝑏. Record their identical canonical key (3,∅,∀𝑥(𝑃(𝑥)→𝑃(𝑥)),1), and require the second run to reuse the first cache entry without increasing cache size, and check that its decoded proof introduces 𝑎 after the request-side map 𝜖0↦𝑏 is extended by 𝜖1↦𝑎. The independent node checker takes the term pool as an input: it must reject an ∀L witness outside the pool and branch eigenparameters, and it must reject a nonleast ∀R eigenparameter.