Disproof and Counterexamples

Is every odd number prime? Is every continuous function differentiable? Is every matrix with positive entries invertible? Each question has the same grammatical shape — "every X has property P." Each has the same fate: a single well-chosen object shows it false. Learning to refute a universal claim efficiently is a key skill. This matters more than groping through cases. It is one of the most useful skills a mathematician acquires. False conjectures vastly outnumber true ones in the wild. Knowing how to kill them quickly matters. It lets you spend your energy proving the survivors. The idea sounds almost too simple to deserve an article. To disprove "for all xx, P(x)P(x)," just find one xx for which P(x)P(x) fails. But the simplicity is exactly the point. It rests on a piece of logical machinery — the negation of a quantified statement. This must be gotten exactly right. Otherwise the "disproof" is worthless. Many false proofs in student work come not from bad arithmetic. Instead, they come from disproving the wrong statement. Some attack ∀x P(x)\forall x\, P(x) by showing P(x)P(x) fails for some xx they misidentify. Others, worse, show ∃x P(x)\exists x\, P(x) is false when the claim was ∀x P(x)\forall x\, P(x). This article makes the logic of counterexamples completely precise. It explains what a counterexample is. It shows why exhibiting one is a complete proof of a negation. It shows how the search for counterexamples interacts with the structure of the statement being tested. This includes nested quantifiers, implications, and universally-quantified conditionals. We prove the underlying theorem — that a single counterexample suffices. This follows as a direct consequence of the semantics of quantifiers, not as folklore. We also show, via a genuine counterexample-to-the-method, what goes wrong. Specifically, we show the danger of dropping the requirement that the counterexample actually lies in the domain of discourse. The payoff is a disciplined refutation strategy usable everywhere in mathematics. This includes number theory, analysis, linear algebra, and combinatorics. It also sets up later material on Existence and Uniqueness Proofs. There, the interplay of "there exists" and "for all" becomes the central object of study. It is no longer just a tool for demolition.

Key takeaways
  • A universal statement ∀x∈D (P(x))\forall x \in D\, (P(x)) is false iff there exists a∈Da \in D with P(a)P(a) false.
  • One concrete a∈Da \in D making P(a)P(a) false is a complete, rigorous proof that ∀x P(x)\forall x\, P(x) is false.
  • For implications ∀x (P(x)→Q(x))\forall x\,(P(x) \to Q(x)), a counterexample is an aa with P(a)P(a) true and Q(a)Q(a) false.
  • Disproving ∀x ∃y R(x,y)\forall x\,\exists y\, R(x,y) requires an xx that defeats every yy — a stronger burden than disproving ∃x ∀y R(x,y)\exists x\,\forall y\, R(x,y).
  • A counterexample search is guided by the negated statement: know exactly what you must exhibit before you look for it.
  • Key idea: to refute "always," you need only "once" — but that "once" must be verified with the same rigor as any theorem.

Where this lives today

Counterexample-hunting is a working tool across mathematics and beyond. In analysis and topology, entire reference books catalogue spaces and functions built purely to violate one plausible-sounding universal claim, from non-metrizable topological spaces to nowhere-differentiable continuous functions; these serve as the field's stress tests for which hypotheses are truly necessary in theorems. In algebra, counterexamples separate classes of structures — a ring that is not an integral domain, a group that is not abelian, a matrix that is invertible over Q\mathbb{Q} but not over Z\mathbb{Z} — clarifying exactly which implications hold and which need extra hypotheses. In computer science, model checkers and automated theorem provers search state spaces specifically for counterexamples to safety properties expressed as universal statements over program states; a single found counterexample (a "witness trace") is treated as a complete disproof of correctness, exactly mirroring the logical criterion here. In cryptography, breaking a claimed security property often means exhibiting one attack — one adversary strategy that violates the universal "for all adversaries, the scheme resists forgery" claim — and that single strategy suffices to invalidate the security proof. In statistics and the philosophy of science, Popper's falsifiability criterion, directly modeled on mathematical counterexamples, shapes how empirical universal claims are tested against data. Finally, in combinatorics and graph theory, conjectures are routinely tested computationally against small cases precisely because a single small counterexample (a specific graph, a specific coloring) can end a decades-old conjecture, as happened historically with several Euler-type and Ramsey-type conjectures.

