8.3  Four Levels of One Proof

Sections 8.1 and 8.2 matched each rule with the phrases that carry it. A proof, though, is read and written whole. This section writes proofs several times, from a full derivation to the plain prose of a textbook, names the four levels this gives, fixes exactly which steps the last level may leave unsaid, and ends with the use that matters most to a reader working alone: when a sentence looks doubtful, rewrite it, and only it, as a skeleton, and look.

8.3.1. One short proof, four texts

Here is one proof, for every integer n: if n is odd, then n2 is odd, written four times, starting from the version a textbook prints and zooming in.

Plain prose.

Let n be odd, say n=2k+1. Then n2=4k2+4k+1=2(2k2+2k)+1, so n2 is odd.

Prose with the rules tagged.

Let n be an integer [∀I], and suppose n is odd [→I]; choose an integer k with n=2k+1 [∃E, fresh k]. Then n2=4k2+4k+1=2(2k2+2k)+1 [algebra], so n2 is odd, with the witness 2k2+2k [∃I; then ∃E closes, since “n2 is odd” does not mention k]. Since n was arbitrary, every odd integer has an odd square [→I, ∀I, closing].

The skeleton (domain Z).

1n0∃k(n0=2⋅k+1)asm, for →I
2k0n0=2⋅k0+1asm, for ∃E
3n0⋅n0=2⋅(2⋅k0⋅k0+2⋅k0)+1arith 2
4∃j(n0⋅n0=2⋅j+1)∃I 3
5∃j(n0⋅n0=2⋅j+1)∃E 1, 2–4
6∃k(n0=2⋅k+1)→∃j(n0⋅n0=2⋅j+1)→I 1–5
7∀n(∃k(n=2⋅k+1)→∃j(n⋅n=2⋅j+1))∀I 1–6

The full derivation. The skeleton again, with its line 3 split into two arith lines, each recording one fact: the square of 2k0+1, then a factor 2 taken out.

1n0∃k(n0=2⋅k+1)asm, for →I
2k0n0=2⋅k0+1asm, for ∃E
3n0⋅n0=4⋅k0⋅k0+4⋅k0+1arith 2
4n0⋅n0=2⋅(2⋅k0⋅k0+2⋅k0)+1arith 3
5∃j(n0⋅n0=2⋅j+1)∃I 4
6∃j(n0⋅n0=2⋅j+1)∃E 1, 2–5
7∃k(n0=2⋅k+1)→∃j(n0⋅n0=2⋅j+1)→I 1–6
8∀n(∃k(n=2⋅k+1)→∃j(n⋅n=2⋅j+1))∀I 1–7

Four texts, one proof. Each keeps the box of n, the assumption that n is odd, the choice of k and the computation; they differ in how much of the routine work the reader is trusted to restore.

A derivation, a skeleton and a paragraph are the same proof; they differ in what the reader is trusted to restore.

Quick check. In the plain prose, which words stand for line 2 of the skeleton, and which skeleton lines have no words at all?

Solution. “Say n=2k+1” is line 2, the opening of the ∃E box with the fresh name k. Lines 5, 6 and 7, the closings of the three boxes, have no words. “So n2 is odd” is line 4, the ∃I.

Sections 2.2 and 6.4 already printed proofs twice, once as a derivation and once as a paragraph. The four texts you have just read are the four levels of the next definition.

Definition 8.3.1 (Levels of Proof)

A proof can be written at four levels.

  • Level 0, the full derivation. A derivation in the sense of Definition 1.4.2, with the rules of Chapters 1, 2 and 5: every line is a premise, an assumption, or one rule applied to available lines. A derived rule used as one line (Definition 2.3.1), such as the bounded rules of Proposition 6.1.1, counts as one rule. Facts about numbers enter as premises, or as lines justified “arith”, each of which records one such fact applied to the lines it cites.
  • Level 1, the skeleton. The boxes and the logical lines only: every assumption, every flagged name, every line that opens or closes a box, with the rule that closes it, and every line that such a closing line cites. Each stretch of mathematics between them is compressed into one line, justified “arith”, “by def”, or by a cited result; a stretch of routine logical steps inside one box is compressed into one line justified by the names of its rules in order, such as “∀E, ∃I”.
  • Level 2, annotated prose. Sentences, each tagged in brackets with the rule or rules it carries, such as [∀I] or [∃E].
  • Level 3, plain prose. Sentences without tags, in which some steps are left unsaid. Which steps may be left unsaid is fixed by the convention that follows, not by the writer.

In words: level 0 hides no logic. Every line other than an arith line can be checked mechanically against the schema of its rule, and each arith line records one fact about numbers that can be checked by hand. Level 1 keeps the logical architecture and lets the arithmetic run in blocks. Level 2 is level 1 turned into sentences, with the architecture still labeled. Level 3 removes the labels and some of the lines, following a fixed convention.

Second readingLevels already on the page, and a skeleton missing a box

The levels are already on the page in earlier chapters. The derivation in Section 6.4 is level 0. The paragraph after Theorem 2.2.1, with its tags [→E], [∧I], [¬E], [¬I], is level 2 for the rules Chapter 2 had; its quantifier steps carry no tags. The derivation printed below that paragraph is not quite level 0, and the reason is instructive: it fixes r, p and q in advance and leaves out the two quantifier steps, choosing p, q (and later m) and passing from one r to every r, because Chapter 2 had no rules for them yet. Section 2.2 says so in the paragraph after the derivation. With Chapter 5’s rules those steps can be written. The example of the square root of two below writes the choices of p and q and the step to every r; the choice of m stays inside the arithmetic fact of line 15 of its level-0 derivation (in the fold “Level 0 of the square root of two”), since evenness is treated there as a single predicate E.

A non-example, by one change: take a level-1 skeleton and delete one of its boxes, say the box in which a name N0 is chosen, keeping the lines inside. The result is not a shorter skeleton. It is a list in which N0 appears from nowhere, and no reader can tell whether it was chosen, given, or assumed. A skeleton may compress the work inside a box; it may not compress the boxes.

Why four levels and not two? Because each serves a task. Level 0 is for settling a doubt completely: nothing in it is taken on trust. Level 1 is for planning a proof and for reading one: it is what you write on scratch paper before the first sentence (Section 8.5 turns this into a procedure), and what you reconstruct from a textbook when a proof will not come clear (Section 8.4). Level 2 is for learning, which is why this volume uses it. Level 3 is what mathematicians read and write.

Warning. A skeleton is not a finished proof. A level-1 text with lines such as “|x0−y|<δ0→|f(x0)−f(y)|<ε0, arith” is a plan: it says that a computation goes there, and it can hide a computation that does not work. For f(x)=x2 on R, a skeleton of “f is uniformly continuous” with one line “arith” at that point looks exactly like a correct skeleton for f(x)=3x+1, where δ=ε/3 works because |(3x+1)−(3y+1)|=3|x−y|; the claim is false for the first function (Example (The square function on the real line)), and only writing out the arithmetic shows where it fails. Expand every “arith” line before calling the proof done.

