diff --git a/docs/ci-verification.md b/docs/ci-verification.md index 582e416aaf..4541cfa0e8 100644 --- a/docs/ci-verification.md +++ b/docs/ci-verification.md @@ -5,6 +5,25 @@ Start with the [selected record](../certificates/selected-result.json). Its `reproduce`, `review`, `source_manifest` and `validation` fields identify the replay command, scoped assessment, source bindings and integration evidence. +The selected checkpoint is #4359, documented in +[the proof review](research/pr-intake-evidence/pr4359/PROOF-REVIEW.md), +[the source manifest](../certificates/frontier4359-source.json) and +[the validation receipt](research/pr-intake-evidence/pr4359/VALIDATION.json). +The public cold replay is `make frontier4359-verify`; the configured +[frontier4359 workflow](../.github/workflows/frontier4359.yml) executes it +on Ubuntu 24.04 with Python 3.12 and the pinned requirements. Consult +[the integration receipt](research/pr-intake-evidence/pr4359/INTEGRATION.json) +and [workflow runs](https://github.com/CrocSwap/integer-mult-bounds/actions/workflows/frontier4359.yml) +for dated evidence and exact tested heads. + +`make selected-record-check` checks metadata and source/proof hashes. The +finite replay and changed-interface review retain the native/physical, +analytic, precision, fixed-tape and recovery hypotheses in the selected +record; they are not a full formal multiplication theorem. The winning +uniform templates are algorithm-defined and are not materialized. + +## Historical checkpoint through #1094 + At this checkpoint, the selected composition is #589 with #1094, documented in [the review](research/community-batch1099-review.md), [the source manifest](../research/community-frontier1094-audit/SELECTED-SOURCE.json) diff --git a/docs/research/clear1nsight-20261022-base.md b/docs/research/clear1nsight-20261022-base.md new file mode 100644 index 0000000000..cdbde019fd --- /dev/null +++ b/docs/research/clear1nsight-20261022-base.md @@ -0,0 +1,5 @@ +# Isolated contribution base, 22 October 2026 + +This branch starts at canonical main f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc. It carries only the already tested fork PR14 navigation and historical source-role corrections, separate from all four new research submissions. The historical replay's original-manifest reference is now the same byte-identical manifest in canonical main, so no foreign fork commit is required. Scientific verifiers, original hashes and receipts, selected records, and replay invalidation paths are unchanged. Credit zxv's PR4436 documentation, James Reed's PR3563 and the locale/D8 authors; fork adaptation by Chris R / Clear1nsight with substantial OpenAI assistance, Apache-2.0. + +This is an isolated base branch, not a merge into main or a selected-frontier update. Each research PR targets this branch to keep its scientific diff focused. Upstream submission should carry the individual research commit; upstream maintainers own any shared CI repair. New package metadata pins the canonical scientific baseline, not the changing current documentation. diff --git a/docs/research/current-status.md b/docs/research/current-status.md index 62a8cbb097..043a8cd78a 100644 --- a/docs/research/current-status.md +++ b/docs/research/current-status.md @@ -1,12 +1,14 @@ # Current reviewed status -Selected conditional κ: **0.0023 = 23/10000**, zxv’s #4359 productive-helper construction, using Jacob Alan Sussman’s mixed-target recursion and the credited cumulative native/outer lineage. +Selected conditional κ: **0.0023** = 23/10000, zxv’s #4359 productive-helper construction, using Jacob Alan Sussman’s mixed-target recursion and the credited cumulative native/outer lineage. [Selected record](../../certificates/selected-result.json) · [Proof review](pr-intake-evidence/pr4359/PROOF-REVIEW.md) · [Integration receipt](pr-intake-evidence/pr4359/INTEGRATION.json) · [Contributors](community-productive4359-contributors.md). Cold replay: `make frontier4359-verify`. The fresh 23-stage replay and 59 normalized artifacts pass; the changed interfaces have an AI-assisted proof review under retained analytic/native/fixed-tape hypotheses. Winning uniform templates are not materialized. This is not a complete formal or independent human verification. #4404 independently checks a narrower arithmetic/flow scope. -## Historical selected status through #1094 +The sections below are a historical snapshot; consult the selected record above for present status. + +## Historical checkpoint through #1094 Historical selected conditional κ: **0.001672660197076918**, Rohan Arun's #1094 on Jeremy Kothe's #1087 packing and the cumulative k8/slot/T16 construction. The bit supplier remains #589 on #555. diff --git a/research/d8-mixed-target-seeda97c8e/SOURCES.json b/research/d8-mixed-target-seeda97c8e/SOURCES.json index 9384463ff4..5dcfa9dd60 100644 --- a/research/d8-mixed-target-seeda97c8e/SOURCES.json +++ b/research/d8-mixed-target-seeda97c8e/SOURCES.json @@ -4,25 +4,25 @@ "files": [ { "path": "autoresearch.md", - "usage": "input", + "usage": "provenance", "git_blob": "8d5403e0f10f68a61d0cb9294fa2e83e872d1d82", "sha256": "215b3222f6a943edc69422a28ac21ea1f397ddf54770f1d87ac4195385d73699" }, { "path": "certificates/selected-result.json", - "usage": "input", + "usage": "provenance", "git_blob": "ae6a99f28aa468649eb66a361e764d769363bf11", "sha256": "10b9e340fd8e354a37a0c4813c90e5de1dd42044b5f6aca4a3fc5a42b685fa32" }, { "path": "docs/research/agent-task-catalog.json", - "usage": "input", + "usage": "provenance", "git_blob": "06c96f5579bb67ed1b86d334e78fbed7da6945f1", "sha256": "6686ad58f1fbdbc87134a78901b60fd53a20d3984355e91defbbebc9e9fa8075" }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "d73b4ff9da41f044e793422db4318be17e234a6c", "sha256": "adb54af005eb11edaf84d782fe729338680ff908f6d4fbf39ba1062d2e7d8a77" }, diff --git a/research/historical-1042-link/SOURCES.json b/research/historical-1042-link/SOURCES.json index c6119ca5a8..6a1356cf2a 100644 --- a/research/historical-1042-link/SOURCES.json +++ b/research/historical-1042-link/SOURCES.json @@ -10,13 +10,13 @@ }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "4e0a8b7cdacc1d9680f7f81d03624118bb20416d", "sha256": "00a08925c51b26d168b8099ddeed659ac4381f7e04f3c7fd0e9de8e71f206823" }, { "path": "certificates/selected-result.json", - "usage": "input", + "usage": "provenance", "git_blob": "b1fea0c94436b236cc2b7d41a7be032811b94c81", "sha256": "bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129" }, diff --git a/research/historical-1042-link/VERIFY.json b/research/historical-1042-link/VERIFY.json index 5cff7b26c9..21d3b965ac 100644 --- a/research/historical-1042-link/VERIFY.json +++ b/research/historical-1042-link/VERIFY.json @@ -10,14 +10,14 @@ ], "commands": [ { - "argv": ["{python}", "-B", "{package}/verify.py"], - "timeout_seconds": 30, - "checks": "Compare the #1042 status link with the live record and the frontier1042 checkpoint." + "argv": ["{python}", "-B", "{package}/historical_replay.py"], + "timeout_seconds": 120, + "checks": "Authenticate and replay the unchanged PR3563 verifier, tests and receipt against its exact original three source blobs in a temporary snapshot. Current navigation is checked separately; all original invalidation paths remain declared." }, { "argv": ["{python}", "-B", "{package}/test_verify.py"], "timeout_seconds": 30, - "checks": "Check the printed decimal and the historical section cut." + "checks": "Check the unchanged printed decimal and historical section cut." } ] } diff --git a/research/historical-1042-link/historical_replay.py b/research/historical-1042-link/historical_replay.py new file mode 100644 index 0000000000..33cf1acd5e --- /dev/null +++ b/research/historical-1042-link/historical_replay.py @@ -0,0 +1,76 @@ +#!/usr/bin/env python3 +"""Replay unchanged PR3563 evidence on its authenticated historical snapshot. + +Adapted from Clear1nsight PR14 solely to bind the original manifest to current +canonical ancestry. Apache-2.0; substantial OpenAI assistance. +""" +from pathlib import Path, PurePosixPath +import hashlib +import json +import os +import subprocess +import sys +import tempfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +PUBLICATION = 'f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc' +PACKAGE = 'research/historical-1042-link' +ORIGINAL = {'verify.py':'12170922e5cd84746089d022f103bfe931fb8a15', + 'test_verify.py':'140840530cbd9b4fdd80d8fa067334b61bfa4c17', + 'RESULT.json':'a9d58d28814fc4a7c9b50a165b48d1a4f52d1892', + 'SOURCES.json':'c6119ca5a8233edd0f8ed3a2e606de5b088d9fcf'} +INPUTS = {'docs/research/current-status.md','certificates/selected-result.json', + 'certificates/checkpoints/frontier1042.json'} + +def require(ok, why): + if not ok: + raise ValueError(why) + +def blob_id(data): + return hashlib.sha1(b'blob '+str(len(data)).encode()+b'\0'+data).hexdigest() + +def checked_path(path): + p=PurePosixPath(path) + require(not p.is_absolute() and str(p)==path and '..' not in p.parts + and '\\' not in path and '\0' not in path, 'Unsafe historical path') + return path + +def git_bytes(spec): + env=dict(os.environ, GIT_NO_REPLACE_OBJECTS='1') + return subprocess.check_output(['git','--no-replace-objects','cat-file','blob',spec], + cwd=ROOT,env=env,timeout=30) + +def main(): + raw=git_bytes(PUBLICATION+':'+PACKAGE+'/SOURCES.json') + require(blob_id(raw)==ORIGINAL['SOURCES.json'],'Original manifest changed') + manifest=json.loads(raw) + rows=[r for r in manifest['files'] if r['usage']=='input'] + require(len(rows)==3 and {r['path'] for r in rows}==INPUTS,'Input inventory changed') + payload={PACKAGE+'/SOURCES.json':raw} + for name in ('verify.py','test_verify.py','RESULT.json'): + path=HERE/name + require(path.is_file() and not path.is_symlink(),'Missing/aliased frozen file') + data=path.read_bytes() + require(blob_id(data)==ORIGINAL[name],'Frozen bytes changed') + payload[PACKAGE+'/'+name]=data + for row in rows: + path=checked_path(row['path']) + data=git_bytes(manifest['base_commit']+':'+path) + require(blob_id(data)==row['git_blob'],'Historical blob mismatch') + require(hashlib.sha256(data).hexdigest()==row['sha256'],'Historical hash mismatch') + payload[path]=data + if path.endswith('frontier1042.json'): + require((ROOT/path).read_bytes()==data,'Live historical checkpoint changed') + with tempfile.TemporaryDirectory(prefix='historical-1042-replay-') as directory: + root=Path(directory) + for relative,data in payload.items(): + p=root/relative;p.parent.mkdir(parents=True,exist_ok=True);p.write_bytes(data) + flags=['-I','-B']+(['-O'] if sys.flags.optimize else []) + for name in ('verify.py','test_verify.py'): + subprocess.run([sys.executable,*flags,str(root/PACKAGE/name)],cwd=root,check=True,timeout=30) + require(all((root/p).read_bytes()==data for p,data in payload.items()),'Frozen replay mutated evidence') + print('PASS_HISTORICAL_1042_SNAPSHOT current_frontier_not_asserted=true') + +if __name__=='__main__': + main() diff --git a/research/receiver-window-transfer/METADATA-CORRECTION.md b/research/receiver-window-transfer/METADATA-CORRECTION.md new file mode 100644 index 0000000000..f08b41643d --- /dev/null +++ b/research/receiver-window-transfer/METADATA-CORRECTION.md @@ -0,0 +1,3 @@ +# Publication metadata correction + +The receipt-retention run 39724869780 at 3bd375a8744a0b790feb0e3108f10c52406b96b5 stopped before scientific replay because the author used outcome negative instead of the schema's negative-result. This corrects only that metadata value and records the failed attempt. The earlier full source-bound run 39723520394 passed. The scientific code, exact source pins and retained RESULT.json are unchanged; the next hosted run must still compare the fresh receipt. VALIDATION.md's word negative describes the result, not a valid schema enum. diff --git a/research/receiver-window-transfer/README.md b/research/receiver-window-transfer/README.md new file mode 100644 index 0000000000..477459d55b --- /dev/null +++ b/research/receiver-window-transfer/README.md @@ -0,0 +1,40 @@ +# Receiver sharing on twelve productive-helper windows + +**Bounded negative construction result; no new kappa.** The source-bound registered replay passes. Of 128 eligible adjacent receiver pairs in PR4470, the first twelve were tested. All twelve selected replacements preserve the old paid profile exactly in both orientations and add one scalar operation. No improvement is claimed. [RESULT.json](RESULT.json) retains the exact source-bound receipt; [VALIDATION.md](VALIDATION.md) records the actual hosted execution and earlier corrected metadata failure. + +## Construction and exact domain + +For a += ca*x; b += cb*x, where ca,cb are unit signs, set s=-ca*cb and replace by a += s*b; b += cb*x; a -= s*b. This holds on arbitrary dirty a,b,x and for its inverse-transpose word. No field is cleared, copied or given extra productive credit. The finite domain is the first twelve adjacent persistent ADD pairs in B or cleanup_tail with one common source and distinct receivers. The observed twelve are all in phase B; neither every B window nor all cleanup windows are covered. + +Seven pinned source inputs are authenticated before the original constructor emits the word under test. No predecessor proof evaluator is called. The separate checker derives next required frames, enumerates feasible contact-dimension triples for the three-shear word, constructs legal nested flags, and recomputes the complete local invoice in both orientations. Main boundaries, warps, centres and all 408 productive helper endpoints remain fixed. Every retained whole-word paid profile equals {1:2237,2:388,3:494,4:147,5:36,8:8}. + +## Frame-domain theorem + +Let A,B,X be entrance subspaces and Ae,Be,Xe the next required frames. Set L1=A+B, L2=L1+X, V3=Ae intersection Be, V2=V3 intersection Xe. A monotone common-frame implementation exists exactly when L2 is contained in V2. The feasible dimensions satisfy dim(L1)<=d1<=dim(V2), max(d1,dim(L2))<=d2<=dim(V2), and d2<=d3<=dim(V3). + +Necessity follows because b participates in all contacts, a in the first and last, and x in the middle. Hence F1 is contained in F2 contained in F3, with L1 contained in F1, L2 contained in F2, F2 contained in V2 and F3 contained in V3. Sufficiency follows by extending a basis along L1 contained in L2 contained in V2 contained in V3 and taking the required prefixes. Every positive entrance, inter-contact and exit gap is charged. This is restricted to the stated word and monotone contract, not a general lower bound. + +Paid powers at C=0.00302015 are enclosed by rational atanh and exponential series with explicit tails. Strict gain requires a positive lower bound. Complete-word and local-delta invoices must agree. Equal histograms are exact zero savings even where independently enclosed costs give a narrow interval around zero. The stronger four-shear exclusion is a separate companion in fork PR18, not a premise here. + +## Reproduce and limitations + +Python 3.12, standard library only: + +```sh +python -B scripts/research_package.py --package research/receiver-window-transfer +python -I -O -B research/receiver-window-transfer/verify.py --self-test +``` + +The registered replay passed on CPython 3.12.15 and preserves committed inputs. Normal verification compares the full receipt without rewriting it. The inherited constructor is generation, not independent verification. Physical lowering and absolute phases of a new path, the complete native endpoint, precision/stock, compiler and outer transfer are not established. No selected record or frozen source changes. + +## Task and overlap + +Scientific base f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc, priority revision 7; PR4470 source b9a13c1673e0e9697de410de16e8bbf3207a7363. TASK.json records the user-assigned changed scope. PR4121 uses older T360 sources; PR4504/4478 verify predecessors. PR4532/4533 concern the compiler. Targeted searches are not exhaustive overlap pagination or novelty proof. The historical baseline helper was not run. + +## Open next questions + +Do not reseed the twelve fixed windows. A useful next experiment must explicitly change the scalar alphabet, adjacency, or source/consumer boundary and price it completely. Another window is outside this finding but should have a concrete structural reason for consideration. The physical/native/consumer obligations remain necessary for any future positive candidate. TASK.json gives the first step and blockers. + +## Credit + +Credit zxv's PR4085 receiver identity and PR4359 productive-helper architecture, Cinna Davis's PR4470 and constructor, Jacob Alan Sussman, the fresh-helper/missing-span lineage, Mihir Srivastava, Ryanson Jonathan, GamingPuzzled's older census and all retained native/Clifford/geometry/outer notices. Prepared for Chris R / Clear1nsight with substantial OpenAI assistance, Apache-2.0. No independent human or proof-kernel acceptance is claimed. diff --git a/research/receiver-window-transfer/RECEIPT-COMPARISON.md b/research/receiver-window-transfer/RECEIPT-COMPARISON.md new file mode 100644 index 0000000000..e1c0b062ab --- /dev/null +++ b/research/receiver-window-transfer/RECEIPT-COMPARISON.md @@ -0,0 +1,5 @@ +# Canonical receipt comparison + +The scientific engine's Python histograms use integer rank keys, while JSON object keys are necessarily strings. Its original direct main function compares those two Python objects without serialisation, which cannot validate a stored receipt even when all mathematical fields agree. The registered command now uses replay.py. It authenticates the unchanged engine at Git blob d91cfcffe9963b9df42e3874f09b29627edd2565, executes run() with every original source and scientific check, and compares both results in their canonical JSON representation. It never executes the authoring --write path and never modifies RESULT.json. + +No field is dropped or value rounded. Sorted object order and JSON's required string key representation are the only representational normalisation. Arrays remain ordered. Boolean versus integer and integer versus float values remain distinct in the encoded comparison. Six controls reject changed counts, changed flag type, numeric type substitution, changed order, missing fields and extra fields, in normal and optimised runs. The source-bound numerical receipt remains unchanged. Use the registered command or replay.py for stored-receipt verification; the unchanged original --self-test command remains valid. This is an explicit comparison adapter, not an adjustment to mathematical acceptance. diff --git a/research/receiver-window-transfer/RESULT.json b/research/receiver-window-transfer/RESULT.json new file mode 100644 index 0000000000..c872f36591 --- /dev/null +++ b/research/receiver-window-transfer/RESULT.json @@ -0,0 +1 @@ +{"certified_positive_windows":0,"new_kappa":false,"not_covered":["global rewrite optimum","physical lowering of any new path","complete native endpoint","compiler and outer transfer"],"scale":1000000000000000000,"schema":"receiver-window-transfer/v1","self_tests":21,"source_head":"b9a13c1673e0e9697de410de16e8bbf3207a7363","status":"PASS_BOUNDED_RECEIVER_TRANSFER","tested_saving":"60403/20000000","tested_windows":12,"total_eligible_adjacent_pairs":128,"unchanged_productive_helpers":408,"windows":[{"index":10554,"ordinal":2,"phase":"B","roles":[162,172,513],"coefficients":[-1,1],"start":[[],[],[]],"end":[[],[224,30],[]],"old_frames":[[],[]],"new_frames":[[],[],[]],"legal_dimension_triples":1,"old_paid":{"2":1},"new_paid":{"2":1},"paid_moment_gain_scaled_interval":[-1,1],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10555,"ordinal":3,"phase":"B","roles":[172,196,513],"coefficients":[1,1],"start":[[],[],[]],"end":[[224,30],[],[]],"old_frames":[[],[]],"new_frames":[[],[],[]],"legal_dimension_triples":1,"old_paid":{"2":1},"new_paid":{"2":1},"paid_moment_gain_scaled_interval":[-1,1],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10557,"ordinal":5,"phase":"B","roles":[140,144,502],"coefficients":[1,-1],"start":[[],[],[30]],"end":[[416,30],[30],[30]],"old_frames":[[30],[30]],"new_frames":[[30],[30],[30]],"legal_dimension_triples":2,"old_paid":{"1":3},"new_paid":{"1":3},"paid_moment_gain_scaled_interval":[0,0],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10558,"ordinal":6,"phase":"B","roles":[144,187,502],"coefficients":[-1,1],"start":[[],[],[30]],"end":[[30],[30],[30]],"old_frames":[[30],[30]],"new_frames":[[30],[30],[30]],"legal_dimension_triples":2,"old_paid":{"1":2},"new_paid":{"1":2},"paid_moment_gain_scaled_interval":[0,0],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10560,"ordinal":8,"phase":"B","roles":[168,150,548],"coefficients":[1,1],"start":[[],[],[51]],"end":[[51],[388,51],[51]],"old_frames":[[51],[51]],"new_frames":[[51],[51],[51]],"legal_dimension_triples":2,"old_paid":{"1":3},"new_paid":{"1":3},"paid_moment_gain_scaled_interval":[0,0],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10561,"ordinal":9,"phase":"B","roles":[150,115,548],"coefficients":[1,-1],"start":[[],[],[51]],"end":[[388,51],[51],[51]],"old_frames":[[51],[51]],"new_frames":[[51],[51],[51]],"legal_dimension_triples":2,"old_paid":{"1":3},"new_paid":{"1":3},"paid_moment_gain_scaled_interval":[0,0],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10563,"ordinal":11,"phase":"B","roles":[131,117,560],"coefficients":[1,-1],"start":[[],[],[51]],"end":[[196,51],[51],[51]],"old_frames":[[51],[51]],"new_frames":[[51],[51],[51]],"legal_dimension_triples":2,"old_paid":{"1":3},"new_paid":{"1":3},"paid_moment_gain_scaled_interval":[0,0],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10564,"ordinal":12,"phase":"B","roles":[117,584,560],"coefficients":[-1,-1],"start":[[],[51],[51]],"end":[[51],[51],[51]],"old_frames":[[51],[51]],"new_frames":[[51],[51],[51]],"legal_dimension_triples":1,"old_paid":{"1":1},"new_paid":{"1":1},"paid_moment_gain_scaled_interval":[0,0],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10575,"ordinal":23,"phase":"B","roles":[205,170,452],"coefficients":[-1,-1],"start":[[],[],[]],"end":[[30],[491,30],[459,38,30]],"old_frames":[[],[]],"new_frames":[[],[],[]],"legal_dimension_triples":4,"old_paid":{"1":1,"2":1,"3":1},"new_paid":{"1":1,"2":1,"3":1},"paid_moment_gain_scaled_interval":[-2,2],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10577,"ordinal":25,"phase":"B","roles":[118,194,453],"coefficients":[-1,-1],"start":[[],[],[30]],"end":[[30],[30],[448,21,11]],"old_frames":[[30],[30]],"new_frames":[[30],[30],[30]],"legal_dimension_triples":2,"old_paid":{"1":2,"2":1},"new_paid":{"1":2,"2":1},"paid_moment_gain_scaled_interval":[-1,1],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10579,"ordinal":27,"phase":"B","roles":[120,207,454],"coefficients":[-1,-1],"start":[[],[],[]],"end":[[51],[37,22],[448,38,21]],"old_frames":[[],[]],"new_frames":[[],[],[]],"legal_dimension_triples":4,"old_paid":{"1":1,"2":1,"3":1},"new_paid":{"1":1,"2":1,"3":1},"paid_moment_gain_scaled_interval":[-2,2],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}},{"index":10581,"ordinal":29,"phase":"B","roles":[192,179,455],"coefficients":[-1,-1],"start":[[],[],[51]],"end":[[51],[51],[469,51,11]],"old_frames":[[51],[51]],"new_frames":[[51],[51],[51]],"legal_dimension_triples":2,"old_paid":{"1":2,"2":1},"new_paid":{"1":2,"2":1},"paid_moment_gain_scaled_interval":[-1,1],"strictly_improves":false,"complete_paid":{"1":2237,"2":388,"3":494,"4":147,"5":36,"8":8}}]} diff --git a/research/receiver-window-transfer/SOURCES.json b/research/receiver-window-transfer/SOURCES.json new file mode 100644 index 0000000000..443dcd0ada --- /dev/null +++ b/research/receiver-window-transfer/SOURCES.json @@ -0,0 +1 @@ +{"schema_version":1,"base_commit":"f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc","files":[{"path":"certificates/selected-result.json","usage":"provenance","git_blob":"ed33caef5c5827693e9572d252a66f99cbb73d40","sha256":"5732707cc1e460b090b53f2463162749ad860de878a18f7408938671d295a9d9"},{"path":"docs/research/agent-task-catalog.json","usage":"provenance","git_blob":"64bfc5af6709ed9811171e0a2108f05e1219cb65","sha256":"352a6184713b8843d96fd2c2071eb7aeaa655906b7c51d45ad444912666c8a96"},{"path":"research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz","usage":"input","git_blob":"4a8c4ed26e53a72362d571c972e65aff546be784","sha256":"6418ec3da24d548a57f5c3fe5b9062c26c9478e638504a61c387f5cfb5f4ed61"},{"path":"research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz","usage":"input","git_blob":"b46d44c6ee624968dd57be928b0c15d9d45f3b2c","sha256":"c54b0a3e129d28e6dbf74fa731fc3bb70fe3c6705f07256750fbecddcc842d39"},{"path":"research/fresh-helper-boundary/native.py","usage":"input","git_blob":"1b36f6cb5f205c33bf48811e0b1b3621c55e8154","sha256":"9b55a2d3c3972148fae9d112e745d9244968166bd89bd900c938f429fc76ab29"},{"path":"research/fresh-helper-boundary/CHANGES.json","usage":"input","git_blob":"45744fedd0e28967aa72586048b8bc0c72f419a9","sha256":"cde73b8ff5b3c0d06e69e2293b991b24fd14a16dd4ccab7ff6b3439074a94624"},{"path":"research/missing-join-frame/PATCH.json","usage":"input","git_blob":"f96d295d40014d4dd503f58eb3cdabcbb4b8e101","sha256":"9ab5328245ff02c9d0be21d39bcc375f50bc5d7909e9f7b9a3a9a6f812f5bd6e"},{"path":"research/joint-helper-lattice/PATCH.json","usage":"input","git_blob":"51304a6601061ed4e698f910b09135ef109555e3","sha256":"296d0e8c58cc70febe042c681ef30d6bb469818c0835fbcaac8aa8d330f5b727"},{"path":"research/joint-helper-lattice/native_joint.py","usage":"input","git_blob":"0315f80e2fdef5e0eef13e3e9b8f72066238164d","sha256":"50869b1bcad7493e6b4cb2a4cd5d2fd9a193a5921100483fa2c3f2c999ddfd46"}]} diff --git a/research/receiver-window-transfer/TASK.json b/research/receiver-window-transfer/TASK.json new file mode 100644 index 0000000000..668ab65839 --- /dev/null +++ b/research/receiver-window-transfer/TASK.json @@ -0,0 +1 @@ +{"schema_version":1,"task_id":"independent-moment","priority_revision":7,"base_commit":"f9f85c1e4fa1e955ff39f10fca447e3e2a4e4adc","original_card":{"id":"independent-moment","question":"Does a new paid-profile or mixture-ceiling claim have independent source-bound coverage of its actual changed ledger?","starting_points":["docs/research/research-family-status.md","certificates/selected-result.json","research/staged544-mixed-fourth-entry/README.md","research/staged-fourth-mixture-ceiling/README.md","research/r437-two-window-carrier/README.md"],"methods":["Independently reconstruct one changed paid ledger or pooled dual with exact source and model binding.","Check a genuinely uncovered moment implication with a different enclosure method and semantic controls."],"acceptance_gate":"Demonstrate independence, source binding, positive cases and semantic failure controls. Name the existing checks and the missing coverage. More digits or another equivalent evaluation of an unchanged root is not by itself new verification coverage.","first_step":{"command":["python3","-B","scripts/research_baseline.py"],"expected":"PASS_RESEARCH_BASELINE_BINDINGS_ONLY","inspect":"Choose one uncovered implication in #4088 literal mixed fill, #4091 pooled dual/model binding or #4067 changed frame/host bill. #4091 pins an earlier #4088 head: validate word, capacity and stock equivalence before applying that ceiling to the later fill.","scope":"Source-binding orientation only; no scientific replay, theorem acceptance or supplier admission. Budget any heavy replay separately."},"first_experiment":"Independently reconstruct one changed ledger or pooled certificate with a positive case and a semantic failure control. Compare exact sources and name what existing checks miss. Keep this separate from supplier-boundary-audit (ordinary/outer dispatch) and uniform-transfer-audit (all-size proof). Stop after the chosen implication; more digits of an unchanged root are not additional mechanism coverage.","bottleneck_link":"Independent pricing prevents unsupported frontier claims and can reveal genuine accounting slack.","allowed_variations":["Reconstruct either a source ledger or a numeric enclosure with a different method."],"scope_change_triggers":["Importing the primary function and calling its output independent verification.","Calling an aggregate histogram or source archive an independently accepted physical supplier."],"overlap_terms":["independent moment","rank histogram","exact enclosure","2979","rank7 joint endframes","paired extraction","joint lowering","4088","4091","4067","staged544-mixed-fourth-entry","staged-fourth-mixture-ceiling","r437-two-window-carrier"],"existing_checks":[{"scope":"PR #4088: mixed local/owner/phase ledger and moment reported.","evidence":"research/staged544-mixed-fourth-entry/README.md","remaining":"Independent binding of changed construction to paid histogram, distinct from full admission.","status":"author-checked","source_commit":"72d7efc181edb21806a878f174847c96dd410ab0","selected_record_sha256":"bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"},{"scope":"PR #4091: sharp pooled ceiling proposed for fixed THREE/FOUR words and inventory.","evidence":"research/staged-fourth-mixture-ceiling/README.md","remaining":"Validate dual, exhaustive pattern scope and exact source equivalence before applying to newer fills.","status":"author-checked","source_commit":"a29bdd8f56cd18b805917775cdec09ff935eddc4","selected_record_sha256":"bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"},{"scope":"PR #4067: paid (2,2) to (1,3) exchange and fixed OQ4 host reported.","evidence":"research/r437-two-window-carrier/README.md","remaining":"Independent full cost delta; remaining caller/precision/stock obligations are separate.","status":"author-checked","source_commit":"a95f11c52e3ca1e4c5171b3c20d8f4b0815aee2e","selected_record_sha256":"bb2eaa58647b353f88d0aec2eafb9d30df1be53589231b23e12ceef3e4bad129"}]},"scope_status":"changed","actual_scope":"Assignment A: bounded receiver-sharing transfer on the first twelve actual PR4470 windows, with exact local and whole-word bills in both orientations.","scope_change_reason":"User-assigned construction rather than another root audit; this tests the three-shear receiver identity, not every four-shear word.","bottleneck_link":"Seek paid-profile changes under productive-helper accounting without discarding restoration or useful outputs.","budget_minutes":60,"stop_rule":"Stop at twelve windows and exact accounting; no reseeding or physical admission from an unchanged histogram.","outcome":"negative-result","evidence":"Registered hosted replay 39723520394 at 99f5d3d855a7ad6204072ff021e3621d7c6fa72c passed CPython 3.12.15. Of 128 eligible pairs, the first twelve selected candidates have unchanged paid profiles in both orientations and add a scalar operation. RESULT.json retains every observed field. Twenty-one self-controls and committed-input preservation pass. Two author metadata spellings were rejected before scientific replay and are corrected to the schema's negative-result value; no mathematical check or source was changed.","author":"Chris R / Clear1nsight","ai_assistance":"Substantial OpenAI assistance; one session with separate workstreams, not independent human review or separately launched agents.","overlap":{"nearby_prs":[4085,4121,4359,4470,4478,4483,4504,4529,4532,4533],"fork_ceiling_companion":18,"method":"Targeted live searches and bounded Discussion reads, not exhaustive pagination or novelty proof.","baseline_helper_run":false,"canonical_refresh":"2026-10-22T04:44:00Z"},"open_questions":[{"question":"Which explicit change of scalar alphabet, adjacency or source/consumer contract can escape this bounded negative result?","why_it_matters":"Another seed on the same twelve fixed windows does not create a mechanism change.","first_step":"Name one changed obligation, derive its fully charged optimistic moment and test one discriminating source window before expansion.","blocked_by":"No positive construction or physical/native/consumer admission is supplied here."}]} diff --git a/research/receiver-window-transfer/VALIDATION.md b/research/receiver-window-transfer/VALIDATION.md new file mode 100644 index 0000000000..e418216979 --- /dev/null +++ b/research/receiver-window-transfer/VALIDATION.md @@ -0,0 +1,11 @@ +# Bounded negative result and executed evidence + +The source-bound replay passed in [workflow 39723520394](https://github.com/Clear1nsight/integer-mult-bounds/actions/runs/39723520394), job 119643037416, at head 99f5d3d855a7ad6204072ff021e3621d7c6fa72c. GitHub tested merge ref 67aec4683f28fb3fb0343b849297c16ecad0a5bc against isolated base 59d57c8c662e62b9a03f5ebd6ba52ebdd19ed20b. Ubuntu 24.04.5, CPython 3.12.15, standard library only. Scientific execution completed at 2026-10-22T04:43:13Z. Onboarding, metadata/source authentication, registered replay, optimised controls and unchanged committed inputs passed. + +Among 128 eligible adjacent source pairs, the explicitly bounded first twelve were tested. All twelve selected three-shear replacements reproduce the old local paid histogram exactly, and the whole-word invoice in both orientations remains {1:2237,2:388,3:494,4:147,5:36,8:8}. All 408 productive helper endpoints remain fixed. The replacement adds one scalar operation and establishes no paid-profile saving. It is not offered as an improvement. No conclusion about the other 116 windows, arbitrary scalar words or a different frame contract follows. + +RESULT.json retains every field of the observed scientific output, transcribed from its JSON log. Ordinary verification compares fresh output against it. Some independently bounded equal moments have an interval of one or two units around zero at scale 10^18; exact histogram equality establishes zero for these selected witnesses. The companion four-shear ceiling in fork PR18 separately proves a stronger no-headroom result for the same twelve fixed windows and alphabet. It is not used as a premise of this replay. + +The first hosted attempt failed before scientific execution because TASK.json used the unsupported outcome in_progress. Correcting it to partial fixed that metadata error without changing inputs or mathematical checks. The completed bounded negative finding is now recorded as negative. No acceptance assertion was removed. + +The receipt also records 21 algebraic/geometric controls; local normal and optimised runs passed. No new physical lowering, full arbitrary-input endpoint, compiler/outer transfer, selected cold replay or optional source-history preflight was run. The scoped search outcome and all physical limitations remain separate. diff --git a/research/receiver-window-transfer/VERIFY.json b/research/receiver-window-transfer/VERIFY.json new file mode 100644 index 0000000000..658c7d4eb0 --- /dev/null +++ b/research/receiver-window-transfer/VERIFY.json @@ -0,0 +1 @@ +{"schema_version":1,"status":"ready","python":"3.12","requirements":[],"inputs":["research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-CANONICAL.json.gz","research/kappa-rebuild/complex/full-identity-certificates/THREE-base-FULL-IDENTITY-NATIVE.json.gz","research/fresh-helper-boundary/native.py","research/fresh-helper-boundary/CHANGES.json","research/missing-join-frame/PATCH.json","research/joint-helper-lattice/PATCH.json","research/joint-helper-lattice/native_joint.py"],"commands":[{"argv":["{python}","-I","-B","{package}/replay.py"],"timeout_seconds":300,"checks":"Fresh execution of the unchanged authenticated scientific engine, all source/frame/moment checks, complete canonical JSON receipt comparison and six discriminating comparison controls."},{"argv":["{python}","-I","-O","-B","{package}/verify.py","--self-test"],"timeout_seconds":60,"checks":"Original twenty-one mathematical controls under optimised Python."},{"argv":["{python}","-I","-O","-B","{package}/replay.py","--self-test"],"timeout_seconds":60,"checks":"Canonical receipt comparison rejects changed counts, flags, numeric types, order, missing and extra fields with assertions disabled."}]} diff --git a/research/receiver-window-transfer/replay.py b/research/receiver-window-transfer/replay.py new file mode 100644 index 0000000000..5b1aa1dc3a --- /dev/null +++ b/research/receiver-window-transfer/replay.py @@ -0,0 +1,49 @@ +#!/usr/bin/env python3 +"""Canonical JSON replay of the unchanged scientific engine. + +JSON object keys are strings; rank keys in fresh Python histograms are integers. +Every encoded field and value remains checked. Apache-2.0; OpenAI assistance. +""" +from pathlib import Path +import argparse +import hashlib +import importlib.util +import json + +HERE=Path(__file__).resolve().parent +ENGINE='d91cfcffe9963b9df42e3874f09b29627edd2565' + +def canonical(value): + encoded=json.dumps(value,allow_nan=False) + return json.dumps(json.loads(encoded),sort_keys=True,separators=(',',':'),allow_nan=False) + +def compare(expected,actual): + if canonical(expected)!=canonical(actual): + raise ValueError('Complete scientific receipt mismatch') + +def controls(): + actual={'paid':{1:2},'flag':True,'ordered':[1,2]} + expected=json.loads(json.dumps(actual));compare(expected,actual) + bads=[{**actual,'paid':{1:3}},{**actual,'flag':1},{**actual,'paid':{1:2.0}}, + {**actual,'ordered':[2,1]},{**actual,'extra':0},{'paid':{1:2},'flag':True}] + for bad in bads: + try:compare(expected,bad) + except ValueError:pass + else:raise ValueError('Receipt mutation accepted') + return 6 + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--self-test',action='store_true');args=ap.parse_args() + n=controls() + if not args.self_test: + path=HERE/'verify.py';raw=path.read_bytes() + digest=hashlib.sha1(b'blob '+str(len(raw)).encode()+b'\0'+raw).hexdigest() + if path.is_symlink() or digest!=ENGINE:raise ValueError('Scientific engine changed') + spec=importlib.util.spec_from_file_location('receiver_scientific_engine',path) + engine=importlib.util.module_from_spec(spec);spec.loader.exec_module(engine) + fresh=engine.run() + compare(json.loads((HERE/'RESULT.json').read_bytes()),fresh) + print(json.dumps(fresh,indent=2,sort_keys=True)) + print('PASS_CANONICAL_RECEIPT_CONTROLS rejected='+str(n)) + +if __name__=='__main__':main() diff --git a/research/receiver-window-transfer/verify.py b/research/receiver-window-transfer/verify.py new file mode 100644 index 0000000000..d91cfcffe9 --- /dev/null +++ b/research/receiver-window-transfer/verify.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python3 +"""Bounded receiver-word transfer on PR4470. Apache-2.0; OpenAI assistance. + +The pinned constructor emits the object under test. No predecessor proof engine +is imported by this checker. Physical lowering of a successful new frame path is +an explicit further obligation, not a consequence of this local search. +""" +from __future__ import annotations +from collections import Counter +from copy import deepcopy +from fractions import Fraction as Q +from functools import lru_cache +from pathlib import Path +import argparse +import hashlib +import json +import subprocess +import sys +import tempfile + +HERE = Path(__file__).resolve().parent +ROOT = HERE.parents[1] +SCALE = 10**18 +C = Q('0.00302015') +BASE_PAID = {1:2237,2:388,3:494,4:147,5:36,8:8} + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def authenticate(): + rows=json.loads((HERE/'SOURCES.json').read_bytes())['files'] + for row in rows: + if row['usage']!='input': + continue + path=ROOT/row['path'] + need(not path.is_symlink(), 'Source alias') + data=path.read_bytes() + need(hashlib.sha256(data).hexdigest()==row['sha256'],'Source SHA256 '+row['path']) + need(hashlib.sha1(b'blob '+str(len(data)).encode()+b'\0'+data).hexdigest()==row['git_blob'], + 'Source blob '+row['path']) + + +def emit(): + authenticate() + with tempfile.TemporaryDirectory(prefix='receiver-source-') as cache: + code="import sys,json;sys.path.insert(0,sys.argv[1]);import native_joint; c,p,b,old,ch=native_joint.construct();print(json.dumps({'canonical':c,'programs':p}))" + run=subprocess.run([sys.executable,'-I','-B','-X','pycache_prefix='+cache,'-c',code, + str(ROOT/'research/joint-helper-lattice')],check=True, + stdout=subprocess.PIPE,stderr=subprocess.PIPE,timeout=60) + return json.loads(run.stdout) + + +@lru_cache(None) +def space(basis): + values={0} + for x in basis: + need(type(x) is int and 00 and len(s)&(len(s)-1)==0,'Subspace cardinality') + return len(s).bit_length()-1 + + +def joined(a,b): + return frozenset(x^y for x in a for y in b) + + +def flags(starts, ends): + """All realisable dimension triples for this fixed three-shear word.""" + a,b,x=starts; ae,be,xe=ends + l1=joined(a,b); l2=joined(l1,x); v3=ae&be; v2=v3&xe + if not l2<=v2: + return [] + path=extend([],l1); path=extend(path,l2); path=extend(path,v2); path=extend(path,v3) + out=[] + for i in range(rank(l1),rank(v2)+1): + for j in range(max(i,rank(l2)),rank(v2)+1): + for k in range(j,rank(v3)+1): + out.append([path[:i],path[:j],path[:k]]) + return out + + +def matrix(word): + out=[[int(i==j) for j in range(3)] for i in range(3)] + for d,s,c in word: + need(d!=s and c in (-1,1),'Unit shear domain') + out[d]=[u+c*v for u,v in zip(out[d],out[s])] + return out + + +def dual(word): + return [(s,d,-c) for d,s,c in word] + + +def histogram(starts, ends, word, frame_bases): + current=list(starts); counts=Counter() + for (d,s,_),base in zip(word,frame_bases): + frame=space(tuple(base)) + for role in (d,s): + need(current[role]<=frame,'Illegal local forward frame') + gap=rank(frame)-rank(current[role]) + if gap: counts[gap]+=1 + current[role]=frame + for role,end in enumerate(ends): + need(current[role]<=end,'Unpaid or illegal restoration') + gap=rank(end)-rank(current[role]) + if gap: counts[gap]+=1 + return counts + + +def power_bounds(): + out={0:(0,0),1:(SCALE,SCALE)} + for r in range(2,10): + x=Q(r-1,r+1); term=x; lo=Q(0) + for k in range(160): + lo+=2*term/(2*k+1); term*=x*x + hi=lo+2*term/(321*(1-x*x)) + t=1-C + zlo=Q((lo*t*10**36).__floor__(),10**36) + zhi=Q((hi*t*10**36).__ceil__(),10**36) + def exp_bounds(z): + term=Q(1); total=Q(1) + for k in range(1,81): + term*=z/k; total+=term + first=term*z/81 + return total,total+first/(1-z/82) + a=exp_bounds(zlo)[0]; b=exp_bounds(zhi)[1] + out[r]=((a*SCALE).__floor__(),(b*SCALE).__ceil__()) + return out + + +def cost(profile, bounds): + return (sum(n*bounds[r][0] for r,n in profile.items()), + sum(n*bounds[r][1] for r,n in profile.items())) + + +def operands(e): + if e[0]=='scalar': + g=e[1] + return g[1:3] if g[0] in ('add','copy') else g[1:2] + return [] + + +def consume(state,e): + if e[0]=='scalar': + for who in operands(e): + if who[0]=='L': state[who[1]]=e[2] + elif e[0]=='warp': + state[e[1][1]]=e[4] + + +def full_bill(word,c): + fs=[space(tuple(b)) for b in c['frames']]; state=list(c['start']); bill=Counter() + def move(r,f): + need(fs[state[r]]<=fs[f],'Full chronological nesting') + gap=rank(fs[f])-rank(fs[state[r]]) + if gap: bill[gap]+=1 + state[r]=f + for e in word: + if e[0]=='scalar': + for who in operands(e): + if who[0]=='L':move(who[1],e[2]) + elif e[0]=='warp':move(e[1][1],e[3]);state[e[1][1]]=e[4] + elif e[0]=='center':bill[e[4]]+=1 + for r,f in enumerate(c['final']):move(r,f) + return bill + + +def windows(word,c): + state=list(c['start']); phase=None; ordinal=Counter(); result=[] + for i,e in enumerate(word): + if e[0]=='phase':phase=e[1] + key=(phase,ordinal[phase]) + if e[0]=='scalar' and all(w[0]=='L' for w in operands(e)): + ordinal[phase]+=1 + if phase in ('B','cleanup_tail') and i+1newcost[1]) + bills=[] + for d in ('forward','backward'): + nc=deepcopy(c); nw=deepcopy(words[d]); i=w['index']; roles=w['roles'] + expected_old=old if d=='forward' else dual(old) + for ev,op in zip(nw[i:i+2],expected_old): + need(ev[0]=='scalar' and ev[1]==['add',['L',roles[op[0]]],['L',roles[op[1]]],op[2],1], + 'Both-orientation source position binding') + events=[] + for op,frame in zip(replacement if d=='forward' else dual(replacement),frames): + label=next((j for j,b in enumerate(nc['frames']) if space(tuple(b))==space(tuple(frame))),None) + if label is None:label=len(nc['frames']);nc['frames'].append(frame) + events.append(['scalar',['add',['L',roles[op[0]]],['L',roles[op[1]]],op[2],1],label]) + nw[i:i+2]=events; actual=full_bill(nw,nc) + predicted=Counter(BASE_PAID);predicted.subtract(oldp);predicted.update(newp) + need(+predicted==actual,'Complete invoice versus local delta') + bills.append(dict(sorted(actual.items()))) + need(bills[0]==bills[1],'Dual bill mismatch') + row['complete_paid']=bills[0] + else:row['strictly_improves']=False;row['obstruction']='required common span does not fit exits' + results.append(row) + return dict(schema='receiver-window-transfer/v1',status='PASS_BOUNDED_RECEIVER_TRANSFER', + source_head='b9a13c1673e0e9697de410de16e8bbf3207a7363',self_tests=tests, + total_eligible_adjacent_pairs=len(candidates),tested_windows=len(chosen), + certified_positive_windows=sum(r['strictly_improves'] for r in results), + scale=SCALE,tested_saving=str(C),unchanged_productive_helpers=408, + windows=results,new_kappa=False, + not_covered=['global rewrite optimum','physical lowering of any new path','complete native endpoint','compiler and outer transfer']) + + +def main(): + ap=argparse.ArgumentParser();ap.add_argument('--self-test',action='store_true');ap.add_argument('--write',action='store_true') + args=ap.parse_args() + result={'self_tests':self_tests()} if args.self_test else run() + text=json.dumps(result,indent=2,sort_keys=True)+'\n' + if args.write:(HERE/'RESULT.json').write_text(text) + elif not args.self_test and (HERE/'RESULT.json').exists():need(json.loads((HERE/'RESULT.json').read_bytes())==result,'Stored result differs') + print(text,end='') + +if __name__=='__main__':main() diff --git a/research/test-suite-locale-reads/SOURCES.json b/research/test-suite-locale-reads/SOURCES.json index be5f08378a..b3ee94816b 100644 --- a/research/test-suite-locale-reads/SOURCES.json +++ b/research/test-suite-locale-reads/SOURCES.json @@ -16,7 +16,7 @@ }, { "path": "docs/research/current-status.md", - "usage": "input", + "usage": "provenance", "git_blob": "d73b4ff9da41f044e793422db4318be17e234a6c", "sha256": "adb54af005eb11edaf84d782fe729338680ff908f6d4fbf39ba1062d2e7d8a77" },