research35 min studyLesson 991 in Mathematics

Constructive logic and witnesses

Track the evidence supplied by a proof and distinguish an explicit construction from double-negated existence.

On this page

What you’ll understand

  • Explain the computational evidence associated with conjunction, disjunction, implication, and existence.
  • Separate a witness-producing proof from a proof of double-negated existence.
  • Construct a bounded-search witness and verify its minimality without an unrestricted excluded-middle principle.

Constructive mathematics asks what information a proof actually delivers. A proof that an object exists should explain how to obtain it, while a proof of an implication should transform supplied evidence into the promised conclusion. This perspective changes which classical arguments can be used without further assumptions. It does not prohibit contradiction or ordinary finite calculation. We will identify the precise point where a negative argument stops short of returning data, then construct and certify a small search result.

Logical connectives describe ways to use evidence

Under the propositions-as-types interpretation used here, conjunction is represented by a pair, and an implication by a function taking evidence of its hypothesis to evidence of its conclusion. An untruncated disjunction includes a tag indicating the chosen alternative and evidence for that alternative. An untruncated existential includes an object and evidence that it satisfies the predicate. These descriptions concern proof-relevant data; later we will distinguish them from mere propositions and truncated existence.

The introduction and elimination rules must agree. To use a conjunction, project its components; to use a disjunction, handle either possible tag. A function proves an implication only when it works for every admitted input, rather than for a favorable example. The empty type represents falsity, and negation means a function into that empty type. Thus proving a negative statement is itself constructive when the proposed counterexample is transformed into a contradiction.

P∧Q⇝P×Q,P⇒Q⇝(P→Q),¬P⇝(P→0).P\wedge Q\rightsquigarrow P\times Q,\qquad P\Rightarrow Q\rightsquigarrow(P\to Q),\qquad \neg P\rightsquigarrow(P\to\mathbf0).
These are interpretations of proof data, not claims that every type is already a mere proposition.↔ Scroll wide equations horizontally.

Double negation forgets a useful distinction

A proof of P always yields a proof that P cannot be refuted: send any proposed refutation the supplied proof. The reverse conversion is not a rule of intuitionistic logic for arbitrary P. In particular, refuting the claim that no witness exists need not provide a witness. Adding a general conversion from double negation to positive evidence recovers a classical principle, so an argument that uses it should declare the extra assumption.

Even the excluded-middle disjunction has a constructive double negation. Suppose a refutation rejects every proof of either P or its negation. It would reject any proof of P through the left tag, thereby itself providing a negation of P. The right tag containing that negation is then also rejected, giving a contradiction. This argument constructs double-negated excluded middle without deciding P. Keeping the tags and function types visible makes the difference precise.

P→¬¬P,¬¬(P+¬P),λk. k(inr⁡(λp. k(inl⁡(p)))).P\to\neg\neg P,\qquad \neg\neg(P+\neg P),\qquad \lambda k.\,k\bigl(\operatorname{inr}(\lambda p.\,k(\operatorname{inl}(p)))\bigr).
The displayed term inhabits the double negation of the proof-relevant disjunction; it is not a decision procedure for P.↔ Scroll wide equations horizontally.

Decidable predicates permit certified finite search

For a decidable predicate on a finite list, compare each candidate in order and stop at the first success. A successful run returns the candidate, a verification of its predicate, and the failed comparisons for all preceding candidates. If the list is exhausted, it returns a proof that no member of that list works. Every branch is justified by the supplied decision procedure, so this algorithm needs no unrestricted decision principle for arbitrary mathematical propositions.

The finiteness qualification matters. Searching all natural numbers for a decidable property may never terminate when no witness exists. A proof that a bounded search succeeds can supply a termination bound, while a bare promise that the property is not refutable may not do so. Constructive proof design therefore records both the predicate and the information guaranteeing that its search completes. The resulting certificate can be checked independently of the strategy used to discover it.

Dec⁡(P)=P+(P→0),∑n:N(P(n)×∏m<n¬P(m)).\operatorname{Dec}(P)=P+(P\to\mathbf0),\qquad \sum_{n:\mathbb N}\left(P(n)\times\prod_{m<n}\neg P(m)\right).
The second type packages a successful natural-number witness together with a proof of minimality.↔ Scroll wide equations horizontally.