:::quiz[A student wants to disprove ∀f (f differentiable→f has a maximum)\forall f\,(f\text{ differentiable} \to f\text{ has a maximum}) over D={D=\{functions on [0,1]}[0,1]\} using f(x)=xf(x)=x. Is this valid?]

  • Yes, since f(x)=xf(x)=x is differentiable and has no maximum on [0,1)[0,1) but the domain here is closed [0,1][0,1], so check the actual max
  • Invalid as stated, since f(x)=xf(x)=x on the closed interval [0,1][0,1] attains a maximum at x=1x=1, so Q(f)Q(f) is true and it is not a counterexample ✓
  • Valid, since ff is a straight line and lines never have maxima
  • Invalid, since f(x)=xf(x)=x is not differentiable

Ask the tutor: Can you give me a universal statement with three quantifiers and walk me through exactly what a valid counterexample to it would need to establish?

DefinitionCounterexample

Let DD be a set (the domain of discourse) and let PP be a predicate defined on DD, so that P(x)P(x) is a statement for each x∈Dx \in D. Consider the universally quantified statement

∀x∈D (P(x)).\forall x \in D\, \big(P(x)\big).

A counterexample to this statement is an element a∈Da \in D such that P(a)P(a) is false. More generally, for a statement of conditional form

∀x∈D (P(x)→Q(x)),\forall x \in D\, \big(P(x) \to Q(x)\big),

a counterexample is an element a∈Da \in D such that P(a)P(a) is true and Q(a)Q(a) is false (equivalently, aa satisfies the hypothesis but not the conclusion). To disprove ∀x∈D (P(x))\forall x \in D\, (P(x)) means to prove its negation, ∃x∈D (¬P(x))\exists x \in D\, (\lnot P(x)); exhibiting a counterexample together with a verification that it satisfies ¬P(a)\lnot P(a) constitutes exactly such a proof.

Intuition

A universal claim "∀x∈D P(x)\forall x \in D\, P(x)" is a claim about every element of a domain, potentially infinite. To prove it directly you typically need a general argument covering all cases at once — an argument that works no matter which xx someone hands you. But to show the claim is false, the logical burden collapses: you do not need to say anything about most of DD. You need exactly one element, checked concretely, where PP fails. This asymmetry is the heart of the matter, and it comes directly from the semantics of negation applied to quantifiers, which you have already seen: ¬∀x P(x)\lnot \forall x\, P(x) is logically equivalent to ∃x ¬P(x)\exists x\, \lnot P(x). A disproof of a ∀\forall-statement is a proof of an ∃\exists-statement, and proofs of ∃\exists-statements are, by their nature, allowed to be "constructive point-checks" — produce the witness, check the property, done. No sweeping argument about the whole domain is required, which is why counterexamples are often much shorter than the proofs of the theorems they refute. The subtlety enters once statements have more than one quantifier, or hide a quantifier inside an implication. "Every differentiable function is continuous" is true; "every continuous function is differentiable" is false, and the classic witness f(x)=∣x∣f(x) = |x| works because it satisfies the hypothesis (continuous at 00) while violating the conclusion (not differentiable at 00). Get the direction of the implication backwards and you'll go hunting for the wrong kind of example forever. With nested quantifiers such as ∀x ∃y R(x,y)\forall x\, \exists y\, R(x,y), the negation ∃x ∀y ¬R(x,y)\exists x\, \forall y\, \lnot R(x,y) demands an xx that defeats every candidate yy — a strictly stronger task than defeating a single-quantifier claim, and one that requires its own short universal argument over yy, even though the outer structure is existential.

Figure
The domain DD: a universal claim needs all of DD to hold; a counterexample needs only one failing point
∀x ∈ D, P(x) D a: P(a) false P holds One red point a with ¬P(a) refutes the entire green claim, regardless of how many green points there are.
TheoremThe Counterexample Criterion

Let DD be a nonempty set and let P(x)P(x) be a predicate on DD. The universal statement

∀x∈D (P(x))\forall x \in D\, \big(P(x)\big)

