Skip to content

Commit cc9834f

Browse files
Eric Priceclaude
andcommitted
docs(vardiff): the proof corpus — information-floor paper, notebook, records, essays, figures
The full proof and reader-facing layer behind the controller and framework: - information-floor.md — the paper: the closed information-floor theory, the death-spiral mechanism, the decline-safety selection criterion, and the metric it implies, each result labelled theory / simulation-only / hardware. - THEORY.md — the derivation-and-falsification notebook (reasoning-in-progress). - docs/records/ — the supporting record (architecture, findings, the per-controller investigations, test specs, and status registers), with README.md as the index. - docs/essays/ — the two-part plain-language article (why / how), self-contained (vendored fonts + fallback stacks), byline included. - docs/figures/ — the generated SVG figures the paper and essays embed. - docs/claims/ — the claim-warrant validator and its fixture. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 9ae0bac commit cc9834f

41 files changed

Lines changed: 9396 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

sv2/channels-sv2/sim/docs/THEORY.md

Lines changed: 1153 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 185 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,185 @@
1+
{
2+
"_about": "Typed claim fixture for the companion 'What it costs to not apply the criterion' section. Each claim carries its warrant TYPE so it routes to the right check; nothing ships unrouted. This file is the executable fixture validate_claims.py runs against. The integrity test: a claim and its warrant must disagree LOUDLY (gate fails) with no human electing to look. S2 is deliberately UNDECIDED — the attribution call (authorial-observation vs reproducible-public-pointer) is an open human decision, and the fixture models it as open rather than letting the tool that found it close it.",
3+
"_code_version": {
4+
"_about": "The environment a recorded seed reproduces under. A seed is the VALUE; this is its DOMAIN — a seed reproduces a result only under the same RNG/toolchain/deps (Poisson draws + float-order are toolchain-sensitive). Capturing only the seed is the value-without-domain trap: it reproduces by luck of being on the same box. So execution-warrant manifest entries are {seed} + this block.",
5+
"commit": "dc70e2e53cf168cd34379f62e580eeb0c1ee05b3",
6+
"sim_cargo_lock_sha256": "da4b7c3bf2e210978c9350fddf9bf098c7afaabead853557b13c3f9a03267515",
7+
"toolchain": "1.75.0",
8+
"_toolchain_note": "sim/ is its own Cargo workspace (own Cargo.lock); a reviewer building only sim/ would not inherit the parent stratum rust-toolchain, so sim/rust-toolchain.toml now pins 1.75.0 explicitly — added this commit to close the environment-completeness gap."
9+
},
10+
"_warrant_types": {
11+
"execution": "value produced by a reproducible run; check = re-run, compare value AND match claimed domain against run's domain",
12+
"source": "fact at a repo path + commit; check = re-read cited lines, CONTENT-match (not existence)",
13+
"source-private": "warranted but warrant genuinely cannot be public, and that impossibility is itself load-bearing; check = correctly typed as authorial observation + phrasing avoids dressing as derivation. NOT yet bound to any claim here — its binding to S2 is downstream of S2's UNDECIDED resolution.",
14+
"socket": "warrant is the EXPLICIT ABSENCE of one; check = socket tag present AND 'conditional' propagates to downstream claims",
15+
"cross-doc": "points at another claim/section; check = resolves + is-about-what-claim-says + load-bearing-type honest FOR THE CORPUS BOUNDARY (supports may cross documents within corpus, never across; see-also may cross corpus but carries no weight)",
16+
"judgment": "reasoned position, not a warranted fact; REFUSED for validation — marked, never checked, never laundered as derived; tracks depends_on so a drifted input flags BASIS-CHANGED",
17+
"UNDECIDED": "warrant_type itself awaits an external human decision; check = BLOCKS the gate, routes to owner, cannot be marked green by any automated path"
18+
},
19+
"claims": [
20+
{
21+
"id": "CIT-revenue-zero",
22+
"statement": "Below the disconnect threshold there is no first-order expected-revenue cost; the continuous quantity is payout variance, which is expectation-neutral.",
23+
"warrant_type": "source",
24+
"warrant_ref": {"doc": "information-floor.md", "anchor": "§6", "lines": "357-364", "content_must_match": "churn costs the miner **no value at all**"},
25+
"domain": {"regime": "below disconnect threshold"},
26+
"status": "validated",
27+
"depends_on": ["CIT-no-lost-work"]
28+
},
29+
{
30+
"id": "CIT-no-lost-work",
31+
"statement": "A difficulty retarget rejects no in-flight work: each job snapshots its target at creation and shares validate against THAT snapshot until the next block — so the lost-in-flight-work premise (old THEORY §6(ii)) is retracted, and churn is value-neutral.",
32+
"warrant_type": "source",
33+
"_warrant_kind": "SOURCE-KILL — a protocol/implementation fact, NOT sim-reproducible. The retraction is reproduced by READING the per-job-target-snapshot mechanism in production source, the static §10 falsifier — a stronger warrant than a sim re-run, not weaker. There is deliberately NO bin: the sim models share ARRIVALS, not job-target validation; building a probe to 'reproduce' this would manufacture fake reproducibility for a claim whose real warrant is source.",
34+
"warrant_ref": {
35+
"repo": "marafoundation/stratum",
36+
"commit": "dc70e2e53cf168cd34379f62e580eeb0c1ee05b3",
37+
"file": "sv2/channels-sv2/src/server/extended.rs",
38+
"content_must_match": "job_id_to_target",
39+
"_pin_note": "CONTENT-match at a COMMIT SHA, not line numbers. The original THEORY/doc citation 'extended.rs:510/549/668' was the §7 mutable-locator failure twice over: bare 'extended.rs' is ambiguous (THREE extended.rs exist — server/, client/, server/jobs/) and line numbers drift. Corrected: the mechanism is server/extended.rs (job_id_to_target HashMap, insert at job creation :605/:668, validate against the snapshot :724). Pinned by SHA so the kill is reproducible-by-source-read forever."
40+
},
41+
"domain": {"protocol": "SV2 (verified PR #2188); SV1 analog PLAUSIBLE but UNVERIFIED — flag before leaning on it"},
42+
"status": "validated",
43+
"_note": "The arc's most-cited retraction (blogs + proof §6 + THEORY + cost model all lean on 'no lost work'), and until now it had no claim pinning it to the source that proves it. This is the SOURCE-KILL half of the kill-evidence split: source-kills get a SHA-pinned source ref; sim-kills (floor-ribbon, seed-rampup) get a seed + expected-refutation."
44+
},
45+
{
46+
"id": "CIT-EXCESS-prod-blind",
47+
"statement": "At production rates a -10% drop is statistically invisible across the whole field.",
48+
"warrant_type": "execution",
49+
"warrant_ref": {"bins": ["detection-control", "excess-lever"], "recorded_in": "information-floor.md §5 lines 308-311"},
50+
"domain": {"drop": "-10%", "window": "60min", "rate": "4-6spm", "scope": "whole-field", "value": "EXCESS=0.00"},
51+
"status": "validated",
52+
"_note": "Domain is load-bearing: the SAME surface reads EXCESS=+0.75 at 60spm (CIT-EXCESS-lever). A value-only check passes a cherry-picked scope; domain-matching is what catches dropping '4-6spm'. This pair is the permanent EXCESS-catch test case."
53+
},
54+
{
55+
"id": "CIT-EXCESS-lever",
56+
"statement": "EXCESS climbs monotonically to +0.75 by 60 spm as the floor recedes.",
57+
"warrant_type": "execution",
58+
"warrant_ref": {"bins": ["excess-lever"], "recorded_in": "information-floor.md §8 lines 826-848"},
59+
"domain": {"drop": "-10%", "rate": "60spm", "value": "EXCESS=+0.75"},
60+
"status": "validated",
61+
"_note": "Same measurement surface as CIT-EXCESS-prod-blind at a different domain. Byte-identical warrant family, differs ONLY in domain — the field the abstract schema would have missed."
62+
},
63+
{
64+
"id": "CIT-deadband-unreachable",
65+
"statement": "A pow2-in-loop deadband PID at Kp=-0.01, setpoint ~10, has its easing crossing at -31.4 SPM (below zero realized rate), so it is structurally unable to ease on a decline.",
66+
"warrant_type": "source",
67+
"warrant_ref": {"doc": "records/PID_INVESTIGATION.md", "anchor": "the pinned addendum", "lines": "73-96", "content_must_match": "below zero and\n> therefore UNREACHABLE"},
68+
"domain": {"gain": "Kp=-0.01", "setpoint": "~10 SPM", "deadband": "+-41.4 SPM"},
69+
"status": "validated",
70+
"_note": "Source-derived from reading DEPLOYED source — verification ran instance->archetype, which is why CIT-construction-ships is grounded, not bolted on."
71+
},
72+
{
73+
"id": "CIT-construction-ships",
74+
"statement": "A controller of this construction (pow2-in-loop, easing crossing below zero rate) is present in deployed pool software, verifiable in public pool source.",
75+
"warrant_type": "source",
76+
"warrant_ref": {
77+
"doc": "records/PID_INVESTIGATION.md",
78+
"anchor": "re-validated against live DMND source 2026-06-25",
79+
"public_source": "dmnd-pool/dmnd-client/src/translator/downstream/diff_management.rs (nearest_power_of_2 :268/:389, next_control_output :267, Kp=-diff*0.01 :281)",
80+
"lines": "59-96",
81+
"content_must_match": "below zero and\n> therefore UNREACHABLE"
82+
},
83+
"domain": {"level": "construction, verifiable in public source; published-voice names NO operator (see revisit_when)"},
84+
"status": "validated",
85+
"revisit_when": "(a) pin strength: anchored to a DATE (2026-06-25) + line numbers, NOT a commit hash — line numbers drift against upstream main; strengthen to a pinned commit/sha so the public pointer can't resolve-to-the-wrong-lines (the §7 failure). (b) naming: published-voice currently POINTS to the construction in public source and does NOT name the operator; naming DMND in the published artifact is a SEPARATE deliberate increment (owner: human), not resolved by the prudence call — do not let 'show the data' launder into 'name them'.",
86+
"_note": "RESOLVED 2026-06-28 (prudence call: show the verified result). reproducible-public-pointer chosen -> ordinary `source`, strongest form; source-private binds to NO claim here and the sub-type is now unused. Construction is named in INTERNAL docs (PID_INVESTIGATION, this fixture) by source path; the PUBLISHED section points-not-names. Two debts ride in revisit_when: a commit-hash pin, and the still-open name-in-published-voice decision."
87+
},
88+
{
89+
"id": "CIT-self-concealing",
90+
"statement": "Over-difficulty suppresses the share stream — the controller's sole observable — so detection sensitivity falls in lockstep with the condition it would flag.",
91+
"warrant_type": "source",
92+
"warrant_ref": {"doc": "information-floor.md", "anchor": "Theorem 1 (§2) + §5", "lines": "154-158, 308-311", "content_must_match": "The sole observable `N`"},
93+
"domain": {"rests_on": ["Theorem 1", "§5 EXCESS"], "imports": "none"},
94+
"status": "validated",
95+
"_note": "Rests entirely on resident theorems. OE_m2p appears only as see-also (CIT-oe-seealso) carrying no weight."
96+
},
97+
{
98+
"id": "CIT-socket-theta",
99+
"statement": "Disconnect threshold below which the pool drops a connection.",
100+
"warrant_type": "socket",
101+
"warrant_ref": {"unpinned": true, "would_pin": "pool-policy fact; pool configuration"},
102+
"domain": {"symbol": "theta"},
103+
"status": "unpinned",
104+
"downstream": ["CIT-conditional-exposure"]
105+
},
106+
{
107+
"id": "CIT-socket-T",
108+
"statement": "Dead pool-time per avoidable drop (reconnect gap + failover/re-ramp/PPLNS-position loss).",
109+
"warrant_type": "socket",
110+
"warrant_ref": {"unpinned": true, "would_pin": "operational fact; per-deployment measurement"},
111+
"domain": {"symbol": "T"},
112+
"status": "unpinned",
113+
"downstream": ["CIT-conditional-exposure"]
114+
},
115+
{
116+
"id": "CIT-socket-decline-dist",
117+
"statement": "Joint distribution over (depth, rate) of sustained declines a real fleet experiences, per sector.",
118+
"warrant_type": "socket",
119+
"warrant_ref": {"unpinned": true, "would_pin": "fleet telemetry; supply as range, treat any single curve as illustrative"},
120+
"domain": {"symbol": "(d, r-dot) per sector"},
121+
"status": "unpinned",
122+
"downstream": ["CIT-conditional-exposure"],
123+
"_note": "Over-declared in the first draft: I listed CIT-archetype-separation downstream, but that claim rests on the deadband GEOMETRY + modal-decline SHAPE, not the fleet distribution — so it does not inherit this socket. The conditional-exposure COUNT does. The validator caught the propagation mismatch (downstream declared, depends_on absent) before it could mislead."
124+
},
125+
{
126+
"id": "CIT-conditional-exposure",
127+
"statement": "Output is a conditional exposure (N avoidable disconnects/yr at rate rho under archetype A, T minutes each), not a scalar expected cost.",
128+
"warrant_type": "source",
129+
"warrant_ref": {"doc": "this-section", "anchor": "derived from sockets + per-event differential", "content_must_match": "conditional exposure"},
130+
"domain": {"form": "conditional on the decline-distribution dial"},
131+
"status": "validated",
132+
"depends_on_sockets": ["CIT-socket-theta", "CIT-socket-T", "CIT-socket-decline-dist"],
133+
"_note": "Downstream of three sockets -> MUST carry 'conditional' (socket propagation). If any socket hardened to a default, this is where it would surface."
134+
},
135+
{
136+
"id": "CIT-archetype-separation",
137+
"statement": "Sleepy-symmetric drop-probability is a joint function of (depth,rate) concentrated in a corner; structural-deadband collapses to a step in depth alone (rate drops out); convolved against the modal gentle/slow decline they separate hard.",
138+
"warrant_type": "source",
139+
"warrant_ref": {"doc": "records/PID_INVESTIGATION.md", "anchor": "deadband geometry", "content_must_match": "UNREACHABLE"},
140+
"warrant_ref_2": {"doc": "records/SLOW_DECLINE_TEST.md", "anchor": "the modal gentle/slow/partial decline", "content_must_match": "sustained"},
141+
"domain": {"two_forms": ["sleepy-symmetric", "structural-deadband"]},
142+
"status": "validated",
143+
"_note": "Rests on TWO pins (deadband geometry + modal-decline shape). A claim resting on two sources needs two pins, not a concatenated path — the validator caught the malformed single-path version on first run."
144+
},
145+
{
146+
"id": "CIT-seam-xref",
147+
"statement": "At sparse rates the asymmetric trigger collapses to neutral and estimator inertia carries the decline guard (the safety hand-off).",
148+
"warrant_type": "cross-doc",
149+
"warrant_ref": {
150+
"target_doc": "building-a-vardiff.html",
151+
"target_section": "§7 'Who keeps the miner safe changes with the share rate'",
152+
"corpus_boundary": "in-corpus",
153+
"load_bearing_type": "supports",
154+
"is_about": "the seam / safety hand-off"
155+
},
156+
"domain": {},
157+
"status": "validated",
158+
"_note": "Caught: an earlier draft cited 'the seam' as '§7' which in the WHITE PAPER is 'the trap'. The white paper has no standalone seam statement; the seam lives in the BUILD paper's §7. is_about must match, and target_doc must be the build paper, not silently the companion."
159+
},
160+
{
161+
"id": "CIT-oe-seealso",
162+
"statement": "Operational loss-attribution frameworks formalize the share-stream-blindness cost further.",
163+
"warrant_type": "cross-doc",
164+
"warrant_ref": {
165+
"target_doc": "Delving Bitcoin (OE_min / OE_m2p)",
166+
"corpus_boundary": "cross-corpus",
167+
"load_bearing_type": "see-also",
168+
"is_about": "operational loss attribution / measured-to-paid decomposition"
169+
},
170+
"domain": {},
171+
"status": "validated",
172+
"_note": "Cross-corpus -> load_bearing_type MUST be see-also (carries no weight). An earlier instinct borrowed it as 'supports', which is authority across a corpus boundary. The gate fails a cross-corpus 'supports'."
173+
},
174+
{
175+
"id": "CIT-industrial-tail",
176+
"statement": "Aggregate dollar exposure is likely dominated by the industrial correlated tail; avoidable-drop COUNT by the sparse-rate fleet.",
177+
"warrant_type": "judgment",
178+
"warrant_ref": {"reasoned_not_warranted": true},
179+
"domain": {},
180+
"status": "judgment",
181+
"depends_on": ["CIT-socket-decline-dist", "CIT-archetype-separation"],
182+
"_note": "REFUSED for validation — reasoned position, not a fact. Tracks depends_on: if CIT-archetype-separation DRIFTS, this flags BASIS-CHANGED (re-examine), NOT invalidated (category error). Uncheckable conclusion, checkable inputs."
183+
}
184+
]
185+
}

0 commit comments

Comments
 (0)