Popper: Making the Hypothesis Compiler Falsifiable — Rediscovery Benchmarks, Negative Controls, and the Move From Plausible to Provable
The turn this experiment makes
The last post ended with a promise and a warning. The promise: the Scientific Question & State Compiler survives scale — 6.3 million ORKG triples, distilled, compiled locally, same-shaped output. The warning, which was the whole point: surviving scale is not the same as being correct. A tool that generates and scales has proven it is robust. It has not proven it is right.
So this experiment is not about adding features. It is about a single, harder question:
Are the generated hypotheses actually useful scientific hypotheses, or are they only linguistically convincing?
Large language models are extraordinarily good at producing plausible narratives. That is exactly the danger. A system built on one could "succeed" for the worst possible reason: it sounds right. The previous experiments showed the system can generate and scale. This one determines whether it deserves to be called a scientific instrument.
The name of this iteration says what changed. It is called Popper, after Karl Popper, whose criterion of falsifiability is the spine of the whole design. The instruction I gave myself was blunt:
Stop trying to make the compiler smarter. Start making it falsifiable.
A hypothesis is a compiled artifact
The compiler framing was always more than a metaphor, and here it does real work. A traditional compiler turns source code into an executable that must pass tests. Popper turns literature into a hypothesis that must pass validation:
Traditional compiler: Source Code → Compiler → Executable → Tests
Popper: Literature → Compiler → Hypothesis → Validation
The earlier iterations emitted questions. Popper emits hypotheses — and a hypothesis is admitted only if it is structurally falsifiable. This is enforced in code, not in prose. Every hypothesis must carry:
- an independent variable and a dependent variable;
- a population / system and a measurement;
- an expected outcome and an explicit falsification condition — what result would prove it wrong;
- a mechanism — the causal chain linking the variables;
- a quantitative prediction — a direction and a numeric magnitude window, with a unit and a confidence;
- and evidence — every supporting claim tagged with a real
source_id.
Miss any of these and it is not a stylistic lapse. It is a compile error.
Hypothesis.validate() returns the list of them, and an artifact with a
non-empty list is not falsifiable by construction. This is the difference
between "investigate the relationship between inflammation and cognition" and
"blocking IL-6 signaling in aged mouse microglia will reduce hippocampal
inflammatory markers by more than 20% relative to controls." Only one of those
can be killed by an experiment. Only one of those is science.
The quantitative prediction is the sharpest upgrade. The system is no longer allowed to say "X may influence Y." It must say "changing X produces a measurable change of this size in Y" — even when the number is uncertain. An uncertain prediction is falsifiable. A vague gesture is not.
The claim under test — and how it can fail
The point of this project is not the claim "AI can generate hypotheses." Everyone already knows that; it is not interesting. The claim is narrower and riskier:
Structured knowledge compilation produces higher-quality, falsifiable scientific hypotheses than unstructured generation.
A claim only means something if it can fail. So Popper runs four methods over the identical corpus, so the only variable is the reasoning:
- compiler — the real method: grounded, structured compilation that looks for a connection the sources each partially support but none state directly.
- llm-only — the ablation: same model, same request for a falsifiable hypothesis, but with no corpus. Tests whether the knowledge actually helps.
- keyword — the statistics baseline: most frequent co-occurring concepts, templated, no LLM. Tests whether semantic reasoning beats co-occurrence.
- random — the noise floor: connect two random claims. Tests whether the compiler beats chance.
If the compiler is not clearly above all three controls, the claim fails — and that is a real, publishable result either way. That symmetry is the whole ethic of the experiment.
The rediscovery benchmark
Novelty and grounding can be gamed by a confident model. The test that cannot be gamed is history. For three real discoveries, I built a corpus from the prior literature that existed before the breakthrough, with real papers and real DOIs, and then removed the discovery paper itself. The question:
Given only what was known before, does the compiler reconstruct the leap?
- CRISPR-Cas9 as a programmable genome-editing tool (Jinek et al. 2012, held out) — from six prior papers on CRISPR immunity, crRNA guidance, tracrRNA, and Cas9's nuclease domains.
- Nucleoside-modified mRNA as a vaccine platform (Karikó & Weissman 2005, held out) — from prior work on mRNA delivery, TLR recognition of RNA, and the modified-nucleoside content of mammalian RNA.
- CTLA-4 checkpoint blockade as cancer immunotherapy (Leach, Krummel & Allison 1996, held out) — from prior work on CTLA-4 as a negative regulator, its high-affinity B7 binding, and B7-driven antitumor immunity.
And, because a discovery system must avoid attractive nonsense, two historical dead ends whose narratives fit their evidence well: cold fusion and phlogiston. A trustworthy system should not confidently reconstruct these.
What the run produced
Everything below was compiled locally on a 35-billion-parameter model running on my own hardware — no cloud APIs, no keys. Every generation, grounding audit, and score came from that model. Composite quality is the geometric mean of novelty × grounding × testability; a zero in any dimension tanks it, by design.
Compiler versus controls (mean composite quality):
| domain | compiler | llm-only | keyword | random |
|---|---|---|---|---|
| checkpoint blockade | 0.96 | 0.00 | 0.40 | 0.00 |
| CRISPR | 0.97 | — | 0.50 | 0.00 |
| mRNA vaccine | 0.92 | 0.00 | 0.50 | 0.00 |
| cold fusion (false) | 0.89 | — | 0.44 | 0.00 |
| phlogiston (false) | 0.97 | 0.00 | 0.45 | 0.00 |
The compiler's falsifiable rate was 1.0 in every domain — every artifact it emitted passed the structural contract. Every control's falsifiable rate was 0.0: random has no variables, keyword has no mechanism or prediction, and llm-only — same model, no corpus — scored 0.00 composite because its grounding was 0.00. That last number is the ablation landing exactly where the thesis predicts: without the corpus, the model writes fluent, high-novelty hypotheses it cannot tie to a single source. Fluent and ungrounded is precisely "articulate autocomplete." The knowledge graph is what makes it science.
The rediscovery benchmark (best reconstruction match, 0–1):
| discovery (paper removed) | compiler match |
|---|---|
| CTLA-4 checkpoint blockade | 1.00 |
| nucleoside-modified mRNA | 0.90 |
| CRISPR-Cas9 | 0.00 |
| phlogiston (false) | 0.00 |
| cold fusion (false) | 0.50 |
Two reconstructions are the headline. From the prior literature alone, the compiler produced, for mRNA:
Incorporating pseudouridine and N1-methylpseudouridine into in-vitro- transcribed mRNA will attenuate TLR7/8-mediated innate immune activation by 60–80% while preserving antigen-specific CD8+ T-cell priming in vivo.
That is Karikó and Weissman's actual discovery — mechanism, direction, and a quantitative window — assembled from papers that predate it, grounded on the modified-nucleoside and TLR-recognition literature. For checkpoint blockade it reconstructed the competitive-affinity mechanism (CTLA-4 outbinding CD28 for B7, blockade restoring CD28-driven activation) and scored a perfect match against the held-out Allison result.
And then the honesty. CRISPR scored 0.00 on rediscovery — the compiler produced high-quality, falsifiable, well-grounded hypotheses, but none of them made the specific single-guide-RNA leap. The system did not paper over the miss, and neither will I. Meanwhile it refused to confidently rebuild phlogiston (0.00) and only partially reached for cold fusion (0.50) — a discovery system that reconstructs known nonsense as eagerly as known truth would be worthless, and this one mostly declined.
Two hits, one clean miss, dead ends held down. That is not a demo. That is a result you can argue with.
What the audit caught
One detail matters more than it looks. On the mRNA run, grounding came in at
0.82 rather than 1.0 — because the grounding auditor, a second model pass that
checks whether a cited source actually supports a claim, flagged a citation to
martinson1993 when the real prior paper is martinon1993. The model
fabricated a plausible-looking source id, and the audit caught it and docked the
score. That is the entire difference between a knowledge compiler and articulate
autocomplete: a claim that cannot name a real, supporting source does not get
credit for being well written.
The deliverables
Per the standing convention, three artifacts:
- Code:
github.com/kliewerdaniel/popper— the schema, the four methods, the benchmark corpora (with real DOIs), the scorer, and the explorer. No third-party Python dependencies; every model call goes through the standard library to a local endpoint. - Explorer: Pied Popper a static site with the falsifiability question, the compiler-versus-control table, the per-discovery rediscovery results, and every compiled hypothesis with its full provenance and scores.
- This post.
Where this leaves the project
The compiler has now cleared three bars in sequence: it can generate, it can scale, and — on this evidence — it produces hypotheses that are falsifiable by construction, grounded in real sources, and, twice out of three, capable of reconstructing a genuine scientific discovery from the literature that preceded it. Just as important, it fails visibly when it fails, and it declines to confidently rebuild known nonsense.
That transition — from "an interesting AI demo" to "a methodology whose claims can be checked" — is the point where this work becomes worth taking seriously. The tool is no longer trying to sound smart. It is trying to be wrong in ways we can measure. That is the only kind of instrument worth owning.
Related research
Jul 26, 2026
Does the Compiler Know When It's Wrong? Semantic Rediscovery and the Limits of Falsification-Awareness
Popper-ORKG ended with two honest failures: temporal rediscovery was near-zero, and the compiler confidently rebuilt Lamarckian inheritance. v4 exists to ask whether those are fixable weaknesses or fundamental limits — by adding measurement, not by tuning the scorer. The answer turned out to be one of each. Mechanism-level semantic matching shows rediscovery was a measurement artifact all along (0.63 vs 0.005 exact-match, flat across temporal gaps). But a falsification-awareness consensus check could not downgrade Lamarckism or caloric: the ORKG index contains no detectable refutation edges, so the near-miss is a genuine limit of the knowledge substrate. Everything in popper/ and orkg/ stayed byte-for-byte frozen, md5-verified. Run locally on a 35B model.
Jul 25, 2026
Does the Hypothesis Compiler Generalize? Running Popper on a Corpus I Did Not Build
Popper beat its controls on five hand-curated benchmark literatures — but I built those corpora, so the result could be an artifact of clean data. This experiment removes that objection: the identical pipeline, byte-for-byte, run on a corpus I did not build — the Open Research Knowledge Graph, 6.3 million triples across 65,689 papers and seven scientific disciplines. Same schema, same rubric, same four-way controls; the only independent variable is the corpus. The compiler still wins (0.85 composite vs 0.56 keyword vs 0.00 ungrounded), an ablation proves the architecture is load-bearing (remove graph reasoning and it collapses to zero), and the grounding audit finds zero hallucinated citations across 265 evidence items. It also fails honestly: exact temporal rediscovery is near-zero, and it confidently rebuilds Lamarckian inheritance. Run locally on a 35B model.
Jul 23, 2026
Building the Scientific Question Compiler: A Map of What We Do Not Know
We built the second compiler in the Scientific State program: the Scientific Question Compiler, which turns a corpus into a map of what humanity does not yet know. Local-first, running on a 35B model on our own hardware. Here is what we built, what broke, and what it means.
Jul 23, 2026
Compiling the State of Human Understanding: A Roadmap for the Scientific State Compiler
A research roadmap: the four compiler directions — Mechanistic Reasoning, Scientific Question, Scientific State, and Discovery — are not competing projects. They are five passes in one architecture that compiles the scientific corpus into a versioned, executable model of human understanding. Here is the full plan.
Jul 22, 2026
If the Loop Is the Product, Observability Becomes the Operating System
Yesterday I argued scientific knowledge needs a compiler, not a better research assistant. Today I built the general one — five discovery passes, local-first version control for understanding, and a live explorer. This is what it means when the loop, not the model, is the product.
Jul 21, 2026
A Research Compiler for Scientific Understanding, Not a Better Research Assistant
A research vision: why scientific knowledge needs a new computational architecture. The Clinical Research Compiler SDK is an early prototype of a scientific reasoning compiler that transforms literature into versioned understanding — not a better research assistant.