8.3.2. Which steps may be silent

Section 8.1 stated the principle: a step may go unsaid when its result is forced by the lines around it; every choice, assumption and citation is spoken. The most common cases:

The step Silent? Why
the closing line of →I, ∀I, ∨E or ∃E (not of ¬I, RAA or ↔I): “since x was arbitrary”, “in either case”, “hence if P then Q” may be the box decides it
∧E; ∨I; repeating a line already shown may be the next sentence shows which part or form was used
∀E at the name in sight; =E inside a chain may be the sentence that uses it forces it
opening a box: “let”, “suppose”, “choose …” with a new name never it creates a name or an assumption
a witness, with what it depends on; a case split, with why the cases cover everything never it is a choice
a citation of a hypothesis or a result; the clash of ¬E; the conclusion of ¬I or RAA never the reader cannot guess what licensed it

The official list, which the rest of the book checks written proofs against, is the next definition. The table gives its most common entries; the definition gives all of them.

Definition 8.3.2 (Silent Steps)

In level-3 prose the following steps may be silent, that is, left unwritten:

  • ∧I when both conjuncts are displayed, and ∧E;
  • R;
  • ∨I;
  • ⊥E, once the contradiction or the empty case has been stated;
  • the name of DS (not the fact it uses);
  • the exchange of the two members of a disjunction or of a conjunction (Example (First derivations with “or”), Proposition 1.2.1), made only to match the schema of a rule, with no citation;
  • ↔E with a definition (“that is”, “by definition”, or nothing);
  • ∀E at the obvious term;
  • →E whose implication is a line already in the proof that is neither a hypothesis of the statement, nor a cited result, nor an instance of one (for instance, an instance of the property of a chosen name), when its antecedent is displayed or has just been assumed;
  • =I and =E inside a chain of equalities or inequalities;
  • the phrase “it suffices to show”, when the claim of the cut is displayed and then used;
  • the closing lines of →I (“hence if P then Q”), of ∀I (“since x was arbitrary”), of ∨E (“in either case”) and of ∃E (the conclusion repeated outside the box of the chosen name).

The following are never silent:

  • the openings of →I, ¬I, RAA and ∀I, and of ∃E with a fresh name;
  • the conclusions of ¬I and of RAA (“hence ¬P”, “hence P”);
  • a ¬¬E or LEM step, written as an explicit case split or as an explicit removal of a double negation (Proposition 2.5.1 (b); “P must hold, since …”), with the flag of Section 8.7 when the step is genuinely non-constructive;
  • the case split of ∨E, with the reason the cases exhaust;
  • the clash of ¬E: both members of the clashing pair are named;
  • the witness of ∃I, with what it depends on;
  • an instance of ∀E at a term that is not the obvious one;
  • every citation, and so every →E whose implication is a hypothesis of the statement or a cited result, or an instance of one;
  • both directions of ↔I, and both halves of an ∃! proof;
  • the base case and the step of an induction, with the induction hypothesis stated;
  • the announcement of a contrapositive;
  • the negated form, after De Morgan (Proposition 2.5.5) or a quantifier negation (Proposition 6.2.1, Proposition 6.2.3);
  • the claim of a cut;
  • a “without loss of generality”, together with the symmetry that licenses it.

The eighth and ninth items of the first list, for instance, say this: after “choose N such that |an−L|<ε for every n≥N”, applying that line to a particular n≥N needs no comment.

Silent steps and truth tables. Section 4.8 named the step that a truth table licenses, TAUT (Definition 4.8.1). Section 6.3 let it act on the propositional skeleton of a first-order line, where every atomic and every quantified part counts as a letter (Definition 6.3.1, Proposition 6.3.1). Most items of the first list are TAUT steps: ∧I with both conjuncts displayed, ∧E, R, ∨I, ⊥E once the contradiction is stated, DS, the exchange of the members of a disjunction or conjunction, ↔E with a definition, and →E on a line of the proof. A reader can check each of them by a truth table on the skeleton. The quantifier and equality items, ∀E at the obvious term and =I and =E inside chains, are not TAUT steps: they are silent because the sentence that uses them forces them. TAUT never licenses a first-order law. On the skeleton, ∀x∀yR(x,y) and ∀y∀xR(x,y) are two different letters, so passing from one to the other is a derivation with the quantifier rules, not a TAUT step. From Section 6.3 on, a level-1 line that compresses propositional steps inside one box may cite TAUT with its lines, in place of the names of its rules.

Warning. Level 3 is not level 0 with steps missing at random. A proof that skips the reason a case split is exhaustive, or chooses δ without saying what it depends on, or uses a lemma without naming it, is not “written at level 3”: it has a gap, because those steps are in the never-silent list. Conversely, a proof that omits “since ε was arbitrary” has no gap. When you judge whether a written proof is complete, judge it against Definition 8.3.2, not against your sense of what is obvious.

Second readingThe two lists against the principle, with an example

Read the two lists against the principle. Everything in the first list is forced. ∧E has one premise and two possible conclusions, and the next sentence shows which was used. The closing line of a box is determined by the box. ∀E at the obvious term x, when x is the name in sight, is forced by the sentence that uses it. Everything in the second list carries information that the surrounding lines do not determine. Which name is chosen, and that it is fresh; which witness, and what it depends on; which cases, and why they are all the cases; which result is cited. A reader who meets “Then p is even” with no citation has to guess what licensed it, and a guess is not a check.

A small example. In “since x∈(0,1), in particular x>0”, the step from the conjunction “0<x and x<1” to its first conjunct is ∧E, and the unwinding of x∈(0,1) into that conjunction is ↔E with the definition of an interval. Both may be silent, and here the writer kept the phrase “in particular” anyway, which is allowed: the convention says what may be omitted, never what must be. On the other side, “suppose r2=2” can never be omitted from the proof of Theorem 2.2.1: without it, the reader does not know that a box has opened, and the final “r2≠2” has no visible source.

Quick check. At level 3, may each of these be left out: (i) “since ε was arbitrary”; (ii) “choose δ>0 (depending on ε) such that …”; (iii) “by the triangle inequality”?

Solution.

  • (i) Yes: it is the closing of ∀I. (ii) No: it is an ∃E with a fresh name, and the dependence of a witness. (iii) No: it is a citation.

8.3.3. The irrationality of the square root of two, four times

