A phonology textbook law says: if an inventory has a voiced plosive, it has a voiceless one. Against a frozen PHOIBLE snapshot of 105484 rows, 3020 inventories and 8 source databases, the canonical definition leaves 7 counterexamples, and the Artificial Wasteland ships the switches that move that number: marginal segments, contour features, implosives, ejectives, and trust in each source, with every surviving language named and its voiced plosives shown in IPA.
Under the canonical definition, this frozen snapshot (downloaded 2026-08-24) yields 7 counterexample inventories out of 3020, drawn from 105484 rows aggregated by 8 source databases. The named languages load below, straight from the snapshot, in your browser.
Loading the frozen snapshot.
Nothing downloaded yet.
Counterexample inventories under the current switches: 7 of 3020 considered.
| InventoryID | Language | Glottocode | ISO 639-3 | Source | Voiced plosives (IPA) | Eligible plosives |
|---|---|---|---|---|---|---|
| Loading the snapshot; the named languages appear here. | ||||||
A fair dismissal: PHOIBLE carries several descriptions of the same language, so one language can be counted many times and the seven may be inflated. The answer is a further result, not a caveat. Collapse the counterexample inventories to distinct Glottocodes and sort them into three buckets. A sole witness is a language with exactly one inventory in the trusted sources, and that inventory is a counterexample. A corroborated case is a language every one of whose trusted inventories is a counterexample, so independent sources agree. A contradicted case is a counterexample inventory with a sibling inventory of the same language that is not itself a counterexample, so the sources disagree about the language. Those are different animals, and they behave differently under the switches.
Distinct Glottocodes among the counterexample inventories: pending.
One difference between what the check reads and what your browser downloaded, because it would otherwise be a silent one. The full PHOIBLE snapshot is 26,455,818 bytes, which is over the 25 MiB ceiling for a single static asset here, so the copy this page fetches carries only the seventeen columns the analysis reads, 6,955,809 bytes of the original 51 columns. The verifier runs against the FULL file, re-derives that seventeen-column projection from it, and asserts the shipped copy is exactly that, so a single altered cell in any column this page uses turns the check red. The full snapshot is committed at research/the-seven-that-break-the-rule/data/phoible.csv, sha256 beginning c5b0c2c6d375f113.
The check lives at research/the-seven-that-break-the-rule/verify.mjs and runs offline: node research/the-seven-that-break-the-rule/verify.mjs. It re-derives the row and inventory counts with a second, deliberately naive CSV parser; the seven counterexamples with a second, straight-line predicate that shares no code with the engine; every listed record against the raw rows; the four sensitivity numbers the same way; the by-source sums; byte identity of both shipped copies (engine.mjs and phoible.csv) against the research originals; and the static numbers printed on this page against the engine's output. node research/the-seven-that-break-the-rule/verify.mjs --mutate corrupts the rule and the inputs five ways and requires every aimed check to go red.
Named uncertainties. This is a claim about a database, not about human language. PHOIBLE encodes one analyst's phonological analysis per inventory, and the feature values are that analyst's choices, not measurements. Treating a contour value such as -,+ as matching no voicing is a definitional decision, and the switch above shows what the decision costs. The literature treats the voiced-implies-voiceless regularity as a strong tendency with known qualifications; this page does not adjudicate that literature and never says the universal is false. Collapsing by Glottocode trusts PHOIBLE's language identifiers. The naive second parser assumes no CSV field contains a newline; its agreement with the streaming parser is itself one of the checks.
Every other layer in this corpus computes its numbers once. This one computes them twice, with two programs written independently from one written specification: one by Claude, one by Ox Alpha, neither author having seen the other's code. Both run here, in your browser, on the same 26 MB you just downloaded. Nothing below picks a winner: a figure the two engines disagree about is withheld and the disagreement is named.