is false if and only if there exists a∈Da \in D such that P(a)P(a) is false. Consequently, to prove ∀x∈D (P(x))\forall x \in D\, (P(x)) is false, it suffices to exhibit a single a∈Da \in D and verify that P(a)P(a) is false; no argument about any other element of DD is required.

Proof

We argue from the truth-conditions (semantics) of the universal and existential quantifiers over a domain DD, which is the standard technique for quantifier facts: it does not rely on any theorem about proof techniques, only on the definitions of ∀\forall and ∃\exists themselves, so there is no circularity.

Definitions used. By definition, the statement ∀x∈D (P(x))\forall x \in D\, (P(x)) is true exactly when P(a)P(a) is true for every single element aa of DD; it is false exactly when this fails, i.e. when it is not the case that P(a)P(a) holds for every a∈Da \in D. By definition, the statement ∃x∈D (P(x))\exists x \in D\, (P(x)) is true exactly when there is at least one element a∈Da \in D for which P(a)P(a) is true.

Step 1: Unwind what "false" means for the universal statement. ∀x∈D (P(x))\forall x \in D\, (P(x)) is false   ⟺  \iff it is not true that (P(a)P(a) holds for every a∈Da \in D)   ⟺  \iff there is at least one a∈Da \in D for which P(a)P(a) does not hold   ⟺  \iff there is at least one a∈Da \in D for which ¬P(a)\lnot P(a) holds. This chain of equivalences is just restating, in two different but synonymous ways, the single fact that "for every" fails precisely when some instance fails — this is the definitional content of ∀\forall, not an assumption we are importing.

Step 2: Translate "there is at least one a∈Da \in D for which ¬P(a)\lnot P(a) holds" into quantifier notation. By the definition of ∃\exists given above (applied to the predicate ¬P\lnot P in place of PP), the phrase "there is at least one a∈Da \in D for which ¬P(a)\lnot P(a) holds" is precisely the meaning of the formal statement

∃x∈D (¬P(x)).\exists x \in D\, \big(\lnot P(x)\big).

Step 3: Combine. Steps 1 and 2 give the biconditional

∀x∈D (P(x)) is false  ⟺  ∃x∈D (¬P(x)) is true,\forall x \in D\, (P(x)) \text{ is false} \iff \exists x \in D\, (\lnot P(x)) \text{ is true},

i.e.

¬[∀x∈D P(x)]  ⟺  ∃x∈D ¬P(x).\lnot \Big[\forall x \in D\, P(x)\Big] \;\Longleftrightarrow\; \exists x \in D\, \lnot P(x).

This is exactly the claimed criterion, read as an "iff": the universal statement is false iff some a∈Da \in D makes P(a)P(a) false. (This equivalence is also visible truth-table-wise in the finite case: if D={d1,…,dn}D = \{d_1, \dots, d_n\}, then ∀x∈D P(x)\forall x \in D\, P(x) is the conjunction P(d1)∧⋯∧P(dn)P(d_1) \land \cdots \land P(d_n), and a conjunction is false iff at least one conjunct is false — which is exactly "some did_i makes P(di)P(d_i) false." The argument above generalizes this finite fact to arbitrary, possibly infinite, DD directly from the quantifier definitions.)

Step 4: Conclude the proof-theoretic consequence. By Step 3, to establish that ∀x∈D P(x)\forall x \in D\, P(x) is false, it is logically equivalent — and hence logically sufficient — to establish that ∃x∈D ¬P(x)\exists x \in D\, \lnot P(x) is true. By the definition of ∃\exists, establishing an existential statement requires only producing one witness a∈Da \in D and verifying the predicate (¬P(a)\lnot P(a), i.e. "P(a)P(a) is false") holds for that particular aa. No universally-quantified reasoning about the rest of DD enters this verification at any point, because the truth of ∃x∈D ¬P(x)\exists x \in D\, \lnot P(x) depends only on the existence of a witness, not on the behavior of non-witnesses. ■\blacksquare

∎
CorollaryCounterexample to an implication

Let DD be nonempty and let P,QP, Q be predicates on DD. The statement