The first example is the proof of Theorem 2.2.1, now with every quantifier step written. It uses the fact that Section 2.2 calls (L): every rational number is p/q for integers p, q with q≠0, not both even. Write E(x) for “x is even”. The proof uses only two clauses of (L), and in a convenient form: r=p/q with q≠0 gives p=r⋅q, which avoids division; and “not both even” is ¬(E(p)∧E(q)). The clause q≠0 is then not needed at all, since q=0 would force p=0, and both would be even. It also uses Theorem 2.1.3, which we write as the formula ∀n∈Z(E(n⋅n)→E(n)). To keep the lines short, write L(r,p,q) for p=r⋅q∧¬(E(p)∧E(q)).

Example (The irrationality of the square root of two at four levels)

Write the proof of Theorem 2.2.1, that no rational number has square 2, at levels 0, 1, 2 and 3 of Definition 8.3.1, and match the levels line by line.

Idea. The move this example shows in full is skeleton first: before any arithmetic, write the first and the last line of every box. The goal ∀r∈Q¬(r⋅r=2) dictates the outer box (∀I, “let r∈Q”) and the next one (¬I, “suppose r2=2”, ending in ⊥). Inside, (L) instantiated at r0 is an existential, so its ∃E boxes open at once, with fresh names p0, q0, and they too end in ⊥. Only then is there something to compute: the arithmetic fills the innermost box, and it has a target, the clash with “not both even”. Sections 8.5 and 8.6 come back to this move twice, with parts of the proof left blank.

Before reading on: the level-3 proof below has four sentences. Which lines of the level-1 skeleton does its second sentence, “By (L), write r=p/q …”, stand for?

Solution. Level 3.

Let r be rational, and suppose r2=2. By (L), write r=p/q with integers p, q, not both even. Then p2=2q2, so p2 is even, and p is even by Theorem 2.1.3; writing p=2m gives q2=2m2, so q is even by the same theorem. Thus p and q are both even, a contradiction; hence r2≠2.

Level 2.

Let r∈Q [∀I: the box of r0], and suppose r2=2 [assumption for ¬I]. By (L), there are integers p and q with p=rq, not both even; choose such p and q [∀E at r, then ∃E twice, with fresh names]. Then p2=r2q2=2q2 [arith], so p2 is even [arith], and by Theorem 2.1.3 p is even [∀E at p, →E]. Writing p=2m, we get 4m2=2q2, so q2=2m2 is even [arith], and by the same theorem q is even [∀E at q, →E]. So p and q are both even [∧I], while they were chosen not both even: a contradiction [¬E; then ∃E twice, since ⊥ mentions neither p nor q]. Hence r2≠2 [¬I]. Since r was arbitrary, no rational number has square 2 [∀I].

Level 1. Level 1 keeps every box, every assumption and every closing line, and compresses the work between them into three lines.

1∀r∈Q∃p∈Z∃q∈ZL(r,p,q)
2r0r0∈Qasm, for ∀I
3r0⋅r0=2asm, for ¬I
4∃p∈Z∃q∈ZL(r0,p,q)∀E 1, 2
5p0p0∈Zasm, for ∃E
6∃q∈ZL(r0,p0,q)asm, for ∃E
7q0q0∈Zasm, for ∃E
8L(r0,p0,q0)asm, for ∃E
9E(p0)∧E; arith; lemma 3, 5, 7, 8
10E(q0)arith; lemma 3, 5, 7, 8, 9
11⊥∧E, ∧I, ¬E 8, 9, 10
12⊥∃E 6, 7–11
13⊥∃E 4, 5–12
14¬(r0⋅r0=2)¬I 3–13
15∀r∈Q¬(r⋅r=2)∀I 2–14

Line 9 takes the first conjunct out of L(r0,p0,q0), and line 11 the second.

The answer to the prompt: “By (L), write r=p/q with integers p, q, not both even” stands for line 4 (∀E of premise 1 at r0) and for the openings of the two ∃E boxes, lines 5–8. It also displays the conjunct r=p/q on its own, so the ∧E inside line 9 that takes it out has nothing left to say.

Second readingLevel 0 of the square root of two

Level 0. Premise 1 is (L) in the form above, premise 2 is Theorem 2.1.3. The derivation has 24 lines.

1∀r∈Q∃p∈Z∃q∈Z(p=r⋅q∧¬(E(p)∧E(q)))
2∀n∈Z(E(n⋅n)→E(n))
3r0r0∈Qasm, for ∀I
4r0⋅r0=2asm, for ¬I
5∃p∈Z∃q∈Z(p=r0⋅q∧¬(E(p)∧E(q)))∀E 1, 3
6p0p0∈Zasm, for ∃E
7∃q∈Z(p0=r0⋅q∧¬(E(p0)∧E(q)))asm, for ∃E
8q0q0∈Zasm, for ∃E
9p0=r0⋅q0∧¬(E(p0)∧E(q0))asm, for ∃E
10p0=r0⋅q0∧E 9
11p0⋅p0=2⋅(q0⋅q0)arith 4, 10
12E(p0⋅p0)arith 8, 11
13E(p0⋅p0)→E(p0)∀E 2, 6
14E(p0)→E 13, 12
15E(q0⋅q0)arith 6, 8, 11, 14
16E(q0⋅q0)→E(q0)∀E 2, 8
17E(q0)→E 16, 15
18E(p0)∧E(q0)∧I 14, 17
19¬(E(p0)∧E(q0))∧E 9
20⊥¬E 18, 19
21⊥∃E 7, 8–20
22⊥∃E 5, 6–21
23¬(r0⋅r0=2)¬I 4–22
24∀r∈Q¬(r⋅r=2)∀I 3–23

The three “arith” lines are facts about integers, each checkable by hand. Line 11: p0⋅p0=(r0q0)(r0q0)=(r0⋅r0)(q0⋅q0)=2⋅(q0⋅q0), by lines 10 and 4. Line 12: p0⋅p0 is 2 times the integer q0⋅q0, so it is even. Line 15: by line 14, p0=2m for an integer m; then line 11 reads 4m2=2q02, so q02=2m2 is even. The side conditions at the flagged lines hold: at line 21 the flag q0 is not in ⊥, in line 7, in a premise, or in the assumptions still open (lines 3, 4, 6, 7); at line 22 the flag p0 is not in ⊥, in line 5, in a premise, or in lines 3 and 4; at line 24 the flag r0 is in no premise and not in line 24.

Level-1 line 9 is level-0 lines 10–14; line 10 is lines 15–17; line 11 is lines 18–20. Premise 2 is not a line of level 1; it is cited as “lemma”. Every other line of level 1 is a line of level 0, renumbered.

At level 0, “By (L), write r=p/q with integers p, q, not both even” stands for line 5 (∀E of premise 1 at r0) and for the openings of the two ∃E boxes, lines 6–9. It also displays the conjunct, in the form r=p/q, on its own, so the ∧E of line 10 that extracts it has nothing left to say and can be silent.

A check at level 0.

Quick check. Which lines of the level-0 derivation in Example (The irrationality of the square root of two at four levels) have no counterpart in the level-3 text, and which item of Definition 8.3.2 lets each go?