Return the first square above a bound

Search the natural numbers from zero through eight for the least n whose square is at least thirty. Specify both the returned data and the failed comparisons that certify minimality.

  1. Compute the squares at zero through five: zero, one, four, nine, sixteen, and twenty-five. Each is strictly smaller than thirty, so every earlier candidate is rejected by a decidable integer comparison.

  2. The square of six is thirty-six, which is at least thirty. Return six with this positive comparison. The search terminates within the stated finite list and does not need to inspect seven or eight.

  3. Package the successful comparison with the six earlier failures. Together they prove both existence in the list and leastness among natural numbers, since any natural number smaller than six is one of those six checked values.

52=25<30≤36=62,(6, success at 6, failures at 0,…,5).5^2=25<30\le36=6^2,\qquad (6,\ \text{success at }6,\ \text{failures at }0,\ldots,5).
The search output is a certificate containing data, not only a double-negated existence statement.↔ Scroll wide equations horizontally.
The result

The witness is six, carrying evidence that its square is at least thirty and that every smaller natural number fails the predicate.

Explore the model

Interactive lab

Interactive lab · modular

Inspect a finite candidate enumeration

Pause and Reset, then set modulus to 9 and additive step to 1. Predict residues 0, 1, 2, 3, 4, 5, 6 on the initial frame and next six Steps; check the square predicate separately on paper. The orbit enumerates this finite candidate set but does not evaluate the predicate or verify a proof. For a fresh comparison Reset and set modulus to 9 and step to 3: only 0, 3, 6 appear, so this orbit would miss other candidates. Editing retains time; Reset and both settings are required for each run.

Inspect a finite candidate enumerationAddition modulo m starts at zero: rₙ = na mod m. Playback advances two additions per second. The orbit has period m/gcd(m,a), including period one for a = 0. This is not a cryptographic security test or a primality algorithm. Current readings: Residue r0: 0; Orbit period · m/gcd(m,a): 12; Distinct residues visited: 1 of 12. All parameters are adjustable with the labeled controls below.Repeated addition modulo 12: the current residue is 0, and the orbit period is 12.01234567891011+ 5mod 12An additive orbitn = 0rₙ = 0Period = 12Cycle starts at 0:0 → 5 → 10 → 3 →8 → 1 → 6 → 11 →4 → 9 → 2 → 7 → 0Exact residues · two additions per second
Additive orbitCurrent residue / next edge
Residue r0
0
Orbit period · m/gcd(m,a)
12
Distinct residues visited
1 of 12
t = 0 s

Addition modulo m starts at zero: rₙ = na mod m. Playback advances two additions per second. The orbit has period m/gcd(m,a), including period one for a = 0. This is not a cryptographic security test or a primality algorithm. Parameter changes pause playback and recompute the model at the current elapsed time. Reset restores both parameters and returns time to zero. Playback starts paused. Adjust either parameter, then choose Play or Step.

Look forA witness search needs a justified enumeration as well as a decidable predicate.

Check your understanding

What additional information does an untruncated existential proof provide beyond a proof of its double negation?

Try it yourself

Find the least natural number whose square is strictly greater than fifty, and explain why this finite construction does not establish a decision procedure for unbounded existential questions.

Take a moment to make a prediction or work it out on paper. Open a hint when you need one.

Give me a hint

Compare the squares around seven and eight, and retain evidence about all smaller candidates.

Compare with the solution

The square of seven is forty-nine, while the square of eight is sixty-four. The squares of zero through six are no larger than thirty-six, so eight is the least witness. The finite comparisons certify this particular result. They do not supply a bound for searching an arbitrary decidable predicate on all natural numbers; in an unsuccessful unbounded search, no last comparison need occur.

Take it with you

  • Proof-relevant existence carries an object and its certificate.
  • Negative reasoning is constructive, but double-negation elimination is an extra general principle.
  • Finite decidable search can return a checkable least-witness certificate.

Read further

Original sources and deeper explanations to follow at your own pace.

Optional progress, saved in this browser when available. Revisit any lesson at any time.

Lesson not marked complete.