ADR-078: Sponsor-Registered Targets and Obligation-Discharge Credit

Field Value
Decision ID ADR-078
Initiative Aim the board at the swarm plan’s Phase 2: credit progress on real, sponsor-registered proof targets, not standalone atoms
Proposed By Ocean (@ohdearquant), drafted by Leo
Date 2026-06-20
Status Accepted

Context

The swarm plan recommends formal mathematics because it compounds, and names Phase 2 as the destination: point the swarm at “a chosen unformalised result” and drive toward it by decomposition. The decomposition graph is already a first-class object (ADR-009 records sub-lemma statements plus typed dependency edges), the queue already self-sharpens on its own decompositions via affinity (ADR-010, plan §6), and every merged lemma is content-addressed by its statement hash (plan §7).

Non-triviality, by contrast, is enforced one atom at a time. ADR-035’s probe elaborates a goal’s closed statement under import Mathlib and rejects it if a fixed battery (rfl | trivial | decide | norm_num | omega | simp | simp_all | aesop | ring | linarith | tauto) closes it. Running it under the full library so simp/aesop surface renamed duplicates is the part most schemes get wrong and this one got right. But ADR-035 itself records the boundary: the probe is advisory at merge time (the CI backstop is changed-goals-only and non-blocking), it deliberately excludes nlinarith | positivity | field_simp | gcongr so real inequalities survive as atomic goals, and a one-shot tactic close is “a heuristic for triviality with genuine false positives.”

That leaves a gap, and I will be concrete about it because the fix follows from the diagnosis. Ocean’s own runs farmed the current system three ways: the probe is advisory, so a goal sourced outside the pipeline merges unprobed; atomic goals can be restated into many semantically-distinct merges; and any fixed battery has a farmable complement. None of these is closed by a smarter battery or a per-goal hardness oracle (estimating the difficulty of an arbitrary closed statement is about as hard as proving it). The leverage is in what the board treats as a unit of credit.

A natural-but-wrong fix is to let contributors submit a package (a root theorem plus its own decomposition skeleton) and score each discharged obligation by its depth and fan-in in that DAG. We reject it (see “neglected” below): when the contributor authors the skeleton, the contributor controls depth and fan-in, so a real-looking root with a long chain of trivial or renamed sub-lemmas farms position directly, and the advisory atomic probe does not stop the padding. That scheme is plausibly easier to farm than atoms, not harder. The structure has to be authored by someone who is not the one earning the credit, and the obligations that bear credit have to be non-trivial by construction.

WH(Y) Decision Statement

In the context of a swarm whose stated Phase 2 is the decomposition of target theorems, which already records decomposition DAGs (ADR-009), content-addresses lemmas by statement hash (plan §7), has a working human-sponsor channel for upstreaming (ADR-020), CODEOWNERS-gates its trust surfaces (ADR-019), and zeroes self-dealing credit (the v1.28 self-dispatch rule),

facing the fact that atomic credit is farmable (advisory probe, restatement, battery complement) and that simply moving to contributor-submitted package skeletons makes it worse, because the submitter then controls the graph the score reads,

we decided for crediting the discharge of a credited obligation in a sponsor-registered target whose skeleton the discharging contributor did not author. A target is a root statement plus a fixed skeleton of obligations (sub-lemmas carrying sorry) and ADR-009 dependency edges, registered through the ADR-020 sponsor channel and reviewed by a code owner because it sits on the scoring trust surface (ADR-019). A credited obligation is one that survives a registration-time probe running the full battery — ADR-035’s set together with the nlinarith/positivity/field_simp/gcongr tactics it excludes at sourcing — so that one-tactic-closable nodes are permitted in a skeleton as glue but earn zero. Board credit is credited-obligations discharged, plus targets completed — the same shape as today’s credited-proof count, restricted to registered-target credited obligations and deduped by statement hash (§7). A discharged obligation’s depth and fan-in are recorded as advisory ordering signals only, never as the score,