Solution. Eight lines. Line 5 is ∀E of premise 1 at the obvious term r0, the name in sight; “By (L)” cites premise 1, and the instance is not written. Lines 10 and 19 are ∧E. Lines 13 and 16 are ∀E of the lemma at the obvious terms p0 and q0; the citations “by Theorem 2.1.3” and “by the same theorem” remain, and they are the →E lines 14 and 17. Lines 21 and 22 are the closing lines of the two ∃E boxes. Line 24 is the closing line of ∀I: level 3 never says “since r was arbitrary”. Every other line has a phrase: lines 1 and 2, the premises, are the citations “By (L)” and “by Theorem 2.1.3”; lines 3, 4, 6–9 the openings; lines 11, 12, 15 the arithmetic; lines 14, 17 the citations; lines 18 and 20 the clash, “both even, a contradiction”, which names the pair through “not both even” two sentences earlier; and line 23, “hence r2≠2”, the conclusion of ¬I, which is never silent.

Look at what the four texts share. Every level has the box of r, the box of the assumption r2=2, the choice of p and q, two uses of the lemma, and a contradiction followed by “hence r2≠2”. That common part is the proof; the rest is how much of the routine work each reader is trusted to do. The skeleton is the place where you can see it most clearly: fifteen lines, of which only lines 9 and 10 carry the mathematics; every other line is a decision about logic.

Quick check. Which lines of the level-1 skeleton in Example (The irrationality of the square root of two at four levels) have no counterpart in the level-3 text, and which item of Definition 8.3.2 lets each go?

Solution. Four lines. Line 4 is ∀E of premise 1 at the obvious term r0, the name in sight; “By (L)” cites premise 1, and the instance is not written. Lines 12 and 13 are the closing lines of the two ∃E boxes. Line 15 is the closing line of ∀I: level 3 never says “since r was arbitrary”. Every other line has a phrase: line 1 is “By (L)”; lines 2, 3 and 5–8 the openings; lines 9 and 10 the computations with their citations of Theorem 2.1.3; line 11 the clash, “both even, a contradiction”; and line 14, “hence r2≠2”, the conclusion of ¬I, which is never silent.

8.3.4. Uniform continuity, twice

The second example has no arithmetic at all. That makes it a good test of the levels: what is left when there is nothing to compress?

Example (Uniformly continuous implies continuous, at four levels)

Write the proof of Example (Uniformly continuous implies continuous), that a function uniformly continuous on A is continuous at every point of A, at levels 1 and 3, and say where each level records what δ depends on.

Solution. Level 1. Every line of the full derivation of Example (Uniformly continuous implies continuous) other than the premise opens or closes a box, or is cited by a closing line, except one stretch inside the box of δ0, which becomes line 7.

1∀ε>0∃δ>0∀x∈A∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε)
2x0x0∈Aasm, for ∀I
3ε0ε0>0asm, for ∀I
4∃δ>0∀x∈A∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε0)∀E 1, 3
5δ0δ0>0asm, for ∃E
6∀x∈A∀y∈A(|x−y|<δ0→|f(x)−f(y)|<ε0)asm, for ∃E
7∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε0)∀E, ∃I 2, 5, 6
8∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε0)∃E 4, 5–7
9∀ε>0∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε)∀I 3–8
10∀x∈A∀ε>0∃δ>0∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε)∀I 2–9

Level 3.

Let x∈A and ε>0. By uniform continuity, choose δ>0 (depending on ε only) such that |f(u)−f(v)|<ε for all u,v∈A with |u−v|<δ. In particular |f(x)−f(y)|<ε for every y∈A with |x−y|<δ, so this δ works for x and ε.

Where the dependence of δ is recorded. At level 1, in two places: the box of δ0 lies inside the boxes of x0 and ε0, so δ0 may depend on both; and the line it comes from, line 4, mentions ε0 and not x0, so it does depend only on ε0 (Section 6.4). At level 3 it is the parenthesis “(depending on ε only)”, and nothing else: the parenthesis is the whole of the box structure that survives. Section 8.2’s picture draws the same record.

Second readingLevels 0 and 2 of the same proof

Level 0 is the derivation of Example (Uniformly continuous implies continuous), copied here with the same line numbers. Line 1 is uniform continuity (UC), line 11 is continuity at every point (C).

1∀ε>0∃δ>0∀x∈A∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε)
2x0x0∈Aasm, for ∀I
3ε0ε0>0asm, for ∀I
4∃δ>0∀x∈A∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε0)∀E 1, 3
5δ0δ0>0asm, for ∃E
6∀x∈A∀y∈A(|x−y|<δ0→|f(x)−f(y)|<ε0)asm, for ∃E
7∀y∈A(|x0−y|<δ0→|f(x0)−f(y)|<ε0)∀E 6, 2
8∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε0)∃I 5, 7
9∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε0)∃E 4, 5–8
10∀ε>0∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε)∀I 3–9
11∀x∈A∀ε>0∃δ>0∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε)∀I 2–10

Level 1. Every line of level 0 other than the premise opens or closes a box, or is cited by a closing line, except line 7: lines 7 and 8, which specialize the chosen δ0 to the point x0 and repackage the result, are the one stretch of work inside a box.

Level 2.

Let x∈A [∀I] and let ε>0 [∀I]. By uniform continuity, applied at ε [∀E], there is δ>0 such that |u−v|<δ implies |f(u)−f(v)|<ε for all u,v∈A; choose such a δ, which depends on ε only [∃E]. Taking u=x [∀E], every y∈A with |x−y|<δ has |f(x)−f(y)|<ε. So this δ works for x and ε [∃I; then ∃E closes, since “some δ works” does not mention the chosen one]. Since ε and x were arbitrary, f is continuous at every point of A [∀I twice].

As in Section 6.4, the prose renames the bound variables of UC to u, v, so that x can name the fixed point.

Where the dependence of δ is recorded. At level 0, in two places: the box of δ0 lies inside the boxes of x0 and ε0, so δ0 may depend on both; and the line it comes from, line 4, mentions ε0 and not x0, so it does depend only on ε0 (Section 6.4). At level 1 the record is the same, lines 3 to 5 being unchanged. At level 2 it is the clause “which depends on ε only”, placed at the ∃E tag, after the ∀E at ε that produced it. At level 3 it is the parenthesis “(depending on ε only)”, and nothing else: the parenthesis is the whole of the box structure that survives.

Here the gap between level 0 and level 1 is one line, because there is no arithmetic to compress.

From level 1 to level 3, ten lines become three sentences. What the level-3 text keeps is exactly the never-silent part of Definition 8.3.2: the openings of the two ∀I boxes (“let x∈A and ε>0”), the citation and the choice with its fresh name (“by uniform continuity, choose δ”), the dependence of the witness, and the witness itself (“this δ works”). The ∀E at u=x, inside line 7, is the obvious instance and becomes “in particular”. The ∃E closing line 8 and the two ∀I closing lines 9 and 10 are silent.