∀x∈D (P(x)→Q(x))\forall x \in D\, \big(P(x) \to Q(x)\big)

is false if and only if there exists a∈Da \in D with P(a)P(a) true and Q(a)Q(a) false.

Proof

By the Counterexample Criterion applied to the predicate P(x)→Q(x)P(x) \to Q(x) in place of P(x)P(x), the statement ∀x∈D (P(x)→Q(x))\forall x \in D\,(P(x) \to Q(x)) is false iff there is a∈Da \in D with ¬(P(a)→Q(a))\lnot(P(a) \to Q(a)) true. It remains to unwind ¬(P(a)→Q(a))\lnot(P(a)\to Q(a)). Recall (from the truth table of the conditional, part of the definition of →\to) that P(a)→Q(a)P(a) \to Q(a) is false exactly in the single case where P(a)P(a) is true and Q(a)Q(a) is false; in every other combination of truth values the conditional is true. Hence ¬(P(a)→Q(a))\lnot(P(a) \to Q(a)) is true exactly when P(a)P(a) is true and Q(a)Q(a) is false. Substituting this into the criterion gives: ∀x∈D (P(x)→Q(x))\forall x \in D\, (P(x) \to Q(x)) is false iff there exists a∈Da \in D with P(a)P(a) true and Q(a)Q(a) false, as claimed. ■\blacksquare

∎

Worked examples

Example 1 — a claim about integers, asymmetric and multi-step. Claim to test: "For every integer nn, if n2−n+41n^2 - n + 41 is prime for n=0,1,…,kn = 0, 1, \dots, k, then n2−n+41n^2 - n + 41 is prime for all positive integers nn." Rather than test this vague meta-claim, let's test the cleaner and historically famous statement it alludes to:

∀n∈Z+ (n2−n+41 is prime).\forall n \in \mathbb{Z}^+\, \big(n^2 - n + 41 \text{ is prime}\big).