and neglected (a) contributor-submitted package skeletons scored by depth/fan-in — the submitter controls the graph, so depth, fan-in, and longest-path are all directly farmable and the advisory atomic probe does not stop trivial padding; (b) a larger or smarter tactic battery at sourcing — the complement stays farmable; (c) a per-goal hardness oracle — difficulty estimation is as hard as the proof; (d) making depth/fan-in itself the score — it is not a reliable proxy for difficulty (deep-but-trivial chains exist; shallow-but-hard lemmas are common) and every normalization of “depth on a DAG with diamonds and shared sub-dependencies” is its own attack surface; (e) the difficulty 0–5 self-tag (SPEC-003-A), an honor rule automation routes around; (f) trusting a registered skeleton without a non-triviality probe on its obligations — that reopens the farm on the sponsor side,

to achieve a board that measures progress toward completing real, sponsored proof targets — the plan’s Phase 2 made into the scored unit — on machinery the project already has (sponsor channel, code-owner review, decomposition edges, statement-hash dedup, self-dealing-zero, the ADR-035 probe),

accepting that non-triviality enforcement moves to registration time and becomes blocking there for credit: a node earns credit only if the full-battery probe cannot close it, and registration is code-owner-reviewed. This is affordable precisely because targets are rare and sponsor-paced, unlike per-merge gating. The irreducible residue is sponsor-plus-owner collusion, addressed and bounded below.

Why this is not farmable, and why it is worth more

Hardness is not a property of a goal in isolation; it is a property of where the goal sits in a structure someone built on purpose. The defense “you cannot manufacture the sub-lemmas of a theorem you did not architect” only holds when the architect is not the farmer. This ADR puts the architect on the sponsor side, and puts a non-triviality floor on every credited node:

This is also the substrate for the thread’s direction #2, crowd-sourcing large sorry-skeletons. Untrusted distributed contributors, Gate A re-verifying from scratch in the kernel (ADR-048), statement-hash dedup (§7), provenance (ADR-023): aimed at registered targets, that machine crowd-sources the discharge of a large skeleton. The engine is right; it was aimed at atoms and can be aimed at targets.

To be clear about layering (so this is not confused with §6): ADR-010/§6 affinity governs the swarm’s internal selection over its own failed-goal decompositions and is unchanged. This ADR governs board credit, and reads only the sponsor-registered target structure. The two do not interact.

Consequences

A first target

Ocean is ready to register the first one. He will open-source the full Lion proof, several times the size of the LNkernel sample linked earlier in the thread, as the first sponsor-registered Phase-2 target, and help bring in mathematicians who have their own skeletons to register. The natural next artifact is the SPEC that accompanies this ADR (the target-registry format, the registration-time full-battery probe, and the credit function), with a small worked example scored both ways so the difference is concrete before any board change ships.

References

Reference ID Title Type Location
REF-1 Distributed Autonomous Research Swarm plan (Phase 2, §6, §7) Proposal docs/proposals/distributed-research-swarm-plan.md
REF-2 Goal Decomposition on Prove-Budget Exhaustion Decision ADR-009-Goal-Decomposition.md
REF-3 Affinity-Weighted, Gap-Based Goal Selection Decision ADR-010-Affinity-Gap-Selection.md
REF-4 Human-Sponsored Upstreaming (the registration channel reused) Decision ADR-020-Human-Sponsored-Upstreaming.md
REF-5 CI Supply-Chain & Workflow Protection (CODEOWNERS trust surfaces) Decision ADR-019-CI-Supply-Chain-Protection.md
REF-6 Optional Proof Provenance and Leaderboard Decision ADR-023-Proof-Provenance-Leaderboard.md
REF-7 Non-Trivial Theorem Enforcement (the probe this complements and reuses at registration) Decision ADR-035-Non-Trivial-Theorem-Enforcement.md
REF-8 Corroborated Solver Provenance — phantom-attribution guard Decision ADR-037-Corroborated-Solver-Provenance.md
REF-9 Discussion: triviality, hardness, and what to reward Discussion #3217

Status History

Status Approver Date
Proposed Ocean (@ohdearquant) 2026-06-20
Accepted Chris Barlow (founder, #5643) 2026-06-24

Ratification note (#5643). The mechanism is accepted. The numeric completion-bonus weight B and the dual-track sunset remain deferred placeholders in SPEC-078-A (§6), to be set with a worked example before any organic-board change ships (§55). The benchmark track (ADR-092) uses per-obligation credit on a segregated cohort:benchmark and does not depend on B.