Quick check. In the level-3 text, which words record that δ was chosen inside the box of ε from a line that mentions ε only?

Solution. The parenthesis “(depending on ε only)”.

8.3.5. It suffices to show, as a column

Section 8.2 read “it suffices to show φ” as a step that replaces the goal by φ and shows on the spot that φ is enough. A proof that makes several such steps in a row is easiest to plan, and to check, as a column. The goal goes at the top. Each row is a claim from which the row above follows, with the reason beside it. At the bottom is a claim that needs no reduction: a hypothesis, a fact or a cited result. Read upwards, the column is the proof.

Example (Two columns)
  • (a) Prove that x2−6x+10>0 for every real x. (b) Let an:=(2n+1)/(n+1) for n∈N. Prove that an→2. Plan each proof as a column of reductions, then write it.

Solution. (a)

It suffices to show because
x2−6x+10>0 (the goal)
(x−3)2+1>0 x2−6x+10=(x−3)2+1
(x−3)2≥0 a number at least 0, plus 1, is positive
— every square is at least 0

(b) Let ε>0. For n∈N with n≥N, where N is still to be chosen:

It suffices to show because
|an−2|<ε (the goal, for n≥N)
1/(n+1)<ε an−2=−1/(n+1), so |an−2|=1/(n+1)
n+1>1/ε for positive numbers, taking reciprocals reverses <
N>1/ε n≥N gives n+1>N
— choose an integer N>1/ε (the school fact of Example (The reciprocals tend to zero)); since 1/ε>0, N>0, so N∈N; it depends on ε

Each reason is an implication that points up: the row implies the row above it. Read from the bottom, (a) is the proof “Since (x−3)2≥0, x2−6x+10=(x−3)2+1≥1>0.” Read the same way, (b) is “Let ε>0, and choose N∈N with N>1/ε. For n≥N, |an−2|=1/(n+1)<1/N<ε.” In (b) the constant is found at the bottom of the column, last, and written in the proof’s first sentence, as step 5 of Section 8.5 will require.

Quick check. In column (b), which row introduces a constant, and which reason needs ε>0?

Solution. The bottom row introduces N, chosen from the school fact at 1/ε, so it depends on ε. The reciprocal row needs ε>0: 1/ε must exist and be positive for “n+1>1/ε gives 1/(n+1)<ε”. The bottom row uses it too: 1/ε must be defined, and an integer above 1/ε lies in N because 1/ε>0.

8.3.6. Expand to check

The levels are not only a way to write. They are a way to check. When a sentence of a level-3 proof leaves you uneasy, rewrite that stretch, and only that stretch, at level 1. Either every line of the expansion is legal, and the doubt is settled, or one line breaks a rule, and you have found the error and its exact address.

Start with a sentence whose fault is close to the surface:

Some element of A is positive; let x be one. Since x was arbitrary, every element of A is positive.

Expand it. “Some element of A is positive” is the line ∃x(x∈A∧x>0); “let x be one” opens an ∃E box with a fresh name x0; “since x was arbitrary” needs a ∀I. At level 1, with that line marked:

1∃x(x∈A∧x>0)
2x0x0∈A∧x0>0
3x0∈Aasm, for →I
4x0>0∧E 2
5x0∈A→x0>0→I 3–4
6∀x(x∈A→x>0)∀I? 2–5

Line 6 is what “since x was arbitrary” needs, and no rule gives it. It cannot cite the box 2–5, which is still open (and is the ∃E box of x0); and a new ∀I box flagged x0, opened inside it, breaks the side condition of ∀I (Definition 5.4.1), because x0 appears in the open assumption on line 2. That assumption says that x0 is positive, so x0 is one particular element, not an arbitrary one. Section 8.6 catalogues the error as (N3). For A={−1,1} the premise is true and the conclusion false.

Here is a harder one, which sounds like the level-3 proof of Example (Uniformly continuous implies continuous, at four levels) run backwards.

Let ε>0. For each x∈A, continuity at x gives some δ>0 such that |f(x)−f(y)|<ε for every y∈A with |x−y|<δ. Hence, choosing δ as above for every x, we have |f(x)−f(y)|<ε whenever x,y∈A and |x−y|<δ, so f is uniformly continuous on A.

Expand it. “Let ε>0” opens a box for ε0. “For each x∈A” opens a box for x0. “Continuity at x gives some δ” is ∀E twice and the opening of an ∃E box for δ0. At level 1, with the line the sentence needs as line 7, its rule marked with a question mark:

1∀x∈A∀ε>0∃δ>0∀y∈A(|x−y|<δ→|f(x)−f(y)|<ε)
2ε0ε0>0
3x0x0∈A
4∃δ>0∀y∈A(|x0−y|<δ→|f(x0)−f(y)|<ε0)∀E twice 1, 3, 2
5δ0δ0>0
6∀y∈A(|x0−y|<δ0→|f(x0)−f(y)|<ε0)
7∀x∈A∀y∈A(|x−y|<δ0→|f(x)−f(y)|<ε0)∀I? 3–6

Line 7 is what the phrase “choosing δ as above for every x” needs: one δ0 that works for all x and y, so that ∃I can then produce UC’s ∃δ inside the box of ε0. But line 7 would be a ∀I over x0, and no such step is legal here. The box of x0 opened at line 3 is still open, so ∀I cannot cite it; and a new box with the flag x0, opened inside the box of δ0, breaks the side condition of ∀I (Definition 5.4.1), because x0 appears in the open assumptions on lines 3 and 6. The phrase “for every x” has generalized over a name on which the chosen δ0 depends. This is the first blocked line of Example (The search from C to UC), met there in the search; here it was found by expanding one English sentence. Section 8.6 catalogues the error, and Example (The square function on the real line) shows that no repair is possible: for x2 on R the conclusion is false.

The expansion took six lines, and it was enough to expand the one doubtful stretch. That is the general pattern: you never need to rewrite a whole proof at level 0 to check it. Find the sentence you do not trust, find the boxes open at that sentence, and write the few lines it stands for.

Remark (Looking ahead). From Analysis on the Real Line, Chapter 1 on, proofs are written at level 3, and a rule tag appears only where the rule is itself the point; Sets, Relations, and Cardinality, Chapters 1–3 may still tag some proofs at level 2.

8.3.7. Exercises

A. Check your understanding

Exercise (A1)