This has fooled people because it is true for n=1,2,…,40n = 1, 2, \dots, 40 (Euler's polynomial). By the Counterexample Criterion, to disprove the universal claim we need exactly one positive integer aa for which a2−a+41a^2 - a + 41 is not prime — we owe no explanation of the other 3939 successes. Take a=41a = 41. Compute:

412−41+41=412=1681=41×41.41^2 - 41 + 41 = 41^2 = 1681 = 41 \times 41.

Since 16811681 has 4141 as a proper divisor with 1<41<16811 < 41 < 1681, 16811681 is composite, not prime. Thus P(41)P(41) — "412−41+4141^2-41+41 is prime" — is false, so a=41∈Z+a = 41 \in \mathbb{Z}^+ is a counterexample. By the Counterexample Criterion, ∀n∈Z+ (n2−n+41 is prime)\forall n \in \mathbb{Z}^+\,(n^2-n+41 \text{ is prime}) is false. Notice we did not need to explain why the pattern holds for n≤40n \le 40; the single failure at n=41n=41 is a complete, self-contained refutation. (In fact a=40a=40 already works, since 402−40+41=160140^2-40+41 = 1601 is prime — wait, check: we want a failure, and 4040 still gives a prime; the point is that 4141 is the first failure, and finding the first failure is not logically necessary, only convenient. Any single failing nn would do.)

Example 2 — a claim about real functions, testing an implication. Claim to test:

∀f∈C(R) (f is continuous on R→f is differentiable on R),\forall f \in C(\mathbb{R})\, \Big(f \text{ is continuous on } \mathbb{R} \to f \text{ is differentiable on } \mathbb{R}\Big),

where the domain D=C(R)D = C(\mathbb{R}) is the set of real-valued functions on R\mathbb{R}, P(f)P(f) is "ff is continuous on R\mathbb{R}," and Q(f)Q(f) is "ff is differentiable on R\mathbb{R}." By the Corollary above, a counterexample is a function a=f∈Da=f \in D with P(f)P(f) true (continuous) and Q(f)Q(f) false (not differentiable somewhere). Let f(x)=∣x∣f(x) = |x|. We must verify both halves rigorously. Continuity of ff at every x0∈Rx_0 \in \mathbb{R}: Given ε>0\varepsilon > 0, choose δ=ε\delta = \varepsilon. For ∣x−x0∣<δ|x - x_0| < \delta, the reverse triangle inequality gives

∣f(x)−f(x0)∣=∣∣x∣−∣x0∣∣≤∣x−x0∣<δ=ε.|f(x) - f(x_0)| = \big||x| - |x_0|\big| \le |x - x_0| < \delta = \varepsilon.

So ff is continuous at every x0x_0, hence continuous on R\mathbb{R}; P(f)P(f) holds. Failure of differentiability at x0=0x_0 = 0: Consider the difference quotient

f(0+h)−f(0)h=∣h∣h={1h>0−1h<0.\frac{f(0+h) - f(0)}{h} = \frac{|h|}{h} = \begin{cases} 1 & h > 0 \\ -1 & h < 0. \end{cases}

The right-hand limit as h→0+h \to 0^+ is 11, and the left-hand limit as h→0−h \to 0^- is −1-1. Since these one-sided limits disagree (1≠−11 \ne -1), the two-sided limit lim⁡h→0f(h)−f(0)h\lim_{h\to 0} \frac{f(h)-f(0)}{h} does not exist, so ff is not differentiable at 00. Hence Q(f)Q(f) is false. So f(x)=∣x∣f(x)=|x| satisfies P(f)∧¬Q(f)P(f) \land \lnot Q(f), exactly the criterion of the Corollary. Therefore

∀f (f continuous→f differentiable)\forall f\, (f \text{ continuous} \to f \text{ differentiable})

is false — continuity does not imply differentiability. Again, note the asymmetry with Example 1: here the counterexample must satisfy two conditions (hold the hypothesis, break the conclusion), and both had to be separately proved, with ε\varepsilon–δ\delta work on one side and a one-sided-limit computation on the other. A function that merely failed to be differentiable, without first being shown continuous, would not refute the implication — it might simply fail to be a legitimate test case if it also failed continuity (in which case P(f)P(f) is false and P(f)→Q(f)P(f) \to Q(f) is automatically true, vacuously, for that ff).

CounterexampleWhy the witness must lie in the stated domain DD

The Counterexample Criterion requires a∈Da \in D. Dropping this — allowing a "witness" from outside the domain of discourse — breaks the method entirely, and here is a genuine failure showing why. Consider the claim

∀n∈Z+ (n2≥n),\forall n \in \mathbb{Z}^+\, \big(n^2 \ge n\big),

i.e., "every positive integer nn satisfies n2≥nn^2 \ge n." This is in fact true: for n≥1n \ge 1, n2−n=n(n−1)≥0n^2 - n = n(n-1) \ge 0 since both factors are nonnegative when n≥1n \ge 1, so n2≥nn^2 \ge n holds for every n∈Z+n \in \mathbb{Z}^+. Suppose a student, ignoring the restriction n∈Z+n \in \mathbb{Z}^+, tries a=12a = \tfrac12, which lies in R\mathbb{R} but not in Z+\mathbb{Z}^+. Then a2=14<12=aa^2 = \tfrac14 < \tfrac12 = a, so P(a)P(a) — "a2≥aa^2 \ge a" — is indeed false at a=12a = \tfrac12. If the student concludes "12\tfrac12 is a counterexample, so the claim ∀n∈Z+ (n2≥n)\forall n \in \mathbb{Z}^+\,(n^2\ge n) is false," the conclusion is wrong, even though the arithmetic (14<12\tfrac14 < \tfrac12) is perfectly correct. The true statement has been "disproved" by an invalid argument, because 12∉Z+\tfrac12 \notin \mathbb{Z}^+: the domain restriction in the Counterexample Criterion is not decorative, it is load-bearing. The criterion reads "there exists a∈Da \in D with P(a)P(a) false" — an aa outside DD says nothing about ∀x∈D P(x)\forall x \in D\, P(x), since that quantifier never ranges over points outside DD in the first place. This shows precisely what fails if the hypothesis "a∈Da \in D" is dropped from the theorem: the biconditional

∀x∈D P(x) is false  ⟺  ∃x∈D ¬P(x)\forall x \in D\, P(x) \text{ is false} \iff \exists x \in D\, \lnot P(x)

becomes the strictly weaker (and here false) claim

∀x∈D P(x) is false  ⟺  ∃x (anywhere) ¬P(x),\forall x \in D\, P(x) \text{ is false} \iff \exists x \, (\text{anywhere})\, \lnot P(x),

and the right side can be true (witnessed by 12∈R∖Z+\tfrac12 \in \mathbb{R}\setminus\mathbb{Z}^+) while the left side is false. The lesson generalizes: always state the domain of your universal claim precisely, and always check membership in that domain as part of verifying a counterexample — it is not optional bookkeeping, it is half the proof.

Scope, edge cases & common traps

SituationWhat a valid counterexample must doCommon mistake
∀x∈D P(x)\forall x \in D\, P(x)Exhibit a∈Da \in D with P(a)P(a) false, verifiedPicking a∉Da \notin D
∀x∈D (P(x)→Q(x))\forall x \in D\,(P(x)\to Q(x))Exhibit a∈Da \in D with P(a)P(a) true and Q(a)Q(a) falseUsing an aa where P(a)P(a) is already false (implication is vacuously true there)
∀x ∃y R(x,y)\forall x\, \exists y\, R(x,y)Exhibit aa, then prove ¬R(a,y)\lnot R(a,y) for every yyExhibiting one bad pair (a,b)(a,b) and forgetting other yy might still work for that aa
∃x ∀y R(x,y)\exists x\,\forall y\, R(x,y)Prove ∀x ∃y ¬R(x,y)\forall x\, \exists y\, \lnot R(x,y): for every candidate xx, produce a defeating yyTesting only one xx and declaring victory
Empty domain D=∅D = \varnothing∀x∈D P(x)\forall x \in D\, P(x) is vacuously true; no counterexample can existAssuming some exotic aa must be lurking

The mathematician behind it

Origins · 1 minKarl Popper and how this was discovered
KP
Karl Popper
1902–1994 · Philosophy of science, Vienna and London

Karl Popper was not a mathematician but a philosopher of science, and his relevance here is conceptual rather than technical: he argued that scientific theories, framed as universal laws ("all swans are white"), can never be proven by accumulating confirming instances, but can be refuted by a single counter-instance — one black swan. This is precisely the logical asymmetry the Counterexample Criterion formalizes for mathematics: a universal statement collapses under one witness to its negation, while confirming instances, however numerous, never establish it. Mathematicians had used counterexamples with full rigor for centuries before Popper (Euler's own polynomial failing at n=41n=41 predates him by 150 years), but Popper's articulation of "falsifiability" gave the everyday mathematical habit of hunting for counterexamples a name recognized across all the sciences.

History
- 1772: Euler studies n2−n+41n^2-n+41, observing it is prime for n=1,…,40n=1,\dots,40, a striking near-universal pattern later refuted at n=41n=41.
- 1826: Abel gives examples clarifying that pointwise convergence of continuous functions need not yield a continuous limit, refuting an implicit assumption of the era.
- 1872: Weierstrass exhibits a function continuous everywhere and differentiable nowhere, the definitive counterexample severing continuity from differentiability.
- 1934: Karl Popper publishes Logik der Forschung, formulating falsifiability and popularizing the single-counterexample refutation pattern beyond mathematics.
- 1970s–present: Systematic counterexample construction becomes a named subfield technique in analysis and topology, exemplified by compendia such as Counterexamples in Topology (Steen & Seebach, 1970) and Counterexamples in Analysis (Gelbaum & Olmsted, 1964).
Why does one counterexample suffice — isn't that too easy compared to proving a theorem?

It feels asymmetric because it is asymmetric, and that asymmetry is a genuine, provable fact about quantifiers, not a shortcut or convention. A universal statement ∀x∈D P(x)\forall x \in D\, P(x) makes a claim about every element of DD; proving it true generally requires an argument that covers all of DD at once (or a valid case split covering all of DD). But its negation is existential: ∃x∈D ¬P(x)\exists x \in D\, \lnot P(x). Existential statements are, by the very meaning of "there exists," verified by producing one instance — the definition of ∃\exists does not ask for anything about the rest of the domain. So the "easiness" of counterexamples is not a loophole; it is the same logical machinery that makes universal proofs hard, viewed from the other side.

What if I can't find a counterexample — does that mean the statement is true?

No. Failing to find a counterexample after some search proves nothing by itself; it may mean the statement is true (and you should now attempt a direct or other proof), or it may mean a counterexample exists but you haven't found it yet, perhaps because it is large, exotic, or requires a clever construction. The Counterexample Criterion is a biconditional about the existence of a witness, not about the difficulty of finding one. Many famous conjectures resisted counterexample search for decades before either being proven true or refuted by a counterexample discovered later (Euler's sum of powers conjecture stood unrefuted for two centuries before a computer search found 275+845+1105+1335=144527^5+84^5+110^5+133^5=144^5).

Does a counterexample need to be a "nice" or simple object?

No — logical validity does not require simplicity. A counterexample is valid as soon as it is (a) a genuine member of the stated domain DD and (b) verified, with full rigor, to make the predicate false (or, for an implication, to satisfy the hypothesis while violating the conclusion). Simplicity is a matter of mathematical taste and communicability, not correctness. That said, mathematicians do prize simple counterexamples because they are easier to verify and to generalize; much of the art of "counterexample hunting" is finding the simplest object with the required failure, not merely any object.

How does this relate to proof by contradiction?

They are related but distinct techniques. Disproving ∀x∈D P(x)\forall x \in D\, P(x) via a counterexample is a direct proof of the equivalent existential statement ∃x ¬P(x)\exists x\, \lnot P(x): you produce aa and directly verify ¬P(a)\lnot P(a), with no assumption-for-contradiction involved. Proof by contradiction is a different technique used to prove statements are true — you assume the statement is false and derive an absurdity. It is possible (and common) to use proof by contradiction as a tool inside the verification that a specific candidate aa satisfies ¬P(a)\lnot P(a) — for instance, showing 2\sqrt2 is irrational (part of some larger counterexample) is itself often argued by contradiction — but the overall counterexample method is fundamentally a direct-verification strategy applied to an existential statement.

Can a single counterexample disprove a theorem with multiple hypotheses?

Yes, provided you show the counterexample satisfies all the stated hypotheses while violating the conclusion — exactly as in the Corollary for implications, generalized to conjunctions of hypotheses. If a claimed theorem reads ∀x∈D ((H1(x)∧H2(x))→Q(x))\forall x \in D\, \big((H_1(x) \land H_2(x)) \to Q(x)\big), a counterexample must be an a∈Da \in D satisfying both H1(a)H_1(a) and H2(a)H_2(a) (the full hypothesis) while Q(a)Q(a) fails. If your candidate violates one of the hypotheses, it is not a counterexample to the theorem as stated — it may only show that some weaker version of the theorem (with a hypothesis dropped) would be false, which is a related but different and often illuminating exercise, as our own counterexample block on domain restriction illustrates.

Is "no counterexample found in millions of computer-checked cases" ever accepted as a proof?

Never as a mathematical proof of a universal statement over an infinite domain, no matter how large the search. Checking a finite (even enormous) initial segment of an infinite domain establishes the claim only for that segment; the Counterexample Criterion concerns the whole domain DD, and a universal claim over an infinite DD is not reducible to finitely many instances. The Euler polynomial example in this article is a canonical warning: it holds for 4040 consecutive values before failing. Computer search is an excellent heuristic for finding counterexamples (or building confidence enough to attempt a real proof), but the mathematical community requires either a full proof or a produced-and-verified counterexample — never a search report — to settle the claim.

How does this connect forward to existence and uniqueness proofs?

Counterexamples are existential statements verified by a single witness; existence proofs (in the sense of "there is an xx with property PP") are exactly the same logical shape, just usually pursued as a positive goal rather than a refutation. Uniqueness proofs add a second layer — showing any two witnesses coincide — which is a universal statement layered on top of an existential one. Mastering how one witness settles an ∃\exists-claim, as practiced here in disproof, is the direct rehearsal for the constructive half of Existence and Uniqueness Proofs, where you will build a witness on purpose instead of hunting for one that breaks someone else's claim.

Before this

Where this leads