Comparison of constructive and classical mathematics, including existence, proof, logic, and computation.
Mathematics has more than one standard way to interpret proof. The two most important viewpoints are classical and constructive mathematics.
Classical mathematics accepts the usual laws of logic, including the law of excluded middle:
P or not PFor any proposition P, classical logic says that either P is true or P is false. This principle allows indirect proofs. To prove that an object exists, it may be enough to show that nonexistence leads to contradiction.
Constructive mathematics uses a stricter standard. To prove that an object exists, one should provide a construction of the object or a method that computes it.
| Claim | Classical requirement | Constructive requirement |
|---|---|---|
∃x, P(x) | Show existence, possibly indirectly | Produce an x with proof of P(x) |
P ∨ Q | Prove at least one must hold | Provide which side holds |
¬¬P → P | Accepted | Not accepted in general |
P ∨ ¬P | Accepted for all P | Accepted only when decidable |
The difference is clearest in existence proofs.
A classical proof may show:
Assume no such x exists.
Derive a contradiction.
Therefore, such an x exists.A constructive proof asks for more:
Here is x.
Here is why x satisfies the required property.For finite problems, the two viewpoints often agree. If a finite set can be searched completely, existence can be turned into construction. For infinite objects, the difference becomes significant.
Consider the statement:
There exist irrational numbers a and b such that a^b is rational.A common classical proof uses sqrt(2)^sqrt(2). If this number is rational, take a = sqrt(2) and b = sqrt(2). If it is irrational, take a = sqrt(2)^sqrt(2) and b = sqrt(2), giving:
(sqrt(2)^sqrt(2))^sqrt(2) = 2The proof shows existence, but it splits on a fact not established inside the proof. It proves that one of two cases works. A constructive proof would identify a definite pair.
Constructive mathematics is closely related to computation. A constructive proof of existence often corresponds to an algorithm. This connection is summarized by the Curry-Howard correspondence:
| Logic | Computation |
|---|---|
| Proposition | Type |
| Proof | Program |
| Existence proof | Data with evidence |
| Implication | Function |
| Disjunction | Tagged choice |
Under this interpretation, proving a theorem means constructing a program of the corresponding type.
For example, a proof of:
A → Bis a function that transforms evidence for A into evidence for B.
A proof of:
A ∧ Bis a pair: evidence for A and evidence for B.
A proof of:
A ∨ Bis a tagged value: either evidence for A or evidence for B.
This interpretation makes constructive mathematics natural in proof assistants and programming language theory.
Classical logic remains powerful and efficient for many areas of mathematics. It supports short proofs, strong existence theorems, and elegant nonconstructive arguments. Analysis, algebra, topology, and model theory often use classical tools.
Constructive mathematics gives more computational content. It is useful when one wants algorithms, verified programs, explicit witnesses, or machine-checkable proofs.
| Viewpoint | Strength | Cost |
|---|---|---|
| Classical | Concise, flexible, familiar | May hide witnesses |
| Constructive | Algorithmic, explicit, verifiable | Often longer and more restrictive |
The two viewpoints also differ in their treatment of contradiction.
In classical mathematics, proof by contradiction can prove positive statements. If assuming not P leads to contradiction, then P follows.
In constructive mathematics, this only proves not not P. To prove P, one must give direct evidence for P.
Classical: ¬¬P ⇒ P
Constructive: ¬¬P does not generally imply PThis distinction affects disjunctions and existence claims. A constructive proof of P or Q must say which one holds. A constructive proof of exists x must provide x.
Decidability bridges the gap. A proposition is decidable if we have a method to determine whether it is true or false.
Decidable(P) means P ∨ ¬P with evidenceFor decidable propositions, constructive reasoning can use excluded middle safely because a decision procedure is available.
Examples:
| Proposition | Usually decidable? |
|---|---|
| Equality of natural numbers | Yes |
| Equality of finite strings | Yes |
| Divisibility of integers | Yes |
| Arbitrary real-number equality | No |
| Arbitrary program termination | No |
The classical viewpoint often treats truth as independent of our ability to know or compute it. The constructive viewpoint ties truth more closely to evidence.
This changes the meaning of mathematical statements.
| Statement | Classical reading | Constructive reading |
|---|---|---|
∃x, P(x) | Some x exists | We can produce such an x |
P ∨ Q | At least one is true | We know which one is true |
P → Q | Truth of P implies truth of Q | A method turns proof of P into proof of Q |
∀x, P(x) | All objects satisfy P | A uniform method proves P(x) for arbitrary x |
Neither viewpoint is universally superior. They optimize for different goals.
Use classical reasoning when the goal is broad theory, classification, or existence. Use constructive reasoning when the goal is computation, extraction of witnesses, formal verification, or implementation.
A careful mathematical text should signal which logic it assumes. Most standard textbooks use classical logic unless stated otherwise. Proof assistants vary: Lean and Coq have constructive cores, but classical axioms can be imported when needed.
The main practical rule is simple: when a proof claims existence, ask whether it gives a witness. When a proof claims a disjunction, ask whether it identifies a side. When a proof uses contradiction, ask whether the result is merely negative or genuinely constructive.
Constructive and classical mathematics share much of the same language. They differ in the evidential standard attached to that language. That standard affects proof, computation, and the interpretation of existence.