Parts (a)–(c) are about Example (Uniformly continuous implies continuous, at four levels), parts (d) and (e) about Example (The irrationality of the square root of two at four levels).

  • (a) Which lines of the level-1 skeleton does the level-3 sentence “Let x∈A and ε>0” stand for? Which open a box, which close one, and which are written at level 3?
  • (b) Where is the dependence of δ recorded at levels 1 and 3?
  • (c) State the idea of the proof in two sentences.
  • (d) At which line of levels 1, 2 and 3 is the “not both even” clause of (L) used to reach the contradiction?
  • (e) True or false, with a reason: at level 3, the sentence “hence r2≠2” may be left out of the proof of Theorem 2.2.1, since the reader has just been told that a contradiction was reached.

Solution. (a) Lines 2, 3, 9 and 10. Lines 2 and 3 open the flagged boxes of x0 and ε0, with their bounds x0∈A and ε0>0; lines 9 and 10 close them by ∀I. The openings are written (“let”); the closings are silent at level 3 (Definition 8.3.2).

(b) At level 1: the box of δ0 sits inside the boxes of x0 and ε0, and line 4, the line it comes from, mentions ε0 only. At level 3: the parenthesis “(depending on ε only)”.

(c) Uniform continuity at ε provides one δ that serves all pairs of points of A at once, and it provides it before any point is named. Continuity at a point x asks only for the pairs whose first point is x, so the same δ works.

(d) Level 1: it is the second conjunct of L(r0,p0,q0) on line 8, used at line 11. Level 2: “while they were chosen not both even: a contradiction”. Level 3: “Thus p and q are both even, a contradiction”, where the clash refers back to “not both even” in the sentence that chose p and q.

(e) False. “Hence r2≠2” is the conclusion of ¬I, which Definition 8.3.2 puts among the steps that are never silent. A contradiction alone does not say which assumption it refutes; in this proof the boxes of p, q and of r2=2 are all open when it is reached, and the sentence says which box closes and what it gives.

Exercise (A2: Drill)

Each part takes a line or two. (a) names a level; (b)–(f) decide whether a step may be silent at level 3; (g) and (h) judge a text; (i) and (j) decide whether a line may be justified TAUT; (k) and (l) work with an “it suffices to show” column.

  • (a) “Let ε>0 [∀I]. Take δ:=ε/2 [∃I]. …” At which level is this text written?
  • (b) At level 3, may “since x was arbitrary” be left out?
  • (c) May “choose k with n=2k” be left out?
  • (d) May “by the triangle inequality” be left out?
  • (e) May “in particular x>0”, after “since 0<x<1”, be left out?
  • (f) May the split “x≥0 or x<0, and every real x is one or the other” be left out?
  • (g) A skeleton has the line “|f(x)−f(y)|<ε, arith”. Is the proof finished?
  • (h) A text says “Let r be rational. Then p is even.” Name two never-silent steps that are missing.
  • (i) From Section 6.3 on, may the level-1 line x0>0, citing the line x0>0∧y0>0, be justified TAUT?
  • (j) May the line ∀y∀xR(x,y), citing ∀x∀yR(x,y), be justified TAUT?
  • (k) A column for “2n+1>n+1, given 2n>n and n≥1” has the first row “it suffices to show 2n+2n>n+1”. What is that row’s reason, and what row could come next?
  • (l) In an “it suffices to show” column, which row is proved outright, with no further reduction?

Solution.

  • (a) Level 2: sentences, each tagged with the rule it carries.

  • (b) Yes: it is the closing of ∀I.

  • (c) No: it is an ∃E with a fresh name.

  • (d) No: it is a citation.

  • (e) Yes: it is ∧E.

  • (f) No: it is the split of ∨E, with the reason it exhausts.

  • (g) No: a skeleton is a plan, and every arith line must be expanded (the warning “A skeleton is not a finished proof”).

  • (h) The choice of p (∃E with a fresh name, citing (L)): p appears from nowhere. Also missing: the assumption r2=2, the opening of ¬I, and the citation of Theorem 2.1.3 that licenses “p is even”.

  • (i) Yes. On the skeleton (Proposition 6.3.1) it is P∧Q⊨P, true in every row: it is ∧E.

  • (j) No. On the skeleton the two lines are different letters, and P⊨Q fails in a row (P true, Q false). The step needs ∀E twice and ∀I twice.

  • (k) 2n+1=2⋅2n=2n+2n (=E). Next: “it suffices to show 2n≥1”, because then 2n+2n>n+2n≥n+1 by the hypothesis 2n>n.

  • (l) The bottom row. It is a hypothesis, a fact or a cited result; every other row is reduced to the one below it.

B. Practice

Exercise (B1: Some-all gives all-some, on the natural numbers)

Read Proposition 5.6.2 over the domain N, with R(x,y) as “x≤y”: from ∃x∀y(x≤y), conclude ∀y∃x(x≤y). The premise is true, with the witness x=0. Write the proof at levels 1, 2 and 3. Your proof must use the premise, although this instance of the conclusion also has a one-line proof, with x=y.

Solution. Level 1. The proof has no arithmetic, so the skeleton is the level-0 derivation of Proposition 5.6.2 with R(x,y) read as x≤y:

1∃x∀y(x≤y)
2y0x0∀y(x0≤y)asm, for ∃E
3x0≤y0∀E 2
4∃x(x≤y0)∃I 3
5∃x(x≤y0)∃E 1, 2–4
6∀y∃x(x≤y)∀I 2–5

Level 2.

Let y∈N [∀I]. By hypothesis, some natural number is at most every natural number; choose such a number x0, which depends on nothing, since the hypothesis mentions no y [∃E, x0 fresh]. In particular x0≤y [∀E at y], so some natural number is at most y [∃I with witness x0; then ∃E closes, since this does not mention x0]. Since y was arbitrary, every natural number has a natural number at most it [∀I].

Level 3.

Let y∈N. By hypothesis, choose x0∈N with x0≤z for every z∈N; the hypothesis does not mention y, so x0 does not depend on y. In particular x0≤y, so x0 is a natural number at most y.

The level-3 text renames the bound variable of the hypothesis to z, so that y can name the fixed number. The witness x0 was chosen inside the box of y0, but it comes from line 1, which mentions no y; so it does not depend on y. The one-line proof, “y≤y, so take x=y”, is ∃I with the witness y, which does depend on y. Both prove the conclusion; only the first is an instance of Proposition 5.6.2, and only the first shows that a single x serves every y.

Exercise (B2: Back from prose to a skeleton, with blanks)

Here is a level-3 proof.

Claim. If n is an odd integer, then 8∣n2−1.

Let n be odd, say n=2k+1 with k an integer. Then n2−1=4k(k+1), so it suffices to show that k(k+1) is even. If k=2j for an integer j, then k(k+1)=2⋅j(2j+1); if k=2j+1, then k(k+1)=2⋅(2j+1)(j+1). Either way k(k+1)=2i for an integer i, and then n2−1=8i.

Work over the domain Z, with “n is odd” as ∃k(n=2k+1) and 8∣m as ∃t(m=8t). Here is its level-1 skeleton with nine blanks, labeled (i)–(ix). Name the move, then complete it, and say where the proof uses the fact (E1) of Section 2.1, that every integer is even or odd.

Derivation

Solution. The move is skeleton first: every box closes by the rule its opening asks for: a “choose” by ∃E on a line that does not mention the chosen name, the split by ∨E, “suppose n is odd” by →I, “let n” by ∀I.

Completion: (i) ∃j(k0=2⋅j)∨∃j(k0=2⋅j+1), by (E1) at k0; (ii) ∃E 5, 6–8; (iii) ∃E 10, 11–13; (iv) ∨E 4, 5–9, 10–14; (v) k0⋅(k0+1)=2⋅i0, with i0 fresh; (vi) ∃E 15, 16–18; (vii) ∃E 1, 2–19; (viii) →I 1–20; (ix) ∀I 1–21.

(E1) enters at line 4; in the prose it is “if k=2j … if k=2j+1”, whose reason for covering every case is not written, so the given proof is slightly short of level 3 there.

Exercise (B3: A column of reductions)
  • (a) Prove that |x−1|+|x+1|≥2 for every real x by an “it suffices to show” column, each row with its reason.
  • (b) Turn the column into a level-3 proof.
  • (c) Which reasons in your column are =E steps that level 3 may leave silent?
  • (d) A student’s column has the row “it suffices to show |x−1|≥1 and |x+1|≥1”. Is that row’s reason correct? Can the student finish?

Solution. (a)

It suffices to show because
|x−1|+|x+1|≥2 (the goal)
|1−x|+|x+1|≥|(1−x)+(x+1)| |x−1|=|1−x|, and (1−x)+(x+1)=2, so the right side is |2|=2
— the triangle inequality, Example (The triangle inequality by cases) with 1−x and x+1 in place of its x and y

(b) “By the triangle inequality, |x−1|+|x+1|=|1−x|+|x+1|≥|(1−x)+(x+1)|=2.”

(c) |x−1|=|1−x| and (1−x)+(x+1)=2: both are =E links of a chain, silent at level 3 (Definition 8.3.2). The citation of the triangle inequality is never silent.

(d) The reason is correct: if both hold, the sum is at least 2, so the row implies the goal. But the student cannot finish. The new row is false at x=12, where |x−1|=12, although the goal holds there (12+32=2). A reduction is legal whenever its arrow points up; it is useful only when the new row is true.

Marking scheme. (10 points) - 3: (a) a column whose every row has an upward-pointing reason, ending in a cited result or a fact (the triangle inequality, or a case split on the sign of x−1 and x+1). - 3: (b) a forward level-3 text with the citation written. - 2: (c) the two =E links named as silent, the citation as spoken. - 2: (d) the reason judged correct, and the row shown false at a named x: it fails exactly when 0<|x|<2, for instance at x=12.

A three-case proof (x≤−1; −1<x<1; x≥1) written as a column earns (a) and (b) in full. Fatal errors (0 for the step): a row whose reason points down (“the goal implies the row”); a case split that does not exhaust (N8).

C. Going deeper

Exercise (C1: Arbitrarily close numbers, at two levels)

Consider Proposition 6.2.5: for real numbers a and b, if |a−b|<ε for every ε>0, then a=b.

  • (a) Write its proof at level 1, as a skeleton in which school facts about |⋅| and < are lines justified “arith”.
  • (b) Write it at level 3.
  • (c) Which lines of your skeleton are silent at level 3? Which instance of ∀E must the level-3 text name, and why?

Solution. (a) The statement is an implication, so the outer box is →I; the goal a=b is atomic, and the proof in Section 6.2 opens an RAA box on a≠b.

1∀ε>0(|a−b|<ε)asm, for →I
2¬(a=b)asm, for RAA
3|a−b|>0arith 2
4|a−b|<|a−b|∀E 1, 3
5¬(|a−b|<|a−b|)arith
6⊥¬E 4, 5
7a=bRAA 2–6
8∀ε>0(|a−b|<ε)→a=b→I 1–7

Line 4 is the bounded ∀E at the term |a−b|, whose bound |a−b|>0 is line 3. Line 5 is the school fact that no real number is less than itself.

(b)

Suppose |a−b|<ε for every ε>0, and suppose, for a contradiction, that a≠b. Then |a−b|>0, so the hypothesis applies with ε=|a−b| and gives |a−b|<|a−b|; but no real number is less than itself. Hence a=b.

(c) Only line 8, the closing line of →I, is silent: “hence if … then a=b” is not written. Line 5 is not silent: it is one member of the clashing pair of the ¬E on line 6, and level 3 names it (“no real number is less than itself”). The instance of line 4 must be named, ε=|a−b|, because it is not the obvious term: no name in sight is the obvious candidate for ε, and the whole proof turns on choosing this one. Saying only “by the hypothesis” would leave the reader to find the instance, and that instance is the idea of the proof. The RAA opening, “suppose, for a contradiction, that a≠b”, and its conclusion, “hence a=b”, are also never silent.

Marking scheme. (10 points) - 2: (a) the →I box on the hypothesis, and inside it a box opened on a≠b. - 2: (a) the box closed by RAA (¬I alone would give only ¬¬(a=b)), with ⊥ as its last line. - 2: (a) the ∀E at |a−b|, citing a line |a−b|>0. - 2: (b) a level-3 text with the opening of the contradiction, the instance, the clash and “hence a=b”, and no tags. - 2: (c) the silent line identified, and the instance ε=|a−b| said to be named because it is not the obvious term. - Other routes: a ¬I box on a≠b followed by ¬¬E, or a split on |a−b|>0 or |a−b|=0 (arith) whose first case reaches ⊥ by the same ∀E and clash and then a=b by ⊥E, while the second gives a=b by arith, earns the 4 points of the first two lines, provided the ¬¬E line is written explicitly, or the disjunction of the split is justified (from |a−b|≥0, or by trichotomy). In the split, the case assumption |a−b|>0 is the line the ∀E cites for the third line, and for (b) and (c) the opening of the ¬I box or of the split stands in for the opening of the contradiction. Fatal errors (0 for the step): the box closed by ¬I with the conclusion a=b; the hypothesis applied at an ε not known to be positive.

Exercise (C2: Exit check: levels)

Let (an) be a sequence of real numbers with an→L, and let c≠0 be a real number. Here is a level-0 derivation that can→cL, with the definition of a limit as in Example (Five definitions, translated) (a), the hypothesis c≠0 as premise 2, and two lines of school arithmetic justified “arith”.

1∀ε>0∃N∈N∀n∈N(n≥N→|an−L|<ε)
2¬(c=0)
3ε0ε0>0asm, for ∀I
4ε0/|c|>0arith 2, 3
5∃N∈N∀n∈N(n≥N→|an−L|<ε0/|c|)∀E 1, 4
6N0N0∈Nasm, for ∃E
7∀n∈N(n≥N0→|an−L|<ε0/|c|)asm, for ∃E
8n0n0∈Nasm, for ∀I
9n0≥N0→|an0−L|<ε0/|c|∀E 7, 8
10n0≥N0asm, for →I
11|an0−L|<ε0/|c|→E 9, 10
12|c⋅an0−c⋅L|<ε0arith 2, 11
13n0≥N0→|c⋅an0−c⋅L|<ε0→I 10–12
14∀n∈N(n≥N0→|c⋅an−c⋅L|<ε0)∀I 8–13
15∃N∈N∀n∈N(n≥N→|c⋅an−c⋅L|<ε0)∃I 6, 14
16∃N∈N∀n∈N(n≥N→|c⋅an−c⋅L|<ε0)∃E 5, 6–15
17∀ε>0∃N∈N∀n∈N(n≥N→|c⋅an−c⋅L|<ε)∀I 3–16

Write the proof at level 2 and at level 3. Then say in one sentence how the case c=0 goes.

Solution. Level 2.

Let ε>0 [∀I]. Since c≠0, |c|>0, so ε/|c|>0 [arith]. Applying the definition of an→L with ε/|c| in place of ε [∀E], choose N∈N, depending on ε (and on the fixed number c), such that |an−L|<ε/|c| for every n≥N [∃E, N fresh]. Let n∈N [∀I] with n≥N [assumption for →I]. Then |an−L|<ε/|c| [∀E, →E], so |can−cL|=|c||an−L|<|c|⋅ε|c|=ε [arith]. So this N works for ε [→I, ∀I, ∃I with witness N; then ∃E closes]. Since ε>0 was arbitrary, can→cL [∀I].

Level 3.

Let ε>0. Since c≠0, we have ε/|c|>0, so by the definition of an→L, applied with ε/|c|, there is N∈N (depending on ε and c) such that |an−L|<ε/|c| for every n≥N. For every n≥N, |can−cL|=|c||an−L|<|c|⋅ε|c|=ε. So this N works for ε, and can→cL.

The case c=0. Then can=0=cL for every n, so |can−cL|=0<ε for every ε>0 and every n, and any N works, for instance N=0; the hypothesis an→L is not needed.

At level 3, the silent steps are those Definition 8.3.2 allows: the ∀E and →E of lines 9 and 11 at the obvious n (the implication of line 11 is line 9, an instance of the property of the chosen N0, not of a hypothesis or a result), carried by “for every n≥N”, and the closing lines 13, 14, 16 and 17. The ∀E of line 5 is not silent, because its instance ε/|c| is not the obvious one; it is named (“applied with ε/|c|”). The witness of line 15 is named (“this N”), and its dependence is stated.

Marking scheme. (10 points) - 4: every never-silent step is present at level 3, one point each: ε>0 fixed first (∀I); the hypothesis applied at ε/|c|, with its positivity justified, and N chosen from it (∃E); the witness N produced with its dependence on ε stated (∃I); n≥N taken arbitrary (∀I). - 3: the level-2 tags are correct: ∀I for ε and for n, ∀E at ε/|c|, ∃E for N, →I for n≥N, ∃I for the witness. Deduct one point per wrong or missing tag, down to 0. - 2: no step silent at level 3 beyond those Definition 8.3.2 allows, steps already scored in the first line not counted again; in particular the estimate |can−cL|=|c||an−L|<|c|⋅ε/|c|=ε is written out for an arbitrary n≥N. - 1: the case c=0 handled, or excluded explicitly with a reason. A level 3 that writes “for every n≥N” as the single phrase for ∀I together with →I earns the ∀I point, as in the solution. Fatal errors (0 for the step): N chosen before ε is fixed; dividing by |c| in the case c=0.

Exercise (C3: Back from prose to a skeleton)

Here is a level-3 proof.

Claim. For every integer n, 4∣n2 or 4∣n2−1.

Let n be an integer. If n is even, say n=2k, then n2=4k2, so 4∣n2. If n is odd, say n=2k+1, then n2−1=4k2+4k=4(k2+k), so 4∣n2−1.

Reconstruct its level-1 skeleton. Work over the domain Z, with “n is even” as ∃k(n=2k), “n is odd” as ∃k(n=2k+1) and 4∣m as ∃t(m=4t). Name the rule that closes each box, and name every step of the skeleton that the prose leaves unsaid.

Hint: The claim is a disjunction for every n. Which disjunct is reached in each case, and by which rule?

Solution. Write D(n0) for the goal’s instance ∃t(n0⋅n0=4⋅t)∨∃t(n0⋅n0−1=4⋅t); in the derivation it is written out.

1n0∃k(n0=2⋅k)∨∃k(n0=2⋅k+1)(E1)
2∃k(n0=2⋅k)asm, for ∨E
3k0n0=2⋅k0asm, for ∃E
4n0⋅n0=4⋅(k0⋅k0)arith 3
5∃t(n0⋅n0=4⋅t)∃I 4
6∃t(n0⋅n0=4⋅t)∨∃t(n0⋅n0−1=4⋅t)∨I 5
7∃t(n0⋅n0=4⋅t)∨∃t(n0⋅n0−1=4⋅t)∃E 2, 3–6
8∃k(n0=2⋅k+1)asm, for ∨E
9k1n0=2⋅k1+1asm, for ∃E
10n0⋅n0−1=4⋅(k1⋅k1+k1)arith 9
11∃t(n0⋅n0−1=4⋅t)∃I 10
12∃t(n0⋅n0=4⋅t)∨∃t(n0⋅n0−1=4⋅t)∨I 11
13∃t(n0⋅n0=4⋅t)∨∃t(n0⋅n0−1=4⋅t)∃E 8, 9–12
14∃t(n0⋅n0=4⋅t)∨∃t(n0⋅n0−1=4⋅t)∨E 1, 2–7, 8–13
15∀n(∃t(n⋅n=4⋅t)∨∃t(n⋅n−1=4⋅t))∀I 1–14

Line 1 is (E1) at n0, cited as in B2’s line 4. The boxes close by ∃E (lines 7 and 13: D(n0) does not mention k0 or k1), ∨E (line 14) and ∀I (line 15). The second case box could reuse the name k0, since the two boxes are siblings; k1 keeps the lines apart. The arithmetic: (2k0)2=4k02 (line 4) and (2k1+1)2−1=4k12+4k1=4(k12+k1) (line 10).

The prose leaves unsaid the disjunction (E1) and its reason for covering every case (as in B2, the proof is slightly short of level 3 there), the two ∨I steps (silent: each case’s last words, “so 4∣n2” or “so 4∣n2−1”, show which disjunct was reached), the ∃E closings, the ∨E closing and the ∀I closing (silent closings). It writes every opening (“let”, “if”, “say”), both witnesses (k2 and k2+k) and both computations.