diff --git a/research/c-verification-feasibility/CODE-SOURCES.json b/research/c-verification-feasibility/CODE-SOURCES.json new file mode 100644 index 0000000000..edd43b50b2 --- /dev/null +++ b/research/c-verification-feasibility/CODE-SOURCES.json @@ -0,0 +1,21 @@ +{ + "drivers/baseline_full.py": "470096a40078958bd4e32f99e312a44672613c2d93a76c9cbfd8d8fb6474471f", + "drivers/candidate_full.py": "e0978a90c63e5294a1ed04863c3966016b64a62a561e914d50821b08846ace72", + "full_B.py": "805d68c55f6565da489a90504e5488ce1636ebdb7be0c7b7e730227a5dad54de", + "full_C.py": "2800f8785d719152a99c70a561ce54ab7b1a5f6482fb40d50766aa93beafcf5d", + "guard.py": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "integer/finite_probe.py": "1b804c882833e2628d843bade00dfcbb282e0f53f6712e2d978af9b5c1ce8378", + "integer/integer_binding.py": "dd3e4387dfb8882a524d938d866ed7ae04cd5ac938bbbcbec4eefd15f4bdcc9d", + "integer/integer_format.c": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d", + "integer/micro_probe.py": "f1d39f830987fcabe8ca5453ddbb1eca1df10a9670a95db510efbe5f21dd76aa", + "integer/native_loader.py": "2592bef50e5338ad562d9a69bca1183ef0d88a4d34bdc497af4452304dca25c3", + "owned_integer/diagnostic.py": "4efeb040398c6d5204d552b6211e5a99aa3a3cb156ca422f05fbf0edd58e817b", + "owned_screen.py": "93fe1f8039e3a3442f561eb5463182d558d459d7335c882b009256780539419e", + "portable.py": "77f8910fb9ba1ed8dcc23bc574e2998105b86818f7391b48efa77eda6ea3d859", + "rational/arithmetic_binding.py": "db9c2778be538e1a7ae975b7e2108e52da53600a268c76d5e27b9965f0bb622a", + "rational/bulk_backend.py": "9b440bd3d921bb06ff5035cb8ae85053f3e0b6880b6ec37d364b55da012449ca", + "rational/finite_probe.py": "362bcd2bc967ed223ed303835048d1c51697f0293cfc83cffd4a9e02e2efcccd", + "rational/native_bulk.c": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae", + "replay.py": "ec80c3da976fe23987ce7da568185ee0d76a28f7c6ac38c8a5cf969c3cf6603c", + "verify.py": "6c25ffb97cbe940f8414d97c668a0b0d2d759e0d37d46283316e577b7bb38372" +} diff --git a/research/c-verification-feasibility/README.md b/research/c-verification-feasibility/README.md new file mode 100644 index 0000000000..6834e75c69 --- /dev/null +++ b/research/c-verification-feasibility/README.md @@ -0,0 +1,205 @@ +# C verification feasibility: rational batching, integer loops and witness bytes + +This source-pinned engineering screen retains useful exact C prototypes and a +negative complete-performance result. **It does not establish a further 15% +improvement or any qualified positive increment over PR5864.** All six retained +frozen-qualifier scientific receipts agree, but the integer/format candidate +fails both the 15% target and the declared conservative noise gate. The rational +candidate stops at an adverse independent-oracle cost screen. + +This evaluates priorities 1, 2 and 4 of the donor's four-opportunity review. +Exact matrix/GF(2) kernels are a separate workload and are not credited toward +the PR5864 target. No kappa, mathematical construction, physical-cost, +selected-frontier, merge or maintainer-acceptance claim is made. + +## Fixed question and sources + +Can further C exact-arithmetic or serialization work accelerate the complete +frozen PR5864 qualifier while preserving its inputs, independent numerical +contracts, output types, full signed witnesses, hashes and coverage? + +Canonical main is `de5ec2e7a6074068452f45b1a191b5c72832df4a`. The official +163-file PR5864 export is pinned at +`3f15c943e4ad6479f03e674c80fff1269a16ccfe`, SHA-256 +`7b142567acacac5182045bf8daa8780e916661c2cf343dbf81b13c88ead85d64`. +The immutable input retains the complete attribution and predecessor chain. +The original archives, packages and mathematical sources are unchanged. + +Nearest predecessors are [PR5848](https://github.com/CrocSwap/integer-mult-bounds/pull/5848), +[PR5852](https://github.com/CrocSwap/integer-mult-bounds/pull/5852), +[PR5853](https://github.com/CrocSwap/integer-mult-bounds/pull/5853), +[PR5864](https://github.com/CrocSwap/integer-mult-bounds/pull/5864) and the scoped +negative score-dispatch [PR5875](https://github.com/CrocSwap/integer-mult-bounds/pull/5875). +The visible open Fraction PR search and active discussion search are bounded +overlap checks, not exhaustive novelty evidence. + +## Integer loops and canonical formatting: exact outputs, failed performance gate + +The candidate changes the integer `Engine` implementation: checked C batches +sparse additions, signed score updates, scaling, reverse updates and canonical +dyadic byte formatting using arbitrary-size Python integers. The PR5864 +Fraction numerical operations, contribution cache and native bookkeeping remain +unchanged. They provide the same separately executed comparison path, with +shared CPython big-integer primitives acknowledged. This does not claim wholly +independent arithmetic implementations. + +All original timed finite/native/Observation checks and the 120 independent +fixtures remain active. All actual ideal metadata, local weights, error traces, +signed witness rows, reverse comparisons, hashes and the frozen scientific +receipt remain equal on 25,984 events and 799 coordinates. Added finite checks +cover eight row cases, six ordered prefixes, 8,192-bit values, signed +cancellation, complete byte ordering, aliases and 27 labeled checks (six positive +groups and 21 rejection paths). Normal and optimized finite modes pass. + +Each candidate timing pays the added C compile/link/load and every added finite +check. GNU time includes compiler-child CPU. The fixed order is B,C,C,B,B,C; +every sample is retained in [the raw runs](evidence/runs/). + +| Complete frozen qualifier | Median wall seconds | Median CPU seconds | +| --- | ---: | ---: | +| PR5864 baseline | 34.661785392 | 34.47 | +| Integer/format candidate | 32.418777812 | 32.33 | +| Observed fractional reduction | 6.4711% | 6.2083% | +| Maximum within-arm repeat spread | 2.713637238 | 2.35 | +| Absolute median saving | 2.243007580 | 2.14 | + +The observed median savings are smaller than their repeat spreads. The +predeclared final gate requires an absolute saving greater than 0.50 seconds +and either arm's observed spread in both wall and CPU, plus the 15% target. +Both noise gates and the target fail. These observations are not a qualified +speedup. No sample was discarded and no timing was rerolled. See +[INTEGER-COMPLETE-GATE.json](evidence/INTEGER-COMPLETE-GATE.json). + +The timed scope matches PR5864's `benchmark.py` / `full_C.py` frozen qualifier. +As in that predecessor, four unchanged source-custody controls are separate +from both timed arms. The registered baseline command below freshly runs them +with all predecessor finite/native checks. The timings are not the larger +portable `replay_driver.py` total. A new full optimized or readonly complete +performance qualification was not pursued after the failed gate. + +The internal `add_row` helper now returns a fresh dictionary. The compatibility +promise is the checked `Engine` workload contract; arbitrary external callers +expecting mutation/`None` are not covered. Historical binder metadata fields +such as `source_only_handoff` describe the worker's handoff, while the parent +run receipts state what was actually executed. + +## Broader integer ownership: one rejection-only cost diagnostic + +Before constructing another integer state owner, one source-bound diagnostic +ran the original PR5864 qualifier without replacing arithmetic. A facade timed +4 original ideal, 121 error-trace and 121 reverse calls, accounting for their +disjoint union and retaining every scientific check and exception. No timing +sample was rerolled or added to the BCCBBC comparison. + +The observed eligible union was 4.855752 wall / 4.853204 CPU seconds, below the +fixed 15% thresholds of 5.199268 / 5.170500 seconds from the chosen baseline +medians, even granting zero replacement and validation costs. The diagnostic's +whole command was faster than those earlier baseline samples; these are scoped +observations under host variation, not a machine-independent upper bound or +universal obstruction. Relative to its own entire command the free union is +only about 15.2%, before retained computation and added controls. No fully +priced construction is funded by this screen. + +[All 246 boundary records](evidence/INTEGER-OWNED-BOUNDARY-SCREEN.json), the +unchanged [diagnostic source](owned_integer/diagnostic.py), and the +[complete ownership-cost review](evidence/astra-next-boundary-cost-screen.md) +remain visible. Optional guarded arm `D` reproduces this diagnostic; it is not +a performance sample or permission to repeat a failed screen automatically. + +## Rational batching: independent-oracle bill stops construction + +The prototype retains the existing contribution callback/cache and batches +three score accumulators as general normalized rational pairs backed by Python +integers. It materializes exact built-in Fractions at each event boundary and +supports odd denominators. Exact Fraction output types do not make its changed +arithmetic an untouched literal Python Fraction oracle. + +The bounded probe passed 178 literal/predecessor/candidate comparisons and 19 +added controls. The final binder also rejects destructor and unknown-source drift; its exact final +bytes pass finite normal and optimized replay. The earlier binder and every +declared BCCB micro observation are retained. The micro excludes cold build +and has no complete-performance or source-independent oracle admission. + +Under the required literal-oracle contract, a complete candidate must pay for +the untouched literal Fraction path, the unchanged integer path, and the new +rational path with separate mutable state. Historical, same-audit observations +retained inside the official export give 20.534678 wall / 20.523067 CPU seconds +for the literal trace and 11.886980 wall / 11.883083 CPU seconds for the entire +replaceable native trace including cold build. Even granting zero cost to the +new rational kernel, conversions, build and all new checks, that replacement +adds about 8.65 wall / 8.64 CPU seconds in this historical screen. + +This defeats credible headroom for this exact restoration design. It is a +source-pinned engineering stop, not a fresh complete benchmark, universal +runtime lower bound, or impossibility result. No new actual-word or complete +rational run was performed. The source-qualified packet interface does not +promise arbitrary callback observational equivalence or allocator-level OOM +partial-state equivalence. See [the detailed report](evidence/astra-rational-design.md) +for the complete added validation bill and unresolved construction obligations. + +## Fresh verification and reproduction + +Tested on Linux x86-64, CPython 3.12.3 and GCC 13.3. Existing `cc` and Python +development headers are required. No dependency installation, compiled binary, +new mathematical search or shared mutable answer cache is included. + +```sh +python3.12 -B scripts/research_package.py --package research/c-verification-feasibility +``` + +The registered commands freshly authenticate the full export and exact prototype +code, run the original custody/finite/native verifier, and run integer and +rational finite checks in normal and optimized modes. They do not execute the +actual word or admit performance. Source export and readonly Git-free finite +verification are independent packaging checks. + +For a separately authorized complete correctness replay, the guarded optional +entry point takes a new external evidence directory and an arm: + +```sh +python3.12 -B research/c-verification-feasibility/replay.py C /tmp/c-feasibility-new-evidence +``` + +This reconstructs the exact scientific source layout from the archive and adds +portable extraction overhead. Its fresh times are separate from the retained +six-process screen. It refuses evidence reuse and retains the 180-second / +1-GiB sampled process-group RSS / serial / zero-automatic-retry policy. Do not +reroll the failed retained timing round. + +## Hosted runtime correction + +The first hosted replay rejected CPython 3.12.15 at the strict full-file +Fraction source hash, after the baseline and integer normal/optimized checks +passed. The failure is retained. An explicit second reviewed source hash admits +the official 3.12.15 file; its only source difference is in `Fraction.__pow__`, +outside the bypassed score operations. Exact live operation, closure, defaults, +MRO and descriptor checks remain. Unknown source bytes reject even after the +expected-code cache is populated. This compatibility correction changes no +measured integer source, C kernel, timing sample or failed performance gate. +See [the retained correction](evidence/publication/CI-PORTABILITY-CORRECTION.json). + +## Credit + +Original mathematics, P104 source, integer replay, literal scalar and reverse +oracles: Ali Romman and all predecessor authors retained in the complete input +archive and its NOTICE. Earlier source-bound contribution-table, entry, +compact/slot and C-bookkeeping work is retained and credited through PR5852, +PR5853 and PR5864; PR5875 supplies the separate failed thin score-dispatch +screen. The inherited Ali Romman PR5761 three-file routing-test repair remains +credited and unchanged. Apache-2.0 notices remain in the archive and new source. + +Prepared by Chris R / Clear1nsight with substantial OpenAI Codex implementation +and user-requested GPT-6-astra xhigh static design/source review. Only the parent +ran numerical/compiler work, serially. These are assisted engineering checks, +without independent human or proof-kernel acceptance. + +## Open next questions + +The requested further 15% PR5864 improvement remains unmet. A different exact +arithmetic ownership boundary would need a new source-pinned cost screen, +unchanged required independent oracle and full added verification bill before +construction. No further timing or construction is justified for these frozen +nominations in this round. The separate matrix/GF(2) opportunity must be priced +against its own complete verification scope; its savings cannot be added to +these percentages. [Structured questions](TASK.json) and both retained design +reports name the boundaries and smallest useful next steps. diff --git a/research/c-verification-feasibility/SOURCES.json b/research/c-verification-feasibility/SOURCES.json new file mode 100644 index 0000000000..9715496334 --- /dev/null +++ b/research/c-verification-feasibility/SOURCES.json @@ -0,0 +1,51 @@ +{ + "schema_version": 1, + "base_commit": "de5ec2e7a6074068452f45b1a191b5c72832df4a", + "files": [ + { + "path": "docs/research/agent-task-catalog.json", + "usage": "provenance", + "git_blob": "3404fbdd5e7529a0674eef26114b5071e4586cec", + "sha256": "ead6cdc9d0af6d58e8a49744d8ec8c7c15e13d2ba93c276c434bcf9b51b93a81" + }, + { + "path": "certificates/selected-result.json", + "usage": "provenance", + "git_blob": "581f8d87008354eb5b869f7ed9de1317ad837ce8", + "sha256": "2a0220e866417774606e0f991e41b9c1d26b1f43b97857238cf478dbc7d330b5" + }, + { + "path": "research/c-verification-feasibility/inputs/PR5864.tar", + "usage": "input", + "git_blob": "bb9fc302168df0bf66cf43d08bce70544eeffc4e", + "sha256": "7b142567acacac5182045bf8daa8780e916661c2cf343dbf81b13c88ead85d64", + "pin": "head:ccb92b752ab31df4220780a580cc14d9e86ffeca:research/c-verification-feasibility/inputs/PR5864.tar" + } + ], + "external_origin": { + "repository": "CrocSwap/integer-mult-bounds", + "pr": 5864, + "head": "3f15c943e4ad6479f03e674c80fff1269a16ccfe", + "official_export_sha256": "7b142567acacac5182045bf8daa8780e916661c2cf343dbf81b13c88ead85d64", + "complete_files": 163 + }, + "predecessors": [ + 5848, + 5852, + 5853, + 5864, + 5875 + ], + "scope": "No new kappa, construction, selected-frontier or qualified performance claim.", + "runtime_fraction_source_pins": [ + { + "sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", + "origin": "local Linux CPython3.12.3 stdlib, unchanged timed environment" + }, + { + "sha256": "d52d1ab9d5be26924e4914a5e40069c992bbfa68f773694c2e5ee8452d0766a0", + "origin": "https://raw.githubusercontent.com/python/cpython/v3.12.15/Lib/fractions.py", + "scope": "explicit compatibility pin; all live operation shape guards retained" + } + ] +} diff --git a/research/c-verification-feasibility/TASK.json b/research/c-verification-feasibility/TASK.json new file mode 100644 index 0000000000..4baeb84156 --- /dev/null +++ b/research/c-verification-feasibility/TASK.json @@ -0,0 +1,60 @@ +{ + "schema_version": 1, + "task_id": "replay-runtime", + "original_card": { + "id": "replay-runtime", + "question": "Can one measured replay bottleneck be sped up without dropping coverage?", + "starting_points": [ + "scripts/run_isolated_tests.py", + "scripts/verify_replay_coverage.py", + "certificates/selected-result.json" + ], + "methods": [ + "Profile one isolated replay and optimize the measured bottleneck.", + "Design source-bound reuse with explicit dependency invalidation and negative controls." + ], + "acceptance_gate": "Report before/after wall time on the same fixture, retained checks and invalidation behavior.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_selected_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Resolve the current selected review, separate complex/ordinary BIT/admitted BIT/outer budgets, and compare the card against live handoffs before starting. Historical ceilings require exact source/model equivalence.", + "scope": "Source-binding orientation only; not a scientific replay or all-size proof. Materialize selected inputs if this checkout is sparse." + }, + "first_experiment": "Measure one unchanged fixture, preserve check coverage, and test one optimization with invalidation controls.", + "bottleneck_link": "Faster trustworthy replays increase review throughput and let mechanism candidates be checked sooner.", + "allowed_variations": [ + "Profile one stage or design one source-bound cache boundary." + ], + "scope_change_triggers": [ + "Skipping coverage or comparing different fixtures to claim speedup." + ], + "overlap_terms": [ + "replay runtime", + "cache invalidation", + "isolated tests" + ] + }, + "bottleneck_link": "Faster trustworthy replays increase review throughput and let mechanism candidates be checked sooner.", + "author": "Chris R / Clear1nsight", + "base_commit": "de5ec2e7a6074068452f45b1a191b5c72832df4a", + "scope_status": "refined", + "scope_change_reason": "User requested all four C verification opportunities and a minimum15% improvement. This scoped package retains rational oracle-cost rejection and integer/format frozen-qualifier negative performance screen; matrix verification is separate.", + "actual_scope": "PR5864/source-pinned-C-rational-integer-format-feasibility", + "stop_rule": "No timing rerolls after failed noise/15% gates; no full rational run after adverse oracle-cost screen. Keep all scoped negative evidence and attribution.", + "time_budget_minutes": 60, + "outcome": "completed", + "evidence": "README.md, evidence/INTEGER-COMPLETE-GATE.json, evidence/runs/, exact source manifests and independent Astra source reviews", + "ai_assistance": "Substantial OpenAI Codex implementation and user-requested GPT-6-astra xhigh static source/design review. One parent-owned serial numerical runner; no human or proof-kernel acceptance.", + "open_questions": [ + { + "question": "Could a different exact arithmetic ownership boundary fund a complete gain while retaining the required independent oracle?", + "why_it_matters": "The requested further15% frozen-qualifier target remains unmet by these mechanisms.", + "first_step": "Give a source-pinned static cost screen and complete validation bill before any new construction or timing round.", + "blocked_by": "Current rational oracle restoration is losing; integer/format samples failed the declared noise gate and15% target." + } + ] +} diff --git a/research/c-verification-feasibility/VALIDATION.json b/research/c-verification-feasibility/VALIDATION.json new file mode 100644 index 0000000000..05fdbb179a --- /dev/null +++ b/research/c-verification-feasibility/VALIDATION.json @@ -0,0 +1,34 @@ +{ + "status": "PASS_SCOPED_CORRECTNESS_NEGATIVE_PERFORMANCE_GATES", + "fresh_original_custody_controls": 4, + "fresh_original_complete_finite_comparisons": 964, + "fresh_original_inherited_controls": 73, + "fresh_original_native_controls": 45, + "new_integer_checks": 27, + "new_integer_ordered_prefixes": 6, + "new_integer_bigint_bits": 8192, + "new_rational_comparisons": 178, + "new_rational_controls": 19, + "extra_final_binder_destructor_control": 1, + "finite_normal_optimized": "PASS", + "complete_frozen_qualifier_six_scientific_receipts_equal": true, + "complete_frozen_qualifier_samples": 6, + "complete_frozen_qualifier_15_percent_gate": false, + "complete_frozen_qualifier_noise_wall_gate": false, + "complete_frozen_qualifier_noise_cpu_gate": false, + "qualified_speed_claim": false, + "new_rational_actual_word_or_complete_runs": 0, + "new_complete_optimized_or_readonly_replays": 0, + "readonly_gitfree_finite": "PASS_ALL_FIVE_COMMANDS_FOR_REVIEWED_RUNTIME_SOURCE_PAIRS", + "metadata_committed_bytes": "PASS_METADATA_PINS_97_FILES_BEFORE_PUBLICATION_METADATA_ADDITION", + "hosted_exact_head": "FIRST_HEAD_FAILED_SOURCE_COMPATIBILITY; CORRECTED_HEAD_REPLAY_REQUIRED", + "scope_notes": [ + "Four unchanged custody checks are separate from timed arms, matching frozen PR5864 benchmark.", + "Complete actual witness/ideal/weights outputs equal and all120 independent fixtures retained.", + "Prototype author also performed integer source review; independent human/proof-kernel acceptance unclaimed." + ], + "extra_unknown_source_rejection_control": 1, + "first_hosted_failure": "run40505352497 / ec0afa... rejected rational binding after baseline+integer normalO passed; retained diagnostic and reviewed compatibility correction", + "explicit_runtime_source_pairs_local": "PASS_NORMAL_AND_OPTIMIZED", + "owned_integer_rejection_diagnostic": "PASS_ALL246_BOUNDARIES_UNCHANGED_ARITHMETIC; observed4.855752wall/4.853204CPU belowfixed5.199268/5.170500thresholds; no construction" +} diff --git a/research/c-verification-feasibility/VERIFY.json b/research/c-verification-feasibility/VERIFY.json new file mode 100644 index 0000000000..279d71428d --- /dev/null +++ b/research/c-verification-feasibility/VERIFY.json @@ -0,0 +1,63 @@ +{ + "schema_version": 1, + "status": "ready", + "python": "3.12", + "requirements": [], + "inputs": [ + "research/c-verification-feasibility/inputs/PR5864.tar" + ], + "commands": [ + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "baseline" + ], + "timeout_seconds": 30, + "checks": "Fresh scoped baseline controls; existing compiler and CPython3.12 headers required; no install or full performance replay." + }, + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "integer" + ], + "timeout_seconds": 30, + "checks": "Fresh scoped integer controls; existing compiler and CPython3.12 headers required; no install or full performance replay." + }, + { + "argv": [ + "{python}", + "-B", + "-O", + "{package}/verify.py", + "integer" + ], + "timeout_seconds": 30, + "checks": "Fresh scoped integer controls; existing compiler and CPython3.12 headers required; no install or full performance replay." + }, + { + "argv": [ + "{python}", + "-B", + "{package}/verify.py", + "rational" + ], + "timeout_seconds": 30, + "checks": "Fresh scoped rational controls; existing compiler and CPython3.12 headers required; no install or full performance replay." + }, + { + "argv": [ + "{python}", + "-B", + "-O", + "{package}/verify.py", + "rational" + ], + "timeout_seconds": 30, + "checks": "Fresh scoped rational controls; existing compiler and CPython3.12 headers required; no install or full performance replay." + } + ] +} diff --git a/research/c-verification-feasibility/drivers/baseline_full.py b/research/c-verification-feasibility/drivers/baseline_full.py new file mode 100644 index 0000000000..413320010c --- /dev/null +++ b/research/c-verification-feasibility/drivers/baseline_full.py @@ -0,0 +1,6 @@ +from pathlib import Path +import sys +root=Path(__file__).resolve().parents[2] +sys.path.insert(0,str(root/'baseline-public')) +from full import main +main(True) diff --git a/research/c-verification-feasibility/drivers/candidate_full.py b/research/c-verification-feasibility/drivers/candidate_full.py new file mode 100644 index 0000000000..189be60ccd --- /dev/null +++ b/research/c-verification-feasibility/drivers/candidate_full.py @@ -0,0 +1,74 @@ +from pathlib import Path +import sys +STAGE=Path(__file__).resolve().parent +ROUND=STAGE.parents[1] +sys.path.insert(0,str(STAGE)) +sys.path.insert(0,str(ROUND/'baseline-public')) +import native_loader,integer_binding +from finite_probe import run as _extra_finite +_NATIVE=native_loader.load('804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d') +_EXTRA=_extra_finite(_NATIVE) +_BINDINGS=[] +def _native_integer(path): + module,receipt=integer_binding.derive(path,_NATIVE,'82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a') + _BINDINGS.append(receipt) + return module +"""Complete frozen qualifier with one source-bound Fraction seam changed.""" +import importlib.util,inspect,json,sys +from pathlib import Path +from frozen import baseline,require + +ACTUAL_STATS=dict(calls=2579750,hits=2252966,misses=326784,evictions=310400,bypasses=0,resident=16384,capacity=16384) +OUTPUT='954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9' + +def main(native=False): + if native: + import finite + finite.main() + # The inherited finite harness imports its own sealed temporary source. + # Remove only expired, owned temporary modules before the fresh qualifier. + for name in ('source','observe'): + value=sys.modules.get(name);file=getattr(value,'__file__','') + if file.startswith('/tmp/precision-linux-source-') and not Path(file).exists():del sys.modules[name] + with baseline() as package: + sys.path.insert(0,str(package)) + spec=importlib.util.spec_from_file_location('native_complete_frozen_entry',package/'candidate.py') + entry=importlib.util.module_from_spec(spec);spec.loader.exec_module(entry) + if not native: + entry.main();return + import fraction_table,native_backend + captures=[] + def native_trace(reference,expected_word): + trace=fraction_table.derive(reference) + def call(word,weights,rounded): + result=trace(word,weights,rounded) + if len(word['program'])==len(expected_word['program']): + require(trace.compacted_selected() is True,'actual native route selected') + require(trace.statistics()==ACTUAL_STATS,'all actual native counters') + require(reference.digest(result)==OUTPUT,'complete actual native output digest') + captures.append(dict(statistics=trace.statistics(),output_sha256=OUTPUT,tokens=trace.token_count())) + return result + return call + raw=(package/'candidate.py').read_text() + seam=' value = Observation(value, reference.digest, word)\n' + require(raw.count(seam)==1,'one authenticated actual Fraction seam') + changed=raw.replace(seam,' value.error_trace = _native_trace(value, word)\n'+seam) + integer_seam=" integer = v.load('integer_backend', package/'integer.py')\n" + require(changed.count(integer_seam)==1,'one authenticated integer candidate seam') + changed=changed.replace(integer_seam," integer = _native_integer(package/'integer.py')\n") + namespace=dict(entry.__dict__);namespace['_native_trace']=native_trace + namespace['_native_integer']=_native_integer + exec(compile(changed,str(package/'candidate.py'),'exec'),namespace) + qualify=namespace['qualify'] + def qualified(): + result=qualify() + require(len(captures)==1,'one complete actual native observation') + print(json.dumps(dict(status='PASS_COMPLETE_NATIVE_COVERAGE',actual=captures[0],build=native_backend.receipt(),native_finite_included=True,compiler_children_charged=True,integer_backend_changed=True,baseline_fraction_arithmetic_unchanged=True),sort_keys=True)) + return result + namespace['qualify']=qualified + namespace['main']() + + +main(True) +require(len(_BINDINGS)==1,'one authenticated changed integer backend') +print(json.dumps(dict(status='PASS_COMPLETE_INTEGER_FORMAT_CANDIDATE',added_finite=_EXTRA,native_integer_build=native_loader.receipt(),source_binding=_BINDINGS[0],fraction_backend='unchanged PR5864 Python Fraction arithmetic and native bookkeeping',integer_backend_changed=True),sort_keys=True)) diff --git a/research/c-verification-feasibility/evidence/BASELINE-IDENTITY.json b/research/c-verification-feasibility/evidence/BASELINE-IDENTITY.json new file mode 100644 index 0000000000..3e6a3b9b7f --- /dev/null +++ b/research/c-verification-feasibility/evidence/BASELINE-IDENTITY.json @@ -0,0 +1,15 @@ +{ + "official_export_head": "3f15c943e4ad6479f03e674c80fff1269a16ccfe", + "official_archive_sha256": "7b142567acacac5182045bf8daa8780e916661c2cf343dbf81b13c88ead85d64", + "same_bytes_count": 157, + "differing_bytes": [ + "VALIDATION.json" + ], + "missing_from_sealed": [ + "evidence/SEALED-RESULT.json", + "evidence/portable/runs/complete-native/receipt.json", + "evidence/portable/runs/complete-native/stderr.txt", + "evidence/portable/runs/complete-native/stdout.txt", + "evidence/portable/runs/complete-native/usage.json" + ] +} diff --git a/research/c-verification-feasibility/evidence/INTEGER-COMPLETE-GATE.json b/research/c-verification-feasibility/evidence/INTEGER-COMPLETE-GATE.json new file mode 100644 index 0000000000..7fe1e6b71a --- /dev/null +++ b/research/c-verification-feasibility/evidence/INTEGER-COMPLETE-GATE.json @@ -0,0 +1,84 @@ +{ + "status": "COMPLETE_FIXED_SIX_PROCESS_COMPARISON", + "order": [ + "B1", + "C1", + "C2", + "B2", + "B3", + "C3" + ], + "samples": { + "B": [ + { + "label": "B1", + "wall": 36.543337017006706, + "cpu": 35.769999999999996 + }, + { + "label": "B2", + "wall": 34.66178539200337, + "cpu": 34.47 + }, + { + "label": "B3", + "wall": 33.855156300996896, + "cpu": 33.589999999999996 + } + ], + "C": [ + { + "label": "C1", + "wall": 34.77152032399317, + "cpu": 34.32 + }, + { + "label": "C2", + "wall": 32.41877781198127, + "cpu": 32.33 + }, + { + "label": "C3", + "wall": 32.05788308600313, + "cpu": 31.97 + } + ] + }, + "medians": { + "B": { + "wall": 34.66178539200337, + "cpu": 34.47 + }, + "C": { + "wall": 32.41877781198127, + "cpu": 32.33 + } + }, + "spreads": { + "B": { + "wall": 2.6881807160098106, + "cpu": 2.1799999999999997 + }, + "C": { + "wall": 2.713637237990042, + "cpu": 2.3500000000000014 + } + }, + "absolute_saving_seconds": { + "wall": 2.2430075800220948, + "cpu": 2.1400000000000006 + }, + "fractional_saving": { + "wall": 0.06471125346415552, + "cpu": 0.06208297069915869 + }, + "all_scientific_receipts_equal": true, + "cold_compile_and_added_checks_included": true, + "target_15_percent_passed": false, + "declared_noise_gate": { + "wall": false, + "cpu": false + }, + "qualified_positive_increment": false, + "interpretation": "Record all samples; no reroll. Any failed 15% or noise gate remains failed." +} diff --git a/research/c-verification-feasibility/evidence/INTEGER-OWNED-BOUNDARY-SCREEN.json b/research/c-verification-feasibility/evidence/INTEGER-OWNED-BOUNDARY-SCREEN.json new file mode 100644 index 0000000000..bf7203db7e --- /dev/null +++ b/research/c-verification-feasibility/evidence/INTEGER-OWNED-BOUNDARY-SCREEN.json @@ -0,0 +1,2259 @@ +{ + "arithmetic_changed": false, + "complete_speed_claim": false, + "construction_admitted": false, + "counts": { + "error_trace": 121, + "ideal": 4, + "reverse_all": 121 + }, + "eligible_disjoint_union_seconds": { + "cpu": 4.853204029000002, + "wall": 4.855752163886791 + }, + "expected_actual_program_length": 25984, + "fixed_baseline_medians": { + "cpu": 34.47, + "wall": 34.66178539200337 + }, + "fixed_noise_spreads": { + "cpu": 2.3500000000000014, + "wall": 2.713637237990042 + }, + "fraction_path_changed": false, + "full_source_sha256": "ce6f15ca892db095d4b9f79b58cb3c199b18da341def761c577cc8651abc0cc0", + "instrumented_driver_sha256": "90b1eaba6b1a52c5d03a5cb19e6a294d30a5ca6192648eab0ae8af8cb54ec896", + "integer_source_sha256": "82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a", + "interpretation": "Even deleting every timed original integer call cannot fund the fixed gate.", + "metadata_and_output_costs_outside_eligible_union": true, + "necessary_zero_cost_threshold_seconds": { + "cpu": 5.1705, + "wall": 5.199267808800505 + }, + "nomination_rejected": true, + "outer_cpu_must_include_existing_compiler_children": true, + "own_process_cpu_only_inside_engine": true, + "performance_sample": false, + "records": [ + { + "classification": "actual_word", + "cpu_seconds": 0.544413971, + "exception": null, + "family": "ideal", + "outermost": true, + "program_length": 25984, + "wall_seconds": 0.5448808490182273 + }, + { + "classification": "actual_word", + "cpu_seconds": 2.915196117, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 25984, + "wall_seconds": 2.9158753560041077 + }, + { + "classification": "actual_word", + "cpu_seconds": 0.9534440719999999, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 25984, + "wall_seconds": 0.9542549859907012 + }, + { + "classification": "modified_word_control", + "cpu_seconds": 0.2735104669999995, + "exception": "ValueError", + "family": "ideal", + "outermost": true, + "program_length": 25985, + "wall_seconds": 0.273615426995093 + }, + { + "classification": "modified_word_control", + "cpu_seconds": 0.034584928000001014, + "exception": "ValueError", + "family": "ideal", + "outermost": true, + "program_length": 25984, + "wall_seconds": 0.03460642998106778 + }, + { + "classification": "modified_word_control", + "cpu_seconds": 0.03475777200000074, + "exception": "ValueError", + "family": "ideal", + "outermost": true, + "program_length": 25984, + "wall_seconds": 0.03476152999792248 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00014471599999765772, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 5, + "wall_seconds": 0.0001474670134484768 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 7.746800000063558e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 5, + "wall_seconds": 7.892798748798668e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00013194900000002008, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 6, + "wall_seconds": 0.00013346201740205288 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 9.150900000065576e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 6, + "wall_seconds": 0.00010158601799048483 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00015420100000085313, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 7, + "wall_seconds": 0.00015565802459605038 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 8.906100000061201e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 7, + "wall_seconds": 9.053500252775848e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018328199999828598, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 8, + "wall_seconds": 0.0001848780084401369 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 8.795500000147172e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 8, + "wall_seconds": 8.932701894082129e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00016741900000027954, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 9, + "wall_seconds": 0.0001688519841991365 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00011472100000275987, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 9, + "wall_seconds": 0.00011616700794547796 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00020741000000157328, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 10, + "wall_seconds": 0.00020901800598949194 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00012040800000079344, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 10, + "wall_seconds": 0.00012188797700218856 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001990519999992557, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 11, + "wall_seconds": 0.00020067801233381033 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00012447800000003895, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 11, + "wall_seconds": 0.00012583599891513586 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00027867400000047837, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 12, + "wall_seconds": 0.00028870298410765827 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00013027800000031675, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 12, + "wall_seconds": 0.00013167198630981147 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00024971900000281266, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 13, + "wall_seconds": 0.0002512560167815536 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001288959999996564, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 13, + "wall_seconds": 0.0001302319869864732 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002744400000018743, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 14, + "wall_seconds": 0.00027590198442339897 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00016587800000067432, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 14, + "wall_seconds": 0.00016731300274841487 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000302288999996847, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 15, + "wall_seconds": 0.00030385301215574145 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018540800000010904, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 15, + "wall_seconds": 0.00018674900638870895 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002557129999978258, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 16, + "wall_seconds": 0.00025730099878273904 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00016728000000298948, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 16, + "wall_seconds": 0.00016876199515536427 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002651769999992837, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 17, + "wall_seconds": 0.0002667150110937655 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00014855300000249372, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 17, + "wall_seconds": 0.0001498789933975786 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003102179999991961, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 18, + "wall_seconds": 0.00032151301275007427 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00019853699999927699, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 18, + "wall_seconds": 0.00020003700046800077 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003246320000016567, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 19, + "wall_seconds": 0.0003263560065533966 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00017023299999863184, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 19, + "wall_seconds": 0.00017164502060040832 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00032911200000285135, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 20, + "wall_seconds": 0.0003306700091343373 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018308599999983244, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 20, + "wall_seconds": 0.00018449698109179735 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00032679499999943573, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 21, + "wall_seconds": 0.00032843698863871396 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001944350000009365, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 21, + "wall_seconds": 0.00019584799883887172 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00033027599999968515, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 22, + "wall_seconds": 0.0003317139926366508 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018561000000261174, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 22, + "wall_seconds": 0.0001870489795692265 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003872020000024179, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 23, + "wall_seconds": 0.00038884198875166476 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00021157000000116, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 23, + "wall_seconds": 0.00021340098464861512 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003424239999993972, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 24, + "wall_seconds": 0.00034396699629724026 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00021890200000029836, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 24, + "wall_seconds": 0.00022039099712856114 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005009969999996144, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 25, + "wall_seconds": 0.0005025969876442105 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00026900599999990504, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 25, + "wall_seconds": 0.00027043800218962133 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00042107699999860415, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 26, + "wall_seconds": 0.00042271800339221954 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00022539500000107182, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 26, + "wall_seconds": 0.00022688298486173153 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003836340000020755, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 27, + "wall_seconds": 0.000385160994483158 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00021930300000150282, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 27, + "wall_seconds": 0.0002207560173701495 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004667900000008274, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 28, + "wall_seconds": 0.0004683589795604348 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00023473400000284528, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 28, + "wall_seconds": 0.00023622700246050954 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00042273999999764555, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 29, + "wall_seconds": 0.00042432500049471855 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002402650000021822, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 29, + "wall_seconds": 0.0002417630166746676 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004001630000018963, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 30, + "wall_seconds": 0.0004020819906145334 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00022455399999898873, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 30, + "wall_seconds": 0.0002259699977003038 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004824320000018645, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 31, + "wall_seconds": 0.0004841220215894282 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002588750000001028, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 31, + "wall_seconds": 0.0002603379834908992 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004832789999973386, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 32, + "wall_seconds": 0.0004848829994443804 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00027825199999753636, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 32, + "wall_seconds": 0.00027969799702987075 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00044181000000165227, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 33, + "wall_seconds": 0.00044336600694805384 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002375239999992118, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 33, + "wall_seconds": 0.00023893799516372383 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000515075000002696, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 34, + "wall_seconds": 0.0005209480004850775 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002741630000002715, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 34, + "wall_seconds": 0.0002756309986580163 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00047766499999823964, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 35, + "wall_seconds": 0.0004792070249095559 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002729370000018605, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 35, + "wall_seconds": 0.00027442400460131466 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000451267999999061, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 36, + "wall_seconds": 0.00045272998977452517 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002461969999991709, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 36, + "wall_seconds": 0.0002476199879311025 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000563020999997832, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 37, + "wall_seconds": 0.0005646209756378084 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00032334799999844677, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 37, + "wall_seconds": 0.0003247929853387177 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005040869999994868, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 38, + "wall_seconds": 0.0005056480003986508 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002870460000004016, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 38, + "wall_seconds": 0.00028857699362561107 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004982330000018464, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 39, + "wall_seconds": 0.0004997489741072059 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00028332700000177624, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 39, + "wall_seconds": 0.0002846480056177825 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005944079999977703, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 40, + "wall_seconds": 0.0005959420232102275 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003390080000009732, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 40, + "wall_seconds": 0.0003404789895284921 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005831050000004723, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 41, + "wall_seconds": 0.0005849339941050857 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003328210000006493, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 41, + "wall_seconds": 0.0003341799892950803 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005662019999981283, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 42, + "wall_seconds": 0.000567914015846327 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00032214100000160784, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 42, + "wall_seconds": 0.00032367100357078016 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006203029999980458, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 43, + "wall_seconds": 0.0006219460046850145 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003744539999992469, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 43, + "wall_seconds": 0.0003760499821510166 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005911219999994444, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 44, + "wall_seconds": 0.0005927000020164996 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000358529999999746, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 44, + "wall_seconds": 0.0003603899967856705 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005802680000002169, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 45, + "wall_seconds": 0.0005821859813295305 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003126299999998139, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 45, + "wall_seconds": 0.00031408597715198994 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006835909999978185, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 46, + "wall_seconds": 0.0006852189835626632 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00036558699999744704, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 46, + "wall_seconds": 0.0003671080048661679 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006191549999989832, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 47, + "wall_seconds": 0.0006208900013007224 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00035314599999836105, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 47, + "wall_seconds": 0.00035462298546917737 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005804040000008115, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 48, + "wall_seconds": 0.0005820700025651604 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003381469999972353, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 48, + "wall_seconds": 0.00034028998925350606 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006347590000004288, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 49, + "wall_seconds": 0.0006366260058712214 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003806960000005688, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 49, + "wall_seconds": 0.0003823380102403462 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006646980000013514, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 50, + "wall_seconds": 0.0006662849918939173 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00037217599999905815, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 50, + "wall_seconds": 0.00037373299710452557 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007132340000026716, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 51, + "wall_seconds": 0.0007149899902287871 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004019960000007927, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 51, + "wall_seconds": 0.00040360799175687134 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006844319999999016, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 52, + "wall_seconds": 0.0006863849994260818 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00037204099999854634, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 52, + "wall_seconds": 0.0003735939972102642 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006140389999984563, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 53, + "wall_seconds": 0.0006155809969641268 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003599980000004166, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 53, + "wall_seconds": 0.0003614879969973117 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007541029999984517, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 54, + "wall_seconds": 0.0007557990029454231 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00045773399999760045, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 54, + "wall_seconds": 0.0004591410106513649 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007229100000003541, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 55, + "wall_seconds": 0.000724475015886128 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003985819999989815, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 55, + "wall_seconds": 0.0003999430045951158 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007212849999973514, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 56, + "wall_seconds": 0.0007231429917737842 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00038292700000042146, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 56, + "wall_seconds": 0.0003844439925160259 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0008024509999984275, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 57, + "wall_seconds": 0.0008041580149438232 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00040003499999841097, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 57, + "wall_seconds": 0.00040146801620721817 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0009311499999995476, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 58, + "wall_seconds": 0.0009328779997304082 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004957419999982449, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 58, + "wall_seconds": 0.0004973300092387944 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0008640409999998155, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 59, + "wall_seconds": 0.0008656879945192486 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004302980000012724, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 59, + "wall_seconds": 0.0004319259896874428 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0009355430000006493, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 60, + "wall_seconds": 0.0009370930201839656 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005227119999986485, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 60, + "wall_seconds": 0.000524084985954687 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000801855999998935, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 61, + "wall_seconds": 0.0008034810016397387 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004594509999975571, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 61, + "wall_seconds": 0.0004611089825630188 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0010093320000024164, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 62, + "wall_seconds": 0.001011182990623638 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000521484999996602, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 62, + "wall_seconds": 0.0005231040122453123 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0009533130000001222, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 63, + "wall_seconds": 0.0009551009861752391 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005033559999993997, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 63, + "wall_seconds": 0.0005049110040999949 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0008759749999995847, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 64, + "wall_seconds": 0.0008778490009717643 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004851190000003669, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 64, + "wall_seconds": 0.00048672399134375155 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0011565579999981423, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 65, + "wall_seconds": 0.001158358994871378 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005371259999975564, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 65, + "wall_seconds": 0.0005385729891713709 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0011456480000013869, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 66, + "wall_seconds": 0.001147719012806192 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005801260000026787, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 66, + "wall_seconds": 0.0005938370013609529 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0009714560000020356, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 67, + "wall_seconds": 0.000973180023720488 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005081800000006353, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 67, + "wall_seconds": 0.0005096539971418679 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0009652819999992346, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 68, + "wall_seconds": 0.000991638022242114 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004665060000021981, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 68, + "wall_seconds": 0.00046804899466224015 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000895700000000943, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 69, + "wall_seconds": 0.0008975160017143935 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004653129999994121, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 69, + "wall_seconds": 0.0004668269830290228 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0008054810000004409, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 70, + "wall_seconds": 0.000807060016086325 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004457010000002981, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 70, + "wall_seconds": 0.00044724601320922375 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0008873069999992822, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 71, + "wall_seconds": 0.0008890499884728342 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005177230000015243, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 71, + "wall_seconds": 0.0005194690020289272 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0009829499999973734, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 72, + "wall_seconds": 0.0009845379972830415 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005426279999980466, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 72, + "wall_seconds": 0.0005442629917524755 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0008931889999992393, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 73, + "wall_seconds": 0.0008950020128395408 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005082499999993217, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 73, + "wall_seconds": 0.0005098290275782347 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000977463999998207, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 74, + "wall_seconds": 0.0009792600176297128 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005312150000023053, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 74, + "wall_seconds": 0.0005327419785317034 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00015259899999975346, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 5, + "wall_seconds": 0.00015424098819494247 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 8.160500000187199e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 5, + "wall_seconds": 8.292400161735713e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00014379699999977902, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 6, + "wall_seconds": 0.00014516498777084053 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 7.52689999998779e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 6, + "wall_seconds": 7.656199159100652e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001336670000000595, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 7, + "wall_seconds": 0.00013516200124286115 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 7.598000000186289e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 7, + "wall_seconds": 7.720600115135312e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00015224900000276875, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 8, + "wall_seconds": 0.00015357602387666702 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 8.422000000152252e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 8, + "wall_seconds": 8.539101690985262e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00015739499999867235, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 9, + "wall_seconds": 0.00015879998682066798 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 9.448700000191934e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 9, + "wall_seconds": 9.571699774824083e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001509569999988969, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 10, + "wall_seconds": 0.0001523930113762617 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 9.209099999907266e-05, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 10, + "wall_seconds": 9.332399349659681e-05 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018066700000218816, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 11, + "wall_seconds": 0.00018207798711955547 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00010734299999981545, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 11, + "wall_seconds": 0.00010869998368434608 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018535000000241553, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 12, + "wall_seconds": 0.00018678398919291794 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00010954599999735137, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 12, + "wall_seconds": 0.00011085599544458091 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002038529999985883, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 13, + "wall_seconds": 0.00020534801296889782 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001108820000013111, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 13, + "wall_seconds": 0.00011211499804630876 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002217120000018724, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 14, + "wall_seconds": 0.00022316499962471426 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00011760499999979857, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 14, + "wall_seconds": 0.00011889901361428201 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002598240000004637, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 15, + "wall_seconds": 0.00026135300868190825 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00013238800000081596, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 15, + "wall_seconds": 0.00013369799125939608 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00025406099999969456, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 16, + "wall_seconds": 0.00025546300457790494 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00013271199999920213, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 16, + "wall_seconds": 0.00013409199891611934 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002568079999996087, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 17, + "wall_seconds": 0.0002582629967946559 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00015575200000128575, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 17, + "wall_seconds": 0.00015709002036601305 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00023024399999727052, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 18, + "wall_seconds": 0.0002316450118087232 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00014447600000266902, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 18, + "wall_seconds": 0.0001458320184610784 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002840550000016151, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 19, + "wall_seconds": 0.0002855050261132419 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018312699999967208, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 19, + "wall_seconds": 0.00018462497973814607 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00031345799999726864, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 20, + "wall_seconds": 0.0003149470139760524 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0001616579999996759, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 20, + "wall_seconds": 0.00016296299872919917 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00040074400000023047, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 21, + "wall_seconds": 0.00040234799962490797 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002005099999990989, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 21, + "wall_seconds": 0.00020196198602207005 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003034070000005329, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 22, + "wall_seconds": 0.0003049529914278537 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00024201699999792936, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 22, + "wall_seconds": 0.0002440699900034815 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00037885499999745775, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 23, + "wall_seconds": 0.0003806510067079216 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00018845600000005902, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 23, + "wall_seconds": 0.00018994699348695576 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003611219999974935, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 24, + "wall_seconds": 0.0003627039841376245 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00019244699999987347, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 24, + "wall_seconds": 0.00019382100435905159 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00036277799999950844, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 25, + "wall_seconds": 0.0003643709933385253 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00023032200000017156, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 25, + "wall_seconds": 0.00023177798721008003 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005676549999975578, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 26, + "wall_seconds": 0.0005691930127795786 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00030704399999947896, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 26, + "wall_seconds": 0.00030844099819660187 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00039996900000005553, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 27, + "wall_seconds": 0.0004015119920950383 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002251920000020391, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 27, + "wall_seconds": 0.00022657000226899981 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00046611999999868203, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 28, + "wall_seconds": 0.0004677840042859316 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00026438699999786763, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 28, + "wall_seconds": 0.00026571800117380917 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00040834599999683974, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 29, + "wall_seconds": 0.0004099129873793572 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00022373799999897415, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 29, + "wall_seconds": 0.00022508000256493688 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003256799999995508, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 30, + "wall_seconds": 0.00032719000591896474 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00019090900000051647, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 30, + "wall_seconds": 0.00019222599803470075 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004873039999999662, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 31, + "wall_seconds": 0.0004889099800493568 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00027466100000239635, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 31, + "wall_seconds": 0.00027608999516814947 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005151330000003895, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 32, + "wall_seconds": 0.0005168509960640222 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00029117700000114155, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 32, + "wall_seconds": 0.00029256701236590743 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004471210000005499, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 33, + "wall_seconds": 0.0004486969846766442 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00028580700000091497, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 33, + "wall_seconds": 0.00029401600477285683 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000540269999998344, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 34, + "wall_seconds": 0.000541912013432011 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003104100000008714, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 34, + "wall_seconds": 0.00031177999335341156 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005327560000019105, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 35, + "wall_seconds": 0.0005431369936559349 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00029573700000185, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 35, + "wall_seconds": 0.00029710200033150613 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005220000000001335, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 36, + "wall_seconds": 0.0005236729921307415 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00028518999999960215, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 36, + "wall_seconds": 0.00028661798569373786 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005586720000003709, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 37, + "wall_seconds": 0.0005602489982265979 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003273259999971856, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 37, + "wall_seconds": 0.0003287639992777258 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005172590000022126, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 38, + "wall_seconds": 0.0005187490023672581 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002770299999994563, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 38, + "wall_seconds": 0.00027843101997859776 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005501119999991033, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 39, + "wall_seconds": 0.0005515750090125948 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0002954970000033086, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 39, + "wall_seconds": 0.0002970100031234324 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006926010000007921, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 40, + "wall_seconds": 0.0006946109933778644 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00034711400000020376, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 40, + "wall_seconds": 0.0003486709902063012 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005777209999990873, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 41, + "wall_seconds": 0.0005793180025648326 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00035479099999946584, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 41, + "wall_seconds": 0.00035663897870108485 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005956639999986635, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 42, + "wall_seconds": 0.0005979069974273443 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003422890000024381, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 42, + "wall_seconds": 0.0003438080020714551 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006236490000013362, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 43, + "wall_seconds": 0.0006252790044527501 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005167059999990897, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 43, + "wall_seconds": 0.0005189670191612095 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0010927040000012767, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 44, + "wall_seconds": 0.0010976890043821186 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00046655200000245145, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 44, + "wall_seconds": 0.0004692859947681427 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.000704907999999449, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 45, + "wall_seconds": 0.0007071979925967753 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003584930000002373, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 45, + "wall_seconds": 0.0003600630152504891 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0005944920000011678, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 46, + "wall_seconds": 0.0005961139977443963 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003461359999974434, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 46, + "wall_seconds": 0.0003475929843261838 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007127279999998848, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 47, + "wall_seconds": 0.0007143809925764799 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003941389999972955, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 47, + "wall_seconds": 0.00039561299490742385 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006830660000005651, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 48, + "wall_seconds": 0.0006846199976280332 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0003783589999990511, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 48, + "wall_seconds": 0.0003797959943767637 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007999249999990354, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 49, + "wall_seconds": 0.0008015579951461405 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00043738300000129016, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 49, + "wall_seconds": 0.0004388770030345768 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007498149999989323, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 50, + "wall_seconds": 0.0007513450109399855 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00036613900000048716, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 50, + "wall_seconds": 0.00036753699532710016 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007951649999995425, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 51, + "wall_seconds": 0.0007966859848238528 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0004382249999999033, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 51, + "wall_seconds": 0.0004397610027808696 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007184680000023036, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 52, + "wall_seconds": 0.0007200730033218861 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00038140400000230557, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 52, + "wall_seconds": 0.0003829510242212564 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0006821049999992113, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 53, + "wall_seconds": 0.000683632999425754 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00038840400000239583, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 53, + "wall_seconds": 0.0003898270078934729 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.0007169010000005471, + "exception": null, + "family": "error_trace", + "outermost": true, + "program_length": 54, + "wall_seconds": 0.0007185660069808364 + }, + { + "classification": "finite_fixture", + "cpu_seconds": 0.00037520199999718784, + "exception": null, + "family": "reverse_all", + "outermost": true, + "program_length": 54, + "wall_seconds": 0.0003766200097743422 + } + ], + "scope": "frozen PR5864 full_C qualifier; separate custody checks excluded as before", + "status": "PASS_ORIGINAL_INTEGER_BOUNDARY_DIAGNOSTIC", + "strictly_exceeds_zero_cost_threshold": { + "cpu": false, + "wall": false + } +} diff --git a/research/c-verification-feasibility/evidence/OVERLAP.json b/research/c-verification-feasibility/evidence/OVERLAP.json new file mode 100644 index 0000000000..8bd76f09e2 --- /dev/null +++ b/research/c-verification-feasibility/evidence/OVERLAP.json @@ -0,0 +1,28 @@ +{ + "canonical_main_fetched": "de5ec2e7a6074068452f45b1a191b5c72832df4a", + "chrome_start_here_read": "https://github.com/CrocSwap/integer-mult-bounds/discussions/1163", + "chrome_open_fraction_search": "https://github.com/CrocSwap/integer-mult-bounds/pulls?q=is%3Apr+is%3Aopen+Fraction", + "open_fraction_matches": 18, + "nearest": [ + 5875, + 5864, + 5853, + 5852, + 5848, + 5839, + 2409, + 2357, + 2263, + 1922 + ], + "active_discussion_index_read": "https://github.com/CrocSwap/integer-mult-bounds/discussions", + "coverage_limits": "Bounded visible open PR body/title search for Fraction and active discussion index; no exhaustive novelty claim. Existing complete-performance packages and failed thin score wrapper are preserved. Recheck focused overlap at pivot/submission.", + "predecessors_from_checkpoint": [ + 5168, + 5382, + 2853, + 3143 + ], + "chrome_active_verification_search": "https://github.com/CrocSwap/integer-mult-bounds/discussions?discussions_q=is%3Aopen+verification", + "active_discussion_search_coverage": "Read first visible page: verification engineering precedents and handoff hub, no same bulk-rational/integer-format scope visible; not exhaustive." +} diff --git a/research/c-verification-feasibility/evidence/PLAN.json b/research/c-verification-feasibility/evidence/PLAN.json new file mode 100644 index 0000000000..076a830b35 --- /dev/null +++ b/research/c-verification-feasibility/evidence/PLAN.json @@ -0,0 +1,51 @@ +{ + "status": "ACTIVE_AUTHORIZED_ALL_FOUR", + "created_utc": "2026-10-27T12:01:43.486342+00:00", + "base_main": "de5ec2e7a6074068452f45b1a191b5c72832df4a", + "performance_baseline": "PR5864 3f15c943e4ad6479f03e674c80fff1269a16ccfe", + "target": "At least 15% further complete wall AND CPU reduction over frozen PR5864, with a full assessment of all four opportunities. Positive smaller independent increments may be retained; goal remains unfulfilled until target/all-assessments/publication are complete.", + "opportunities": { + "1": "bulk exact rational batching", + "2": "native arbitrary-width integer sparse/reverse loops", + "3": "exact matrix and finite-field kernels, separate workload", + "4": "canonical dyadic witness formatting" + }, + "coverage": "All original and PR5864 checks retained and charged; independent Python Fraction oracle unchanged, exact output types/witnesses/hash bytes and all inputs preserved.", + "measurement_rule": { + "order": [ + "B1", + "C1", + "C2", + "B2", + "B3", + "C3" + ], + "baseline": "fresh cold complete PR5864", + "candidate": "same workload plus every new finite/native/binding check and cold compiler/link/load", + "preliminary_pair_gate": "both wall/CPU positive, greater than declared 0.50 sec absolute conservative noise allowance, with optimistic route to 15% cumulative. No dropped samples or automatic retries.", + "final_gate": "both median wall and CPU improvement >=15%, absolute saving >0.50 sec and > observed complete repeat spread, exact scientific receipts all equal", + "platform": "frozen Linux CPython 3.12", + "profiling": "diagnostic only; never convert nested totals to complete speed claims" + }, + "caps": { + "serial_numerical_runner": true, + "command_seconds": 180, + "sampled_process_group_rss_bytes": 1073741824, + "initial_feasibility_seconds": 600, + "shared_round_seconds": 1500, + "automatic_retries": 0 + }, + "roles": { + "parent": "sole numerical runner, integration, matrix assessment, Chrome publication", + "astra_rational_design": "static creative design/source rational/ only", + "astra_integer_format": "static source integer-format/ only" + }, + "publication": "fresh upstream main/overlap checks, isolated scoped worktree, source pins/credit, upstream PR template, normal/O/readonly export/committed-byte checks, exact-head CI and seven-field handoff readback; Chrome for GitHub writes; nonforce SSH fork push", + "paused": [ + "kappa research", + "Work1/Work2 mathematics", + "unrelated feeds", + "automations" + ], + "preservation": "No modification of synced sources/, old checkpoints, old evidence or original thread" +} diff --git a/research/c-verification-feasibility/evidence/astra-integer-format-review.md b/research/c-verification-feasibility/evidence/astra-integer-format-review.md new file mode 100644 index 0000000000..d5655fbbd2 --- /dev/null +++ b/research/c-verification-feasibility/evidence/astra-integer-format-review.md @@ -0,0 +1,221 @@ +# Integer/format measured candidate: static review and stop assessment + +**Decision: the scoped negative result is supported, subject to the boundaries +below. No new qualified speedup or further 15% result is admitted. No additional +implementation or timing round is recommended from the current evidence.** + +This review inspected saved source and receipts only. It did not compile, +import scientific modules, execute arithmetic/tests, time anything, change +measured source, dispatch work, operate a browser or mutate Git. The reviewer +is separate from the parent's numerical execution, but authored the original +C/binder prototype. Therefore this is not an independent-author code audit or +an independent execution replay. It is a static second pass over integration, +coverage, independence and the recorded stopping decision. + +## Reviewed artifacts and identity + +All paths below are relative to `outputs/c-verification-all-opportunities-20261027/`. + +- `stages/integer-complete-v1/candidate_full.py`, SHA256 + `e0978a90c63e5294a1ed04863c3966016b64a62a561e914d50821b08846ace72`. +- `stages/integer-complete-v1/baseline_full.py`, SHA256 + `470096a40078958bd4e32f99e312a44672613c2d93a76c9cbfd8d8fb6474471f`. +- Measured `integer_format.c` and `integer_binding.py` match the handed-off + source hashes exactly: respectively + `804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d` and + `dd3e4387dfb8882a524d938d866ed7ae04cd5ac938bbbcbec4eefd15f4bdcc9d`. +- `INTEGER-COMPLETE-GATE.json`, observed SHA256 + `85b9bca95c83e312f55f5d60748292033e3802697c21f757dec912fc95fe6b6e`. +- All six `runtime/runs/integer-complete-{B1,C1,C2,B2,B3,C3}/` final scientific + receipt lines and guarded process receipts; fuller B2/C2 native/Observation + records; archived original single-pass `candidate.py` and `custody.py`. +- The frozen PR5864 `baseline-public/{full.py,finite.py,frozen.py,README.md, + benchmark.py,VALIDATION.json,VERIFY.json,verify.py,replay_driver.py,custody.py}` + boundaries, and original `Observation` implementation. + +The raw six scientific receipts have the same source result digest +`cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98`, +25,984 events, 799 coordinates, 120 finite programs / 4,240 fixture events, +three integer rejections, six source controls, and complete actual witness +comparison. Every guarded process receipt inspected records exit 0, empty +stderr, unchanged source bytes/modes, no termination, and sampled RSS below +the parent cap. These are saved execution records, not executions by this +reviewer. + +## Recorded performance decision + +The fixed BCCBBC comparison records median wall/CPU of +34.661785392 / 34.47 seconds for B and 32.418777812 / 32.33 seconds for C. +The descriptive reductions are 6.471125% wall and 6.208297% CPU. The absolute +median differences, 2.243007580 wall and 2.14 CPU seconds, are smaller than the +recorded maximum repeat spreads, 2.713637238 wall and 2.35 CPU seconds. + +Thus both the 15% target and the declared conservative noise gates failed. +The median numbers may be reported as descriptive raw observations, accompanied +by the failed gates. They are not a qualified smaller positive increment. +No sample may be discarded, and source edits or repeated timings cannot +retroactively repair this six-process result. The synthetic micro result does +not overturn this decision; its candidate commands paid cold compilation and +checks outside the inner batch timer. + +## Coverage review + +The new wrapper retains the frozen `full.main(True)` native finite work and +original source-bound Fraction trace adaptation. Its only additional complete +qualification seam is the authenticated integer module load at +`candidate_full.py:56-58`. The replacement checks an exact occurrence and +constructs a fresh candidate integer module using the pinned original source. +The new finite probe and integer cold build execute before `main(True)` and +are therefore inside the parent's outer process timing. The prior Fraction +native build, checks and actual bookkeeping counters remain present. + +The archived original `qualify()` still performs the following work after the +integer replacement: + +1. It runs `contract.calculate(p, candidate)` and compares the complete result + against the frozen expected result, including source controls. +2. It runs a fresh original calculation through the unchanged PR5864 Fraction + arithmetic/native-bookkeeping path and compares complete results. +3. Separate one-use Observations retain the actual ideal metadata/local weights + and full error trace/signed witnesses, then compare both full values. +4. It runs the unchanged 120-program differential against the literal reference, + including reverse equality, and checks the exact frozen qualification receipt. + +The 27 Observation labels remain in the inherited entry-point finite run. The +118 inherited/native controls remain in the PR5864 finite run. The added +integer probe's 27 labels comprise six positive case groups and 21 rejection +paths; they are not 27 independent rejection cases. The eight row cases and +six ordered prefixes are separately recorded. Nothing in the candidate binder +replaces a full witness comparison with a digest-only check or samples hash +entries. Peaks, role tie-breaking, Pareto selection, returned Fraction types +and the public Engine call signatures remain in the unchanged Python outer +code. No additional scientific coverage omission was found in this review. + +### Custody is separate from this timed scope + +Neither measured wrapper invokes `custody.main()`. The portable +`replay_driver.py` does invoke it. This initially looked like missing timed +coverage, but the frozen PR5864 README line 19 and VALIDATION scope explicitly +place all four unchanged custody controls outside both timed candidate stages. +Its original `benchmark.py` uses `full_B.py`/`full_C.py` under that same boundary. +The current six samples therefore match the **complete frozen qualifier** +benchmark scope; they do not measure the full portable replay-driver command. + +Publication must preserve and freshly run the separate registered custody +checks. The parent has stated it will do so; this review does not pre-claim +that later result. A separate successful custody replay must remain separately +identified and must not be added retroactively to the six measured commands. +No timing reroll is needed to preserve the scoped negative conclusion. + +## Independence review + +The integer numerical implementation has changed. The wrapper correctly emits +`integer_backend_changed=True` and `baseline_fraction_arithmetic_unchanged=True`. +It does not carry forward `integer_oracle_unchanged=True` as a current claim. +The fresh binder modifies only its newly created integer module. The inherited +PR5864 adaptation of a separate Fraction module remains exactly the same +numerical operation/bookkeeping route as before this round. + +This means no **new integer C arithmetic** is shared with the Fraction +reference path. The two paths still share CPython's arbitrary-size integer +substrate and some original semantic helpers, as the predecessor already did. +They are distinct representations and computation paths, not independent +big-integer implementations, a proof of arbitrary C memory safety, or a +machine-checked correctness theorem. The retained source pins and output +agreement must not be described more strongly. + +The literal `reference` used by the original finite differential is loaded +separately from the original calculation's observed Fraction module. The +new wrapper patches neither that literal reference nor its finite algorithms. +The actual PR5864 Fraction cache counters, output digest and one-use +Observation remain independently checked in the complete qualifier. + +The binder receipt fields `source_only_handoff=True` and +`whole_replay_qualified=False` are historical construction metadata emitted by +`derive()`. They describe what that binder itself establishes; the surrounding +run later produces the actual qualifier receipt. Preserve the measured record, +but explain this distinction so readers do not interpret those fields either +as a later execution failure or as evidence that the binder alone qualified a +whole replay. Likewise, retained source docstrings saying all arithmetic is +unchanged are predecessor text, not the new candidate's scope statement. + +## C and API limitations + +The implementation keeps coefficients, scales, products and scores as exact +arbitrary-size PyLong objects. `PyLong_AsSsize_t` is confined to Python sequence +indices; it does not narrow numeric coefficients. Exact division tests the +remainder before accepting the quotient. The signed dyadic formatter uses +positive common power-of-two reduction, preserves zero and signs, and keeps +coefficient `/1` formatting distinct from Fraction-style score strings. +The parent finite/full receipts supply observed checks for this implementation; +this static inspection found no arithmetic or canonical-byte mismatch in the +supported path. + +Fresh output dictionaries and score tuples avoid ordinary input alias mutation +and preserve inputs after failed row operations. The internal `add_row` helper +now returns a fresh dictionary instead of mutating its destination and returning +None; the binder changes both internal call sites accordingly. The supported +compatibility statement is the selected Engine/qualification workload, not a +drop-in replacement for arbitrary downstream code importing that old helper. +The new C API deliberately rejects bool/subclasses/foreign containers; it is a +new guarded interface, not semantic equivalence for every Python object the +old unguarded helper might accidentally accept. + +The code assumes stable inputs/runtime during each native operation, matching +the scoped predecessor assumption. It retains borrowed dictionary items across +allocations and `PyDict_Next` loops. It does not establish safety against +arbitrary signal handlers, finalizers, reentrant callbacks or concurrent code +mutating supplied dictionaries during such a call. Ordinary alias fixtures do +not prove hostile asynchronous-mutation safety. In the complete Engine path, +those rows/scores are internal and no foreign callbacks are intentionally +invoked. Do not advertise this feasibility module as a generally reentrant or +free-threaded library. No claim of abi3, subinterpreter or other Python-version +support follows from Linux CPython 3.12 checks. + +These limits do not reverse the scoped negative engineering result. They are +reasons to retain the prototype label and precise supported domain rather than +promote it as a generally qualified native library. + +## Bounded broader batching assessment + +A fundamentally broader design is conceivable while leaving PR5864 Fraction +numerical arithmetic untouched: a per-invocation native owner for validated +integer state. It would snapshot/validate the input operation and weight plan +once, own all mutable rows and score triples, and traverse a whole forward or +reverse integer program without returning a fresh row and revalidating it after +each event. Inside that ownership boundary it could mutate its own dicts, +retain constant scale metadata, and append canonical bytes directly, exposing +only the same completed outputs and required witness snapshots. + +That is materially different from replacing another small Python arithmetic +call. It targets concrete bills in this candidate: repeated `int_row` scans, +`PyDict_Copy` per sparse update, temporary score tuples followed by Python list +conversion, per-event crossing/packet handling, and repeated scale validation. +It would retain arbitrary-size integer operations, exact dyadic rejection, +full event ordering, complete bytes and all observations. The unchanged +Fraction run would still execute afresh; no candidate result could stand in +for it. Any input plan reuse would need an explicit per-invocation ownership +contract and could not become cross-trace answers or cached PASS receipts. + +However, the present data does **not** show that those removable bills contain +the several additional seconds necessary to move from the descriptive current +result to a further 15% complete reduction with its larger validation/build bill. +The source profile is instrumented and nested. The measured candidate is already +native inside the large sparse loops. Row validation/copying might be the +remaining bottleneck, or might account for far less than the shortfall; this +review cannot distinguish those possibilities. Moving the outer loop also +expands the proof/qualification surface for peak cuts, ordering, clearing, +source isolation, exception behavior and witness snapshots. + +Therefore the architecture is a deferred hypothesis, not a presently funded +construction or an impossibility result. Current evidence supports stopping +this round and publishing its bounded negative result. If a future separately +authorized round is considered, its first gate should be a fixed diagnostic +attribution of the unchanged candidate's integer-state and crossing/copy costs, +with all outputs still computed and compared. Only evidence that a sufficiently +large removable bill exists after the complete new control/build/ownership +cost should authorize a private-state prototype. Freeze that gate and one +bounded discriminating fixture before implementation; do not reuse this +round's failed six timings as a new performance admission. + +No such diagnostic, implementation, test or new route was performed here. diff --git a/research/c-verification-feasibility/evidence/astra-integer-format.md b/research/c-verification-feasibility/evidence/astra-integer-format.md new file mode 100644 index 0000000000..0bd7cd3146 --- /dev/null +++ b/research/c-verification-feasibility/evidence/astra-integer-format.md @@ -0,0 +1,220 @@ +# Integer replay and canonical formatting: source-only feasibility handoff + +Status: **SOURCE_ONLY_READY_FOR_PARENT_SERIAL_FEASIBILITY; no compilation, +execution, qualification, timing, complete speedup, or kappa claim.** + +This worker owns only `integer-format/` and this report. It read the project +AGENTS instructions, current working plan, opportunity record, saved complete +profile, literal integer/reference source and frozen PR5864 boundary code. +It did not modify any synced source, frozen package, Fraction oracle, feed, +automation, mathematical research, Git state, or browser state. One initial +static read used the wrong filename `source/precision.py`; the actual source +is `source/reference_precision.py`. That failed read caused no execution. + +## Source pins and scope + +- Frozen complete PR5864: head `3f15c943e4ad6479f03e674c80fff1269a16ccfe`. +- Literal integer source: + `outputs/c-native-opportunities-20261027/source/integer.py`; + SHA256 `82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a`. +- New C source: + `integer-format/integer_format.c`; + SHA256 `804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d`. +- `finite_probe.py` SHA256 + `1b804c882833e2628d843bade00dfcbb282e0f53f6712e2d978af9b5c1ce8378`. +- `native_loader.py` SHA256 + `2592bef50e5338ad562d9a69bca1183ef0d88a4d34bdc497af4452304dca25c3`. +- `integer_binding.py` SHA256 + `dd3e4387dfb8882a524d938d866ed7ae04cd5ac938bbbcbec4eefd15f4bdcc9d`. +- `micro_probe.py` SHA256 + `f1d39f830987fcabe8ca5453ddbb1eca1df10a9670a95db510efbe5f21dd76aa`. + +This is a derivative of Ali Romman's integer replay, with substantial OpenAI +Codex assistance, under Apache-2.0. The new feasibility source credits Chris R / +Clear1nsight and OpenAI Codex assistance. Preserve the full predecessor NOTICE, +including PR5848/5839/5816/5818/5832/5761 lineage and existing native cache +attribution. It is not a novel arithmetic algorithm or an independent human +review. No code was copied from CPython's integer implementation. + +## Headroom and bounded decision + +The profile is an instrumented complete PR5864 replay. Its recorded 91.703902 +seconds inside the profiling scope is diagnostic, not the unprofiled complete +32.771297-second published median. The following are individual observations; +these cumulative figures must not be summed with their nested helpers: + +| Function | Calls | Self seconds | Cumulative seconds | +| --- | ---: | ---: | ---: | +| integer `error_trace` | 121 | 3.576433853 | 8.431311677 | +| integer `reverse_all` | 121 | 0.483597588 | 3.187265222 | +| integer `ideal` | 4 | 0.400506658 | 2.622130628 | +| integer `multiply` | 3,357,683 | 1.185891057 | 1.419735399 | +| integer `add_row` | 56,819 | 0.390191792 | 0.833139426 | +| integer `update_hash` | 775,218 | 1.092006952 | 2.669192520 | + +There is enough repeated Python traversal and formatting to justify one bounded +finite/micro feasibility test. There is **not** presently a defensible claim that +this route alone can save the approximately five complete seconds needed for a +further 15% improvement over PR5864. Cumulative regions retain setup, Fraction +boundary construction, sorting, hashing, outer Python control and output work. +The prototype also pays full exact-type validation, row copies, returned tuple +allocations, list conversions, and a second cold native build. Instrumentation +may disproportionately inflate the Python calls being removed. Do not convert +profile shares or the synthetic batch into promised whole-run savings. + +The integer/format route is a candidate for one bounded test, not an admitted +complete construction. Stop if finite correctness fails. If the fixed micro +comparison is unhelpful after its full allocation/copy costs, do not expand to a +full candidate. If it is helpful, the parent's declared complete-cost/noise rule +must decide whether one fresh full pair is justified. Preserve all attempts and +failures. No automatic retry or benchmark selection. A successful incremental +saving below 15% would remain below this round's user-requested complete target. + +The parent owns the single runner, 180 seconds per command, 1 GiB sampled +process-group RSS, 600 seconds initial feasibility and 1,500 seconds shared +round budget. This worker used none of that scientific execution slot. + +## Native API and semantics + +All coefficient arithmetic uses public Python number APIs on **exact built-in +arbitrary-size int** objects. No coefficient, numerator, denominator or score is +converted to a fixed-width C arithmetic type. `Py_ssize_t` is used only for +container length/indexing, which is already bounded by Python sequence storage. +The test source includes 8,192-bit values, exceeding both 64 and 4,096 bits. + +| API | Return | Use | +| --- | --- | --- | +| `add_row(dst, src, numerator, exponent)` | fresh dict | Ideal/reverse sparse row update | +| `error_row(dst, src, numerator, exponent, scores, weights)` | `(fresh dict, three-score tuple)` | Signed forward sparse update and score changes | +| `scale_row(row, numerator, exponent)` | fresh dict | Exact dyadic scaling | +| `coefficient_bytes(row, scale)` | bytes | Complete descending-event coefficient hash input | +| `coefficient_item_bytes(event, value, scale)` | bytes | One signed coefficient hash chunk | +| `score_bytes(event, scores, units)` | bytes | Exact three-value score stream | +| `reverse_updates(column, scores, wa, wc, event, scale)` | list of `(index, score tuple, bytes)` | Reverse contributions in source insertion order | + +The row/scoring methods return fresh objects and leave every supplied object +unchanged even when a later source entry fails exact division. This handles +`dst is src`, aliased score rows, and shared input integer objects without +mutation. No claimed optimization depends on undocumented alias exclusions. +A cost is the destination copy and validation on every call; those costs are +part of the candidate, not omitted setup. + +Exact built-in dict/list/tuple/int guards reject bool, integer subclasses, +container subclasses and other foreign objects before their user methods can +run. Only accessed weight/score rows are validated; validating the whole +25,984-entry weight table on every sparse update would create an avoidable +quadratic bill. The source/destination sparse rows are fully validated. The +public typed setup/word guards remain in literal integer.py. + +A row multiplication computes an arbitrary-size product and exact `divmod` by +`2**exponent`; any nonzero remainder raises `ValueError('exact dyadic division')`. +Negative values retain Python's exact signed arithmetic. Negative exponents are +rejected. Scale-row retains zero entries, matching the original comprehension; +sparse addition deletes zero sums, matching the original loop. No fixed-width +narrowing or silent signed overflow is present in the design. + +For a nonzero signed integer `v`, `v & -v` is the positive power-of-two factor +in `v`. The factor common to `v` and a checked positive power-of-two `scale` is +the smaller of that value and `scale`. Dividing both by this factor creates the +same normalized pair as `Fraction(v, scale)`. Zero is explicitly `0/1`. + +The two byte contracts are deliberately distinct: + +- Coefficients always encode `event:numerator/denominator;`, including `/1`. + Final row bytes include **every entry**, sorted by descending event exactly + as the original hash loop. Combining those chunks into one bytes argument + preserves the ordered digest input. +- Scores encode `event:a,b,c;` using Fraction string conventions, omitting `/1` + for integers. Negative signs, zero and separators are unchanged. + +All decimal conversion goes through Python integer string conversion; its +configured decimal-digit guard is neither disabled nor bypassed. The reverse +batch returns signed coefficient bytes in column dict insertion order. The +outer reverse event loop remains unchanged, preserving per-hash event order. +No digest, peak, score, witness, or PASS result is cached between invocations. + +## Fresh candidate binder and independence + +`integer_binding.derive(path, native, expected_integer_sha256)` authenticates +one original integer source, checks exact replacement counts, and constructs a +fresh candidate module in memory. It changes only sparse row/scale loops, +forward row+score loop, integer score/coefficient serialization, and the reverse +contribution loop. It preserves the original public Engine signatures, all +setup/word guards, weights, peak updates, strict comparisons, final-role tie +breaking, Pareto ordering, witness construction and Fraction output objects. +It does not patch the original file, an existing module, or a Fraction oracle. +The old `multiply`, `dyadic` and `scaled` rejection contracts remain intact. + +The frozen PR5864 `full.py` receipt explicitly emits +`integer_oracle_unchanged=True`; its NOTICE also says the independent exact +integer engine is unchanged. Those claims **must not** be carried forward as +true for this candidate. The new package must say integer backend changed and +show complete comparison against the unchanged PR5864 Fraction route. The +existing Fraction route already uses native bookkeeping/cache machinery, but +its literal built-in Fraction numerical operations stay unchanged in this +integer-only arm. Its source arithmetic must not be replaced by this helper. + +Combining this integer arm with a new native rational arithmetic arm changes +both formerly cross-checking numerical paths. That requires a separately fresh +literal Fraction audit and its full paid cost; two changed C paths cannot be +called an untouched oracle. Do not silently amortize/share candidate answers, +carry over PASS receipts, or share any new arithmetic helper with the literal +oracle. A combined arm may fail headroom once that independence bill is paid. +This report supports the integer-only arm with preserved PR5864 Fraction +numerical arithmetic, not an unpriced combined admission. + +Original 120-program differential, reverse/literal equality, all actual events +and coordinates, ideal/weight/error outputs, full signed witnesses and hashes, +all adopted predecessor/native controls, custody controls and Observation +contracts still need to run in the **complete** candidate. The new small probe +is additional coverage, not a replacement or a qualification receipt reuse. + +## Ready commands and integration + +All files are under: +`/home/d3lerium/.codex/.chatgpt-projects/g-p-6ad5817fd84881918865926b6fd51453/outputs/c-verification-all-opportunities-20261027/integer-format/`. +The following are proposed commands for the parent's guarded serial runner; +this worker did not run them: + +```sh +python3 finite_probe.py --source-sha256 804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d +python3 micro_probe.py --mode baseline +python3 micro_probe.py --mode candidate --source-sha256 804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d +``` + +The loader pins source bytes supplied by the parent, builds a read-only snapshot +using the existing compiler with `-O2 -shared -fPIC -std=c11 -Wall -Werror`, checks +empty compiler output, checks original source remained unchanged, and loads the +fresh extension in a temporary directory. It caches only the code module within +one process. Compiler children CPU must be charged by the parent's outer runner. + +The finite source covers eight signed row/score differential cases, scale rows, +six ordered prefixes including all complete bytes, 8,192-bit values, alias +safety and ownership, reverse scores/signed bytes, distinct coefficient/score +formatting contracts, and 21 explicit rejection paths. It uses explicit raises, +so checks remain present under `python -O`. That is planned coverage; no PASS +has been observed by this worker. + +`micro_probe.py` performs one fixed 1,024-step synthetic row+score+format batch +per process. Baseline and candidate regenerate their inputs independently. +The result digest covers complete final rows, scores and the full byte stream. +The candidate additionally pays cold build/load and finite checks before the +batch timing. The inner timing describes only the synthetic batch; compare +outer guarded process costs separately. Root controls order and repetitions; +there is no script retry or best-sample selection. This synthetic batch does +not represent an actual-word distribution and supplies no complete saving. + +Suggested integration in the parent's authenticated candidate loader: + +```python +native = native_loader.load(FROZEN_C_SHA256) +integer_candidate, binding_receipt = integer_binding.derive( + authenticated_integer_path, native, FROZEN_INTEGER_SHA256) +engine = integer_candidate.Engine(unchanged_fraction_reference) +``` + +The parent must adapt only the candidate integer selection seam and rerun the +complete existing contract. Retain raw outputs, ordered comparisons, failed +attempts, source/binder/cold-build receipts, all memory/cost bills, and exact +changed-oracle declarations. The parent may reject this source-only candidate +without constructing or publishing a complete optimization. diff --git a/research/c-verification-feasibility/evidence/astra-next-boundary-cost-screen.md b/research/c-verification-feasibility/evidence/astra-next-boundary-cost-screen.md new file mode 100644 index 0000000000..69f5103326 --- /dev/null +++ b/research/c-verification-feasibility/evidence/astra-next-boundary-cost-screen.md @@ -0,0 +1,257 @@ +# One bounded reassessment: owned integer state and Fraction ideal control + +**Decision before the optional diagnostic: do not construct another route.** +The existing evidence does not establish enough headroom for a further 15% +complete PR5864 wall/CPU reduction. A per-invocation owned integer state is a +materially different boundary and merits, at most, one generous call-boundary +rejection screen. The proposed Fraction ideal loop-control variant is not +currently funded. Neither can borrow the stopped rational-arithmetic or thin +score-wrapper results as a qualified gain. + +This worker performed static source inspection only and wrote this report plus +`integer-owned-screen/diagnostic.py` at the parent's explicit further request. +No compiler, Python import, arithmetic/test/timing run, network/browser, Git +mutation or additional agent was used. The diagnostic source has not been +executed by this worker. Parent owns the single guarded runner and decides +whether remaining initial/shared budget funds its one execution. + +## Evidence that constrains the decision + +The first integer/format nomination preserved its recorded scientific outputs +but failed both the requested 15% threshold and the declared repeat-spread +noise gates. Its descriptive six-process median differences are not an admitted +increment and may not be credited as money already available to a new design. +The fixed comparison remains unchanged and will not be rerolled. + +The original complete instrumented profile records individual integer method +cumulative costs of 8.431 seconds (`error_trace`), 3.187 seconds (`reverse_all`) +and 2.622 seconds (`ideal`). It records Fraction `ideal` at 12.508 cumulative +seconds but only 0.756 self seconds, and its `add` helper at 4.422 cumulative / +1.003 self seconds. These are diagnostic observations, not unprofiled costs. +Do not sum the nested helper totals, scale the profile by the 33-second median, +or treat Fraction arithmetic retained inside `ideal` as removable loop cost. + +The first C candidate removed large Python sparse loops but added validation, +row copying and packet conversion. It does not establish whether those added +bills are a sufficiently large remaining target. No measured attribution +currently answers that question. The separate matrix workload result cannot +supply any contribution to this PR5864 target. + +## Candidate A: exact boundary for private owned integer state + +The only candidate boundary retained for screening is the ORIGINAL integer +module at source SHA256 +`82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a`, +specifically `Engine.ideal`, `Engine.error_trace`, and `Engine.reverse_all`. +There would be one private native state per invocation, with no state or answer +reuse across these calls, across repeated words, across backends, or across +processes. The public Engine signatures and complete returned structures would +remain unchanged. + +The proposed mechanism is ownership, not another arithmetic wrapper: + +- Validate/snapshot a call's allowed immutable operation/weight descriptors + once. Allocate that call's private rows, columns, score triples and output + buffers once. Keep original word/setup rejection order and semantics. +- Traverse the program using the existing arbitrary-size Python integer + primitives and exact division checks. Mutate only privately owned state; + no external row dictionary can alias an internal row after admission. +- Remove repeated whole-row type scans and `PyDict_Copy` on every sparse + addition. Avoid returning a score tuple solely to convert it back to a + Python list at every event. Remove per-event ownership/crossing packets + where a whole method can run inside the owner. +- Keep full signed coefficient and score byte streams and required witness + snapshots. Integrate formatting inside the owned traversal; do not count + the already-tested formatting improvement a second time. +- Materialize the same built-in Fraction boundary values and ordinary output + containers at the same externally observable method boundaries. Retain + peak cuts, strict comparison/tie rules, Pareto order, frame/ownership checks, + all event counts and exact complete hash input. + +Original `coefficients`, `setup`, semantic frame helpers, arbitrary-size integer +operations, required Fraction materialization and final hashing/output remain +real work. Even if some of that work moves into C control, it cannot simply be +subtracted from the bill. The screen deliberately includes the entire method +calls, including these retained costs, to give the route the most generous +possible rejection envelope before implementing anything. + +The unchanged PR5864 Fraction numerical and bookkeeping route would remain a +fresh independently executed comparison. No new integer state, arithmetic +helper, coefficient result, normalization table or answer cache would enter +that route. New source/code bindings would select the candidate explicitly; +`integer_oracle_unchanged=True` would again be false for an implemented owner. + +## Candidate B: C control of Fraction ideal, with unchanged arithmetic + +The potential source boundary is `reference_precision.py:49` `ideal()` and, +only where called from that method, its row `add()` loop. It would leave every +actual Python Fraction operation, constructor call, operand, call order and +exception point unchanged. It could move only traversal/dispatch and private +container bookkeeping to C. For example, it must not eliminate the eager +`F(0)` argument in `dst.get(i, F(0))`, bypass `Fraction.__add__` dispatch with a +private `_add` shortcut, cache `abs(q)` calls, or replace the Fraction norm sum +with integer/rational arithmetic. Those would be different nominations. + +This is weaker headroom than its 12.508-second cumulative profile suggests: +most of that cumulative region consists of the arithmetic the premise requires +retaining. Built-in iteration, dict operations, sum/map, hashing and string +primitives also already have compiled portions. New C-to-Python arithmetic +calls and source/operation-order checks remain payable. There is no credible +current basis for attributing the approximately five required complete seconds +to removable control overhead in this region. + +Under the parent's stated numerical-oracle interpretation, a separately +declared C loop-control implementation could retain unchanged Python Fraction +numerical operations, but its control implementation would still be changed. +It must not be called an unchanged literal Fraction source path. Combining it +with changed integer control cannot silently claim either old control path is +untouched. If the acceptance boundary instead requires the full original +literal Fraction `ideal()` call to remain in the complete qualifier, that call +must execute in addition and its whole cost is paid; the proposed replacement +then does not earn that original call's runtime as a saving. + +For this bounded reassessment, Candidate B is deferred without construction. +Do not enlarge Candidate A's eligible bill by adding the whole Fraction ideal +cumulative time. Do not initiate a separate timer/variant search for Candidate B +because the integer screen disappoints. + +## Complete new validation and cost bill + +A new owner cannot inherit a PASS merely from the return-a-fresh-row prototype. +At minimum its complete candidate must retain/pay the following: + +1. The original PR5864 full qualifier, 118 inherited/native controls, 27 + Observation labels, original 120 differential programs, all actual + 25,984 events / 799 coordinates, ideal/weight/error results, full signed + witnesses, reverse/literal checks and all existing source/integer rejections. + The unchanged four custody checks stay separately registered and must run + fresh, as in the baseline; they do not become a hidden omitted obligation. +2. Current signed row/score/format cases, 8,192-bit integers, exact division + rejection, canonical zero/sign/denominator/order bytes, alias and foreign-type + rejections. Tests remain active in normal and optimized Python processes. +3. New owner lifecycle controls: fresh invocation identity, no cross-call + answers, no private mutable row escape, returned mutation isolation, + aliased input snapshots, empty rows, cancellation/reinsertion ordering, + interrupted/failed run cleanup, closed/reused owner rejection if exposed, + reentry rules and stable-runtime fallback semantics. +4. Every newly moved event-control branch and its original exception order: + INIT/CLEAR/MOVE ownership, COPY preconditions, ADD/SCALE signs and exact + division, rounded residual insertion, earliest strict peak, final-role + tie-breaking, Pareto sorting, every reverse event and every witness snapshot. + Compare complete prefixes on declared fixtures, not selected scores alone. +5. Memory/reference ownership and overflow-safe buffer allocation; full RSS + accounting for owned plans, rows, snapshots and byte buffers. No fixed-width + coefficient shortcut, raised resource limit, or unsampled allocation claim. +6. Exact source/binder/runtime identities on the supported CPython platforms, + fresh code build/link/load, all native bookkeeping, input/output conversion, + serialization, registration, normal/O, read-only export and publication + verification. Compiler-child CPU and fresh controls are part of the bill. + +Candidate B would additionally need source-bound operation-order equivalence +for the original Fraction operations, constructor/default/closure checks, +well-formed ideal-program fixtures beyond error-only random fixtures, and +explicit independent comparison of all ideal outputs and malformed-event +rejections. Any extra original actual ideal run needed to retain the oracle +belongs in its bill. Nothing here prices that cost as zero for admission. + +## Necessary break-even, fixed before the diagnostic + +For each metric independently, let: + +- B be the already chosen frozen current-round baseline median: + wall 34.66178539200337 seconds; CPU 34.47 seconds. +- U be the diagnostic's disjoint union of original selected integer Engine + call intervals across that complete qualifier, including rejected controls + and finite cases actually touched by the proposed boundary. +- R be runtime retained or introduced inside the replacement boundary. +- A be every added outside-boundary cost: source/runtime/owner checks, cold + compiler/link/load, extra finite/independence checks and conversions. +- N be the declared noise requirement. This rejection screen uses the frozen + observed maximum spreads, wall 2.713637237990042 seconds and CPU 2.35 seconds, + plus the original 0.50-second floor. A later candidate still faces its own + complete repeat/noise gate; this diagnostic cannot waive it. + +The necessary complete saving is + +```text +saving = U - R - A +saving >= 0.15 * B +saving > max(0.50 seconds, applicable complete repeat spread) +``` + +A deliberately optimistic necessary screen sets R=A=0. Since a real +replacement necessarily does some positive work, U must strictly exceed +`max(0.15*B, 0.50, frozen_spread)` in **both** wall and CPU to avoid immediate +engineering rejection. Failure in either metric stops this nomination before +construction. This is a necessary screen, not a sufficient construction gate. +Passing leaves R, A and future repeat noise unpriced and does not authorize +another implementation automatically. + +U is a generous observed call-boundary envelope, not a mathematical upper +bound on every machine or future scheduling condition. A one-run rejection is +a predeclared engineering stop for this nomination. It is not a universal +obstruction. This diagnostic is not a replacement performance sample and does +not enter or repair the earlier BCCBBC series. + +## Source-only one-run diagnostic delivered + +File: `integer-owned-screen/diagnostic.py`. +Handoff SHA256: +`4efeb040398c6d5204d552b6211e5a99aa3a3cb156ca422f05fbf0edd58e817b`. + +Proposed parent-owned guarded invocation, from the round directory: + +```sh +python3 integer-owned-screen/diagnostic.py +``` + +The script pins the original PR5864 `full.py` at +`ce6f15ca892db095d4b9f79b58cb3c199b18da341def761c577cc8651abc0cc0`, +retains its existing native Fraction adaptation, and injects only a local +constructor facade at the authenticated original integer-load seam. The loaded +original module, original Engine class/functions/globals and all archive bytes +remain unchanged. All original complete qualifier stdout/receipts and the +existing compiler cost remain. No scientific method is executed a second time +for timing or classification. + +Timers use `perf_counter` and the current process CPU clock directly around +original Engine calls. A depth counter counts only outer intervals in U, +preventing nested double counting. Source inspection says these three original +methods do not recursively call each other; the diagnostic additionally asserts +all captured boundaries are disjoint. It expects ideal=4, error_trace=121, +reverse_all=121, matching the frozen selected family. Metadata classifies +actual-word calls by the original digest, finite fixtures, and modified-word +controls outside the eligible intervals and includes input program lengths. +Returned objects pass through unchanged and callee exceptions are re-raised; +classification has a separate failure record and no scientific acceptance role. + +The script emits 246 per-call boundary records and the fixed zero-cost screen. +It reports current-process CPU inside original integer methods, which spawn no +compiler. The parent's outer GNU time remains responsible for complete process +CPU including the unchanged native compiler children. Extra diagnostic digest, +timing and JSON output overhead is not a potential optimization saving and is +outside U where possible. Some clock-call overhead remains inside the envelope, +making it deliberately generous. The diagnostic's outer duration is not a new +unprofiled performance claim. + +The script performs the same complete frozen qualifier scope as original +PR5864 `full_C.py`, not the longer portable replay-driver command with separate +custody execution. It cannot share prior finite PASS receipts or skip any +scientific check to fit the budget. If the parent's remaining initial/shared +budget cannot fund it, preserve the source unrun; do not rush an alternate +shortened workload or retry automatically. + +## Stop recommendation + +Without this one optional diagnostic, stop: existing evidence does not fund +construction. If its zero-cost ceiling fails either metric, stop this owned +integer nomination and record that bounded reason. If the ceiling passes, +record only that the necessary envelope did not reject it; the current round +still has no priced positive case for the owner, and no Fraction-control +headroom has been established. Do not convert that ambiguity into an endless +sequence of smaller variants, repeated measurements or reopened arithmetic +nominations. Any future construction would require a separately declared, +complete R+A estimate and an affirmative bounded gate. + +This reassessment changes neither the failed primary performance result nor +the separate matrix result. No new optimization has been constructed here. diff --git a/research/c-verification-feasibility/evidence/astra-rational-design.md b/research/c-verification-feasibility/evidence/astra-rational-design.md new file mode 100644 index 0000000000..49867db557 --- /dev/null +++ b/research/c-verification-feasibility/evidence/astra-rational-design.md @@ -0,0 +1,306 @@ +# Bulk rational arithmetic: static design and bounded prototype + +Status: source-only review and prototype, 2026-10-27. No compiler invocation, +module import of this prototype, numerical execution, timing, browser action, +or remote action was performed by this reviewer. The parent owns the sole +serial execution slot and any qualification. Kappa, Work 1/2 mathematics, +feeds and automations remain paused. Synced sources were not modified. + +The narrow row-batch mechanism is technically plausible, but **this nomination +has no credible complete-performance headroom under the required unchanged +literal Python Fraction oracle**. Restoring that oracle costs more in the +retained observation than the entire PR5864 trace this mechanism could remove, +even with zero cost for the new candidate. Finite qualification can establish a +reusable scoped prototype and negative screen; it does not authorize an actual +word audit or a complete rational benchmark in this round. + +## Evidence and source boundaries + +The read-only design inputs were the workspace AGENTS.md, current +VERIFICATION-PERFORMANCE-WORKING-PLAN.md, and +outputs/c-native-opportunities-20261027/OPPORTUNITIES.json. The implementation +was inspected in the frozen package +outputs/fraction-native-cache-20261027/SEALED/research/fraction-native-qualification, +including native_cache.c, fraction_table.py, native_backend.py, slot_binding.py, +entry_parent.py, compact_parent.py, full.py, finite.py, actual_audit.py and +PROOF.md. The literal reference was inspected at +outputs/c-native-opportunities-20261027/source/reference_precision.py. +The instrumented census was read as existing diagnostic evidence, never run. +The upstream predecessor index and old conversations were not read. + +The authoritative public PR5864 pin is +3f15c943e4ad6479f03e674c80fff1269a16ccfe. The parent reports the authenticated +public archive SHA256 as +7b142567acacac5182045bf8daa8780e916661c2cf343dbf81b13c88ead85d64 and the extracted +163-file baseline as outputs/c-verification-all-opportunities-20261027/baseline-public. +That authentication is the parent's evidence; this reviewer did not repeat it. +The local owned C fork starts from the scientifically identical frozen C file. + +The runtime binding initially supports the inspected Linux CPython 3.12 source +/usr/lib/python3.12/fractions.py, SHA256 +cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231. This is a deliberate +narrow source pin. Another supported Python patch build needs its own inspected +binding/qualification; it must not silently broaden this pin. + +## Hotspot selected + +PR5864 native_cache.c:event_apply already batches the sparse row loop, but +executes three PyNumber_InPlaceAdd calls on Fractions for every coefficient. +Its actual trace has 2,579,750 contribution calls. Consequently those three score +lanes account for 7,739,250 Fraction addition sites in that trace. The census +records 13,144,283 Fraction._add calls over the complete profiled qualification, +which also includes other paths and finite tests. These quantities identify a +mechanism; they are not an unprofiled time estimate. + +The selected change keeps each score as an owned numerator/denominator pair of +arbitrary-width Python integers for one ADD/COPY event. It performs the same +ordered lane updates, then materializes the three exact built-in Fractions +before the unchanged outer Python code performs rounded injection, pair capture, +stream serialization, peak comparison and witness copying. The reference records +prefix observations at event boundaries, not after every coefficient. The finite +probe additionally compares every coefficient prefix to expose arithmetic errors. + +The contribution cache, callback on every miss, exact seven-field keys, complete +FIFO order/counters, original source-site indexing, row iteration and row writes +are unchanged. In particular the per-coefficient F(0) construction is retained. +This nomination does not revive the failed direct-add dispatch or constructor +elision nomination. + +## Concrete source-only interface + +Owned files are under outputs/c-verification-all-opportunities-20261027/rational/: + +- native_bulk.c: an owned fork of native_cache.c adding + event.apply_rational(dst, src, scores, authenticated_math_gcd). + The original Event.apply, Cache API, module name _fraction_native and all + inherited controls remain present. +- bulk_fragment.c.txt: the added kernel retained separately for easy review. +- arithmetic_binding.py: source/runtime qualification of bypassed Fraction + operations, fallback closures, owned descriptors, inherited in-place protocol, + attribute setters, finalizer absence and builtin gcd; freshness is checked + before each selected trace. +- bulk_backend.py: a separate derive/install wrapper. It authenticates the same + source seam and preserves the predecessor route for unsupported or changed + domains. It does not patch the literal reference or construct a complete + replacement qualification. +- finite_probe.py: source for bounded finite checks and optional fixed BCCB micro + diagnostic. It does not execute the actual word. + +The parent may stage native_bulk.c as native_cache.c in its owned baseline copy, +update the staged NATIVE-SOURCE.json hash, and invoke finite_probe.py with the +staged package path. native_backend.load supplies the existing cold compilation, +source authentication and load receipt. The probe accepts an optional --micro; +its samples are illustrative kernel observations only. They exclude cold build +from the inner micro interval, so the outer receipt remains necessary. + +No source was imported or compiled by this reviewer. These files are not claimed +to pass even their finite harness until the parent runs and records it. A first +write to the copied C file failed because its copied mode was readonly; only the +new owned copy's user-write bit was added, then the source edit completed. This +was a static file-write failure, not a numerical or compiler failure. + +## Rational representation and proof obligations + +The prototype deliberately implements **general normalized rational pairs**, not +only dyadics. entry_parent.certified_domain accepts arbitrary exact Fraction +weights, and permitted string scalars can contain odd denominators. For example, +1/3 and -5/7 are valid error_trace scalars. The ideal verifier's separate dyadic +constraint does not justify narrowing the public error-trace API or its controls. + +For normalized a=n/d and b=m/e, the kernel computes g=gcd(d,e). If g=1, the +result is (n*e+d*m)/(d*e). Otherwise it computes s=d/g, t=n*(e/g)+m*s, +g2=gcd(t,g), and returns (t/g2)/(s*(e/g2)). An equal-denominator branch computes +(n+m)/d and reduces by gcd(n+m,d). Denominators stay positive and zero reduces +to 0/1. All products, sums, divisions and comparisons use Python integer C API +operations on exact PyLong values; C machine words hold only checked indices +and inherited counters. No int64 approximation, private PyLong digit access, +floating point, machine-word rational denominator or silently truncated exponent +is introduced. Arithmetic order remains coefficient order, with score lanes +0, 1, 2 updated in that order. + +Only the score accumulators use pairs; all cache values and sparse coefficients +remain exact Fraction objects. At each event boundary the kernel allocates an +exact Fraction object and writes its normalized integer slots through the +already authenticated owned member descriptors. This is a new construction +obligation, not justified merely by equal numeric values. Output tree types, +positive canonical denominators, zero representation and signed serialization +must all be checked. Live changes to the original arithmetic or factory select +the predecessor rather than silently bypassing the changed operation. + +A future dyadic specialization could retain (n,k) for n/2^k and align integer +numerators, reducing only at event boundaries. Because denominators are powers +of two, the event denominator can remain the largest encountered power, rather +than a product. This could avoid much gcd work. It requires an explicit proven +dyadic eligibility condition, arbitrary-width numerator handling, bounded +exponent conversion, a general fallback, and exact materialization at every +observed prefix. It is deferred here: it does not remove the oracle-restoration +bill, and no second mechanism or favorable micro sample justifies construction. + +## Literal oracle independence and complete-cost stop + +Retaining exact Fraction output types is not retaining an independent literal +Fraction oracle. The new kernel replaces the additions that PR5864 deliberately +left to Python Fraction. Its output cannot validate itself through another call +to the same new C arithmetic. The independent integer engine is useful additional +cross-checking, but does not meet an explicit requirement for an untouched +literal Python Fraction oracle by itself. + +The admissible strict design for this nomination therefore has three separately +executed paths: untouched literal Fraction, unchanged integer, and new rational +candidate. Mutable inputs, caches, answers and PASS receipts cannot be shared +between those paths. Restoring the literal Fraction error trace is a new full +control cost and belongs in every claimed complete candidate command. An offline +comparison, prior digest, cached expected result or a benchmark B sample cannot +be relabeled as a free live oracle in C. + +The frozen retained observation is: +outputs/fraction-native-cache-20261027/SEALED/research/fraction-native-qualification/ +evidence/runtime/runs/actual-native-apply/stdout.txt. +Its original raw outer receipt is beside it as receipt.json and usage.json. +The producing source is actual_audit.py. It reports 25,984 events, 799 coordinates, +identical complete output digest +954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9, +and these historical, same-audit component observations: + +| Component | Wall seconds | CPU seconds | +| --- | ---: | ---: | +| Untouched original Fraction error trace | 20.534678025986068 | 20.523067174 | +| PR5864 native apply, including cold build | 11.886980237992248 | 11.883082538000005 | + +Grant the rational candidate zero runtime, zero cold build, zero new checks and +zero conversion cost. The most optimistic replacement saving from these retained +components is still: + +- wall: 11.886980237992248 - 20.534678025986068 = **-8.647697787993820 s**; +- CPU: 11.883082538000005 - 20.523067174 = **-8.639984635999995 s**. + +The negative signs mean an added cost. The cold build included in the removed +component makes this screen especially generous to the new candidate. Positive +candidate runtime and required new checks only worsen this historical scenario. +The new 15% complete target requires about 4.915695 seconds wall saving from the +recorded PR5864 median 32.771297 seconds, and 4.911 seconds CPU from 32.74 seconds. +The zero-cost candidate screen is already adverse before seeking that target. + +These are source-pinned historical observations, not fresh measurements, not a +measured lower bound on all future machines, not a sum of profiler cumulative +times, and not a universal impossibility result. They are sufficient to reject +credible headroom for this exact additive restoration design in the current +bounded round. No new actual-word or complete rational run is recommended. +A different ownership/algorithm boundary would require its own explicit contract +and cost screen; calling an optimized path "literal" would not create headroom. + +## Complete added validation bill + +Any later proposal that changes the design enough to reopen the gate must pay +all of the following; none is a deferred free service: + +1. Preserve all 118 adopted native/predecessor controls, four custody controls, + 27 observation controls, the original 120-program differential, six semantic + rejections, three integer rejections, source guards and every original output. +2. Add native rational arithmetic checks covering odd denominators, equal and + coprime denominator branches, negative values, complete cancellation, zero, + large numerators/denominators, repeated hits, FIFO wrap and every counter. +3. Check exact built-in output types and canonical slots at each coefficient + prefix in bounded fixtures and every event prefix; compare full signed + witnesses, tie-breaking, Pareto order, scores, hashes and inputs unchanged. +4. Add arithmetic-source, code-object, closure, defaults, builtin/global, + getter/descriptor and inherited-protocol drift controls, with a pure fallback + decision. Noncanonical manually mutated Fraction slots must not enter the + normalized-pair assumptions. General non-dyadic canonical Fractions must work. +5. Preserve low-level memory safety: strong references, partial initialization, + allocation/error cleanup, original dict iterator mutation errors, score-list + mutation detection, safe callback/reentry handling and no repair of mutated + caller data. Retain all legacy generic callback controls on Event.apply. +6. Independently execute the literal Fraction oracle in the complete command, + compare all 25,984 events/799 coordinates and full output materialization, + retain the unchanged integer path, and charge this new oracle cost. +7. Charge source/runtime binding, input qualification, conversions, per-event + materialization, native bookkeeping, cold compile/link/load, compiler-child + CPU and peak process-group RSS. Only immutable loaded code may be reused + inside a process; never reuse mutable answers or receipts across backends. +8. Complete normal/-O, readonly Git-free replay, source bytes/modes, committed + inventory, metadata/source pins, final-head CI and publication/handoff checks + if and only if a complete positive screen actually reopens construction. + +The finite probe deliberately addresses a bounded subset: 165 coefficient +prefix comparisons (five scalar choices, 33 prefixes each), 13 complete event +prefix comparisons, source/fallback controls, generic non-dyadic arithmetic, +mutation checks and a fixed optional BCCB micro. It does not assert that this is +the complete added validation union or discharge item 6. + +## Static safety limits and next decision + +Event.apply_rational is a source-qualified packet interface. Arbitrary callbacks +can observe intermediate score-list values under the old Event.apply API; +batching intentionally delays those values until the event boundary. The new +method therefore does not claim arbitrary callback observational equivalence. +The wrapper admits only the authenticated pure callback, and the legacy method +retains its original public callback behavior and tests. New direct hostile +callback probes test safe rejection/cleanup, not a broader semantic theorem. + +Scores and source entries are held strongly across callback activity. Score-list +size and identities are checked after the callback and before publishing. Source +iteration retains the original Python items iterator. A failure attempts to +publish completed exact score updates only when the caller list still has its +original identity contents; it never resizes or repairs a mutated list. Allocation +failure during this recovery is not claimed to preserve the exact allocator-level +partial state of the original sequence; the original exception is retained. +Successful stable-input execution is the arithmetic equivalence domain. Full OOM +fault-injection/lifetime review remains an added construction obligation if the +scope reopens. + +The initial binder is deliberately source-pinned and conservative; a rejection +is a fallback, not an excuse to relax it. Live runtime/input mutation during a +trace remains excluded by the inherited stable-input/runtime premise, while +explicit low-level mutation checks continue to protect memory safety. This is +ordinary CPython 3.12 with the GIL, not abi3, free-threaded or subinterpreter support. + +The parent's chosen next step is finite qualification plus the fixed micro only, +if useful as a scoped negative artifact. Every failure and correction must remain. +No actual-word audit or full rational qualification follows merely because the +micro improves. The result to publish, if finite qualification succeeds, is a +reusable exact batching prototype and an explicit oracle-cost engineering stop, +with no new complete speedup or global-optimality claim. + +## Parent-run bounded v1 receipt + +After this source-only implementation, the parent executed its frozen +stages/rational-v1/run_finite.py in the serial guard. I inspected the retained +stdout and receipt at outputs/c-verification-all-opportunities-20261027/runtime/ +runs/rational-finite-micro-v1/. They record exit 0, no stderr, unchanged staged +source bytes/modes, 178 comparisons and 19 added named controls. Outer wall was +1.3062437750049867 seconds; recorded user+system CPU was 1.24 seconds; sampled +process-group RSS was 79,007,744 bytes. The extended C source SHA256 is +4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae. + +The single fixed BCCB micro retained all four samples: + +| Sample | Wall seconds | CPU seconds | +| --- | ---: | ---: | +| B1 | 0.06855765299405903 | 0.06854380399999993 | +| C1 | 0.06020033897948451 | 0.060203247000000015 | +| C2 | 0.04673448100220412 | 0.046702148000000054 | +| B2 | 0.07398301700595766 | 0.073957787 | + +Each sample has 16,384 contribution calls, 16,352 hits and 32 misses, with no +FIFO eviction. This deliberately small repeated fixture is not an actual-word +cost model. It excludes cold compilation from its inner interval and does not +include a complete restored literal oracle. The smaller first-pair gross micro +improvement cannot overcome the separately identified oracle cost. No actual +word or complete rational replay was performed. + +The reviewer subsequently made conservative binding-only source edits for an +exact expected Fraction MRO, finalizer absence/freshness, and predecessor factory +identity. Those final Python bytes must be matched to the parent's frozen stage +before extending the v1 pass to them. The current owned sources are: + +- arithmetic_binding.py SHA256 + 2115d639fac0262352a3091cc1fcce2c9aefd892992b92e5740ffd173330fdbd; +- bulk_backend.py SHA256 + 9b440bd3d921bb06ff5035cb8ae85053f3e0b6880b6ec37d364b55da012449ca; +- finite_probe.py SHA256 + 362bcd2bc967ed223ed303835048d1c51697f0293cfc83cffd4a9e02e2efcccd. + +The C source is unchanged from the passed v1 receipt. A final finite-only replay +of changed Python binding bytes is appropriate; another micro sequence is not +needed to preserve the negative engineering decision. diff --git a/research/c-verification-feasibility/evidence/drafts/arithmetic_binding-v1.py.txt b/research/c-verification-feasibility/evidence/drafts/arithmetic_binding-v1.py.txt new file mode 100644 index 0000000000..1c857e029c --- /dev/null +++ b/research/c-verification-feasibility/evidence/drafts/arithmetic_binding-v1.py.txt @@ -0,0 +1,114 @@ +"""Source-only prototype: authenticate operations bypassed by score batching. + +A compiled source tree is inspected as data; the independent Fraction oracle +is never patched. The first supported runtime is the pinned host CPython3.12. +""" +import builtins +from fractions import Fraction as F +import fractions +from hashlib import sha256 +import math +import operator +from pathlib import Path +import sys +from types import CodeType, FunctionType, BuiltinFunctionType +import slot_binding + +SOURCE_SHA256='cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231' +DIRECT=('_add','_sub','_mul','__abs__','__bool__','__new__') +WRAPPED=(('__add__','_add','add','forward'),('__radd__','_add','add','reverse'), + ('__sub__','_sub','sub','forward'),('__rsub__','_sub','sub','reverse'), + ('__mul__','_mul','mul','forward'),('__rmul__','_mul','mul','reverse')) +BUILTINS=('isinstance','type','int','float','complex','super','abs') +_expected=None + +def _shape(code): + return (code.co_code,tuple(_shape(x) if type(x) is CodeType else x for x in code.co_consts), + code.co_names,code.co_varnames,code.co_freevars,code.co_cellvars, + code.co_argcount,code.co_posonlyargcount,code.co_kwonlyargcount, + code.co_flags,code.co_exceptiontable) + +def _codes(): + global _expected + if _expected is not None:return _expected + path=Path(fractions.__file__) + raw=path.read_bytes() + if path.is_symlink() or sha256(raw).hexdigest()!=SOURCE_SHA256:raise ValueError('pinned Fraction source') + compiled=compile(raw,str(path),'exec',optimize=sys.flags.optimize) + result={} + def visit(code): + result[code.co_qualname]=code + for value in code.co_consts: + if type(value) is CodeType:visit(value) + visit(compiled) + _expected=result + return result + +def _function(fn,qualname): + if type(fn) is not FunctionType or fn.__kwdefaults__ is not None: + raise ValueError('ordinary arithmetic function') + defaults=fn.__defaults__ + if qualname=='Fraction.__new__': + if type(defaults) is not tuple or len(defaults)!=2 or type(defaults[0]) is not int or defaults[0]!=0 or defaults[1] is not None:raise ValueError('arithmetic defaults') + elif defaults is not None:raise ValueError('arithmetic defaults') + if _shape(fn.__code__)!=_shape(_codes()[qualname]):raise ValueError('arithmetic executable shape') + if fn.__globals__ is not fractions.__dict__:raise ValueError('arithmetic globals owner') + if type(fn.__builtins__) is not dict:raise ValueError('arithmetic builtins mapping') + for name in BUILTINS: + if fn.__builtins__.get(name) is not getattr(builtins,name):raise ValueError('arithmetic builtins identity') + return fn + +def _snapshot(): + ns=type.__getattribute__(F,'__dict__') + out=[F,fractions.Fraction,math.gcd,operator.add,operator.sub,operator.mul] + for name in DIRECT+('_from_coprime_ints',)+tuple(x[0] for x in WRAPPED): + raw=ns.get(name);fn=raw.__func__ if type(raw) in (classmethod,staticmethod) else raw + out.append(raw) + if type(fn) is FunctionType: + out.extend((fn,fn.__code__,fn.__defaults__,fn.__kwdefaults__,fn.__closure__)) + if fn.__closure__: + for cell in fn.__closure__:out.extend((cell,cell.cell_contents)) + out.extend(fn.__globals__.get(x) for x in ('Fraction','math','numbers','operator')) + out.extend(fn.__builtins__.get(x) for x in BUILTINS) + for cls in F.__mro__: + ns=type.__getattribute__(cls,'__dict__') + out.extend((cls,ns.get('__iadd__'),ns.get('__setattr__'),ns.get('__delattr__'))) + return tuple(out) + +def bind(): + try: + if sys.implementation.name!='cpython' or sys.version_info[:2]!=(3,12):return None + slots=slot_binding.bind(strict=True) + ns=type.__getattribute__(F,'__dict__') + owned_slots=ns.get('__slots__') + if fractions.Fraction is not F or type(owned_slots) is not tuple or len(owned_slots)!=2 or any(type(x) is not str for x in owned_slots) or owned_slots!=('_numerator','_denominator'):return None + if fractions.__dict__.get('math') is not math or fractions.__dict__.get('operator') is not operator:return None + if type(math.gcd) is not BuiltinFunctionType or math.gcd.__name__!='gcd' or math.gcd.__self__ is not math:return None + for name in ('add','sub','mul'): + fn=getattr(operator,name) + if type(fn) is not BuiltinFunctionType or fn.__name__!=name or fn.__module__!='_operator':return None + for name in DIRECT: + raw=ns.get(name) + fn=_function(raw.__func__ if type(raw) is staticmethod else raw,'Fraction.'+name) + if fn.__closure__ is not None and not (fn.__code__.co_freevars==('__class__',) and len(fn.__closure__)==1 and fn.__closure__[0].cell_contents is F):return None + factory=ns.get('_from_coprime_ints') + if type(factory) is not classmethod:return None + fn=_function(factory.__func__,'Fraction._from_coprime_ints') + if fn.__closure__ is not None and not (fn.__code__.co_freevars==('__class__',) and len(fn.__closure__)==1 and fn.__closure__[0].cell_contents is F):return None + for name,mono,op,direction in WRAPPED: + fn=_function(ns.get(name),'Fraction._operator_fallbacks..'+direction) + closure=dict(zip(fn.__code__.co_freevars,(c.cell_contents for c in fn.__closure__ or ()))) + if len(closure)!=2 or closure.get('fallback_operator') is not getattr(operator,op) or closure.get('monomorphic_operator') is not ns[mono]:return None + for cls in F.__mro__: + raw=type.__getattribute__(cls,'__dict__') + if '__iadd__' in raw:return None + if '__setattr__' in raw and raw['__setattr__'] is not object.__dict__['__setattr__']:return None + if '__delattr__' in raw and raw['__delattr__'] is not object.__dict__['__delattr__']:return None + return slots,_snapshot(),math.gcd + except (AttributeError,KeyError,TypeError,ValueError,OSError):return None + +def fresh(token): + if token is None or not slot_binding.fresh(token[0]):return False + try:now=_snapshot() + except (AttributeError,ValueError,TypeError):return False + return len(now)==len(token[1]) and all(x is y for x,y in zip(now,token[1])) diff --git a/research/c-verification-feasibility/evidence/drafts/bulk_fragment.c.txt b/research/c-verification-feasibility/evidence/drafts/bulk_fragment.c.txt new file mode 100644 index 0000000000..fe169ef62e --- /dev/null +++ b/research/c-verification-feasibility/evidence/drafts/bulk_fragment.c.txt @@ -0,0 +1,160 @@ +/* Owned extension: normalized, arbitrary-width score accumulators. + * Preconditions are established by arithmetic_binding.py and the wrapper. + * The legacy apply() method and its generic callback semantics are unchanged. + */ +typedef struct { PyObject *n, *d; } Rational; +static void rational_clear(Rational *x) { Py_CLEAR(x->n); Py_CLEAR(x->d); } +static int rational_read(Cache *s, PyObject *f, Rational *x, PyObject *zero) { + if(!Py_IS_TYPE(f,(PyTypeObject *)s->fraction)) { + PyErr_SetString(PyExc_TypeError,"exact Fraction score/increment");return -1; + } + x->n=member(s->num,f,s->fraction); + if(!x->n)return -1; + x->d=member(s->den,f,s->fraction); + if(!x->d)return -1; + if(!PyLong_CheckExact(x->n)||!PyLong_CheckExact(x->d)) { + PyErr_SetString(PyExc_TypeError,"exact integer rational slots");return -1; + } + int positive=PyObject_RichCompareBool(x->d,zero,Py_GT); + if(positive<0)return -1; + if(!positive){PyErr_SetString(PyExc_ValueError,"positive rational denominator");return -1;} + return 0; +} +static PyObject *rational_gcd(PyObject *gcd,PyObject *a,PyObject *b,PyObject *zero) { + PyObject *g=PyObject_CallFunctionObjArgs(gcd,a,b,NULL); + if(!g)return NULL; + if(!PyLong_CheckExact(g)){Py_DECREF(g);PyErr_SetString(PyExc_TypeError,"exact gcd result");return NULL;} + int positive=PyObject_RichCompareBool(g,zero,Py_GT); + if(positive<=0){Py_DECREF(g);if(!PyErr_Occurred())PyErr_SetString(PyExc_ValueError,"positive gcd result");return NULL;} + return g; +} +static int rational_add(Rational *a,const Rational *b,PyObject *gcd,PyObject *zero,PyObject *one) { + PyObject *g=NULL,*s=NULL,*u=NULL,*v=NULL,*t=NULL,*g2=NULL,*nn=NULL,*dd=NULL; + int equal=PyObject_RichCompareBool(a->d,b->d,Py_EQ); + if(equal<0)goto fail; + if(equal){ + t=PyNumber_Add(a->n,b->n);if(!t)goto fail; + g2=rational_gcd(gcd,t,a->d,zero);if(!g2)goto fail; + int unit=PyObject_RichCompareBool(g2,one,Py_EQ);if(unit<0)goto fail; + if(unit){nn=Py_NewRef(t);dd=Py_NewRef(a->d);} + else{nn=PyNumber_FloorDivide(t,g2);if(!nn)goto fail;dd=PyNumber_FloorDivide(a->d,g2);if(!dd)goto fail;} + }else{ + g=rational_gcd(gcd,a->d,b->d,zero);if(!g)goto fail; + int unit=PyObject_RichCompareBool(g,one,Py_EQ);if(unit<0)goto fail; + if(unit){ + u=PyNumber_Multiply(a->n,b->d);if(!u)goto fail; + v=PyNumber_Multiply(a->d,b->n);if(!v)goto fail; + nn=PyNumber_Add(u,v);if(!nn)goto fail; + dd=PyNumber_Multiply(a->d,b->d);if(!dd)goto fail; + }else{ + s=PyNumber_FloorDivide(a->d,g);if(!s)goto fail; + u=PyNumber_FloorDivide(b->d,g);if(!u)goto fail; + v=PyNumber_Multiply(a->n,u);if(!v)goto fail; + Py_CLEAR(u);u=PyNumber_Multiply(b->n,s);if(!u)goto fail; + t=PyNumber_Add(v,u);if(!t)goto fail; + g2=rational_gcd(gcd,t,g,zero);if(!g2)goto fail; + unit=PyObject_RichCompareBool(g2,one,Py_EQ);if(unit<0)goto fail; + if(unit){nn=Py_NewRef(t);dd=PyNumber_Multiply(s,b->d);if(!dd)goto fail;} + else{ + nn=PyNumber_FloorDivide(t,g2);if(!nn)goto fail; + Py_CLEAR(u);u=PyNumber_FloorDivide(b->d,g2);if(!u)goto fail; + dd=PyNumber_Multiply(s,u);if(!dd)goto fail; + } + } + } + Py_SETREF(a->n,nn);nn=NULL;Py_SETREF(a->d,dd);dd=NULL; + Py_XDECREF(g);Py_XDECREF(s);Py_XDECREF(u);Py_XDECREF(v);Py_XDECREF(t);Py_XDECREF(g2); + return 0; +fail: + Py_XDECREF(g);Py_XDECREF(s);Py_XDECREF(u);Py_XDECREF(v);Py_XDECREF(t);Py_XDECREF(g2);Py_XDECREF(nn);Py_XDECREF(dd); + return -1; +} +static PyObject *rational_fraction(Cache *s,const Rational *x) { + /* The wrapper binds exact owned slot descriptors and object allocation. + No PyLong internals, machine-word truncation or foreign Fraction type. */ + if(!Py_TYPE(s->num)->tp_descr_set||!Py_TYPE(s->den)->tp_descr_set){ + PyErr_SetString(PyExc_TypeError,"writable owned Fraction slots");return NULL; + } + PyObject *f=PyType_GenericAlloc((PyTypeObject *)s->fraction,0); + if(!f)return NULL; + if(Py_TYPE(s->num)->tp_descr_set(s->num,f,x->n)<0||Py_TYPE(s->den)->tp_descr_set(s->den,f,x->d)<0){Py_DECREF(f);return NULL;} + return f; +} +static int rational_scores_unchanged(PyObject *scores,PyObject **initial) { + if(PyList_GET_SIZE(scores)!=3){PyErr_SetString(PyExc_IndexError,"score list changed during rational apply");return -1;} + for(int k=0;k<3;k++)if(PyList_GET_ITEM(scores,k)!=initial[k]){ + PyErr_SetString(PyExc_RuntimeError,"score value changed during rational apply");return -1; + } + return 0; +} +static int rational_publish(Cache *s,PyObject *scores,PyObject **initial,Rational *acc) { + PyObject *out[3]={NULL,NULL,NULL}; + if(rational_scores_unchanged(scores,initial)<0)return -1; + for(int k=0;k<3;k++){out[k]=rational_fraction(s,&acc[k]);if(!out[k])goto fail;} + if(rational_scores_unchanged(scores,initial)<0)goto fail; + for(int k=0;k<3;k++){if(PyList_SetItem(scores,k,out[k])<0){out[k]=NULL;goto fail;}out[k]=NULL;} + return 0; +fail:for(int k=0;k<3;k++)Py_XDECREF(out[k]);return -1; +} +static PyObject *event_apply_rational(Event *e,PyObject *args) { + PyObject *dst,*src,*scores,*gcd; + if(!PyArg_UnpackTuple(args,"apply_rational",4,4,&dst,&src,&scores,&gcd))return NULL; + if(!PyDict_CheckExact(dst)||!PyDict_CheckExact(src)||dst==src||!PyList_CheckExact(scores)||PyList_GET_SIZE(scores)!=3||!PyCFunction_Check(gcd)){ + PyErr_SetString(PyExc_TypeError,"distinct exact rows, three scores, builtin gcd");return NULL; + } + if(begin_event(e)<0)return NULL; + Cache *s=e->cache; + Rational acc[3]={{NULL,NULL},{NULL,NULL},{NULL,NULL}}; + Rational inc={NULL,NULL}; + PyObject *initial[3]={NULL,NULL,NULL},*pair=NULL,*result=NULL,*iterator=NULL; + PyObject *zero=PyLong_FromLong(0),*one=PyLong_FromLong(1); + int accumulated=0,ready=0; + if(!zero||!one)goto fail; + for(int k=0;k<3;k++){ + initial[k]=Py_NewRef(PyList_GET_ITEM(scores,k)); + if(rational_read(s,initial[k],&acc[k],zero)<0)goto fail; + } + ready=1; + PyObject *view=PyObject_CallMethod(src,"items",NULL); + iterator=view?PyObject_GetIter(view):NULL;Py_XDECREF(view); + if(!iterator)goto fail; + while((pair=PyIter_Next(iterator))){ + if(!PyTuple_CheckExact(pair)||PyTuple_GET_SIZE(pair)!=2){PyErr_SetString(PyExc_TypeError,"dict item pair");goto fail;} + PyObject *index=PyTuple_GET_ITEM(pair,0),*value=PyTuple_GET_ITEM(pair,1); + if(!PyLong_CheckExact(index)){PyErr_SetString(PyExc_TypeError,"integer source site");goto fail;} + Py_ssize_t i=PyLong_AsSsize_t(index);if(PyErr_Occurred())goto fail; + /* Retain the literal per-coefficient Fraction(0) construction. */ + PyObject *z=PyObject_CallOneArg(s->fraction,zero);if(!z)goto fail; + PyObject *old=PyDict_GetItemWithError(dst,index); + if(old){Py_INCREF(old);Py_DECREF(z);}else if(PyErr_Occurred()){Py_DECREF(z);goto fail;}else old=z; + result=contribution(e,old,value,i);Py_DECREF(old);if(!result)goto fail; + if(rational_scores_unchanged(scores,initial)<0)goto fail; + for(int k=0;k<3;k++){ + if(rational_read(s,PyTuple_GET_ITEM(result,k+1),&inc,zero)<0)goto fail; + if(rational_add(&acc[k],&inc,gcd,zero,one)<0)goto fail; + rational_clear(&inc);accumulated=1; + } + int truth=PyObject_IsTrue(PyTuple_GET_ITEM(result,0));if(truth<0)goto fail; + if(truth){if(PyDict_SetItem(dst,index,PyTuple_GET_ITEM(result,0))<0)goto fail;} + else{ + PyObject *present=PyDict_GetItemWithError(dst,index); + if(present){if(PyDict_DelItem(dst,index)<0)goto fail;} + else if(PyErr_Occurred())goto fail; + } + Py_CLEAR(result);Py_CLEAR(pair); + } + if(PyErr_Occurred())goto fail; + if(accumulated&&rational_publish(s,scores,initial,acc)<0)goto fail; + for(int k=0;k<3;k++){rational_clear(&acc[k]);Py_DECREF(initial[k]);} + Py_DECREF(iterator);Py_DECREF(zero);Py_DECREF(one);s->busy=0;Py_RETURN_NONE; +fail:{ + PyObject *error=PyErr_GetRaisedException(); + /* Publish completed exact additions on an ordinary failure where safe. + A mutated caller list is never repaired, resized or silently ignored. */ + if(ready&&accumulated){if(rational_publish(s,scores,initial,acc)<0)PyErr_Clear();} + rational_clear(&inc); + for(int k=0;k<3;k++){rational_clear(&acc[k]);Py_XDECREF(initial[k]);} + Py_XDECREF(pair);Py_XDECREF(result);Py_XDECREF(iterator);Py_XDECREF(zero);Py_XDECREF(one);s->busy=0; + if(error)PyErr_SetRaisedException(error);else PyErr_SetString(PyExc_RuntimeError,"rational apply failed without exception"); + return NULL; +}} diff --git a/research/c-verification-feasibility/evidence/publication/CI-FAILED-5908-40505352497.json b/research/c-verification-feasibility/evidence/publication/CI-FAILED-5908-40505352497.json new file mode 100644 index 0000000000..2b1d39f438 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/CI-FAILED-5908-40505352497.json @@ -0,0 +1 @@ +{"headRevision":"ec0afa7633ff72e1c5ea26bb5726ec569a3f59ac","checks":[],"statuses":[],"annotations":[],"hasMore":false,"job":{"id":122195099408,"head_sha":"ec0afa7633ff72e1c5ea26bb5726ec569a3f59ac","name":"replay (research/c-verification-feasibility) / replay (research/c-verification-feasibility)","status":"completed","conclusion":"failure"},"jobs":[],"log":"2026-10-27T12:42:50.2533622Z Current runner version: '2.338.0'\n2026-10-27T12:42:50.2561909Z ##[group]Runner Image Provisioner\n2026-10-27T12:42:50.2562747Z Hosted Compute Agent\n2026-10-27T12:42:50.2563465Z Version: 20261021.618\n2026-10-27T12:42:50.2564135Z Commit: 21505ad2541d5be6135ed84fc33697146cf75b8e\n2026-10-27T12:42:50.2564890Z Build Date: 2026-10-21T00:45:21Z\n2026-10-27T12:42:50.2565587Z Worker ID: {2f8826cf-c71f-418d-97ea-5a0a1836171d}\n2026-10-27T12:42:50.2566295Z Region: eastus\n2026-10-27T12:42:50.2566884Z Cloud: Azure\n2026-10-27T12:42:50.2567447Z ##[endgroup]\n2026-10-27T12:42:50.2569283Z ##[group]Operating System\n2026-10-27T12:42:50.2570318Z Ubuntu\n2026-10-27T12:42:50.2570837Z 24.04.5\n2026-10-27T12:42:50.2571500Z LTS\n2026-10-27T12:42:50.2572012Z ##[endgroup]\n2026-10-27T12:42:50.2572600Z ##[group]Runner Image\n2026-10-27T12:42:50.2573225Z Image: ubuntu-24.04\n2026-10-27T12:42:50.2573788Z Version: 20261012.334.1\n2026-10-27T12:42:50.2575152Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261012.334/images/ubuntu/Ubuntu2404-Readme.md\n2026-10-27T12:42:50.2576743Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261012.334\n2026-10-27T12:42:50.2577765Z ##[endgroup]\n2026-10-27T12:42:50.2578922Z ##[group]GITHUB_TOKEN Permissions\n2026-10-27T12:42:50.2581519Z Contents: read\n2026-10-27T12:42:50.2582148Z Metadata: read\n2026-10-27T12:42:50.2582824Z ##[endgroup]\n2026-10-27T12:42:50.2585204Z Secret source: None\n2026-10-27T12:42:50.2586236Z Cache mode: write\n2026-10-27T12:42:50.2587202Z Prepare workflow directory\n2026-10-27T12:42:50.3122823Z Prepare all required actions\n2026-10-27T12:42:50.3172620Z Getting action download info\n2026-10-27T12:42:50.5340512Z Download action repository 'actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1' (SHA:3d3c42e5aac5ba805825da76410c181273ba90b1)\n2026-10-27T12:42:50.6424100Z Download action repository 'actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97' (SHA:5fda3b95a4ea91299a34e894583c3862153e4b97)\n2026-10-27T12:42:50.8545636Z Uses: CrocSwap/integer-mult-bounds/.github/workflows/research-package-batch.yml@refs/pull/5908/merge (137e1a59ee878b08a45d42bed939b9ba8139bda4)\n2026-10-27T12:42:50.8550713Z ##[group] Inputs\n2026-10-27T12:42:50.8551370Z packages: [\n \"research/c-verification-feasibility\"\n]\n2026-10-27T12:42:50.8552021Z ##[endgroup]\n2026-10-27T12:42:50.8552891Z Complete job name: replay (research/c-verification-feasibility) / replay (research/c-verification-feasibility)\n2026-10-27T12:42:50.9291744Z ##[group]Run actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1\n2026-10-27T12:42:50.9292818Z with:\n2026-10-27T12:42:50.9293254Z fetch-depth: 0\n2026-10-27T12:42:50.9293723Z persist-credentials: false\n2026-10-27T12:42:50.9294282Z repository: CrocSwap/integer-mult-bounds\n2026-10-27T12:42:50.9298089Z token: ***\n2026-10-27T12:42:50.9298520Z ssh-strict: true\n2026-10-27T12:42:50.9298961Z ssh-user: git\n2026-10-27T12:42:50.9299376Z clean: true\n2026-10-27T12:42:50.9300029Z sparse-checkout-cone-mode: true\n2026-10-27T12:42:50.9300575Z fetch-tags: false\n2026-10-27T12:42:50.9301021Z show-progress: true\n2026-10-27T12:42:50.9301466Z lfs: false\n2026-10-27T12:42:50.9301877Z submodules: false\n2026-10-27T12:42:50.9302320Z set-safe-directory: true\n2026-10-27T12:42:50.9302823Z allow-unsafe-pr-checkout: false\n2026-10-27T12:42:50.9303586Z env:\n2026-10-27T12:42:50.9304015Z PYTHONDONTWRITEBYTECODE: 1\n2026-10-27T12:42:50.9304658Z RESEARCH_PACKAGE: research/c-verification-feasibility\n2026-10-27T12:42:50.9305283Z ##[endgroup]\n2026-10-27T12:42:51.0366023Z Syncing repository: CrocSwap/integer-mult-bounds\n2026-10-27T12:42:51.0368110Z ##[group]Getting Git version info\n2026-10-27T12:42:51.0368967Z Working directory is '/home/runner/work/integer-mult-bounds/integer-mult-bounds'\n2026-10-27T12:42:51.0370610Z [command]/usr/bin/git version\n2026-10-27T12:42:51.0447909Z git version 2.55.0\n2026-10-27T12:42:51.0471409Z ##[endgroup]\n2026-10-27T12:42:51.0484712Z Temporarily overriding HOME='/home/runner/work/_temp/a42295f7-5a10-44f6-949c-cb7d0d3713f5' before making global git config changes\n2026-10-27T12:42:51.0487427Z Adding repository directory to the temporary git global config as a safe directory\n2026-10-27T12:42:51.0492500Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/integer-mult-bounds/integer-mult-bounds\n2026-10-27T12:42:51.0548003Z Deleting the contents of '/home/runner/work/integer-mult-bounds/integer-mult-bounds'\n2026-10-27T12:42:51.0552084Z ##[group]Determining repository object format\n2026-10-27T12:42:51.0554274Z ##[endgroup]\n2026-10-27T12:42:51.0555075Z ##[group]Initializing the repository\n2026-10-27T12:42:51.0560543Z [command]/usr/bin/git init /home/runner/work/integer-mult-bounds/integer-mult-bounds\n2026-10-27T12:42:51.0678664Z hint: Using 'master' as the name for the initial branch. This default branch name\n2026-10-27T12:42:51.0681103Z hint: will change to \"main\" in Git 3.0. To configure the initial branch name\n2026-10-27T12:42:51.0682816Z hint: to use in all of your new repositories, which will suppress this warning,\n2026-10-27T12:42:51.0684193Z hint: call:\n2026-10-27T12:42:51.0684850Z hint:\n2026-10-27T12:42:51.0685677Z hint: \tgit config --global init.defaultBranch \n2026-10-27T12:42:51.0686667Z hint:\n2026-10-27T12:42:51.0687614Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and\n2026-10-27T12:42:51.0688734Z hint: 'development'. The just-created branch can be renamed via this command:\n2026-10-27T12:42:51.0689480Z hint:\n2026-10-27T12:42:51.0690430Z hint: \tgit branch -m \n2026-10-27T12:42:51.0691251Z hint:\n2026-10-27T12:42:51.0692345Z hint: Disable this message with \"git config set advice.defaultBranchName false\"\n2026-10-27T12:42:51.0693854Z Initialized empty Git repository in /home/runner/work/integer-mult-bounds/integer-mult-bounds/.git/\n2026-10-27T12:42:51.0695810Z [command]/usr/bin/git remote add origin https://github.com/CrocSwap/integer-mult-bounds\n2026-10-27T12:42:51.0748926Z ##[endgroup]\n2026-10-27T12:42:51.0750433Z ##[group]Disabling automatic garbage collection\n2026-10-27T12:42:51.0752676Z [command]/usr/bin/git config --local gc.auto 0\n2026-10-27T12:42:51.0785333Z ##[endgroup]\n2026-10-27T12:42:51.0786485Z ##[group]Setting up auth\n2026-10-27T12:42:51.0787110Z Removing SSH command configuration\n2026-10-27T12:42:51.0792743Z [command]/usr/bin/git config --local --name-only --get-regexp core\\.sshCommand\n2026-10-27T12:42:51.0827236Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'core\\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\"\n2026-10-27T12:42:51.1192282Z Removing HTTP extra header\n2026-10-27T12:42:51.1199915Z [command]/usr/bin/git config --local --name-only --get-regexp http\\.https\\:\\/\\/github\\.com\\/\\.extraheader\n2026-10-27T12:42:51.1235117Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'http\\.https\\:\\/\\/github\\.com\\/\\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\"\n2026-10-27T12:42:51.1460650Z Removing includeIf entries pointing to credentials config files\n2026-10-27T12:42:51.1465868Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\\.gitdir:\n2026-10-27T12:42:51.1498925Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url\n2026-10-27T12:42:51.1733196Z [command]/usr/bin/git config --file /home/runner/work/_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config http.https://github.com/.extraheader AUTHORIZATION: basic ***\n2026-10-27T12:42:51.1774023Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git.path /home/runner/work/_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:42:51.1806402Z [command]/usr/bin/git config --local includeIf.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git/worktrees/*.path /home/runner/work/_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:42:51.1842317Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git.path /github/runner_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:42:51.1874216Z [command]/usr/bin/git config --local includeIf.gitdir:/github/workspace/.git/worktrees/*.path /github/runner_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:42:51.1904811Z ##[endgroup]\n2026-10-27T12:42:51.1912933Z ##[group]Fetching the repository\n2026-10-27T12:42:51.1915771Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules origin +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/* +137e1a59ee878b08a45d42bed939b9ba8139bda4:refs/remotes/pull/5908/merge\n2026-10-27T12:43:36.0879436Z From https://github.com/CrocSwap/integer-mult-bounds\n2026-10-27T12:43:36.0884409Z * [new branch] complex-local-word-ceiling -> origin/complex-local-word-ceiling\n2026-10-27T12:43:36.0885107Z * [new branch] complex-queue-ceiling-census -> origin/complex-queue-ceiling-census\n2026-10-27T12:43:36.0885851Z * [new branch] current-status-heading-repair -> origin/current-status-heading-repair\n2026-10-27T12:43:36.0886493Z * [new branch] integration/community -> origin/integration/community\n2026-10-27T12:43:36.0887407Z * [new branch] integration/community-followups -> origin/integration/community-followups\n2026-10-27T12:43:36.0888721Z * [new branch] integration/community-round2 -> origin/integration/community-round2\n2026-10-27T12:43:36.0890224Z * [new branch] integration/community-round8-20261009 -> origin/integration/community-round8-20261009\n2026-10-27T12:43:36.0891498Z * [new branch] integration/overnight-20261009 -> origin/integration/overnight-20261009\n2026-10-27T12:43:36.0892593Z * [new branch] integration/pr144-reviewed -> origin/integration/pr144-reviewed\n2026-10-27T12:43:36.0893652Z * [new branch] integration/preserved-research-20261008 -> origin/integration/preserved-research-20261008\n2026-10-27T12:43:36.0894385Z * [new branch] integration/swapnil-review -> origin/integration/swapnil-review\n2026-10-27T12:43:36.0895020Z * [new branch] lean-pending-derivation -> origin/lean-pending-derivation\n2026-10-27T12:43:36.0895528Z * [new branch] main -> origin/main\n2026-10-27T12:43:36.0897050Z * [new branch] pending-range-derivation-pr540 -> origin/pending-range-derivation-pr540\n2026-10-27T12:43:36.0898015Z * [new branch] priority-revision-3 -> origin/priority-revision-3\n2026-10-27T12:43:36.0898581Z * [new branch] release/ternary-30 -> origin/release/ternary-30\n2026-10-27T12:43:36.0899127Z * [new branch] research/complex-seed24 -> origin/research/complex-seed24\n2026-10-27T12:43:36.0900093Z * [new branch] research/decoder-seed43 -> origin/research/decoder-seed43\n2026-10-27T12:43:36.0900823Z * [new branch] research/decoder-seed49 -> origin/research/decoder-seed49\n2026-10-27T12:43:36.0901523Z * [new branch] research/seed51-clean-residual-dilation -> origin/research/seed51-clean-residual-dilation\n2026-10-27T12:43:36.0902320Z * [new branch] research/universal-connector-six-source -> origin/research/universal-connector-six-source\n2026-10-27T12:43:36.0903058Z * [new branch] review/community-round8-20261009 -> origin/review/community-round8-20261009\n2026-10-27T12:43:36.0903753Z * [new branch] review/windows-replay-20261016 -> origin/review/windows-replay-20261016\n2026-10-27T12:43:36.0904331Z * [new branch] stack/pr540-base -> origin/stack/pr540-base\n2026-10-27T12:43:36.0905006Z * [new tag] archive/pr-reconciliation-fourth100-20261013 -> archive/pr-reconciliation-fourth100-20261013\n2026-10-27T12:43:36.0905810Z * [new tag] archive/pr-reconciliation-next100-20261013 -> archive/pr-reconciliation-next100-20261013\n2026-10-27T12:43:36.0906813Z * [new tag] archive/pr-reconciliation-third100-20261013 -> archive/pr-reconciliation-third100-20261013\n2026-10-27T12:43:36.0907831Z * [new tag] archive/pr-reconciliation100-20261013 -> archive/pr-reconciliation100-20261013\n2026-10-27T12:43:36.0908563Z * [new tag] community-kappa-15-2026-10-08 -> community-kappa-15-2026-10-08\n2026-10-27T12:43:36.0909189Z * [new ref] 137e1a59ee878b08a45d42bed939b9ba8139bda4 -> pull/5908/merge\n2026-10-27T12:43:36.0910853Z ##[endgroup]\n2026-10-27T12:43:36.0911320Z ##[group]Determining the checkout info\n2026-10-27T12:43:36.0911814Z ##[endgroup]\n2026-10-27T12:43:36.0912106Z [command]/usr/bin/git sparse-checkout disable\n2026-10-27T12:43:36.0952968Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig\n2026-10-27T12:43:36.0981739Z ##[group]Checking out the ref\n2026-10-27T12:43:36.0985357Z [command]/usr/bin/git checkout --progress --force refs/remotes/pull/5908/merge\n2026-10-27T12:43:37.2644258Z Updating files: 3% (4744/124082)\n2026-10-27T12:43:37.4490479Z Updating files: 4% (4964/124082)\n2026-10-27T12:43:37.7338368Z Updating files: 5% (6205/124082)\n2026-10-27T12:43:37.8951962Z Updating files: 6% (7445/124082)\n2026-10-27T12:43:38.0841505Z Updating files: 7% (8686/124082)\n2026-10-27T12:43:38.2170436Z Updating files: 8% (9927/124082)\n2026-10-27T12:43:38.5138993Z Updating files: 8% (10442/124082)\n2026-10-27T12:43:38.6588480Z Updating files: 9% (11168/124082)\n2026-10-27T12:43:38.9387896Z Updating files: 10% (12409/124082)\n2026-10-27T12:43:39.2176635Z Updating files: 11% (13650/124082)\n2026-10-27T12:43:39.2813455Z Updating files: 11% (14601/124082)\n2026-10-27T12:43:39.4524629Z Updating files: 12% (14890/124082)\n2026-10-27T12:43:39.6023711Z Updating files: 13% (16131/124082)\n2026-10-27T12:43:39.8954776Z Updating files: 14% (17372/124082)\n2026-10-27T12:43:40.1524114Z Updating files: 15% (18613/124082)\n2026-10-27T12:43:40.2169439Z Updating files: 16% (19854/124082)\n2026-10-27T12:43:40.3528831Z Updating files: 16% (20358/124082)\n2026-10-27T12:43:40.6245571Z Updating files: 17% (21094/124082)\n2026-10-27T12:43:40.9991177Z Updating files: 18% (22335/124082)\n2026-10-27T12:43:41.0540895Z Updating files: 19% (23576/124082)\n2026-10-27T12:43:41.1636855Z Updating files: 20% (24817/124082)\n2026-10-27T12:43:41.2168489Z Updating files: 21% (26058/124082)\n2026-10-27T12:43:41.2337512Z Updating files: 21% (27049/124082)\n2026-10-27T12:43:41.5175082Z Updating files: 22% (27299/124082)\n2026-10-27T12:43:41.6619220Z Updating files: 23% (28539/124082)\n2026-10-27T12:43:41.8153690Z Updating files: 24% (29780/124082)\n2026-10-27T12:43:41.9324126Z Updating files: 25% (31021/124082)\n2026-10-27T12:43:42.0384890Z Updating files: 26% (32262/124082)\n2026-10-27T12:43:42.1644494Z Updating files: 27% (33503/124082)\n2026-10-27T12:43:42.2169639Z Updating files: 28% (34743/124082)\n2026-10-27T12:43:42.3151876Z Updating files: 28% (35162/124082)\n2026-10-27T12:43:42.5125501Z Updating files: 29% (35984/124082)\n2026-10-27T12:43:42.8416141Z Updating files: 30% (37225/124082)\n2026-10-27T12:43:43.0506660Z Updating files: 31% (38466/124082)\n2026-10-27T12:43:43.2209458Z Updating files: 32% (39707/124082)\n2026-10-27T12:43:43.4170496Z Updating files: 32% (40746/124082)\n2026-10-27T12:43:43.6226896Z Updating files: 33% (40948/124082)\n2026-10-27T12:43:43.7772863Z Updating files: 34% (42188/124082)\n2026-10-27T12:43:43.9221425Z Updating files: 35% (43429/124082)\n2026-10-27T12:43:44.0923315Z Updating files: 36% (44670/124082)\n2026-10-27T12:43:44.2193137Z Updating files: 37% (45911/124082)\n2026-10-27T12:43:44.4216943Z Updating files: 37% (46334/124082)\n2026-10-27T12:43:44.5501244Z Updating files: 38% (47152/124082)\n2026-10-27T12:43:44.6747321Z Updating files: 39% (48392/124082)\n2026-10-27T12:43:44.8818172Z Updating files: 40% (49633/124082)\n2026-10-27T12:43:45.1060872Z Updating files: 41% (50874/124082)\n2026-10-27T12:43:45.2171825Z Updating files: 42% (52115/124082)\n2026-10-27T12:43:45.5410172Z Updating files: 42% (52652/124082)\n2026-10-27T12:43:45.7717140Z Updating files: 43% (53356/124082)\n2026-10-27T12:43:45.9897688Z Updating files: 44% (54597/124082)\n2026-10-27T12:43:46.1080163Z Updating files: 45% (55837/124082)\n2026-10-27T12:43:46.2375886Z Updating files: 46% (57078/124082)\n2026-10-27T12:43:46.6618692Z Updating files: 46% (57427/124082)\n2026-10-27T12:43:47.0360639Z Updating files: 47% (58319/124082)\n2026-10-27T12:43:47.2169421Z Updating files: 48% (59560/124082)\n2026-10-27T12:43:47.3826349Z Updating files: 48% (60216/124082)\n2026-10-27T12:43:48.2098911Z Updating files: 49% (60801/124082)\n2026-10-27T12:43:48.2179304Z Updating files: 50% (62041/124082)\n2026-10-27T12:43:48.7322879Z Updating files: 50% (62053/124082)\n2026-10-27T12:43:48.8859291Z Updating files: 51% (63282/124082)\n2026-10-27T12:43:49.0110954Z Updating files: 52% (64523/124082)\n2026-10-27T12:43:49.1793046Z Updating files: 53% (65764/124082)\n2026-10-27T12:43:49.2178404Z Updating files: 54% (67005/124082)\n2026-10-27T12:43:49.5884478Z Updating files: 54% (67121/124082)\n2026-10-27T12:43:49.9279856Z Updating files: 55% (68246/124082)\n2026-10-27T12:43:50.0804350Z Updating files: 56% (69486/124082)\n2026-10-27T12:43:50.2170789Z Updating files: 57% (70727/124082)\n2026-10-27T12:43:50.3567665Z Updating files: 57% (71106/124082)\n2026-10-27T12:43:50.5100661Z Updating files: 58% (71968/124082)\n2026-10-27T12:43:50.7166155Z Updating files: 59% (73209/124082)\n2026-10-27T12:43:50.9057202Z Updating files: 60% (74450/124082)\n2026-10-27T12:43:51.2116849Z Updating files: 61% (75691/124082)\n2026-10-27T12:43:51.2171393Z Updating files: 62% (76931/124082)\n2026-10-27T12:43:51.3728776Z Updating files: 62% (76963/124082)\n2026-10-27T12:43:51.5008456Z Updating files: 63% (78172/124082)\n2026-10-27T12:43:51.6664305Z Updating files: 64% (79413/124082)\n2026-10-27T12:43:51.8241826Z Updating files: 65% (80654/124082)\n2026-10-27T12:43:51.9478320Z Updating files: 66% (81895/124082)\n2026-10-27T12:43:52.0716406Z Updating files: 67% (83135/124082)\n2026-10-27T12:43:52.1858787Z Updating files: 68% (84376/124082)\n2026-10-27T12:43:52.2168402Z Updating files: 69% (85617/124082)\n2026-10-27T12:43:52.4249580Z Updating files: 69% (86078/124082)\n2026-10-27T12:43:52.5866411Z Updating files: 70% (86858/124082)\n2026-10-27T12:43:52.9938158Z Updating files: 71% (88099/124082)\n2026-10-27T12:43:53.2186404Z Updating files: 72% (89340/124082)\n2026-10-27T12:43:53.3630668Z Updating files: 72% (89950/124082)\n2026-10-27T12:43:53.5838206Z Updating files: 73% (90580/124082)\n2026-10-27T12:43:53.7643702Z Updating files: 74% (91821/124082)\n2026-10-27T12:43:53.9037325Z Updating files: 75% (93062/124082)\n2026-10-27T12:43:54.0227161Z Updating files: 76% (94303/124082)\n2026-10-27T12:43:54.1347253Z Updating files: 77% (95544/124082)\n2026-10-27T12:43:54.2168199Z Updating files: 78% (96784/124082)\n2026-10-27T12:43:54.2405651Z Updating files: 78% (97791/124082)\n2026-10-27T12:43:54.4140038Z Updating files: 79% (98025/124082)\n2026-10-27T12:43:54.5612319Z Updating files: 80% (99266/124082)\n2026-10-27T12:43:54.7438087Z Updating files: 81% (100507/124082)\n2026-10-27T12:43:54.9176610Z Updating files: 82% (101748/124082)\n2026-10-27T12:43:55.2168976Z Updating files: 83% (102989/124082)\n2026-10-27T12:43:55.2608322Z Updating files: 83% (103853/124082)\n2026-10-27T12:43:55.3964834Z Updating files: 84% (104229/124082)\n2026-10-27T12:43:55.4886860Z Updating files: 85% (105470/124082)\n2026-10-27T12:43:55.6174297Z Updating files: 86% (106711/124082)\n2026-10-27T12:43:55.8270645Z Updating files: 87% (107952/124082)\n2026-10-27T12:43:55.9577931Z Updating files: 88% (109193/124082)\n2026-10-27T12:43:56.2341738Z Updating files: 89% (110433/124082)\n2026-10-27T12:43:56.2459625Z Updating files: 89% (111531/124082)\n2026-10-27T12:43:56.7848369Z Updating files: 90% (111674/124082)\n2026-10-27T12:43:56.9802615Z Updating files: 91% (112915/124082)\n2026-10-27T12:43:57.1574935Z Updating files: 92% (114156/124082)\n2026-10-27T12:43:57.2167684Z Updating files: 93% (115397/124082)\n2026-10-27T12:43:57.4138117Z Updating files: 93% (115665/124082)\n2026-10-27T12:43:58.2196066Z Updating files: 94% (116638/124082)\n2026-10-27T12:43:58.2561489Z Updating files: 94% (117774/124082)\n2026-10-27T12:43:58.7017768Z Updating files: 95% (117878/124082)\n2026-10-27T12:43:59.0952205Z Updating files: 96% (119119/124082)\n2026-10-27T12:43:59.2168640Z Updating files: 97% (120360/124082)\n2026-10-27T12:43:59.2341102Z Updating files: 97% (121404/124082)\n2026-10-27T12:43:59.3476450Z Updating files: 98% (121601/124082)\n2026-10-27T12:43:59.4942165Z Updating files: 99% (122842/124082)\n2026-10-27T12:43:59.4942711Z Updating files: 100% (124082/124082)\n2026-10-27T12:43:59.4943128Z Updating files: 100% (124082/124082), done.\n2026-10-27T12:43:59.6378956Z Note: switching to 'refs/remotes/pull/5908/merge'.\n2026-10-27T12:43:59.6380018Z \n2026-10-27T12:43:59.6380384Z You are in 'detached HEAD' state. You can look around, make experimental\n2026-10-27T12:43:59.6381205Z changes and commit them, and you can discard any commits you make in this\n2026-10-27T12:43:59.6381988Z state without impacting any branches by switching back to a branch.\n2026-10-27T12:43:59.6382508Z \n2026-10-27T12:43:59.6382824Z If you want to create a new branch to retain commits you create, you may\n2026-10-27T12:43:59.6383586Z do so (now or later) by using -c with the switch command. Example:\n2026-10-27T12:43:59.6384027Z \n2026-10-27T12:43:59.6384210Z git switch -c \n2026-10-27T12:43:59.6384499Z \n2026-10-27T12:43:59.6384672Z Or undo this operation with:\n2026-10-27T12:43:59.6384958Z \n2026-10-27T12:43:59.6385107Z git switch -\n2026-10-27T12:43:59.6385309Z \n2026-10-27T12:43:59.6385675Z Turn off this advice by setting config variable advice.detachedHead to false\n2026-10-27T12:43:59.6386211Z \n2026-10-27T12:43:59.6386831Z HEAD is now at 137e1a59e Merge ec0afa7633ff72e1c5ea26bb5726ec569a3f59ac into de5ec2e7a6074068452f45b1a191b5c72832df4a\n2026-10-27T12:43:59.6712730Z ##[endgroup]\n2026-10-27T12:43:59.6755749Z [command]/usr/bin/git log -1 --format=%H\n2026-10-27T12:43:59.6782000Z 137e1a59ee878b08a45d42bed939b9ba8139bda4\n2026-10-27T12:43:59.6791998Z ##[group]Removing auth\n2026-10-27T12:43:59.6792446Z Removing SSH command configuration\n2026-10-27T12:43:59.6796843Z [command]/usr/bin/git config --local --name-only --get-regexp core\\.sshCommand\n2026-10-27T12:43:59.6828474Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'core\\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\"\n2026-10-27T12:43:59.7154064Z Removing HTTP extra header\n2026-10-27T12:43:59.7157790Z [command]/usr/bin/git config --local --name-only --get-regexp http\\.https\\:\\/\\/github\\.com\\/\\.extraheader\n2026-10-27T12:43:59.7192137Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'http\\.https\\:\\/\\/github\\.com\\/\\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\"\n2026-10-27T12:43:59.7516762Z Removing includeIf entries pointing to credentials config files\n2026-10-27T12:43:59.7521025Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\\.gitdir:\n2026-10-27T12:43:59.7575381Z includeif.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git.path\n2026-10-27T12:43:59.7576577Z includeif.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git/worktrees/*.path\n2026-10-27T12:43:59.7577496Z includeif.gitdir:/github/workspace/.git.path\n2026-10-27T12:43:59.7578088Z includeif.gitdir:/github/workspace/.git/worktrees/*.path\n2026-10-27T12:43:59.7584283Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git.path\n2026-10-27T12:43:59.7607055Z /home/runner/work/_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:43:59.7617838Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git.path \\/home\\/runner\\/work\\/_temp\\/git\\-credentials\\-79faf164\\-9762\\-4e67\\-8ef7\\-5995b77b3024\\.config\n2026-10-27T12:43:59.7651372Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git/worktrees/*.path\n2026-10-27T12:43:59.7673222Z /home/runner/work/_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:43:59.7685580Z [command]/usr/bin/git config --local --unset includeif.gitdir:/home/runner/work/integer-mult-bounds/integer-mult-bounds/.git/worktrees/*.path \\/home\\/runner\\/work\\/_temp\\/git\\-credentials\\-79faf164\\-9762\\-4e67\\-8ef7\\-5995b77b3024\\.config\n2026-10-27T12:43:59.7716455Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git.path\n2026-10-27T12:43:59.7743342Z /github/runner_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:43:59.7749251Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git.path \\/github\\/runner_temp\\/git\\-credentials\\-79faf164\\-9762\\-4e67\\-8ef7\\-5995b77b3024\\.config\n2026-10-27T12:43:59.7781702Z [command]/usr/bin/git config --local --get-all includeif.gitdir:/github/workspace/.git/worktrees/*.path\n2026-10-27T12:43:59.7803955Z /github/runner_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config\n2026-10-27T12:43:59.7811837Z [command]/usr/bin/git config --local --unset includeif.gitdir:/github/workspace/.git/worktrees/*.path \\/github\\/runner_temp\\/git\\-credentials\\-79faf164\\-9762\\-4e67\\-8ef7\\-5995b77b3024\\.config\n2026-10-27T12:43:59.7842209Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url\n2026-10-27T12:43:59.8161843Z Removing credentials config '/home/runner/work/_temp/git-credentials-79faf164-9762-4e67-8ef7-5995b77b3024.config'\n2026-10-27T12:43:59.8173115Z ##[endgroup]\n2026-10-27T12:43:59.8417724Z ##[group]Run actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97\n2026-10-27T12:43:59.8418141Z with:\n2026-10-27T12:43:59.8418343Z python-version: 3.12\n2026-10-27T12:43:59.8418567Z check-latest: false\n2026-10-27T12:43:59.8421364Z token: ***\n2026-10-27T12:43:59.8421604Z update-environment: true\n2026-10-27T12:43:59.8421858Z allow-prereleases: false\n2026-10-27T12:43:59.8422099Z freethreaded: false\n2026-10-27T12:43:59.8422308Z env:\n2026-10-27T12:43:59.8422506Z PYTHONDONTWRITEBYTECODE: 1\n2026-10-27T12:43:59.8422810Z RESEARCH_PACKAGE: research/c-verification-feasibility\n2026-10-27T12:43:59.8423126Z ##[endgroup]\n2026-10-27T12:43:59.9608635Z ##[group]Installed versions\n2026-10-27T12:43:59.9699134Z Successfully set up CPython (3.12.15)\n2026-10-27T12:43:59.9700056Z ##[endgroup]\n2026-10-27T12:43:59.9815848Z ##[group]Run python -B scripts/research_package.py --package \"$RESEARCH_PACKAGE\" --install-deps\n2026-10-27T12:43:59.9816626Z \u001b[36;1mpython -B scripts/research_package.py --package \"$RESEARCH_PACKAGE\" --install-deps\u001b[0m\n2026-10-27T12:44:00.0148786Z shell: /usr/bin/bash -e {0}\n2026-10-27T12:44:00.0149065Z env:\n2026-10-27T12:44:00.0149287Z PYTHONDONTWRITEBYTECODE: 1\n2026-10-27T12:44:00.0149965Z RESEARCH_PACKAGE: research/c-verification-feasibility\n2026-10-27T12:44:00.0150398Z pythonLocation: /opt/hostedtoolcache/Python/3.12.15/x64\n2026-10-27T12:44:00.0150868Z PKG_CONFIG_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib/pkgconfig\n2026-10-27T12:44:00.0151327Z Python_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64\n2026-10-27T12:44:00.0151721Z Python2_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64\n2026-10-27T12:44:00.0152118Z Python3_ROOT_DIR: /opt/hostedtoolcache/Python/3.12.15/x64\n2026-10-27T12:44:00.0152544Z LD_LIBRARY_PATH: /opt/hostedtoolcache/Python/3.12.15/x64/lib\n2026-10-27T12:44:00.0152876Z ##[endgroup]\n2026-10-27T12:44:01.1605765Z CHECK Fresh scoped baseline controls; existing compiler and CPython3.12 headers required; no install or full performance replay.\n2026-10-27T12:44:05.8364463Z PASS_PRECISION_LINUX_SOURCE_CONTROLS {\"contract\": \"declared contract edits\", \"declared_edit\": \"unique backend seam\", \"inner_archive\": \"source hash\", \"official_export_byte\": \"Exact PR5831 bundle\"}\n2026-10-27T12:44:05.8371239Z {\"all_complete_values_and_types_equal\": true, \"cases\": 241, \"controls\": [\"returned-mutation-isolated\", \"source-drift\", \"Fraction-type-drift\", \"module-byte-drift\", \"live-code-drift\", \"nested-live-code-drift\", \"omitted-witness\", \"omitted-rounded-sites\", \"wrong-coefficient\", \"wrong-weighted-increment\", \"bad-role\", \"bad-scalar\", \"missing-weight\", \"restore-success\", \"restore-exception\", \"fresh-derivation\", \"key-field-0\", \"key-field-1\", \"key-field-2\", \"key-field-3\", \"key-field-4\", \"FIFO-eviction\", \"canonical-key\", \"hash-collision\", \"disabled\", \"invalid-capacity--1\", \"invalid-capacity-16385\", \"invalid-capacity-True\", \"invalid-capacity-1.5\", \"uncached-exception-0\", \"uncached-exception-1\", \"fresh-call-table\", \"stats-mutation\", \"failed-call-clears-stats\"], \"events\": 10164, \"status\": \"PASS_FINITE_FRACTION_TABLE_FEASIBILITY\"}\n2026-10-27T12:44:05.8388010Z {\"all_coverage_preserved\": true, \"inherited\": {\"all_complete_values_and_types_equal\": true, \"cases\": 241, \"controls\": [\"returned-mutation-isolated\", \"source-drift\", \"Fraction-type-drift\", \"module-byte-drift\", \"live-code-drift\", \"nested-live-code-drift\", \"omitted-witness\", \"omitted-rounded-sites\", \"wrong-coefficient\", \"wrong-weighted-increment\", \"bad-role\", \"bad-scalar\", \"missing-weight\", \"restore-success\", \"restore-exception\", \"fresh-derivation\", \"key-field-0\", \"key-field-1\", \"key-field-2\", \"key-field-3\", \"key-field-4\", \"FIFO-eviction\", \"canonical-key\", \"hash-collision\", \"disabled\", \"invalid-capacity--1\", \"invalid-capacity-16385\", \"invalid-capacity-True\", \"invalid-capacity-1.5\", \"uncached-exception-0\", \"uncached-exception-1\", \"fresh-call-table\", \"stats-mutation\", \"failed-call-clears-stats\"], \"events\": 10164, \"status\": \"PASS_FINITE_FRACTION_TABLE_FEASIBILITY\"}, \"new_control_count\": 20, \"new_controls\": [\"all-241-fixtures-take-certified-domain\", \"subtypes-and-foreign-types-fall-back-without-custom-methods\", \"metaclass-container\", \"metaclass-scalar\", \"original-fallback-dict-subclass\", \"original-fallback-program-subclass\", \"original-fallback-event-subclass\", \"original-fallback-weights-subclass\", \"original-fallback-row-subclass\", \"original-fallback-rounded-subclass\", \"original-fallback-Fraction-subclass\", \"original-fallback-integer-weights\", \"original-fallback-boolean-public\", \"exact-internal-type-preservation-at-certified-updates\", \"malformed-outcome-missing-weight\", \"malformed-outcome-bad-role\", \"malformed-outcome-bad-scalar\", \"malformed-outcome-short-event\", \"recertification-invalidates-certified-method\", \"disabled-capacity-not-certified\"], \"status\": \"PASS_TYPE_GATE_FINITE_FEASIBILITY\"}\n2026-10-27T12:44:05.8414728Z {\"all_coverage_preserved\": true, \"inherited\": {\"all_coverage_preserved\": true, \"inherited\": {\"all_complete_values_and_types_equal\": true, \"cases\": 241, \"controls\": [\"returned-mutation-isolated\", \"source-drift\", \"Fraction-type-drift\", \"module-byte-drift\", \"live-code-drift\", \"nested-live-code-drift\", \"omitted-witness\", \"omitted-rounded-sites\", \"wrong-coefficient\", \"wrong-weighted-increment\", \"bad-role\", \"bad-scalar\", \"missing-weight\", \"restore-success\", \"restore-exception\", \"fresh-derivation\", \"key-field-0\", \"key-field-1\", \"key-field-2\", \"key-field-3\", \"key-field-4\", \"FIFO-eviction\", \"canonical-key\", \"hash-collision\", \"disabled\", \"invalid-capacity--1\", \"invalid-capacity-16385\", \"invalid-capacity-True\", \"invalid-capacity-1.5\", \"uncached-exception-0\", \"uncached-exception-1\", \"fresh-call-table\", \"stats-mutation\", \"failed-call-clears-stats\"], \"events\": 10164, \"status\": \"PASS_FINITE_FRACTION_TABLE_FEASIBILITY\"}, \"new_control_count\": 20, \"new_controls\": [\"all-241-fixtures-take-certified-domain\", \"subtypes-and-foreign-types-fall-back-without-custom-methods\", \"metaclass-container\", \"metaclass-scalar\", \"original-fallback-dict-subclass\", \"original-fallback-program-subclass\", \"original-fallback-event-subclass\", \"original-fallback-weights-subclass\", \"original-fallback-row-subclass\", \"original-fallback-rounded-subclass\", \"original-fallback-Fraction-subclass\", \"original-fallback-integer-weights\", \"original-fallback-boolean-public\", \"exact-internal-type-preservation-at-certified-updates\", \"malformed-outcome-missing-weight\", \"malformed-outcome-bad-role\", \"malformed-outcome-bad-scalar\", \"malformed-outcome-short-event\", \"recertification-invalidates-certified-method\", \"disabled-capacity-not-certified\"], \"status\": \"PASS_TYPE_GATE_FINITE_FEASIBILITY\"}, \"new_control_count\": 9, \"new_controls\": [\"canonical-full-pair-tokens\", \"weight-token-hash-collision\", \"bounded-context-overflow\", \"event-q-canonical-equality-and-FIFO-counters\", \"six-complete-trace-counter-and-type-comparisons\", \"source-site-weight-ownership\", \"wrong-token-alias-detected\", \"overflow-fallback-preserves-original\", \"fresh-token-and-cache-lifetimes\"], \"status\": \"PASS_COMPACT_KEY_FINITE_ONLY\"}\n2026-10-27T12:44:05.8446546Z {\"all_coverage_preserved\": true, \"inherited\": {\"all_coverage_preserved\": true, \"inherited\": {\"all_coverage_preserved\": true, \"inherited\": {\"all_complete_values_and_types_equal\": true, \"cases\": 241, \"controls\": [\"returned-mutation-isolated\", \"source-drift\", \"Fraction-type-drift\", \"module-byte-drift\", \"live-code-drift\", \"nested-live-code-drift\", \"omitted-witness\", \"omitted-rounded-sites\", \"wrong-coefficient\", \"wrong-weighted-increment\", \"bad-role\", \"bad-scalar\", \"missing-weight\", \"restore-success\", \"restore-exception\", \"fresh-derivation\", \"key-field-0\", \"key-field-1\", \"key-field-2\", \"key-field-3\", \"key-field-4\", \"FIFO-eviction\", \"canonical-key\", \"hash-collision\", \"disabled\", \"invalid-capacity--1\", \"invalid-capacity-16385\", \"invalid-capacity-True\", \"invalid-capacity-1.5\", \"uncached-exception-0\", \"uncached-exception-1\", \"fresh-call-table\", \"stats-mutation\", \"failed-call-clears-stats\"], \"events\": 10164, \"status\": \"PASS_FINITE_FRACTION_TABLE_FEASIBILITY\"}, \"new_control_count\": 20, \"new_controls\": [\"all-241-fixtures-take-certified-domain\", \"subtypes-and-foreign-types-fall-back-without-custom-methods\", \"metaclass-container\", \"metaclass-scalar\", \"original-fallback-dict-subclass\", \"original-fallback-program-subclass\", \"original-fallback-event-subclass\", \"original-fallback-weights-subclass\", \"original-fallback-row-subclass\", \"original-fallback-rounded-subclass\", \"original-fallback-Fraction-subclass\", \"original-fallback-integer-weights\", \"original-fallback-boolean-public\", \"exact-internal-type-preservation-at-certified-updates\", \"malformed-outcome-missing-weight\", \"malformed-outcome-bad-role\", \"malformed-outcome-bad-scalar\", \"malformed-outcome-short-event\", \"recertification-invalidates-certified-method\", \"disabled-capacity-not-certified\"], \"status\": \"PASS_TYPE_GATE_FINITE_FEASIBILITY\"}, \"new_control_count\": 9, \"new_controls\": [\"canonical-full-pair-tokens\", \"weight-token-hash-collision\", \"bounded-context-overflow\", \"event-q-canonical-equality-and-FIFO-counters\", \"six-complete-trace-counter-and-type-comparisons\", \"source-site-weight-ownership\", \"wrong-token-alias-detected\", \"overflow-fallback-preserves-original\", \"fresh-token-and-cache-lifetimes\"], \"status\": \"PASS_COMPACT_KEY_FINITE_ONLY\"}, \"new_control_count\": 10, \"new_controls\": [\"changed-getter-invalidates\", \"changed-live-getter-code\", \"foreign-slot-probe-is-pure\", \"changed-attribute-lookup\", \"missing-attribute-handler-presence\", \"binding-restored\", \"slot-path-selected\", \"post-derive-getter-drift-literal-fallback\", \"uninitialized-unused-weight-fallback\", \"foreign-slot-value-fallback\"], \"status\": \"PASS_SLOT_KEY_FINITE_ONLY\"}\n2026-10-27T12:44:05.8672882Z {\"all_coverage_preserved\": true, \"build\": {\"SOABI\": \"cpython-312-x86_64-linux-gnu\", \"binary_sha256\": \"55f89ebfc93d0afaa09e958b76399aaf130fa8060ebcde2be8d3f2c33b978760\", \"cold_build_load_wall_seconds\": 1.6129818549999868, \"compiler\": \"/usr/bin/cc\", \"compiler_cpu_accounting\": \"outer GNU time user+system includes compiler children\", \"compiler_version\": \"cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0\", \"extension_suffix\": \".cpython-312-x86_64-linux-gnu.so\", \"flags\": [\"-O2\", \"-shared\", \"-fPIC\", \"-std=c11\", \"-Wall\", \"-Werror\", \"-I/opt/hostedtoolcache/Python/3.12.15/x64/include/python3.12\"], \"python\": \"3.12.15 (main, Oct 1 2026, 02:35:59) [GCC 13.3.0]\", \"source_sha256\": \"78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb\"}, \"inherited\": {\"all_coverage_preserved\": true, \"inherited\": {\"all_coverage_preserved\": true, \"inherited\": {\"all_coverage_preserved\": true, \"inherited\": {\"all_complete_values_and_types_equal\": true, \"cases\": 241, \"controls\": [\"returned-mutation-isolated\", \"source-drift\", \"Fraction-type-drift\", \"module-byte-drift\", \"live-code-drift\", \"nested-live-code-drift\", \"omitted-witness\", \"omitted-rounded-sites\", \"wrong-coefficient\", \"wrong-weighted-increment\", \"bad-role\", \"bad-scalar\", \"missing-weight\", \"restore-success\", \"restore-exception\", \"fresh-derivation\", \"key-field-0\", \"key-field-1\", \"key-field-2\", \"key-field-3\", \"key-field-4\", \"FIFO-eviction\", \"canonical-key\", \"hash-collision\", \"disabled\", \"invalid-capacity--1\", \"invalid-capacity-16385\", \"invalid-capacity-True\", \"invalid-capacity-1.5\", \"uncached-exception-0\", \"uncached-exception-1\", \"fresh-call-table\", \"stats-mutation\", \"failed-call-clears-stats\"], \"events\": 10164, \"status\": \"PASS_FINITE_FRACTION_TABLE_FEASIBILITY\"}, \"new_control_count\": 20, \"new_controls\": [\"all-241-fixtures-take-certified-domain\", \"subtypes-and-foreign-types-fall-back-without-custom-methods\", \"metaclass-container\", \"metaclass-scalar\", \"original-fallback-dict-subclass\", \"original-fallback-program-subclass\", \"original-fallback-event-subclass\", \"original-fallback-weights-subclass\", \"original-fallback-row-subclass\", \"original-fallback-rounded-subclass\", \"original-fallback-Fraction-subclass\", \"original-fallback-integer-weights\", \"original-fallback-boolean-public\", \"exact-internal-type-preservation-at-certified-updates\", \"malformed-outcome-missing-weight\", \"malformed-outcome-bad-role\", \"malformed-outcome-bad-scalar\", \"malformed-outcome-short-event\", \"recertification-invalidates-certified-method\", \"disabled-capacity-not-certified\"], \"status\": \"PASS_TYPE_GATE_FINITE_FEASIBILITY\"}, \"new_control_count\": 9, \"new_controls\": [\"canonical-full-pair-tokens\", \"weight-token-hash-collision\", \"bounded-context-overflow\", \"event-q-canonical-equality-and-FIFO-counters\", \"six-complete-trace-counter-and-type-comparisons\", \"source-site-weight-ownership\", \"wrong-token-alias-detected\", \"overflow-fallback-preserves-original\", \"fresh-token-and-cache-lifetimes\"], \"status\": \"PASS_COMPACT_KEY_FINITE_ONLY\"}, \"new_control_count\": 10, \"new_controls\": [\"changed-getter-invalidates\", \"changed-live-getter-code\", \"foreign-slot-probe-is-pure\", \"changed-attribute-lookup\", \"missing-attribute-handler-presence\", \"binding-restored\", \"slot-path-selected\", \"post-derive-getter-drift-literal-fallback\", \"uninitialized-unused-weight-fallback\", \"foreign-slot-value-fallback\"], \"status\": \"PASS_SLOT_KEY_FINITE_ONLY\"}, \"native_control_count\": 45, \"native_controls\": [\"canonical-keys-FIFO-wrap-counters\", \"native-hash-collision\", \"exact-one-callback-per-miss\", \"uncached-native-error-0\", \"uncached-native-error-1\", \"full-cache-failure-before-eviction\", \"cache-survives-callback-exception\", \"capacity-0\", \"capacity--1\", \"capacity-16385\", \"capacity-True\", \"capacity-1.5\", \"capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\", \"index--1\", \"index-3\", \"index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\", \"index-True\", \"index-0\", \"arity\", \"keywords\", \"exact-operand\", \"exact-scalar\", \"event-creation\", \"descriptor-protocol\", \"token-length\", \"token-range\", \"partial-init-length\", \"partial-init-weight\", \"callback-result-shape\", \"callback-result-type\", \"callback-reentry\", \"event-owns-parent\", \"GC-callback-cycle\", \"native-statistics-isolated\", \"native-coefficient-loop\", \"same-row-lowlevel-rejection\", \"dict-iterator-mutation-safe\", \"callback-list-mutation-safe\", \"native-source-authenticated\", \"callback-descriptor-is-pure\", \"plain-callback-rejected\", \"live-callback-code-drift\", \"owned-metadata-snapshot\", \"same-row-source-fallback\", \"malformed-scalar-literal-fallback\"], \"status\": \"PASS_NATIVE_FINITE_ONLY\"}\n2026-10-27T12:44:05.8700941Z PASS_FRACTION_NATIVE_FINITE_AND_CUSTODY\n2026-10-27T12:44:05.8701454Z PASS_C_VERIFICATION_SCOPED_FINITE baseline\n2026-10-27T12:44:05.8929805Z CHECK Fresh scoped integer controls; existing compiler and CPython3.12 headers required; no install or full performance replay.\n2026-10-27T12:44:06.5892935Z {\"build\": {\"SOABI\": \"cpython-312-x86_64-linux-gnu\", \"binary_sha256\": \"988bc68fc779d2098f31521cc526d84690729195c0fed52d8e7d748aa0911cf6\", \"cold_build_load_wall_seconds\": 0.30884723100000144, \"compiler\": \"/usr/bin/cc\", \"compiler_cpu_accounting\": \"parent outer process must include compiler children\", \"extension_suffix\": \".cpython-312-x86_64-linux-gnu.so\", \"flags\": [\"-O2\", \"-shared\", \"-fPIC\", \"-std=c11\", \"-Wall\", \"-Werror\", \"-I/opt/hostedtoolcache/Python/3.12.15/x64/include/python3.12\"], \"python\": \"3.12.15 (main, Oct 1 2026, 02:35:59) [GCC 13.3.0]\", \"source_sha256\": \"804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d\"}, \"result\": {\"checks\": [\"eight-row-and-score-differentials\", \"aliased-inputs-return-fresh-outputs\", \"six-ordered-prefixes-and-complete-bytes\", \"zero-negative-large-reduced-and-ordered-formatting\", \"score-string-contract-distinct-from-coefficient-contract\", \"reverse-scores-signed-bytes-and-aliases\", \"bool-numerator\", \"foreign-int-value\", \"foreign-dict\", \"foreign-key\", \"float-value\", \"negative-exponent\", \"bool-exponent\", \"inexact-division-transaction\", \"inexact-scaled-row\", \"nondyadic-scale\", \"zero-scale\", \"negative-scale\", \"bool-scale\", \"short-score\", \"foreign-scores\", \"foreign-weight\", \"weight-index-range\", \"negative-weight-index\", \"reverse-index-range\", \"score-nondyadic-unit\", \"event-type\"], \"independent_fraction_formatting\": true, \"ordered_prefixes\": 6, \"row_cases\": 8, \"status\": \"PASS_FINITE_INTEGER_FORMAT\", \"timing_claim\": false, \"whole_replay\": false}}\n2026-10-27T12:44:06.5898528Z PASS_C_VERIFICATION_SCOPED_FINITE integer\n2026-10-27T12:44:06.6088088Z CHECK Fresh scoped integer controls; existing compiler and CPython3.12 headers required; no install or full performance replay.\n2026-10-27T12:44:07.2668430Z {\"build\": {\"SOABI\": \"cpython-312-x86_64-linux-gnu\", \"binary_sha256\": \"8bf32a3419ad77e38073a619bf4ee6e141629212f280e8925222cfc5d6dc9d22\", \"cold_build_load_wall_seconds\": 0.3058329930000099, \"compiler\": \"/usr/bin/cc\", \"compiler_cpu_accounting\": \"parent outer process must include compiler children\", \"extension_suffix\": \".cpython-312-x86_64-linux-gnu.so\", \"flags\": [\"-O2\", \"-shared\", \"-fPIC\", \"-std=c11\", \"-Wall\", \"-Werror\", \"-I/opt/hostedtoolcache/Python/3.12.15/x64/include/python3.12\"], \"python\": \"3.12.15 (main, Oct 1 2026, 02:35:59) [GCC 13.3.0]\", \"source_sha256\": \"804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d\"}, \"result\": {\"checks\": [\"eight-row-and-score-differentials\", \"aliased-inputs-return-fresh-outputs\", \"six-ordered-prefixes-and-complete-bytes\", \"zero-negative-large-reduced-and-ordered-formatting\", \"score-string-contract-distinct-from-coefficient-contract\", \"reverse-scores-signed-bytes-and-aliases\", \"bool-numerator\", \"foreign-int-value\", \"foreign-dict\", \"foreign-key\", \"float-value\", \"negative-exponent\", \"bool-exponent\", \"inexact-division-transaction\", \"inexact-scaled-row\", \"nondyadic-scale\", \"zero-scale\", \"negative-scale\", \"bool-scale\", \"short-score\", \"foreign-scores\", \"foreign-weight\", \"weight-index-range\", \"negative-weight-index\", \"reverse-index-range\", \"score-nondyadic-unit\", \"event-type\"], \"independent_fraction_formatting\": true, \"ordered_prefixes\": 6, \"row_cases\": 8, \"status\": \"PASS_FINITE_INTEGER_FORMAT\", \"timing_claim\": false, \"whole_replay\": false}}\n2026-10-27T12:44:07.2674341Z PASS_C_VERIFICATION_SCOPED_FINITE integer\n2026-10-27T12:44:07.3248933Z CHECK Fresh scoped rational controls; existing compiler and CPython3.12 headers required; no install or full performance replay.\n2026-10-27T12:44:08.1374545Z Traceback (most recent call last):\n2026-10-27T12:44:08.1384403Z File \"/home/runner/work/integer-mult-bounds/integer-mult-bounds/research/c-verification-feasibility/verify.py\", line 29, in \n2026-10-27T12:44:08.1385505Z main(stage / 'package', micro=False)\n2026-10-27T12:44:08.1386334Z File \"/tmp/c-verification-screen-ecny7nc1/stages/rational-v2/finite_probe.py\", line 52, in main\n2026-10-27T12:44:08.1387662Z File \"/tmp/c-verification-screen-ecny7nc1/stages/rational-v2/finite_probe.py\", line 19, in need\n2026-10-27T12:44:08.1388892Z ValueError: supported pinned arithmetic binder\n2026-10-27T12:44:08.1912759Z verification command exited 1\n2026-10-27T12:44:08.2045106Z ##[error]Process completed with exit code 1.\n2026-10-27T12:44:08.2201792Z Post job cleanup.\n2026-10-27T12:44:08.3065211Z [command]/usr/bin/git version\n2026-10-27T12:44:08.3102997Z git version 2.55.0\n2026-10-27T12:44:08.3139830Z Temporarily overriding HOME='/home/runner/work/_temp/a27ac0bf-4038-43c0-8e02-4eba58e0fb77' before making global git config changes\n2026-10-27T12:44:08.3141259Z Adding repository directory to the temporary git global config as a safe directory\n2026-10-27T12:44:08.3146167Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/integer-mult-bounds/integer-mult-bounds\n2026-10-27T12:44:08.3177623Z Removing SSH command configuration\n2026-10-27T12:44:08.3183842Z [command]/usr/bin/git config --local --name-only --get-regexp core\\.sshCommand\n2026-10-27T12:44:08.3216004Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'core\\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :\"\n2026-10-27T12:44:08.3551951Z Removing HTTP extra header\n2026-10-27T12:44:08.3557716Z [command]/usr/bin/git config --local --name-only --get-regexp http\\.https\\:\\/\\/github\\.com\\/\\.extraheader\n2026-10-27T12:44:08.3598035Z [command]/usr/bin/git submodule foreach --recursive sh -c \"git config --local --name-only --get-regexp 'http\\.https\\:\\/\\/github\\.com\\/\\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :\"\n2026-10-27T12:44:08.3953411Z Removing includeIf entries pointing to credentials config files\n2026-10-27T12:44:08.3960907Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\\.gitdir:\n2026-10-27T12:44:08.3998341Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url\n2026-10-27T12:44:08.4499281Z Cleaning up orphan processes\n","logTruncated":false} diff --git a/research/c-verification-feasibility/evidence/publication/CI-PORTABILITY-CORRECTION.json b/research/c-verification-feasibility/evidence/publication/CI-PORTABILITY-CORRECTION.json new file mode 100644 index 0000000000..5677b2976d --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/CI-PORTABILITY-CORRECTION.json @@ -0,0 +1,14 @@ +{ + "status": "DOCUMENTED_CI_PORTABILITY_CORRECTION", + "failed_head": "ec0afa7633ff72e1c5ea26bb5726ec569a3f59ac", + "failed_run": 40505352497, + "hosted_python": "3.12.15", + "failure": "strict full-file fractions.py source hash rejected hosted release before native rational selection", + "known_local_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", + "official_3_12_15_sha256": "d52d1ab9d5be26924e4914a5e40069c992bbfa68f773694c2e5ee8452d0766a0", + "official_source": "https://raw.githubusercontent.com/python/cpython/v3.12.15/Lib/fractions.py", + "reviewed_difference": "One hunk in Fraction.__pow__: only float/complex exponents use float fallback; foreign types return NotImplemented. Outside the C score-batching guarded DIRECT/WRAPPED/factory set.", + "repair": "Explicit two-hash allowlist; exact live code/default/closure/MRO/descriptors/global arithmetic checks retained. Check source even when expected-code cache populated. Added unknown-source rejection control.", + "performance": "All original samples and failed gates retained; no timing or numerical actual-word reroll.", + "diagnostic_precision": "The first binder swallowed its failure reason; official/local source incompatibility is independently verified. Hosted actual hash is emitted by the corrected replay and further gates must still pass." +} diff --git a/research/c-verification-feasibility/evidence/publication/astra-ci-binding-review.md b/research/c-verification-feasibility/evidence/publication/astra-ci-binding-review.md new file mode 100644 index 0000000000..fc9ceb1068 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/astra-ci-binding-review.md @@ -0,0 +1,182 @@ +# PR5908 rational binder: static CPython 3.12.15 compatibility review + +**Finding: the shipped whole-file source pin rejects the fetched official +CPython 3.12.15 `fractions.py`, although its only difference from the accepted +local file is an unrelated `Fraction.__pow__` branch. Add only an explicitly +reviewed source/runtime identity; preserve all executable, slot, closure, +default, MRO, operator and gcd checks.** + +The requested failing head is `ec0afa7633ff72e1c5ea26bb5726ec569a3f59ac`, +CI run `40505352497`. The parent reports the original registered verifier and +integer normal/optimized stages passed, with the rational probe failing at +`finite_probe.py:52` because `arithmetic_binding.bind()` returned None. +This review did not fetch CI, execute Python, import scientific modules, +compile code, run tests, perform arithmetic, use the network/browser, mutate +Git, or edit measured/published source. It read local source, compared bytes, +and wrote only this review document. + +## Exact source difference + +Inspected binding: +`repo/research/c-verification-feasibility/rational/arithmetic_binding.py`. + +| Source | Observed SHA256 | +| --- | --- | +| Accepted local `/usr/lib/python3.12/fractions.py` | `cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231` | +| Parent-fetched `ci-python/fractions-3.12.15.py` | `d52d1ab9d5be26924e4914a5e40069c992bbfa68f773694c2e5ee8452d0766a0` | + +The second file was supplied by the parent as the official CPython v3.12.15 +source. This reviewer verified its local hash and complete textual diff, not +its network provenance. Retain the parent's source URL/fetch receipt when +adding the new pin. Expected upstream provenance is the CPython v3.12.15 +`Lib/fractions.py` source, with exact tag/URL retained by the parent. + +The complete unified diff has one hunk, around local line 828: + +```diff +- else: ++ elif isinstance(b, (float, complex)): + return float(a) ** b ++ else: ++ return NotImplemented +``` + +This is in `Fraction.__pow__`. The guarded batching methods `_add`, `_sub`, +`_mul`, `__abs__`, `__bool__`, `__new__`, `_from_coprime_ints` and the +`_operator_fallbacks` forward/reverse closures have unchanged text. The +Fraction base-class declaration, owned slots and constructor defaults are +also unchanged. The edit shifts later source line numbers, including +`__abs__` and `__bool__`, by two lines. + +## Why the current guard rejects it + +`SOURCE_SHA256` at arithmetic_binding.py line 18 contains only the accepted +local hash. `_codes()` at line 37 rejects any other full-file digest with +`ValueError('pinned Fraction source')`. `bind()` catches that ValueError and +returns None. `finite_probe.py:52` therefore reports only the generic +'supported pinned arithmetic binder' failure. + +The first `DIRECT` method is `_add`. Once preceding runtime/slot checks pass, +its `_function()` comparison invokes `_codes()` and encounters this rejection. +Thus the official 3.12.15 source cannot pass the shipped binder, regardless of +whether its selected methods would otherwise pass every executable check. +This is a definite source-compatibility defect. The original hosted traceback +did not expose its actual stdlib path/hash or the swallowed reason, so this +review cannot prove that no later runtime condition would also fail after the +pin repair. The next fresh hosted run or a narrow diagnostic must show that. + +## Why the other guards should remain unchanged + +- **Slot binder:** `slot_binding.bind(strict=True)` authenticates pure getter + executable shapes and exact owned member descriptors. It does not use the + new rational whole-file hash. The inherited verifier passing is consistent + with that separate contract. The fetched diff changes neither getter. +- **MRO:** both files declare `Fraction(numbers.Rational)`. No difference in + the source suggests relaxing the exact `(Fraction, Rational, Real, Complex, + Number, object)` identity chain. Hosted identities still need live checking. +- **Defaults:** `__new__(cls, numerator=0, denominator=None)` is unchanged. + The two exact defaults and all no-default/no-kwdefault requirements remain. +- **Closures:** `_operator_fallbacks` and its forward/reverse bodies are + unchanged. Preserve the exact two closure cells and identities of + `fallback_operator` and `monomorphic_operator`, plus allowed `__class__` + closures for direct/factory functions. +- **Gcd/operator identities:** those are live module/builtin identities, not + the changed `__pow__` branch. No evidence supports weakening them. +- **Compiled code flags:** `_shape()` deliberately includes `co_flags` and + the exception table. `_codes()` recompiles the authenticated file on the + current interpreter with `optimize=sys.flags.optimize`. Preserve this + check. It does not compare `co_firstlineno`, line tables, or filenames, so + the two-line offset alone is not a reason to remove code-shape fields. +- **Future/compiler inheritance:** neither compared fractions source nor + the inspected arithmetic binder has a future import. There is no observed + future-flag mismatch. `dont_inherit=True` may make the compilation context + explicit if the parent chooses that small hardening, but it is not the + diagnosed source-pin fix and must not replace exact flag checking. +- **Materialization:** `_from_coprime_ints` remains a classmethod with the same + source and allowed class closure. Preserve its drift rejection. + +The fetched source therefore supplies no reason to accept unknown MROs, +foreign functions, alternate math/gcd implementations, arbitrary source +files, or masked bytecode differences. + +## Minimal pin-preserving repair + +Replace the single allowed source identity with an explicit reviewed mapping, +preferably recording both exact patch version and digest: + +```text +CPython 3.12.3 / observed Ubuntu host source: + cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231 +CPython 3.12.15 / reviewed official tagged source: + d52d1ab9d5be26924e4914a5e40069c992bbfa68f773694c2e5ee8452d0766a0 +``` + +Keep the CPython implementation requirement, reject all unlisted runtime/source +pairs, reject source symlinks, and compile only the authenticated bytes. Keep +all current `_function`, `_snapshot`, `fresh` and strict slot-binding checks. +A version-to-exact-digest mapping is preferable to treating every 3.12 patch +release as tested. Never use a wildcard version/hash, automatically enroll +the installed digest, accept a digest on first use, substitute AST equivalence +for source authentication, or bypass a failed binder in the finite probe. + +This mapping makes a second reviewed input admissible; it does not change the +numerical algorithm or admit an unreviewed runtime. The source review must +record that the full difference is the separate power-dispatch change. The +fixed rational finite controls and all existing fallback/drift controls must +then run unchanged in fresh normal and optimized processes on the supported +hosts. The hosted exact-head run must pass before CI compatibility is claimed. +Retain the original failed head/run and its error as evidence. + +The binder's `_expected` cache is process-local expected code data, not an +arithmetic answer cache. If refactoring it for multiple supported identities, +key or annotate it with the authenticated version/digest/optimization identity +so an old cache cannot stand in for an independently selected source. Do not +silently reuse a cached successful source check in a negative-source test. +No complete performance claim is affected or newly established by this repair; +the primary 15% target remains unmet. + +## Narrow diagnostic proposal + +The existing fallback-compatible `bind()` can continue returning either a token +or None. Add an internal strict path which labels the same existing rejection +predicates, then let the diagnostic surface report that result without changing +the acceptance decision. For example, an internal source predicate can expose: + +```text +stage: source_identity +implementation: cpython +version: [3, 12, 15] +fractions_path: +actual_sha256: +supported_identities: +reason: unlisted runtime/source identity +``` + +A successful diagnostic should report the selected source identity and that +the existing executable/default/closure/slot/MRO checks completed. If a later +predicate fails, report a stable stage label such as `slot_binding`, `mro`, +`arithmetic_defaults`, `arithmetic_executable_shape`, `operator_closure`, +`gcd_identity`, or `inplace_protocol`, plus the exception class where relevant. +Do not catch every unexpected exception and call it an unsupported runtime; +retain the existing narrow exception boundary or expose unexpected errors. + +The probe should still fail when its token is None. It may include this +read-only diagnostic in that failure message; diagnostics must never turn +None into a successful token or skip the source/finite controls. The strict +path must be shared with normal binding so the diagnostic cannot drift into +a different acceptance rule. This needs no arithmetic experiment. + +Useful bounded additional source-guard controls are rejection of an unlisted +version/digest pair and rejection of bytes changed from either reviewed source, +while the known pair is selected explicitly. Test a pure authentication helper +or use isolated temporary fixtures with restored binder state; do not modify +the installed stdlib file. Preserve every current arithmetic-code, factory, +closure, gcd, in-place-operation and fallback rejection. + +## Status + +The static source incompatibility is identified and a narrow repair is +specified. Hosted live binding after repair remains unverified by this worker. +No evidence supports changing the integer result, loosening rational guards, +skipping a finite control, admitting a speedup, or starting another numerical +route. Only this report was written. diff --git a/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/receipt.json b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/receipt.json new file mode 100644 index 0000000000..df5ee99b49 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "feasibility-source-pairs-final", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "ffba23e0e710564f3eee7aeb546200015cbb026b238515ee3f4fedd2b271385e", + "sampled_process_group_rss_bytes": 98885632, + "script": "stages/publication-feasibility-v3/run_rational.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "eb23e51854d0a4aeb81fae2d07e70e2fc7d80fa3c1f9ada35c85dfbe7022fbd5", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 3525, + "stdout_sha256": "789d1925e59b2d4031169a0778ed563e2aae37db6d9df2ca5742d0aa55193f2f", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48856, + "system_seconds": 0.16, + "user_seconds": 2.2 + }, + "wall_seconds": 2.4060761780128814 +} diff --git a/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/stderr.txt b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/stdout.txt b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/stdout.txt new file mode 100644 index 0000000000..43cef2950c --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/stdout.txt @@ -0,0 +1,9 @@ +{"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "runtime_fraction_source_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", "scope": "rational-source-pin-diagnostic"} +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "d58a7789119cc04cda2e45c2a1f65e11295686e611a11b27b3c66b42aeb74d9a", "cold_build_load_wall_seconds": 0.5084090070158709, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS +PASS_C_VERIFICATION_SCOPED_FINITE rational +{"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "runtime_fraction_source_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", "scope": "rational-source-pin-diagnostic"} +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "8801785b85df072537310d317f7832efa6580c013baa45e11efcf867a7284464", "cold_build_load_wall_seconds": 0.48717045702505857, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS +PASS_C_VERIFICATION_SCOPED_FINITE rational +PASS_EXPLICIT_RUNTIME_SOURCE_PAIRS_NORMAL_OPTIMIZED diff --git a/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/usage.json b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/usage.json new file mode 100644 index 0000000000..866d181183 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/explicit-source-pairs-normal-O/usage.json @@ -0,0 +1 @@ +{"user_seconds":2.20,"system_seconds":0.16,"kernel_max_rss_kib":48856,"exit":0} diff --git a/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/receipt.json b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/receipt.json new file mode 100644 index 0000000000..61e5cb1e99 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "feasibility-package-all-v1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "ce6e0fe47d52d118439a6494b1f9c54958e2d472b1bb28c6d5c19598b0e3b83c", + "sampled_process_group_rss_bytes": 98725888, + "script": "stages/publication-feasibility-v1/run_all.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "97ff3d4388d2fe4a9d8e08b1d37f47d13a913a293c697f4366be4e50a7c65324", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 18303, + "stdout_sha256": "bb806e658bfa759e41dda4bbd8ab47a9a1971b2307282f0adbf43211cc518e60", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48524, + "system_seconds": 0.4, + "user_seconds": 6.14 + }, + "wall_seconds": 6.586904727999354 +} diff --git a/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/stderr.txt b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/stdout.txt b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/stdout.txt new file mode 100644 index 0000000000..7aecc7939f --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/stdout.txt @@ -0,0 +1,19 @@ +PASS_PRECISION_LINUX_SOURCE_CONTROLS {"contract": "declared contract edits", "declared_edit": "unique backend seam", "inner_archive": "source hash", "official_export_byte": "Exact PR5831 bundle"} +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "059347e799691087d3e649761540537865254a473647fece00207a4ad5925f60", "cold_build_load_wall_seconds": 0.3292266380158253, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +PASS_FRACTION_NATIVE_FINITE_AND_CUSTODY +PASS_C_VERIFICATION_SCOPED_FINITE baseline +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "06a2a90fa00d74d3955c046e70a78642649df374e8c1c3529f63b01647f6b719", "cold_build_load_wall_seconds": 0.39444788097171113, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "087a4cc15b90cb036bc8d8c2c1e8835cd9db51128b6249f55e257f15b49c1afd", "cold_build_load_wall_seconds": 0.35868534998735413, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "b454117c7a0ddc9c9cb6ec066c1b45bbe228f27df64bb28d158c3af1dfc73da0", "cold_build_load_wall_seconds": 0.4579789729905315, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_BINDING_CONTROL +PASS_C_VERIFICATION_SCOPED_FINITE rational +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "4a274d3af9aed7a758b131cc66437740a10abff5711c67b084c3fa125a98b0e1", "cold_build_load_wall_seconds": 0.4748963229940273, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_BINDING_CONTROL +PASS_C_VERIFICATION_SCOPED_FINITE rational +PASS_ALL_FRESH_SCOPED_PACKAGE_COMMANDS diff --git a/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/usage.json b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/usage.json new file mode 100644 index 0000000000..7c987ae1a0 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/fresh-all-scopes/usage.json @@ -0,0 +1 @@ +{"user_seconds":6.14,"system_seconds":0.40,"kernel_max_rss_kib":48524,"exit":0} diff --git a/research/c-verification-feasibility/evidence/publication/local-portability-rerun/receipt.json b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/receipt.json new file mode 100644 index 0000000000..d58fd02f4e --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "feasibility-package-all-v2", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "bb4b7e7c226e983bf3621e4215fd591efd7d79787270c0962e50c75227d59a7c", + "sampled_process_group_rss_bytes": 98811904, + "script": "stages/publication-feasibility-v2/run_all.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "5485f2ca4087f694512ff90222b7f474234876a19abf50e2bcea7efc2360b7a4", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 18762, + "stdout_sha256": "860a36f93f9c871f66d236288f19d8849a7228a32479d80ee2feb873f71cf239", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48620, + "system_seconds": 0.36, + "user_seconds": 6.18 + }, + "wall_seconds": 6.609581090015126 +} diff --git a/research/c-verification-feasibility/evidence/publication/local-portability-rerun/stderr.txt b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/publication/local-portability-rerun/stdout.txt b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/stdout.txt new file mode 100644 index 0000000000..7d197db50e --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/stdout.txt @@ -0,0 +1,21 @@ +PASS_PRECISION_LINUX_SOURCE_CONTROLS {"contract": "declared contract edits", "declared_edit": "unique backend seam", "inner_archive": "source hash", "official_export_byte": "Exact PR5831 bundle"} +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "0c0e6ac8a50603ebdbbfbcf2c53cd72e0b217767738e98d570f624592ecf0443", "cold_build_load_wall_seconds": 0.34453865999239497, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +PASS_FRACTION_NATIVE_FINITE_AND_CUSTODY +PASS_C_VERIFICATION_SCOPED_FINITE baseline +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "ce14493aa93c741d406054f2d47e5e7e14b8b8852dabafd9ef69d3a52391aacb", "cold_build_load_wall_seconds": 0.3581186310038902, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "527566e6166a120c5c29ce0e47883c5655bc10223a1d03a83a73499b6e102f43", "cold_build_load_wall_seconds": 0.3654571740189567, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "runtime_fraction_source_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", "scope": "rational-source-pin-diagnostic"} +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "198a90d4129f2a387f5329b38fdf89a64c8e5c2352db38a693edd5cbdbb27825", "cold_build_load_wall_seconds": 0.46449961999314837, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS +PASS_C_VERIFICATION_SCOPED_FINITE rational +{"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "runtime_fraction_source_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", "scope": "rational-source-pin-diagnostic"} +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "3afed55ba095af7d32a5b3290f92a378a9e073927161eb09d6e552e77dff1d46", "cold_build_load_wall_seconds": 0.49015142902499065, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS +PASS_C_VERIFICATION_SCOPED_FINITE rational +PASS_ALL_FRESH_SCOPED_PACKAGE_COMMANDS diff --git a/research/c-verification-feasibility/evidence/publication/local-portability-rerun/usage.json b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/usage.json new file mode 100644 index 0000000000..1a27c57a3c --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/local-portability-rerun/usage.json @@ -0,0 +1 @@ +{"user_seconds":6.18,"system_seconds":0.36,"kernel_max_rss_kib":48620,"exit":0} diff --git a/research/c-verification-feasibility/evidence/publication/preparation-failures.json b/research/c-verification-feasibility/evidence/publication/preparation-failures.json new file mode 100644 index 0000000000..3aab1996b5 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/preparation-failures.json @@ -0,0 +1,7 @@ +[ + { + "step": "initial metadata check", + "result": "README.md needs an exact Open next questions section", + "repair": "Split combined Credit and open next questions heading; no code/evidence change" + } +] diff --git a/research/c-verification-feasibility/evidence/publication/readonly-compatibility/receipt.json b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/receipt.json new file mode 100644 index 0000000000..5fb73c3e1c --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "feasibility-readonly-compatibility", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "24f54273dae5ebe4e33f7898e4fd40a4e84235611ea1c1fb73b5b43f6ce92bc3", + "sampled_process_group_rss_bytes": 105222144, + "script": "stages/readonly-feasibility-v2/run.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "f2a90b3c3087d1a8f465732519236f69181857814dc9cbeaa3228d92bd118923", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 18768, + "stdout_sha256": "310bd090080b7c1a93131383df323f592d8588ea7296bce9d00811db94e85aac", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48668, + "system_seconds": 0.41, + "user_seconds": 5.81 + }, + "wall_seconds": 6.288718279014574 +} diff --git a/research/c-verification-feasibility/evidence/publication/readonly-compatibility/stderr.txt b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/publication/readonly-compatibility/stdout.txt b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/stdout.txt new file mode 100644 index 0000000000..f184ed8b04 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/stdout.txt @@ -0,0 +1,21 @@ +PASS_PRECISION_LINUX_SOURCE_CONTROLS {"contract": "declared contract edits", "declared_edit": "unique backend seam", "inner_archive": "source hash", "official_export_byte": "Exact PR5831 bundle"} +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "644008abf381aa620728f6d4545a59af66afc89794cd365fc0b158dcd5b99293", "cold_build_load_wall_seconds": 0.311225101002492, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +PASS_FRACTION_NATIVE_FINITE_AND_CUSTODY +PASS_C_VERIFICATION_SCOPED_FINITE baseline +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "d14fc8d5468c2286f0ade7b11135ef21085d8c46b2967f8bdbcd00b17258ca47", "cold_build_load_wall_seconds": 0.3306800250138622, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "10f7d72601188d2ffff41dea397ef477ec37278e4ec192e91684c1cbaade1eb1", "cold_build_load_wall_seconds": 0.33824119399650954, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "runtime_fraction_source_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", "scope": "rational-source-pin-diagnostic"} +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "ffb010a3f951ac1c74c12b9a93c50cce68dd2923f2005c86d5f4ea2f51209486", "cold_build_load_wall_seconds": 0.44992048499989323, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS +PASS_C_VERIFICATION_SCOPED_FINITE rational +{"python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "runtime_fraction_source_sha256": "cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231", "scope": "rational-source-pin-diagnostic"} +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "6c3b357a3a2752f9501c89feaec0cf03d0c369ac4709517355f278a5ce70018a", "cold_build_load_wall_seconds": 0.4424143409996759, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS +PASS_C_VERIFICATION_SCOPED_FINITE rational +PASS_READONLY_GITFREE_ALL_FIVE_FINITE_COMMANDS diff --git a/research/c-verification-feasibility/evidence/publication/readonly-compatibility/usage.json b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/usage.json new file mode 100644 index 0000000000..cd1275379a --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/readonly-compatibility/usage.json @@ -0,0 +1 @@ +{"user_seconds":5.81,"system_seconds":0.41,"kernel_max_rss_kib":48668,"exit":0} diff --git a/research/c-verification-feasibility/evidence/publication/readonly-gitfree/receipt.json b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/receipt.json new file mode 100644 index 0000000000..8862df229c --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "feasibility-readonly-gitfree-v1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "141066a7be95c7dc52b944a33dd79579fee9d76112fd31aa9f6771e7959b5cbf", + "sampled_process_group_rss_bytes": 105820160, + "script": "stages/readonly-feasibility-v1/run.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "91e6b4e2bc47b50bf046e5281e2ca28e350b2888cb12f5caec51ad27adeb5d5c", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 18311, + "stdout_sha256": "9d918a8cb7225a7af3efb3882ae27bf198880cbcfe4e53f296cbf694ce09ab3a", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48684, + "system_seconds": 0.4, + "user_seconds": 6.27 + }, + "wall_seconds": 6.748948573978851 +} diff --git a/research/c-verification-feasibility/evidence/publication/readonly-gitfree/stderr.txt b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/publication/readonly-gitfree/stdout.txt b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/stdout.txt new file mode 100644 index 0000000000..8afbd07458 --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/stdout.txt @@ -0,0 +1,19 @@ +PASS_PRECISION_LINUX_SOURCE_CONTROLS {"contract": "declared contract edits", "declared_edit": "unique backend seam", "inner_archive": "source hash", "official_export_byte": "Exact PR5831 bundle"} +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "328eef13e56b6c3b5e5159553b14f9d7d451630ae22eb17ed1bab34b8b0badde", "cold_build_load_wall_seconds": 0.3227188430028036, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +PASS_FRACTION_NATIVE_FINITE_AND_CUSTODY +PASS_C_VERIFICATION_SCOPED_FINITE baseline +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "aefa1e23f4b0153240e77ccde8e11417b4296678e8d9d05693463a6154d20376", "cold_build_load_wall_seconds": 0.34818927399464883, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "cda9dc3131beda3526aea1211e7d39a76a74f7718f64618a9c7eb03ac0789a60", "cold_build_load_wall_seconds": 0.3513044470164459, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} +PASS_C_VERIFICATION_SCOPED_FINITE integer +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "757ba1b335c1901142586d7ed59f6c124a4eb0d8a82d025adf1b14f8fd00178f", "cold_build_load_wall_seconds": 0.4672614769951906, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_BINDING_CONTROL +PASS_C_VERIFICATION_SCOPED_FINITE rational +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "c5f112525f05d298958336bfe3e75282728c4a0ccbb3fa68364068aa7370885a", "cold_build_load_wall_seconds": 0.48878167901420966, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_BINDING_CONTROL +PASS_C_VERIFICATION_SCOPED_FINITE rational +PASS_READONLY_GITFREE_ALL_FIVE_FINITE_COMMANDS diff --git a/research/c-verification-feasibility/evidence/publication/readonly-gitfree/usage.json b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/usage.json new file mode 100644 index 0000000000..ff109c9f8f --- /dev/null +++ b/research/c-verification-feasibility/evidence/publication/readonly-gitfree/usage.json @@ -0,0 +1 @@ +{"user_seconds":6.27,"system_seconds":0.40,"kernel_max_rss_kib":48684,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B1/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/receipt.json new file mode 100644 index 0000000000..1792021afb --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-complete-B1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "9b5c8f4d125a6fef058549e83c34b7fab656b569be059346ac2ee8b147057c99", + "sampled_process_group_rss_bytes": 116232192, + "script": "stages/integer-complete-v1/baseline_full.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "cc42383ed2afc04b54af061eab285fc964a1a9d76461377a2fc6e29de9059dad", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 14103, + "stdout_sha256": "594672fbe81ebb90cc4ffbef278e6d374c962241dc2c2e53dc3ffb6b0f9bc4cd", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 112056, + "system_seconds": 0.22, + "user_seconds": 35.55 + }, + "wall_seconds": 36.543337017006706 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B1/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B1/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/stdout.txt new file mode 100644 index 0000000000..350f6ce62b --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/stdout.txt @@ -0,0 +1,9 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "a79edfebbc99b8787229cdbee3626d46ce01d7e0bbe636d25e7360a8f842097f", "cold_build_load_wall_seconds": 0.3252279229927808, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "a79edfebbc99b8787229cdbee3626d46ce01d7e0bbe636d25e7360a8f842097f", "cold_build_load_wall_seconds": 0.3252279229927808, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_oracle_unchanged": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 33.817265} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B1/usage.json b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/usage.json new file mode 100644 index 0000000000..d0c86fefb4 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B1/usage.json @@ -0,0 +1 @@ +{"user_seconds":35.55,"system_seconds":0.22,"kernel_max_rss_kib":112056,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B2/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/receipt.json new file mode 100644 index 0000000000..3a0d31fbb8 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-complete-B2", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "9b5c8f4d125a6fef058549e83c34b7fab656b569be059346ac2ee8b147057c99", + "sampled_process_group_rss_bytes": 115580928, + "script": "stages/integer-complete-v1/baseline_full.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "cc42383ed2afc04b54af061eab285fc964a1a9d76461377a2fc6e29de9059dad", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 14105, + "stdout_sha256": "58fae507363d9bce3855cbb6b3f0a2640f80770ab95d3a82251124f1315e8870", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 111420, + "system_seconds": 0.22, + "user_seconds": 34.25 + }, + "wall_seconds": 34.66178539200337 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B2/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B2/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/stdout.txt new file mode 100644 index 0000000000..48da043bfd --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/stdout.txt @@ -0,0 +1,9 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "0c5b52fd2b1a495739f51880b731557d4b6b41c6b102baa6c81b07df2677b165", "cold_build_load_wall_seconds": 0.32438887798343785, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "0c5b52fd2b1a495739f51880b731557d4b6b41c6b102baa6c81b07df2677b165", "cold_build_load_wall_seconds": 0.32438887798343785, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_oracle_unchanged": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 31.936547} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B2/usage.json b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/usage.json new file mode 100644 index 0000000000..64a76c5012 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B2/usage.json @@ -0,0 +1 @@ +{"user_seconds":34.25,"system_seconds":0.22,"kernel_max_rss_kib":111420,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B3/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/receipt.json new file mode 100644 index 0000000000..40ba0f0594 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-complete-B3", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "9b5c8f4d125a6fef058549e83c34b7fab656b569be059346ac2ee8b147057c99", + "sampled_process_group_rss_bytes": 115953664, + "script": "stages/integer-complete-v1/baseline_full.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "cc42383ed2afc04b54af061eab285fc964a1a9d76461377a2fc6e29de9059dad", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 14102, + "stdout_sha256": "22b70c360d2f9f55dffc8f78cc48fe04329a9ebf05ec34a1aa1c012729d3b70c", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 111784, + "system_seconds": 0.23, + "user_seconds": 33.36 + }, + "wall_seconds": 33.855156300996896 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B3/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B3/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/stdout.txt new file mode 100644 index 0000000000..5379d604b5 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/stdout.txt @@ -0,0 +1,9 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "171da0072e3bb80d835d7b24b61c550a477214c6dca71f36c1b8a4b21cac3072", "cold_build_load_wall_seconds": 0.6534075719828252, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "171da0072e3bb80d835d7b24b61c550a477214c6dca71f36c1b8a4b21cac3072", "cold_build_load_wall_seconds": 0.6534075719828252, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_oracle_unchanged": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 30.12237} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-B3/usage.json b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/usage.json new file mode 100644 index 0000000000..77cf061567 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-B3/usage.json @@ -0,0 +1 @@ +{"user_seconds":33.36,"system_seconds":0.23,"kernel_max_rss_kib":111784,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C1/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/receipt.json new file mode 100644 index 0000000000..5e0f1b1e12 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-complete-C1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "9b5c8f4d125a6fef058549e83c34b7fab656b569be059346ac2ee8b147057c99", + "sampled_process_group_rss_bytes": 118079488, + "script": "stages/integer-complete-v1/candidate_full.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "cc42383ed2afc04b54af061eab285fc964a1a9d76461377a2fc6e29de9059dad", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 16672, + "stdout_sha256": "eae9f6db82a301166f3bc06b3cd2dc345ac1cced43b66791ac237c3eee5d9cf2", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 113860, + "system_seconds": 0.22, + "user_seconds": 34.1 + }, + "wall_seconds": 34.77152032399317 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C1/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C1/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/stdout.txt new file mode 100644 index 0000000000..a79e42bab2 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/stdout.txt @@ -0,0 +1,10 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "89dfa458845dc66c0327f01962161aba273f9e0ef3c7764c79c2cb0852bfacdb", "cold_build_load_wall_seconds": 0.32714867300819606, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "baseline_fraction_arithmetic_unchanged": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "89dfa458845dc66c0327f01962161aba273f9e0ef3c7764c79c2cb0852bfacdb", "cold_build_load_wall_seconds": 0.32714867300819606, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_backend_changed": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 31.704104} +{"added_finite": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}, "fraction_backend": "unchanged PR5864 Python Fraction arithmetic and native bookkeeping", "integer_backend_changed": true, "native_integer_build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "2c269172566710bdfdcc4cf74980a53e893d87cb0530ca9f917cbddc4d66185a", "cold_build_load_wall_seconds": 0.34473578399047256, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "source_binding": {"changes": [{"count": 1, "name": "fresh-native-sparse-add"}, {"count": 1, "name": "ideal-adopts-fresh-row"}, {"count": 2, "name": "ideal-and-error-native-scale"}, {"count": 1, "name": "native-signed-error-row-and-scores"}, {"count": 1, "name": "exact-three-score-stream-bytes"}, {"count": 1, "name": "full-descending-coefficient-bytes"}, {"count": 1, "name": "native-reverse-scores-and-signed-byte-chunks"}, {"count": 1, "name": "reverse-native-scale"}, {"count": 1, "name": "reverse-adopts-fresh-row"}], "derived_integer_sha256": "93c9212e9f014ef5cc84ce2d2c4b7b61fd81b2ffc12b73d5c54fffb0d58e713e", "fraction_reference_module_modified": false, "integer_backend_changed": true, "original_integer_sha256": "82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a", "source_only_handoff": true, "whole_replay_qualified": false}, "status": "PASS_COMPLETE_INTEGER_FORMAT_CANDIDATE"} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C1/usage.json b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/usage.json new file mode 100644 index 0000000000..92c77db67d --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C1/usage.json @@ -0,0 +1 @@ +{"user_seconds":34.10,"system_seconds":0.22,"kernel_max_rss_kib":113860,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C2/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/receipt.json new file mode 100644 index 0000000000..952003f4b9 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-complete-C2", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "9b5c8f4d125a6fef058549e83c34b7fab656b569be059346ac2ee8b147057c99", + "sampled_process_group_rss_bytes": 117424128, + "script": "stages/integer-complete-v1/candidate_full.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "cc42383ed2afc04b54af061eab285fc964a1a9d76461377a2fc6e29de9059dad", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 16669, + "stdout_sha256": "f6ddbfcf55e5b8b67ef61cccf8d11d1d2197a5ccfd8e798c8b0b2ff623d7b7e0", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 113220, + "system_seconds": 0.23, + "user_seconds": 32.1 + }, + "wall_seconds": 32.41877781198127 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C2/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C2/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/stdout.txt new file mode 100644 index 0000000000..cea40797b5 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/stdout.txt @@ -0,0 +1,10 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "bc2f71ff301f44d3488a492f7823a71fcf9611e88aa51773953072d7b9897941", "cold_build_load_wall_seconds": 0.3109650560072623, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "baseline_fraction_arithmetic_unchanged": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "bc2f71ff301f44d3488a492f7823a71fcf9611e88aa51773953072d7b9897941", "cold_build_load_wall_seconds": 0.3109650560072623, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_backend_changed": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 29.273319} +{"added_finite": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}, "fraction_backend": "unchanged PR5864 Python Fraction arithmetic and native bookkeeping", "integer_backend_changed": true, "native_integer_build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "8020394e06802c5bcf4a444f621ab6bc7cf6fd4a64ca6edfaa5864378d499873", "cold_build_load_wall_seconds": 0.3771791290200781, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "source_binding": {"changes": [{"count": 1, "name": "fresh-native-sparse-add"}, {"count": 1, "name": "ideal-adopts-fresh-row"}, {"count": 2, "name": "ideal-and-error-native-scale"}, {"count": 1, "name": "native-signed-error-row-and-scores"}, {"count": 1, "name": "exact-three-score-stream-bytes"}, {"count": 1, "name": "full-descending-coefficient-bytes"}, {"count": 1, "name": "native-reverse-scores-and-signed-byte-chunks"}, {"count": 1, "name": "reverse-native-scale"}, {"count": 1, "name": "reverse-adopts-fresh-row"}], "derived_integer_sha256": "93c9212e9f014ef5cc84ce2d2c4b7b61fd81b2ffc12b73d5c54fffb0d58e713e", "fraction_reference_module_modified": false, "integer_backend_changed": true, "original_integer_sha256": "82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a", "source_only_handoff": true, "whole_replay_qualified": false}, "status": "PASS_COMPLETE_INTEGER_FORMAT_CANDIDATE"} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C2/usage.json b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/usage.json new file mode 100644 index 0000000000..1004bc864c --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C2/usage.json @@ -0,0 +1 @@ +{"user_seconds":32.10,"system_seconds":0.23,"kernel_max_rss_kib":113220,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C3/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/receipt.json new file mode 100644 index 0000000000..788809b382 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-complete-C3", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "9b5c8f4d125a6fef058549e83c34b7fab656b569be059346ac2ee8b147057c99", + "sampled_process_group_rss_bytes": 117526528, + "script": "stages/integer-complete-v1/candidate_full.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "cc42383ed2afc04b54af061eab285fc964a1a9d76461377a2fc6e29de9059dad", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 16669, + "stdout_sha256": "211e17a57b1da28522c7b06b62b22bc6453ffe83a76704e7c56ec4db179de509", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 113320, + "system_seconds": 0.23, + "user_seconds": 31.74 + }, + "wall_seconds": 32.05788308600313 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C3/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C3/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/stdout.txt new file mode 100644 index 0000000000..d07456d76e --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/stdout.txt @@ -0,0 +1,10 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "3e541789775731eb9af69cb4ce4dbf9e5dbc211e4f5639c7cc071f611cbc736f", "cold_build_load_wall_seconds": 0.3189755599887576, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "baseline_fraction_arithmetic_unchanged": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "3e541789775731eb9af69cb4ce4dbf9e5dbc211e4f5639c7cc071f611cbc736f", "cold_build_load_wall_seconds": 0.3189755599887576, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_backend_changed": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 28.961286} +{"added_finite": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}, "fraction_backend": "unchanged PR5864 Python Fraction arithmetic and native bookkeeping", "integer_backend_changed": true, "native_integer_build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "f7b89a186385676a2a1a9a28a8b2d9678eb57ca99ade7cef15d1fc81c015b3f2", "cold_build_load_wall_seconds": 0.3512439139885828, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "source_binding": {"changes": [{"count": 1, "name": "fresh-native-sparse-add"}, {"count": 1, "name": "ideal-adopts-fresh-row"}, {"count": 2, "name": "ideal-and-error-native-scale"}, {"count": 1, "name": "native-signed-error-row-and-scores"}, {"count": 1, "name": "exact-three-score-stream-bytes"}, {"count": 1, "name": "full-descending-coefficient-bytes"}, {"count": 1, "name": "native-reverse-scores-and-signed-byte-chunks"}, {"count": 1, "name": "reverse-native-scale"}, {"count": 1, "name": "reverse-adopts-fresh-row"}], "derived_integer_sha256": "93c9212e9f014ef5cc84ce2d2c4b7b61fd81b2ffc12b73d5c54fffb0d58e713e", "fraction_reference_module_modified": false, "integer_backend_changed": true, "original_integer_sha256": "82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a", "source_only_handoff": true, "whole_replay_qualified": false}, "status": "PASS_COMPLETE_INTEGER_FORMAT_CANDIDATE"} diff --git a/research/c-verification-feasibility/evidence/runs/integer-complete-C3/usage.json b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/usage.json new file mode 100644 index 0000000000..9e7b19175a --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-complete-C3/usage.json @@ -0,0 +1 @@ +{"user_seconds":31.74,"system_seconds":0.23,"kernel_max_rss_kib":113320,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/receipt.json new file mode 100644 index 0000000000..614a462fbd --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-format-finite-O", + "optimized": true, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "d4dbcbb9000a28babe33ed0060fd683f3f8d954609daeb713daf02ab125ae157", + "sampled_process_group_rss_bytes": 71835648, + "script": "stages/integer-format-v1/finite.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "4d96fa0cedd16b0eac975a317918568ac3659cf5b48b2ab517ded261514402ce", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 1469, + "stdout_sha256": "caac0259f5218ea2bec0968868d4901d2568439e5efd397d3d56ed038ed39562", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 43940, + "system_seconds": 0.05, + "user_seconds": 0.62 + }, + "wall_seconds": 0.715429417003179 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/stdout.txt new file mode 100644 index 0000000000..9186f2ccba --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/stdout.txt @@ -0,0 +1 @@ +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "8abcb0f69bd2d6fbbc203c0c621c353775a70095a8be45fa106e8934a5f273b3", "cold_build_load_wall_seconds": 0.4015332090202719, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/usage.json b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/usage.json new file mode 100644 index 0000000000..681093cbcf --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-finite-O/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.62,"system_seconds":0.05,"kernel_max_rss_kib":43940,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/receipt.json new file mode 100644 index 0000000000..ddad38bd6a --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-format-finite-v1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "d4dbcbb9000a28babe33ed0060fd683f3f8d954609daeb713daf02ab125ae157", + "sampled_process_group_rss_bytes": 70549504, + "script": "stages/integer-format-v1/finite.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "4d96fa0cedd16b0eac975a317918568ac3659cf5b48b2ab517ded261514402ce", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 1469, + "stdout_sha256": "c8cb8a639aa27fe2490056763c8d6f503f42c5d8492d23722c74cf885058c882", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 42764, + "system_seconds": 0.06, + "user_seconds": 0.59 + }, + "wall_seconds": 0.8020448149763979 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/stdout.txt new file mode 100644 index 0000000000..a3566d8611 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/stdout.txt @@ -0,0 +1 @@ +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "a0d1175dd4a0e1427f92219a6b5ac7cf9fd204d7f4b39c1aa05f1905d8f32477", "cold_build_load_wall_seconds": 0.5015519380103797, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "result": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/usage.json b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/usage.json new file mode 100644 index 0000000000..4380257400 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-finite-v1/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.59,"system_seconds":0.06,"kernel_max_rss_kib":42764,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/receipt.json new file mode 100644 index 0000000000..767e15737e --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-format-micro-B1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "d4dbcbb9000a28babe33ed0060fd683f3f8d954609daeb713daf02ab125ae157", + "sampled_process_group_rss_bytes": 25661440, + "script": "stages/integer-format-v1/micro_B1.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "4d96fa0cedd16b0eac975a317918568ac3659cf5b48b2ab517ded261514402ce", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 371, + "stdout_sha256": "13ba13ca18b32e867f47aba027583138272207f13dad7ccccd19e6b91bc0f9ff", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 23740, + "system_seconds": 0.01, + "user_seconds": 0.34 + }, + "wall_seconds": 0.3698824430175591 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/stdout.txt new file mode 100644 index 0000000000..1baa49e022 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/stdout.txt @@ -0,0 +1 @@ +{"build": null, "complete_byte_stream_sha256": "6f43a95d483f0454a0528fa368b3bc905f137542faaf19f643db9e3ad9e5b6eb", "complete_speed_claim": false, "finite": null, "mode": "baseline", "result_sha256": "dbab9ae512339b2fb29e9c3a752801c4c4fd93fedefa15ff92a1242e6f09b56f", "synthetic_batch_cpu_seconds": 0.14198134999999998, "synthetic_batch_wall_seconds": 0.1420025120023638} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/usage.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/usage.json new file mode 100644 index 0000000000..7f91d778c5 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B1/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.34,"system_seconds":0.01,"kernel_max_rss_kib":23740,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/receipt.json new file mode 100644 index 0000000000..c30baf6654 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-format-micro-B2", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "d4dbcbb9000a28babe33ed0060fd683f3f8d954609daeb713daf02ab125ae157", + "sampled_process_group_rss_bytes": 25690112, + "script": "stages/integer-format-v1/micro_B2.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "4d96fa0cedd16b0eac975a317918568ac3659cf5b48b2ab517ded261514402ce", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 372, + "stdout_sha256": "59ca555e634f7ab6ceabe14dd15e3ea9ed2a61179675e595fd57c240e1b262fc", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 23772, + "system_seconds": 0.01, + "user_seconds": 0.33 + }, + "wall_seconds": 0.4286254330072552 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/stdout.txt new file mode 100644 index 0000000000..f747954e90 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/stdout.txt @@ -0,0 +1 @@ +{"build": null, "complete_byte_stream_sha256": "6f43a95d483f0454a0528fa368b3bc905f137542faaf19f643db9e3ad9e5b6eb", "complete_speed_claim": false, "finite": null, "mode": "baseline", "result_sha256": "dbab9ae512339b2fb29e9c3a752801c4c4fd93fedefa15ff92a1242e6f09b56f", "synthetic_batch_cpu_seconds": 0.13797490999999998, "synthetic_batch_wall_seconds": 0.13797231801436283} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/usage.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/usage.json new file mode 100644 index 0000000000..91f5a992f0 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-B2/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.33,"system_seconds":0.01,"kernel_max_rss_kib":23772,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/receipt.json new file mode 100644 index 0000000000..12636f23ea --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-format-micro-C1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "d4dbcbb9000a28babe33ed0060fd683f3f8d954609daeb713daf02ab125ae157", + "sampled_process_group_rss_bytes": 72945664, + "script": "stages/integer-format-v1/micro_C1.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "4d96fa0cedd16b0eac975a317918568ac3659cf5b48b2ab517ded261514402ce", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 1803, + "stdout_sha256": "0d1718af155df26e16f7baaf0a2f2c0863ec24cf51516d041742e1642772b1f8", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 43964, + "system_seconds": 0.04, + "user_seconds": 0.67 + }, + "wall_seconds": 0.7898205800156575 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/stdout.txt new file mode 100644 index 0000000000..387cb31815 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/stdout.txt @@ -0,0 +1 @@ +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "991a8d7efc367ce8a1c55ce73e2cad56b3bb6a9e530f0c556e785cd8f5875d24", "cold_build_load_wall_seconds": 0.35763743601273745, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "complete_byte_stream_sha256": "6f43a95d483f0454a0528fa368b3bc905f137542faaf19f643db9e3ad9e5b6eb", "complete_speed_claim": false, "finite": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}, "mode": "candidate", "result_sha256": "dbab9ae512339b2fb29e9c3a752801c4c4fd93fedefa15ff92a1242e6f09b56f", "synthetic_batch_cpu_seconds": 0.109128595, "synthetic_batch_wall_seconds": 0.10961332099395804} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/usage.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/usage.json new file mode 100644 index 0000000000..06371c2f07 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C1/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.67,"system_seconds":0.04,"kernel_max_rss_kib":43964,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/receipt.json new file mode 100644 index 0000000000..bd9ca75e57 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-format-micro-C2", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "d4dbcbb9000a28babe33ed0060fd683f3f8d954609daeb713daf02ab125ae157", + "sampled_process_group_rss_bytes": 73027584, + "script": "stages/integer-format-v1/micro_C2.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "4d96fa0cedd16b0eac975a317918568ac3659cf5b48b2ab517ded261514402ce", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 1803, + "stdout_sha256": "c695ede465ec5b4d12b5f04b51fafdbf03e8a8be0f4d2bfb2d0c6105e4c02be7", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 44028, + "system_seconds": 0.04, + "user_seconds": 0.71 + }, + "wall_seconds": 0.811024858005112 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/stdout.txt new file mode 100644 index 0000000000..1879657b03 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/stdout.txt @@ -0,0 +1 @@ +{"build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "0e6c2b1dfcd4aa15b46a5b356d02f1985f9a92447c78464293d03cece452ff5b", "cold_build_load_wall_seconds": 0.39532300698920153, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "parent outer process must include compiler children", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "804cc25bd9ad0912de81fe97bc65b95ebcb0dec06453739e1d4863e7946c4f3d"}, "complete_byte_stream_sha256": "6f43a95d483f0454a0528fa368b3bc905f137542faaf19f643db9e3ad9e5b6eb", "complete_speed_claim": false, "finite": {"checks": ["eight-row-and-score-differentials", "aliased-inputs-return-fresh-outputs", "six-ordered-prefixes-and-complete-bytes", "zero-negative-large-reduced-and-ordered-formatting", "score-string-contract-distinct-from-coefficient-contract", "reverse-scores-signed-bytes-and-aliases", "bool-numerator", "foreign-int-value", "foreign-dict", "foreign-key", "float-value", "negative-exponent", "bool-exponent", "inexact-division-transaction", "inexact-scaled-row", "nondyadic-scale", "zero-scale", "negative-scale", "bool-scale", "short-score", "foreign-scores", "foreign-weight", "weight-index-range", "negative-weight-index", "reverse-index-range", "score-nondyadic-unit", "event-type"], "independent_fraction_formatting": true, "ordered_prefixes": 6, "row_cases": 8, "status": "PASS_FINITE_INTEGER_FORMAT", "timing_claim": false, "whole_replay": false}, "mode": "candidate", "result_sha256": "dbab9ae512339b2fb29e9c3a752801c4c4fd93fedefa15ff92a1242e6f09b56f", "synthetic_batch_cpu_seconds": 0.108635123, "synthetic_batch_wall_seconds": 0.10865863302024081} diff --git a/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/usage.json b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/usage.json new file mode 100644 index 0000000000..fe5d6702a7 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-format-micro-C2/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.71,"system_seconds":0.04,"kernel_max_rss_kib":44028,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/receipt.json b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/receipt.json new file mode 100644 index 0000000000..7ce2e2dbab --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "integer-owned-boundary-v1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "aeb34b5beb1d87290de173cc233f027df0c7557db633751c6f555566f59ffa14", + "sampled_process_group_rss_bytes": 116543488, + "script": "stages/integer-owned-screen-v1/run.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "ba2e6b4a07c1fac8752e3fdb69389288e3e015c0c9f4ca21e1914dc1ba09ccf9", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 64792, + "stdout_sha256": "dadf9a5bc0e75e1dee8d75d58498e7685578c0a59290b525fa83e45835230733", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 112360, + "system_seconds": 0.2, + "user_seconds": 31.54 + }, + "wall_seconds": 31.856106446008198 +} diff --git a/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/stderr.txt b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/stdout.txt b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/stdout.txt new file mode 100644 index 0000000000..628e0003f0 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/stdout.txt @@ -0,0 +1,10 @@ +{"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"} +{"all_coverage_preserved": true, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "31abc2170757ffcd74bd8931a6c85c5d3269cfc8e65f9c25406b3479ba2259ba", "cold_build_load_wall_seconds": 0.32623240098473616, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_coverage_preserved": true, "inherited": {"all_complete_values_and_types_equal": true, "cases": 241, "controls": ["returned-mutation-isolated", "source-drift", "Fraction-type-drift", "module-byte-drift", "live-code-drift", "nested-live-code-drift", "omitted-witness", "omitted-rounded-sites", "wrong-coefficient", "wrong-weighted-increment", "bad-role", "bad-scalar", "missing-weight", "restore-success", "restore-exception", "fresh-derivation", "key-field-0", "key-field-1", "key-field-2", "key-field-3", "key-field-4", "FIFO-eviction", "canonical-key", "hash-collision", "disabled", "invalid-capacity--1", "invalid-capacity-16385", "invalid-capacity-True", "invalid-capacity-1.5", "uncached-exception-0", "uncached-exception-1", "fresh-call-table", "stats-mutation", "failed-call-clears-stats"], "events": 10164, "status": "PASS_FINITE_FRACTION_TABLE_FEASIBILITY"}, "new_control_count": 20, "new_controls": ["all-241-fixtures-take-certified-domain", "subtypes-and-foreign-types-fall-back-without-custom-methods", "metaclass-container", "metaclass-scalar", "original-fallback-dict-subclass", "original-fallback-program-subclass", "original-fallback-event-subclass", "original-fallback-weights-subclass", "original-fallback-row-subclass", "original-fallback-rounded-subclass", "original-fallback-Fraction-subclass", "original-fallback-integer-weights", "original-fallback-boolean-public", "exact-internal-type-preservation-at-certified-updates", "malformed-outcome-missing-weight", "malformed-outcome-bad-role", "malformed-outcome-bad-scalar", "malformed-outcome-short-event", "recertification-invalidates-certified-method", "disabled-capacity-not-certified"], "status": "PASS_TYPE_GATE_FINITE_FEASIBILITY"}, "new_control_count": 9, "new_controls": ["canonical-full-pair-tokens", "weight-token-hash-collision", "bounded-context-overflow", "event-q-canonical-equality-and-FIFO-counters", "six-complete-trace-counter-and-type-comparisons", "source-site-weight-ownership", "wrong-token-alias-detected", "overflow-fallback-preserves-original", "fresh-token-and-cache-lifetimes"], "status": "PASS_COMPACT_KEY_FINITE_ONLY"}, "new_control_count": 10, "new_controls": ["changed-getter-invalidates", "changed-live-getter-code", "foreign-slot-probe-is-pure", "changed-attribute-lookup", "missing-attribute-handler-presence", "binding-restored", "slot-path-selected", "post-derive-getter-drift-literal-fallback", "uninitialized-unused-weight-fallback", "foreign-slot-value-fallback"], "status": "PASS_SLOT_KEY_FINITE_ONLY"}, "native_control_count": 45, "native_controls": ["canonical-keys-FIFO-wrap-counters", "native-hash-collision", "exact-one-callback-per-miss", "uncached-native-error-0", "uncached-native-error-1", "full-cache-failure-before-eviction", "cache-survives-callback-exception", "capacity-0", "capacity--1", "capacity-16385", "capacity-True", "capacity-1.5", "capacity-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index--1", "index-3", "index-10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "index-True", "index-0", "arity", "keywords", "exact-operand", "exact-scalar", "event-creation", "descriptor-protocol", "token-length", "token-range", "partial-init-length", "partial-init-weight", "callback-result-shape", "callback-result-type", "callback-reentry", "event-owns-parent", "GC-callback-cycle", "native-statistics-isolated", "native-coefficient-loop", "same-row-lowlevel-rejection", "dict-iterator-mutation-safe", "callback-list-mutation-safe", "native-source-authenticated", "callback-descriptor-is-pure", "plain-callback-rejected", "live-callback-code-drift", "owned-metadata-snapshot", "same-row-source-fallback", "malformed-scalar-literal-fallback"], "status": "PASS_NATIVE_FINITE_ONLY"} +{"backends": 2, "controls": ["one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "one-use", "closed-call", "missing", "duplicate", "changed-weights", "changed-rounding", "changed-word", "original-malformed-rejection", "propagated-exception", "failed-finish", "failed-take", "fresh-context-not-previous-pass", "aborted-take", "input-mutation"], "events": 5, "status": "PASS_FINITE_FEASIBILITY_ONLY"} +{"actual": {"output_sha256": "954c7448ff74d78753828e9623ad44c46da9e5ce459420b6e50a5d47294250b9", "statistics": {"bypasses": 0, "calls": 2579750, "capacity": 16384, "evictions": 310400, "hits": 2252966, "misses": 326784, "resident": 16384}, "tokens": 3587}, "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "31abc2170757ffcd74bd8931a6c85c5d3269cfc8e65f9c25406b3479ba2259ba", "cold_build_load_wall_seconds": 0.32623240098473616, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "78ed2e240ee40ce4989a4718e77e8b3967b092d2bf8c900124a26942c98a14cb"}, "compiler_children_charged": true, "integer_oracle_unchanged": true, "native_finite_included": true, "status": "PASS_COMPLETE_NATIVE_COVERAGE"} +PASS_P104_SINGLE_PASS_QUALIFICATION +{"mode": "qualify", "receipt": {"all_actual_witness_rows_equal": true, "coefficient_scale_bits": 55, "coordinates": 799, "events": 25984, "finite_fixtures": {"cases": 120, "controls": ["nondyadic scalar", "inexact scale division", "nondyadic weight"], "events": 4240}, "guards": {"owned": 22, "prefix": 26, "public": 23}, "source_controls": 6, "source_result_sha256": "cc7739703ed23532d187949c8507d09c13ac4c152e07a930f0087cde0d7a3d98"}, "seconds": 28.945226} +{"arithmetic_changed": false, "complete_speed_claim": false, "construction_admitted": false, "counts": {"error_trace": 121, "ideal": 4, "reverse_all": 121}, "eligible_disjoint_union_seconds": {"cpu": 4.853204029000002, "wall": 4.855752163886791}, "expected_actual_program_length": 25984, "fixed_baseline_medians": {"cpu": 34.47, "wall": 34.66178539200337}, "fixed_noise_spreads": {"cpu": 2.3500000000000014, "wall": 2.713637237990042}, "fraction_path_changed": false, "full_source_sha256": "ce6f15ca892db095d4b9f79b58cb3c199b18da341def761c577cc8651abc0cc0", "instrumented_driver_sha256": "90b1eaba6b1a52c5d03a5cb19e6a294d30a5ca6192648eab0ae8af8cb54ec896", "integer_source_sha256": "82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a", "interpretation": "Even deleting every timed original integer call cannot fund the fixed gate.", "metadata_and_output_costs_outside_eligible_union": true, "necessary_zero_cost_threshold_seconds": {"cpu": 5.1705, "wall": 5.199267808800505}, "nomination_rejected": true, "outer_cpu_must_include_existing_compiler_children": true, "own_process_cpu_only_inside_engine": true, "performance_sample": false, "records": [{"classification": "actual_word", "cpu_seconds": 0.544413971, "exception": null, "family": "ideal", "outermost": true, "program_length": 25984, "wall_seconds": 0.5448808490182273}, {"classification": "actual_word", "cpu_seconds": 2.915196117, "exception": null, "family": "error_trace", "outermost": true, "program_length": 25984, "wall_seconds": 2.9158753560041077}, {"classification": "actual_word", "cpu_seconds": 0.9534440719999999, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 25984, "wall_seconds": 0.9542549859907012}, {"classification": "modified_word_control", "cpu_seconds": 0.2735104669999995, "exception": "ValueError", "family": "ideal", "outermost": true, "program_length": 25985, "wall_seconds": 0.273615426995093}, {"classification": "modified_word_control", "cpu_seconds": 0.034584928000001014, "exception": "ValueError", "family": "ideal", "outermost": true, "program_length": 25984, "wall_seconds": 0.03460642998106778}, {"classification": "modified_word_control", "cpu_seconds": 0.03475777200000074, "exception": "ValueError", "family": "ideal", "outermost": true, "program_length": 25984, "wall_seconds": 0.03476152999792248}, {"classification": "finite_fixture", "cpu_seconds": 0.00014471599999765772, "exception": null, "family": "error_trace", "outermost": true, "program_length": 5, "wall_seconds": 0.0001474670134484768}, {"classification": "finite_fixture", "cpu_seconds": 7.746800000063558e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 5, "wall_seconds": 7.892798748798668e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00013194900000002008, "exception": null, "family": "error_trace", "outermost": true, "program_length": 6, "wall_seconds": 0.00013346201740205288}, {"classification": "finite_fixture", "cpu_seconds": 9.150900000065576e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 6, "wall_seconds": 0.00010158601799048483}, {"classification": "finite_fixture", "cpu_seconds": 0.00015420100000085313, "exception": null, "family": "error_trace", "outermost": true, "program_length": 7, "wall_seconds": 0.00015565802459605038}, {"classification": "finite_fixture", "cpu_seconds": 8.906100000061201e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 7, "wall_seconds": 9.053500252775848e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00018328199999828598, "exception": null, "family": "error_trace", "outermost": true, "program_length": 8, "wall_seconds": 0.0001848780084401369}, {"classification": "finite_fixture", "cpu_seconds": 8.795500000147172e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 8, "wall_seconds": 8.932701894082129e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00016741900000027954, "exception": null, "family": "error_trace", "outermost": true, "program_length": 9, "wall_seconds": 0.0001688519841991365}, {"classification": "finite_fixture", "cpu_seconds": 0.00011472100000275987, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 9, "wall_seconds": 0.00011616700794547796}, {"classification": "finite_fixture", "cpu_seconds": 0.00020741000000157328, "exception": null, "family": "error_trace", "outermost": true, "program_length": 10, "wall_seconds": 0.00020901800598949194}, {"classification": "finite_fixture", "cpu_seconds": 0.00012040800000079344, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 10, "wall_seconds": 0.00012188797700218856}, {"classification": "finite_fixture", "cpu_seconds": 0.0001990519999992557, "exception": null, "family": "error_trace", "outermost": true, "program_length": 11, "wall_seconds": 0.00020067801233381033}, {"classification": "finite_fixture", "cpu_seconds": 0.00012447800000003895, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 11, "wall_seconds": 0.00012583599891513586}, {"classification": "finite_fixture", "cpu_seconds": 0.00027867400000047837, "exception": null, "family": "error_trace", "outermost": true, "program_length": 12, "wall_seconds": 0.00028870298410765827}, {"classification": "finite_fixture", "cpu_seconds": 0.00013027800000031675, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 12, "wall_seconds": 0.00013167198630981147}, {"classification": "finite_fixture", "cpu_seconds": 0.00024971900000281266, "exception": null, "family": "error_trace", "outermost": true, "program_length": 13, "wall_seconds": 0.0002512560167815536}, {"classification": "finite_fixture", "cpu_seconds": 0.0001288959999996564, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 13, "wall_seconds": 0.0001302319869864732}, {"classification": "finite_fixture", "cpu_seconds": 0.0002744400000018743, "exception": null, "family": "error_trace", "outermost": true, "program_length": 14, "wall_seconds": 0.00027590198442339897}, {"classification": "finite_fixture", "cpu_seconds": 0.00016587800000067432, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 14, "wall_seconds": 0.00016731300274841487}, {"classification": "finite_fixture", "cpu_seconds": 0.000302288999996847, "exception": null, "family": "error_trace", "outermost": true, "program_length": 15, "wall_seconds": 0.00030385301215574145}, {"classification": "finite_fixture", "cpu_seconds": 0.00018540800000010904, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 15, "wall_seconds": 0.00018674900638870895}, {"classification": "finite_fixture", "cpu_seconds": 0.0002557129999978258, "exception": null, "family": "error_trace", "outermost": true, "program_length": 16, "wall_seconds": 0.00025730099878273904}, {"classification": "finite_fixture", "cpu_seconds": 0.00016728000000298948, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 16, "wall_seconds": 0.00016876199515536427}, {"classification": "finite_fixture", "cpu_seconds": 0.0002651769999992837, "exception": null, "family": "error_trace", "outermost": true, "program_length": 17, "wall_seconds": 0.0002667150110937655}, {"classification": "finite_fixture", "cpu_seconds": 0.00014855300000249372, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 17, "wall_seconds": 0.0001498789933975786}, {"classification": "finite_fixture", "cpu_seconds": 0.0003102179999991961, "exception": null, "family": "error_trace", "outermost": true, "program_length": 18, "wall_seconds": 0.00032151301275007427}, {"classification": "finite_fixture", "cpu_seconds": 0.00019853699999927699, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 18, "wall_seconds": 0.00020003700046800077}, {"classification": "finite_fixture", "cpu_seconds": 0.0003246320000016567, "exception": null, "family": "error_trace", "outermost": true, "program_length": 19, "wall_seconds": 0.0003263560065533966}, {"classification": "finite_fixture", "cpu_seconds": 0.00017023299999863184, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 19, "wall_seconds": 0.00017164502060040832}, {"classification": "finite_fixture", "cpu_seconds": 0.00032911200000285135, "exception": null, "family": "error_trace", "outermost": true, "program_length": 20, "wall_seconds": 0.0003306700091343373}, {"classification": "finite_fixture", "cpu_seconds": 0.00018308599999983244, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 20, "wall_seconds": 0.00018449698109179735}, {"classification": "finite_fixture", "cpu_seconds": 0.00032679499999943573, "exception": null, "family": "error_trace", "outermost": true, "program_length": 21, "wall_seconds": 0.00032843698863871396}, {"classification": "finite_fixture", "cpu_seconds": 0.0001944350000009365, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 21, "wall_seconds": 0.00019584799883887172}, {"classification": "finite_fixture", "cpu_seconds": 0.00033027599999968515, "exception": null, "family": "error_trace", "outermost": true, "program_length": 22, "wall_seconds": 0.0003317139926366508}, {"classification": "finite_fixture", "cpu_seconds": 0.00018561000000261174, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 22, "wall_seconds": 0.0001870489795692265}, {"classification": "finite_fixture", "cpu_seconds": 0.0003872020000024179, "exception": null, "family": "error_trace", "outermost": true, "program_length": 23, "wall_seconds": 0.00038884198875166476}, {"classification": "finite_fixture", "cpu_seconds": 0.00021157000000116, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 23, "wall_seconds": 0.00021340098464861512}, {"classification": "finite_fixture", "cpu_seconds": 0.0003424239999993972, "exception": null, "family": "error_trace", "outermost": true, "program_length": 24, "wall_seconds": 0.00034396699629724026}, {"classification": "finite_fixture", "cpu_seconds": 0.00021890200000029836, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 24, "wall_seconds": 0.00022039099712856114}, {"classification": "finite_fixture", "cpu_seconds": 0.0005009969999996144, "exception": null, "family": "error_trace", "outermost": true, "program_length": 25, "wall_seconds": 0.0005025969876442105}, {"classification": "finite_fixture", "cpu_seconds": 0.00026900599999990504, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 25, "wall_seconds": 0.00027043800218962133}, {"classification": "finite_fixture", "cpu_seconds": 0.00042107699999860415, "exception": null, "family": "error_trace", "outermost": true, "program_length": 26, "wall_seconds": 0.00042271800339221954}, {"classification": "finite_fixture", "cpu_seconds": 0.00022539500000107182, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 26, "wall_seconds": 0.00022688298486173153}, {"classification": "finite_fixture", "cpu_seconds": 0.0003836340000020755, "exception": null, "family": "error_trace", "outermost": true, "program_length": 27, "wall_seconds": 0.000385160994483158}, {"classification": "finite_fixture", "cpu_seconds": 0.00021930300000150282, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 27, "wall_seconds": 0.0002207560173701495}, {"classification": "finite_fixture", "cpu_seconds": 0.0004667900000008274, "exception": null, "family": "error_trace", "outermost": true, "program_length": 28, "wall_seconds": 0.0004683589795604348}, {"classification": "finite_fixture", "cpu_seconds": 0.00023473400000284528, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 28, "wall_seconds": 0.00023622700246050954}, {"classification": "finite_fixture", "cpu_seconds": 0.00042273999999764555, "exception": null, "family": "error_trace", "outermost": true, "program_length": 29, "wall_seconds": 0.00042432500049471855}, {"classification": "finite_fixture", "cpu_seconds": 0.0002402650000021822, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 29, "wall_seconds": 0.0002417630166746676}, {"classification": "finite_fixture", "cpu_seconds": 0.0004001630000018963, "exception": null, "family": "error_trace", "outermost": true, "program_length": 30, "wall_seconds": 0.0004020819906145334}, {"classification": "finite_fixture", "cpu_seconds": 0.00022455399999898873, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 30, "wall_seconds": 0.0002259699977003038}, {"classification": "finite_fixture", "cpu_seconds": 0.0004824320000018645, "exception": null, "family": "error_trace", "outermost": true, "program_length": 31, "wall_seconds": 0.0004841220215894282}, {"classification": "finite_fixture", "cpu_seconds": 0.0002588750000001028, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 31, "wall_seconds": 0.0002603379834908992}, {"classification": "finite_fixture", "cpu_seconds": 0.0004832789999973386, "exception": null, "family": "error_trace", "outermost": true, "program_length": 32, "wall_seconds": 0.0004848829994443804}, {"classification": "finite_fixture", "cpu_seconds": 0.00027825199999753636, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 32, "wall_seconds": 0.00027969799702987075}, {"classification": "finite_fixture", "cpu_seconds": 0.00044181000000165227, "exception": null, "family": "error_trace", "outermost": true, "program_length": 33, "wall_seconds": 0.00044336600694805384}, {"classification": "finite_fixture", "cpu_seconds": 0.0002375239999992118, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 33, "wall_seconds": 0.00023893799516372383}, {"classification": "finite_fixture", "cpu_seconds": 0.000515075000002696, "exception": null, "family": "error_trace", "outermost": true, "program_length": 34, "wall_seconds": 0.0005209480004850775}, {"classification": "finite_fixture", "cpu_seconds": 0.0002741630000002715, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 34, "wall_seconds": 0.0002756309986580163}, {"classification": "finite_fixture", "cpu_seconds": 0.00047766499999823964, "exception": null, "family": "error_trace", "outermost": true, "program_length": 35, "wall_seconds": 0.0004792070249095559}, {"classification": "finite_fixture", "cpu_seconds": 0.0002729370000018605, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 35, "wall_seconds": 0.00027442400460131466}, {"classification": "finite_fixture", "cpu_seconds": 0.000451267999999061, "exception": null, "family": "error_trace", "outermost": true, "program_length": 36, "wall_seconds": 0.00045272998977452517}, {"classification": "finite_fixture", "cpu_seconds": 0.0002461969999991709, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 36, "wall_seconds": 0.0002476199879311025}, {"classification": "finite_fixture", "cpu_seconds": 0.000563020999997832, "exception": null, "family": "error_trace", "outermost": true, "program_length": 37, "wall_seconds": 0.0005646209756378084}, {"classification": "finite_fixture", "cpu_seconds": 0.00032334799999844677, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 37, "wall_seconds": 0.0003247929853387177}, {"classification": "finite_fixture", "cpu_seconds": 0.0005040869999994868, "exception": null, "family": "error_trace", "outermost": true, "program_length": 38, "wall_seconds": 0.0005056480003986508}, {"classification": "finite_fixture", "cpu_seconds": 0.0002870460000004016, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 38, "wall_seconds": 0.00028857699362561107}, {"classification": "finite_fixture", "cpu_seconds": 0.0004982330000018464, "exception": null, "family": "error_trace", "outermost": true, "program_length": 39, "wall_seconds": 0.0004997489741072059}, {"classification": "finite_fixture", "cpu_seconds": 0.00028332700000177624, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 39, "wall_seconds": 0.0002846480056177825}, {"classification": "finite_fixture", "cpu_seconds": 0.0005944079999977703, "exception": null, "family": "error_trace", "outermost": true, "program_length": 40, "wall_seconds": 0.0005959420232102275}, {"classification": "finite_fixture", "cpu_seconds": 0.0003390080000009732, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 40, "wall_seconds": 0.0003404789895284921}, {"classification": "finite_fixture", "cpu_seconds": 0.0005831050000004723, "exception": null, "family": "error_trace", "outermost": true, "program_length": 41, "wall_seconds": 0.0005849339941050857}, {"classification": "finite_fixture", "cpu_seconds": 0.0003328210000006493, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 41, "wall_seconds": 0.0003341799892950803}, {"classification": "finite_fixture", "cpu_seconds": 0.0005662019999981283, "exception": null, "family": "error_trace", "outermost": true, "program_length": 42, "wall_seconds": 0.000567914015846327}, {"classification": "finite_fixture", "cpu_seconds": 0.00032214100000160784, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 42, "wall_seconds": 0.00032367100357078016}, {"classification": "finite_fixture", "cpu_seconds": 0.0006203029999980458, "exception": null, "family": "error_trace", "outermost": true, "program_length": 43, "wall_seconds": 0.0006219460046850145}, {"classification": "finite_fixture", "cpu_seconds": 0.0003744539999992469, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 43, "wall_seconds": 0.0003760499821510166}, {"classification": "finite_fixture", "cpu_seconds": 0.0005911219999994444, "exception": null, "family": "error_trace", "outermost": true, "program_length": 44, "wall_seconds": 0.0005927000020164996}, {"classification": "finite_fixture", "cpu_seconds": 0.000358529999999746, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 44, "wall_seconds": 0.0003603899967856705}, {"classification": "finite_fixture", "cpu_seconds": 0.0005802680000002169, "exception": null, "family": "error_trace", "outermost": true, "program_length": 45, "wall_seconds": 0.0005821859813295305}, {"classification": "finite_fixture", "cpu_seconds": 0.0003126299999998139, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 45, "wall_seconds": 0.00031408597715198994}, {"classification": "finite_fixture", "cpu_seconds": 0.0006835909999978185, "exception": null, "family": "error_trace", "outermost": true, "program_length": 46, "wall_seconds": 0.0006852189835626632}, {"classification": "finite_fixture", "cpu_seconds": 0.00036558699999744704, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 46, "wall_seconds": 0.0003671080048661679}, {"classification": "finite_fixture", "cpu_seconds": 0.0006191549999989832, "exception": null, "family": "error_trace", "outermost": true, "program_length": 47, "wall_seconds": 0.0006208900013007224}, {"classification": "finite_fixture", "cpu_seconds": 0.00035314599999836105, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 47, "wall_seconds": 0.00035462298546917737}, {"classification": "finite_fixture", "cpu_seconds": 0.0005804040000008115, "exception": null, "family": "error_trace", "outermost": true, "program_length": 48, "wall_seconds": 0.0005820700025651604}, {"classification": "finite_fixture", "cpu_seconds": 0.0003381469999972353, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 48, "wall_seconds": 0.00034028998925350606}, {"classification": "finite_fixture", "cpu_seconds": 0.0006347590000004288, "exception": null, "family": "error_trace", "outermost": true, "program_length": 49, "wall_seconds": 0.0006366260058712214}, {"classification": "finite_fixture", "cpu_seconds": 0.0003806960000005688, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 49, "wall_seconds": 0.0003823380102403462}, {"classification": "finite_fixture", "cpu_seconds": 0.0006646980000013514, "exception": null, "family": "error_trace", "outermost": true, "program_length": 50, "wall_seconds": 0.0006662849918939173}, {"classification": "finite_fixture", "cpu_seconds": 0.00037217599999905815, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 50, "wall_seconds": 0.00037373299710452557}, {"classification": "finite_fixture", "cpu_seconds": 0.0007132340000026716, "exception": null, "family": "error_trace", "outermost": true, "program_length": 51, "wall_seconds": 0.0007149899902287871}, {"classification": "finite_fixture", "cpu_seconds": 0.0004019960000007927, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 51, "wall_seconds": 0.00040360799175687134}, {"classification": "finite_fixture", "cpu_seconds": 0.0006844319999999016, "exception": null, "family": "error_trace", "outermost": true, "program_length": 52, "wall_seconds": 0.0006863849994260818}, {"classification": "finite_fixture", "cpu_seconds": 0.00037204099999854634, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 52, "wall_seconds": 0.0003735939972102642}, {"classification": "finite_fixture", "cpu_seconds": 0.0006140389999984563, "exception": null, "family": "error_trace", "outermost": true, "program_length": 53, "wall_seconds": 0.0006155809969641268}, {"classification": "finite_fixture", "cpu_seconds": 0.0003599980000004166, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 53, "wall_seconds": 0.0003614879969973117}, {"classification": "finite_fixture", "cpu_seconds": 0.0007541029999984517, "exception": null, "family": "error_trace", "outermost": true, "program_length": 54, "wall_seconds": 0.0007557990029454231}, {"classification": "finite_fixture", "cpu_seconds": 0.00045773399999760045, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 54, "wall_seconds": 0.0004591410106513649}, {"classification": "finite_fixture", "cpu_seconds": 0.0007229100000003541, "exception": null, "family": "error_trace", "outermost": true, "program_length": 55, "wall_seconds": 0.000724475015886128}, {"classification": "finite_fixture", "cpu_seconds": 0.0003985819999989815, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 55, "wall_seconds": 0.0003999430045951158}, {"classification": "finite_fixture", "cpu_seconds": 0.0007212849999973514, "exception": null, "family": "error_trace", "outermost": true, "program_length": 56, "wall_seconds": 0.0007231429917737842}, {"classification": "finite_fixture", "cpu_seconds": 0.00038292700000042146, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 56, "wall_seconds": 0.0003844439925160259}, {"classification": "finite_fixture", "cpu_seconds": 0.0008024509999984275, "exception": null, "family": "error_trace", "outermost": true, "program_length": 57, "wall_seconds": 0.0008041580149438232}, {"classification": "finite_fixture", "cpu_seconds": 0.00040003499999841097, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 57, "wall_seconds": 0.00040146801620721817}, {"classification": "finite_fixture", "cpu_seconds": 0.0009311499999995476, "exception": null, "family": "error_trace", "outermost": true, "program_length": 58, "wall_seconds": 0.0009328779997304082}, {"classification": "finite_fixture", "cpu_seconds": 0.0004957419999982449, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 58, "wall_seconds": 0.0004973300092387944}, {"classification": "finite_fixture", "cpu_seconds": 0.0008640409999998155, "exception": null, "family": "error_trace", "outermost": true, "program_length": 59, "wall_seconds": 0.0008656879945192486}, {"classification": "finite_fixture", "cpu_seconds": 0.0004302980000012724, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 59, "wall_seconds": 0.0004319259896874428}, {"classification": "finite_fixture", "cpu_seconds": 0.0009355430000006493, "exception": null, "family": "error_trace", "outermost": true, "program_length": 60, "wall_seconds": 0.0009370930201839656}, {"classification": "finite_fixture", "cpu_seconds": 0.0005227119999986485, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 60, "wall_seconds": 0.000524084985954687}, {"classification": "finite_fixture", "cpu_seconds": 0.000801855999998935, "exception": null, "family": "error_trace", "outermost": true, "program_length": 61, "wall_seconds": 0.0008034810016397387}, {"classification": "finite_fixture", "cpu_seconds": 0.0004594509999975571, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 61, "wall_seconds": 0.0004611089825630188}, {"classification": "finite_fixture", "cpu_seconds": 0.0010093320000024164, "exception": null, "family": "error_trace", "outermost": true, "program_length": 62, "wall_seconds": 0.001011182990623638}, {"classification": "finite_fixture", "cpu_seconds": 0.000521484999996602, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 62, "wall_seconds": 0.0005231040122453123}, {"classification": "finite_fixture", "cpu_seconds": 0.0009533130000001222, "exception": null, "family": "error_trace", "outermost": true, "program_length": 63, "wall_seconds": 0.0009551009861752391}, {"classification": "finite_fixture", "cpu_seconds": 0.0005033559999993997, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 63, "wall_seconds": 0.0005049110040999949}, {"classification": "finite_fixture", "cpu_seconds": 0.0008759749999995847, "exception": null, "family": "error_trace", "outermost": true, "program_length": 64, "wall_seconds": 0.0008778490009717643}, {"classification": "finite_fixture", "cpu_seconds": 0.0004851190000003669, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 64, "wall_seconds": 0.00048672399134375155}, {"classification": "finite_fixture", "cpu_seconds": 0.0011565579999981423, "exception": null, "family": "error_trace", "outermost": true, "program_length": 65, "wall_seconds": 0.001158358994871378}, {"classification": "finite_fixture", "cpu_seconds": 0.0005371259999975564, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 65, "wall_seconds": 0.0005385729891713709}, {"classification": "finite_fixture", "cpu_seconds": 0.0011456480000013869, "exception": null, "family": "error_trace", "outermost": true, "program_length": 66, "wall_seconds": 0.001147719012806192}, {"classification": "finite_fixture", "cpu_seconds": 0.0005801260000026787, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 66, "wall_seconds": 0.0005938370013609529}, {"classification": "finite_fixture", "cpu_seconds": 0.0009714560000020356, "exception": null, "family": "error_trace", "outermost": true, "program_length": 67, "wall_seconds": 0.000973180023720488}, {"classification": "finite_fixture", "cpu_seconds": 0.0005081800000006353, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 67, "wall_seconds": 0.0005096539971418679}, {"classification": "finite_fixture", "cpu_seconds": 0.0009652819999992346, "exception": null, "family": "error_trace", "outermost": true, "program_length": 68, "wall_seconds": 0.000991638022242114}, {"classification": "finite_fixture", "cpu_seconds": 0.0004665060000021981, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 68, "wall_seconds": 0.00046804899466224015}, {"classification": "finite_fixture", "cpu_seconds": 0.000895700000000943, "exception": null, "family": "error_trace", "outermost": true, "program_length": 69, "wall_seconds": 0.0008975160017143935}, {"classification": "finite_fixture", "cpu_seconds": 0.0004653129999994121, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 69, "wall_seconds": 0.0004668269830290228}, {"classification": "finite_fixture", "cpu_seconds": 0.0008054810000004409, "exception": null, "family": "error_trace", "outermost": true, "program_length": 70, "wall_seconds": 0.000807060016086325}, {"classification": "finite_fixture", "cpu_seconds": 0.0004457010000002981, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 70, "wall_seconds": 0.00044724601320922375}, {"classification": "finite_fixture", "cpu_seconds": 0.0008873069999992822, "exception": null, "family": "error_trace", "outermost": true, "program_length": 71, "wall_seconds": 0.0008890499884728342}, {"classification": "finite_fixture", "cpu_seconds": 0.0005177230000015243, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 71, "wall_seconds": 0.0005194690020289272}, {"classification": "finite_fixture", "cpu_seconds": 0.0009829499999973734, "exception": null, "family": "error_trace", "outermost": true, "program_length": 72, "wall_seconds": 0.0009845379972830415}, {"classification": "finite_fixture", "cpu_seconds": 0.0005426279999980466, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 72, "wall_seconds": 0.0005442629917524755}, {"classification": "finite_fixture", "cpu_seconds": 0.0008931889999992393, "exception": null, "family": "error_trace", "outermost": true, "program_length": 73, "wall_seconds": 0.0008950020128395408}, {"classification": "finite_fixture", "cpu_seconds": 0.0005082499999993217, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 73, "wall_seconds": 0.0005098290275782347}, {"classification": "finite_fixture", "cpu_seconds": 0.000977463999998207, "exception": null, "family": "error_trace", "outermost": true, "program_length": 74, "wall_seconds": 0.0009792600176297128}, {"classification": "finite_fixture", "cpu_seconds": 0.0005312150000023053, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 74, "wall_seconds": 0.0005327419785317034}, {"classification": "finite_fixture", "cpu_seconds": 0.00015259899999975346, "exception": null, "family": "error_trace", "outermost": true, "program_length": 5, "wall_seconds": 0.00015424098819494247}, {"classification": "finite_fixture", "cpu_seconds": 8.160500000187199e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 5, "wall_seconds": 8.292400161735713e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00014379699999977902, "exception": null, "family": "error_trace", "outermost": true, "program_length": 6, "wall_seconds": 0.00014516498777084053}, {"classification": "finite_fixture", "cpu_seconds": 7.52689999998779e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 6, "wall_seconds": 7.656199159100652e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.0001336670000000595, "exception": null, "family": "error_trace", "outermost": true, "program_length": 7, "wall_seconds": 0.00013516200124286115}, {"classification": "finite_fixture", "cpu_seconds": 7.598000000186289e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 7, "wall_seconds": 7.720600115135312e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00015224900000276875, "exception": null, "family": "error_trace", "outermost": true, "program_length": 8, "wall_seconds": 0.00015357602387666702}, {"classification": "finite_fixture", "cpu_seconds": 8.422000000152252e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 8, "wall_seconds": 8.539101690985262e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00015739499999867235, "exception": null, "family": "error_trace", "outermost": true, "program_length": 9, "wall_seconds": 0.00015879998682066798}, {"classification": "finite_fixture", "cpu_seconds": 9.448700000191934e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 9, "wall_seconds": 9.571699774824083e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.0001509569999988969, "exception": null, "family": "error_trace", "outermost": true, "program_length": 10, "wall_seconds": 0.0001523930113762617}, {"classification": "finite_fixture", "cpu_seconds": 9.209099999907266e-05, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 10, "wall_seconds": 9.332399349659681e-05}, {"classification": "finite_fixture", "cpu_seconds": 0.00018066700000218816, "exception": null, "family": "error_trace", "outermost": true, "program_length": 11, "wall_seconds": 0.00018207798711955547}, {"classification": "finite_fixture", "cpu_seconds": 0.00010734299999981545, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 11, "wall_seconds": 0.00010869998368434608}, {"classification": "finite_fixture", "cpu_seconds": 0.00018535000000241553, "exception": null, "family": "error_trace", "outermost": true, "program_length": 12, "wall_seconds": 0.00018678398919291794}, {"classification": "finite_fixture", "cpu_seconds": 0.00010954599999735137, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 12, "wall_seconds": 0.00011085599544458091}, {"classification": "finite_fixture", "cpu_seconds": 0.0002038529999985883, "exception": null, "family": "error_trace", "outermost": true, "program_length": 13, "wall_seconds": 0.00020534801296889782}, {"classification": "finite_fixture", "cpu_seconds": 0.0001108820000013111, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 13, "wall_seconds": 0.00011211499804630876}, {"classification": "finite_fixture", "cpu_seconds": 0.0002217120000018724, "exception": null, "family": "error_trace", "outermost": true, "program_length": 14, "wall_seconds": 0.00022316499962471426}, {"classification": "finite_fixture", "cpu_seconds": 0.00011760499999979857, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 14, "wall_seconds": 0.00011889901361428201}, {"classification": "finite_fixture", "cpu_seconds": 0.0002598240000004637, "exception": null, "family": "error_trace", "outermost": true, "program_length": 15, "wall_seconds": 0.00026135300868190825}, {"classification": "finite_fixture", "cpu_seconds": 0.00013238800000081596, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 15, "wall_seconds": 0.00013369799125939608}, {"classification": "finite_fixture", "cpu_seconds": 0.00025406099999969456, "exception": null, "family": "error_trace", "outermost": true, "program_length": 16, "wall_seconds": 0.00025546300457790494}, {"classification": "finite_fixture", "cpu_seconds": 0.00013271199999920213, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 16, "wall_seconds": 0.00013409199891611934}, {"classification": "finite_fixture", "cpu_seconds": 0.0002568079999996087, "exception": null, "family": "error_trace", "outermost": true, "program_length": 17, "wall_seconds": 0.0002582629967946559}, {"classification": "finite_fixture", "cpu_seconds": 0.00015575200000128575, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 17, "wall_seconds": 0.00015709002036601305}, {"classification": "finite_fixture", "cpu_seconds": 0.00023024399999727052, "exception": null, "family": "error_trace", "outermost": true, "program_length": 18, "wall_seconds": 0.0002316450118087232}, {"classification": "finite_fixture", "cpu_seconds": 0.00014447600000266902, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 18, "wall_seconds": 0.0001458320184610784}, {"classification": "finite_fixture", "cpu_seconds": 0.0002840550000016151, "exception": null, "family": "error_trace", "outermost": true, "program_length": 19, "wall_seconds": 0.0002855050261132419}, {"classification": "finite_fixture", "cpu_seconds": 0.00018312699999967208, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 19, "wall_seconds": 0.00018462497973814607}, {"classification": "finite_fixture", "cpu_seconds": 0.00031345799999726864, "exception": null, "family": "error_trace", "outermost": true, "program_length": 20, "wall_seconds": 0.0003149470139760524}, {"classification": "finite_fixture", "cpu_seconds": 0.0001616579999996759, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 20, "wall_seconds": 0.00016296299872919917}, {"classification": "finite_fixture", "cpu_seconds": 0.00040074400000023047, "exception": null, "family": "error_trace", "outermost": true, "program_length": 21, "wall_seconds": 0.00040234799962490797}, {"classification": "finite_fixture", "cpu_seconds": 0.0002005099999990989, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 21, "wall_seconds": 0.00020196198602207005}, {"classification": "finite_fixture", "cpu_seconds": 0.0003034070000005329, "exception": null, "family": "error_trace", "outermost": true, "program_length": 22, "wall_seconds": 0.0003049529914278537}, {"classification": "finite_fixture", "cpu_seconds": 0.00024201699999792936, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 22, "wall_seconds": 0.0002440699900034815}, {"classification": "finite_fixture", "cpu_seconds": 0.00037885499999745775, "exception": null, "family": "error_trace", "outermost": true, "program_length": 23, "wall_seconds": 0.0003806510067079216}, {"classification": "finite_fixture", "cpu_seconds": 0.00018845600000005902, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 23, "wall_seconds": 0.00018994699348695576}, {"classification": "finite_fixture", "cpu_seconds": 0.0003611219999974935, "exception": null, "family": "error_trace", "outermost": true, "program_length": 24, "wall_seconds": 0.0003627039841376245}, {"classification": "finite_fixture", "cpu_seconds": 0.00019244699999987347, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 24, "wall_seconds": 0.00019382100435905159}, {"classification": "finite_fixture", "cpu_seconds": 0.00036277799999950844, "exception": null, "family": "error_trace", "outermost": true, "program_length": 25, "wall_seconds": 0.0003643709933385253}, {"classification": "finite_fixture", "cpu_seconds": 0.00023032200000017156, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 25, "wall_seconds": 0.00023177798721008003}, {"classification": "finite_fixture", "cpu_seconds": 0.0005676549999975578, "exception": null, "family": "error_trace", "outermost": true, "program_length": 26, "wall_seconds": 0.0005691930127795786}, {"classification": "finite_fixture", "cpu_seconds": 0.00030704399999947896, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 26, "wall_seconds": 0.00030844099819660187}, {"classification": "finite_fixture", "cpu_seconds": 0.00039996900000005553, "exception": null, "family": "error_trace", "outermost": true, "program_length": 27, "wall_seconds": 0.0004015119920950383}, {"classification": "finite_fixture", "cpu_seconds": 0.0002251920000020391, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 27, "wall_seconds": 0.00022657000226899981}, {"classification": "finite_fixture", "cpu_seconds": 0.00046611999999868203, "exception": null, "family": "error_trace", "outermost": true, "program_length": 28, "wall_seconds": 0.0004677840042859316}, {"classification": "finite_fixture", "cpu_seconds": 0.00026438699999786763, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 28, "wall_seconds": 0.00026571800117380917}, {"classification": "finite_fixture", "cpu_seconds": 0.00040834599999683974, "exception": null, "family": "error_trace", "outermost": true, "program_length": 29, "wall_seconds": 0.0004099129873793572}, {"classification": "finite_fixture", "cpu_seconds": 0.00022373799999897415, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 29, "wall_seconds": 0.00022508000256493688}, {"classification": "finite_fixture", "cpu_seconds": 0.0003256799999995508, "exception": null, "family": "error_trace", "outermost": true, "program_length": 30, "wall_seconds": 0.00032719000591896474}, {"classification": "finite_fixture", "cpu_seconds": 0.00019090900000051647, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 30, "wall_seconds": 0.00019222599803470075}, {"classification": "finite_fixture", "cpu_seconds": 0.0004873039999999662, "exception": null, "family": "error_trace", "outermost": true, "program_length": 31, "wall_seconds": 0.0004889099800493568}, {"classification": "finite_fixture", "cpu_seconds": 0.00027466100000239635, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 31, "wall_seconds": 0.00027608999516814947}, {"classification": "finite_fixture", "cpu_seconds": 0.0005151330000003895, "exception": null, "family": "error_trace", "outermost": true, "program_length": 32, "wall_seconds": 0.0005168509960640222}, {"classification": "finite_fixture", "cpu_seconds": 0.00029117700000114155, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 32, "wall_seconds": 0.00029256701236590743}, {"classification": "finite_fixture", "cpu_seconds": 0.0004471210000005499, "exception": null, "family": "error_trace", "outermost": true, "program_length": 33, "wall_seconds": 0.0004486969846766442}, {"classification": "finite_fixture", "cpu_seconds": 0.00028580700000091497, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 33, "wall_seconds": 0.00029401600477285683}, {"classification": "finite_fixture", "cpu_seconds": 0.000540269999998344, "exception": null, "family": "error_trace", "outermost": true, "program_length": 34, "wall_seconds": 0.000541912013432011}, {"classification": "finite_fixture", "cpu_seconds": 0.0003104100000008714, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 34, "wall_seconds": 0.00031177999335341156}, {"classification": "finite_fixture", "cpu_seconds": 0.0005327560000019105, "exception": null, "family": "error_trace", "outermost": true, "program_length": 35, "wall_seconds": 0.0005431369936559349}, {"classification": "finite_fixture", "cpu_seconds": 0.00029573700000185, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 35, "wall_seconds": 0.00029710200033150613}, {"classification": "finite_fixture", "cpu_seconds": 0.0005220000000001335, "exception": null, "family": "error_trace", "outermost": true, "program_length": 36, "wall_seconds": 0.0005236729921307415}, {"classification": "finite_fixture", "cpu_seconds": 0.00028518999999960215, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 36, "wall_seconds": 0.00028661798569373786}, {"classification": "finite_fixture", "cpu_seconds": 0.0005586720000003709, "exception": null, "family": "error_trace", "outermost": true, "program_length": 37, "wall_seconds": 0.0005602489982265979}, {"classification": "finite_fixture", "cpu_seconds": 0.0003273259999971856, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 37, "wall_seconds": 0.0003287639992777258}, {"classification": "finite_fixture", "cpu_seconds": 0.0005172590000022126, "exception": null, "family": "error_trace", "outermost": true, "program_length": 38, "wall_seconds": 0.0005187490023672581}, {"classification": "finite_fixture", "cpu_seconds": 0.0002770299999994563, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 38, "wall_seconds": 0.00027843101997859776}, {"classification": "finite_fixture", "cpu_seconds": 0.0005501119999991033, "exception": null, "family": "error_trace", "outermost": true, "program_length": 39, "wall_seconds": 0.0005515750090125948}, {"classification": "finite_fixture", "cpu_seconds": 0.0002954970000033086, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 39, "wall_seconds": 0.0002970100031234324}, {"classification": "finite_fixture", "cpu_seconds": 0.0006926010000007921, "exception": null, "family": "error_trace", "outermost": true, "program_length": 40, "wall_seconds": 0.0006946109933778644}, {"classification": "finite_fixture", "cpu_seconds": 0.00034711400000020376, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 40, "wall_seconds": 0.0003486709902063012}, {"classification": "finite_fixture", "cpu_seconds": 0.0005777209999990873, "exception": null, "family": "error_trace", "outermost": true, "program_length": 41, "wall_seconds": 0.0005793180025648326}, {"classification": "finite_fixture", "cpu_seconds": 0.00035479099999946584, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 41, "wall_seconds": 0.00035663897870108485}, {"classification": "finite_fixture", "cpu_seconds": 0.0005956639999986635, "exception": null, "family": "error_trace", "outermost": true, "program_length": 42, "wall_seconds": 0.0005979069974273443}, {"classification": "finite_fixture", "cpu_seconds": 0.0003422890000024381, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 42, "wall_seconds": 0.0003438080020714551}, {"classification": "finite_fixture", "cpu_seconds": 0.0006236490000013362, "exception": null, "family": "error_trace", "outermost": true, "program_length": 43, "wall_seconds": 0.0006252790044527501}, {"classification": "finite_fixture", "cpu_seconds": 0.0005167059999990897, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 43, "wall_seconds": 0.0005189670191612095}, {"classification": "finite_fixture", "cpu_seconds": 0.0010927040000012767, "exception": null, "family": "error_trace", "outermost": true, "program_length": 44, "wall_seconds": 0.0010976890043821186}, {"classification": "finite_fixture", "cpu_seconds": 0.00046655200000245145, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 44, "wall_seconds": 0.0004692859947681427}, {"classification": "finite_fixture", "cpu_seconds": 0.000704907999999449, "exception": null, "family": "error_trace", "outermost": true, "program_length": 45, "wall_seconds": 0.0007071979925967753}, {"classification": "finite_fixture", "cpu_seconds": 0.0003584930000002373, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 45, "wall_seconds": 0.0003600630152504891}, {"classification": "finite_fixture", "cpu_seconds": 0.0005944920000011678, "exception": null, "family": "error_trace", "outermost": true, "program_length": 46, "wall_seconds": 0.0005961139977443963}, {"classification": "finite_fixture", "cpu_seconds": 0.0003461359999974434, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 46, "wall_seconds": 0.0003475929843261838}, {"classification": "finite_fixture", "cpu_seconds": 0.0007127279999998848, "exception": null, "family": "error_trace", "outermost": true, "program_length": 47, "wall_seconds": 0.0007143809925764799}, {"classification": "finite_fixture", "cpu_seconds": 0.0003941389999972955, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 47, "wall_seconds": 0.00039561299490742385}, {"classification": "finite_fixture", "cpu_seconds": 0.0006830660000005651, "exception": null, "family": "error_trace", "outermost": true, "program_length": 48, "wall_seconds": 0.0006846199976280332}, {"classification": "finite_fixture", "cpu_seconds": 0.0003783589999990511, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 48, "wall_seconds": 0.0003797959943767637}, {"classification": "finite_fixture", "cpu_seconds": 0.0007999249999990354, "exception": null, "family": "error_trace", "outermost": true, "program_length": 49, "wall_seconds": 0.0008015579951461405}, {"classification": "finite_fixture", "cpu_seconds": 0.00043738300000129016, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 49, "wall_seconds": 0.0004388770030345768}, {"classification": "finite_fixture", "cpu_seconds": 0.0007498149999989323, "exception": null, "family": "error_trace", "outermost": true, "program_length": 50, "wall_seconds": 0.0007513450109399855}, {"classification": "finite_fixture", "cpu_seconds": 0.00036613900000048716, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 50, "wall_seconds": 0.00036753699532710016}, {"classification": "finite_fixture", "cpu_seconds": 0.0007951649999995425, "exception": null, "family": "error_trace", "outermost": true, "program_length": 51, "wall_seconds": 0.0007966859848238528}, {"classification": "finite_fixture", "cpu_seconds": 0.0004382249999999033, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 51, "wall_seconds": 0.0004397610027808696}, {"classification": "finite_fixture", "cpu_seconds": 0.0007184680000023036, "exception": null, "family": "error_trace", "outermost": true, "program_length": 52, "wall_seconds": 0.0007200730033218861}, {"classification": "finite_fixture", "cpu_seconds": 0.00038140400000230557, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 52, "wall_seconds": 0.0003829510242212564}, {"classification": "finite_fixture", "cpu_seconds": 0.0006821049999992113, "exception": null, "family": "error_trace", "outermost": true, "program_length": 53, "wall_seconds": 0.000683632999425754}, {"classification": "finite_fixture", "cpu_seconds": 0.00038840400000239583, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 53, "wall_seconds": 0.0003898270078934729}, {"classification": "finite_fixture", "cpu_seconds": 0.0007169010000005471, "exception": null, "family": "error_trace", "outermost": true, "program_length": 54, "wall_seconds": 0.0007185660069808364}, {"classification": "finite_fixture", "cpu_seconds": 0.00037520199999718784, "exception": null, "family": "reverse_all", "outermost": true, "program_length": 54, "wall_seconds": 0.0003766200097743422}], "scope": "frozen PR5864 full_C qualifier; separate custody checks excluded as before", "status": "PASS_ORIGINAL_INTEGER_BOUNDARY_DIAGNOSTIC", "strictly_exceeds_zero_cost_threshold": {"cpu": false, "wall": false}} diff --git a/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/usage.json b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/usage.json new file mode 100644 index 0000000000..d0a33ffb53 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/integer-owned-boundary-v1/usage.json @@ -0,0 +1 @@ +{"user_seconds":31.54,"system_seconds":0.20,"kernel_max_rss_kib":112360,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/receipt.json b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/receipt.json new file mode 100644 index 0000000000..fb9834d947 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "rational-final-finite-O", + "optimized": true, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "301795ac2e5a61c7a86b8b9e630ccf563fe5d60e0f49893824d716c725a07c3f", + "sampled_process_group_rss_bytes": 78520320, + "script": "stages/rational-v2/run_finite.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "40d4501c0cccda5cd1baeea5318c8383ef27f9f304fb74916a357803a2f321e5", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 1464, + "stdout_sha256": "49169c3cb17e9ec5bec115d54346e1567d51aabf2338c3e0afaac5596551300f", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48500, + "system_seconds": 0.05, + "user_seconds": 1.03 + }, + "wall_seconds": 1.1661804470058996 +} diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/stderr.txt b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/stdout.txt b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/stdout.txt new file mode 100644 index 0000000000..a3819bc2f0 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/stdout.txt @@ -0,0 +1,2 @@ +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "058ecafd588a31b7d9ee5ad7925b2b3f8a42b2716d89643a728de0497f80660b", "cold_build_load_wall_seconds": 0.5330755350005347, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_BINDING_CONTROL diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/usage.json b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/usage.json new file mode 100644 index 0000000000..efedc6a01b --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-final-finite-O/usage.json @@ -0,0 +1 @@ +{"user_seconds":1.03,"system_seconds":0.05,"kernel_max_rss_kib":48500,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite/receipt.json b/research/c-verification-feasibility/evidence/runs/rational-final-finite/receipt.json new file mode 100644 index 0000000000..310e27316d --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-final-finite/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "rational-final-finite", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "301795ac2e5a61c7a86b8b9e630ccf563fe5d60e0f49893824d716c725a07c3f", + "sampled_process_group_rss_bytes": 78573568, + "script": "stages/rational-v2/run_finite.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "40d4501c0cccda5cd1baeea5318c8383ef27f9f304fb74916a357803a2f321e5", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 1464, + "stdout_sha256": "b162af2597001ea976830675d044f8a938931c51a8de3fc37a087a88c8c132ba", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48448, + "system_seconds": 0.06, + "user_seconds": 0.98 + }, + "wall_seconds": 1.0730973040044773 +} diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite/stderr.txt b/research/c-verification-feasibility/evidence/runs/rational-final-finite/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite/stdout.txt b/research/c-verification-feasibility/evidence/runs/rational-final-finite/stdout.txt new file mode 100644 index 0000000000..c1a7ceca2b --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-final-finite/stdout.txt @@ -0,0 +1,2 @@ +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "78687893ce31dfc1c18d09d8c0b3d515f18ed1e1043c879c2fa5b65e11fc0596", "cold_build_load_wall_seconds": 0.5003387480101082, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} +PASS_ADDED_DESTRUCTOR_BINDING_CONTROL diff --git a/research/c-verification-feasibility/evidence/runs/rational-final-finite/usage.json b/research/c-verification-feasibility/evidence/runs/rational-final-finite/usage.json new file mode 100644 index 0000000000..4dec3df80e --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-final-finite/usage.json @@ -0,0 +1 @@ +{"user_seconds":0.98,"system_seconds":0.06,"kernel_max_rss_kib":48448,"exit":0} diff --git a/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/receipt.json b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/receipt.json new file mode 100644 index 0000000000..1d6bed1a86 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/receipt.json @@ -0,0 +1,26 @@ +{ + "exit": 0, + "label": "rational-finite-micro-v1", + "optimized": false, + "platform": "Linux-7.0.0-38-generic-x86_64-with-glibc2.39", + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "runner_sha256": "7540f8cc4ae4d12ed86c844ef0837a74184d3ada653979608c295c09f200a751", + "runtime_policy_sha256": "555fd5392118c4a534a518c673f6e984bf1a6325af5026dd48ddfd91f526bfb4", + "sampled_process_group_rss_bytes": 79007744, + "script": "stages/rational-v1/run_finite.py", + "source_bytes_and_modes_unchanged": true, + "source_inventory_sha256": "1f0300155f94d92cfbd39e01db9d2644f3319c1526ed7e27823d26cf12de4237", + "status": "PASS", + "stderr_bytes": 0, + "stderr_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "stdout_bytes": 2482, + "stdout_sha256": "731a66a66e6661f7701c193bcf15b6f47b56851554bbb9e8b6495aa9af11c2e4", + "termination": null, + "usage": { + "exit": 0, + "kernel_max_rss_kib": 48324, + "system_seconds": 0.05, + "user_seconds": 1.19 + }, + "wall_seconds": 1.3062437750049867 +} diff --git a/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/stderr.txt b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/stderr.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/stdout.txt b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/stdout.txt new file mode 100644 index 0000000000..86b62cd1e5 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/stdout.txt @@ -0,0 +1 @@ +{"actual_word_run": false, "added_controls": ["165-general-rational-coefficient-prefixes", "batch-FIFO-and-full-counters", "exact-score-type", "score-subclass", "negative-score-denominator", "same-row", "nonbuiltin-gcd", "source-iterator-mutation", "score-list-mutation", "score-value-mutation", "callback-failure-publishes-completed-prefix", "arithmetic-code-drift", "inplace-protocol-drift", "materialization-source-drift", "gcd-drift", "operator-closure-drift", "13-complete-event-prefixes-with-nondyadic-weights-and-scalars", "noncanonical-weight-fallback", "changed-arithmetic-fallback"], "build": {"SOABI": "cpython-312-x86_64-linux-gnu", "binary_sha256": "e512c567bf329e4e2877f49125e015236eb6f374e8d82ed0cd54fe366499f9ff", "cold_build_load_wall_seconds": 0.48050388900446706, "compiler": "/usr/bin/cc", "compiler_cpu_accounting": "outer GNU time user+system includes compiler children", "compiler_version": "cc (Ubuntu 13.3.0-6ubuntu2~24.04.1) 13.3.0", "extension_suffix": ".cpython-312-x86_64-linux-gnu.so", "flags": ["-O2", "-shared", "-fPIC", "-std=c11", "-Wall", "-Werror", "-I/usr/include/python3.12"], "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", "source_sha256": "4a4949e36cff4ff2894dd1f9379b58a58346ec7c888903271d4b98bbe4cfc7ae"}, "comparisons": 178, "complete_performance": false, "control_count": 19, "independent_literal_oracle_used": true, "micro": {"batches": 512, "coefficients": 32, "cold_build_excluded_from_micro": true, "complete_oracle_restoration_unpriced": true, "illustrative_only": true, "samples": [{"cpu_seconds": 0.06854380399999993, "label": "B1", "statistics": {"bypasses": 0, "calls": 16384, "capacity": 16384, "evictions": 0, "hits": 16352, "misses": 32, "resident": 32}, "wall_seconds": 0.06855765299405903}, {"cpu_seconds": 0.060203247000000015, "label": "C1", "statistics": {"bypasses": 0, "calls": 16384, "capacity": 16384, "evictions": 0, "hits": 16352, "misses": 32, "resident": 32}, "wall_seconds": 0.06020033897948451}, {"cpu_seconds": 0.046702148000000054, "label": "C2", "statistics": {"bypasses": 0, "calls": 16384, "capacity": 16384, "evictions": 0, "hits": 16352, "misses": 32, "resident": 32}, "wall_seconds": 0.04673448100220412}, {"cpu_seconds": 0.073957787, "label": "B2", "statistics": {"bypasses": 0, "calls": 16384, "capacity": 16384, "evictions": 0, "hits": 16352, "misses": 32, "resident": 32}, "wall_seconds": 0.07398301700595766}], "sequence": "BCCB"}, "status": "PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY"} diff --git a/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/usage.json b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/usage.json new file mode 100644 index 0000000000..fef21d8609 --- /dev/null +++ b/research/c-verification-feasibility/evidence/runs/rational-finite-micro-v1/usage.json @@ -0,0 +1 @@ +{"user_seconds":1.19,"system_seconds":0.05,"kernel_max_rss_kib":48324,"exit":0} diff --git a/research/c-verification-feasibility/full_B.py b/research/c-verification-feasibility/full_B.py new file mode 100644 index 0000000000..b5117cef66 --- /dev/null +++ b/research/c-verification-feasibility/full_B.py @@ -0,0 +1,4 @@ +from portable import prepared +import runpy +with prepared('complete-B') as (_,baseline,stage): + runpy.run_path(str(stage/'baseline_full.py'),run_name='__main__') diff --git a/research/c-verification-feasibility/full_C.py b/research/c-verification-feasibility/full_C.py new file mode 100644 index 0000000000..0f987cd86e --- /dev/null +++ b/research/c-verification-feasibility/full_C.py @@ -0,0 +1,4 @@ +from portable import prepared +import runpy +with prepared('complete-C') as (_,baseline,stage): + runpy.run_path(str(stage/'candidate_full.py'),run_name='__main__') diff --git a/research/c-verification-feasibility/guard.py b/research/c-verification-feasibility/guard.py new file mode 100644 index 0000000000..bf4265b129 --- /dev/null +++ b/research/c-verification-feasibility/guard.py @@ -0,0 +1,120 @@ +"""Serial bounded Linux measurements; preserve the complete frozen precision contract.""" +import argparse +import fcntl +import hashlib +import json +import os +from pathlib import Path +import platform +import signal +import statistics +import subprocess +import sys +import tempfile +import time + +HERE = Path(__file__).resolve().parent +SOURCE = HERE +CLOSURE = ('frozen.py','primitive_profile.py','guard.py','dispatch.py','inputs/PR5848.tar','../feasibility/fraction_table.py','../feasibility/finite.py','/usr/lib/python3.12/fractions.py','../feasibility/actual_audit.py') +TIMEOUT = 180 +RSS_CAP = 1024**3 +OUTPUT_CAP = 2*1024**2 +AGGREGATE = 600 +PREVIOUS_WALL_SECONDS = 0 + +def sha(raw): + return hashlib.sha256(raw).hexdigest() + +def inventory(): + result = {} + for name in CLOSURE: + path = SOURCE / name + if path.is_symlink() or not path.is_file(): + raise ValueError('Regular complete runtime file: ' + name) + result[name] = [sha(path.read_bytes()), path.stat().st_mode & 0o777] + return result + +def group_rss(group): + total = 0 + count = 0 + for p in Path('/proc').iterdir(): + if not p.name.isdigit(): + continue + try: + raw = (p/'stat').read_text() + fields = raw[raw.rfind(')')+2:].split() + if int(fields[2]) == group: + total += int(fields[21])*os.sysconf('SC_PAGE_SIZE') + count += 1 + except (FileNotFoundError, ProcessLookupError, PermissionError): + pass + return total, count + +def run(label, script, optimized=False): + records = HERE/'runs' + records.mkdir(exist_ok=True) + prior = list(records.glob('*/receipt.json')) + spent = PREVIOUS_WALL_SECONDS + sum(json.loads(p.read_bytes())['wall_seconds'] for p in prior) + if spent >= AGGREGATE: + raise ValueError('Aggregate budget consumed') + folder = records/label + folder.mkdir() + before = inventory() + env = os.environ.copy() + for key in ('PYTHONPATH','PYTHONOPTIMIZE','PYTHONINSPECT','PYTHONSTARTUP','PYTHONPYCACHEPREFIX'): + env.pop(key,None) + env.update(PYTHONHASHSEED='0', LC_ALL='C.UTF-8', TZ='UTC') + usage = folder/'usage.json' + with tempfile.TemporaryDirectory(prefix='linux5757-bytecode-') as cache: + command = ['/usr/bin/python3.12', '-B', '-X', 'pycache_prefix='+cache] + if optimized: + command.append('-O') + command.append(str(SOURCE/script)) + timed = ['/usr/bin/time','-f','{"user_seconds":%U,"system_seconds":%S,"kernel_max_rss_kib":%M,"exit":%x}', '-o', str(usage),'--',*command] + start = time.monotonic() + peak = 0 + stop = None + with (folder/'stdout.txt').open('wb') as out, (folder/'stderr.txt').open('wb') as err: + p = subprocess.Popen(timed, cwd=SOURCE, env=env, stdout=out, stderr=err, start_new_session=True) + try: + while p.poll() is None: + rss, _ = group_rss(p.pid) + peak = max(peak,rss) + elapsed = time.monotonic()-start + if rss > RSS_CAP: + stop='sampled_group_rss_cap' + elif elapsed > min(TIMEOUT,AGGREGATE-spent): + stop='wall_or_aggregate_cap' + elif max((folder/'stdout.txt').stat().st_size,(folder/'stderr.txt').stat().st_size)>OUTPUT_CAP: + stop='output_cap' + if stop: + os.killpg(p.pid,signal.SIGKILL) + break + time.sleep(0.05) + code=p.wait() + finally: + try: os.killpg(p.pid,signal.SIGKILL) + except ProcessLookupError: pass + p.wait() + elapsed = time.monotonic()-start + stdout=(folder/'stdout.txt').read_bytes() + stderr=(folder/'stderr.txt').read_bytes() + after=inventory() + measurement=None + if usage.exists(): + try: measurement=json.loads(usage.read_bytes()) + except json.JSONDecodeError: measurement={'raw':usage.read_text()} + receipt={'label':label,'script':script,'optimized':optimized,'wall_seconds':elapsed, + 'exit':code,'termination':stop,'sampled_process_group_rss_bytes':peak, + 'usage':measurement,'stdout_sha256':sha(stdout),'stdout_bytes':len(stdout), + 'stderr_sha256':sha(stderr),'stderr_bytes':len(stderr), + 'source_inventory_sha256':sha(json.dumps(before,sort_keys=True,separators=(',',':')).encode()), + 'source_bytes_and_modes_unchanged':before==after, + 'python':sys.version,'platform':platform.platform(), + 'runner_sha256':sha(Path(__file__).read_bytes()),'runtime_policy_sha256':sha(json.dumps(CLOSURE).encode())} + receipt['status']='PASS' if code==0 and stop is None and not stderr and before==after else 'STOP' + (folder/'receipt.json').write_text(json.dumps(receipt,indent=2,sort_keys=True)+'\n') + print(json.dumps(receipt,sort_keys=True),flush=True) + if receipt['status']!='PASS': + raise SystemExit(1) + return receipt diff --git a/research/c-verification-feasibility/inputs/PR5864.tar b/research/c-verification-feasibility/inputs/PR5864.tar new file mode 100644 index 0000000000..bb9fc30216 Binary files /dev/null and b/research/c-verification-feasibility/inputs/PR5864.tar differ diff --git a/research/c-verification-feasibility/integer/finite_probe.py b/research/c-verification-feasibility/integer/finite_probe.py new file mode 100644 index 0000000000..c0457d346c --- /dev/null +++ b/research/c-verification-feasibility/integer/finite_probe.py @@ -0,0 +1,194 @@ +"""Finite qualification source for the source-only integer/format prototype. + +Not executed by its author. Parent-owned serial runner must pay compilation, +loading, all checks, allocation/copy costs and complete qualification costs. +Literal expected arithmetic below does not call any candidate helper. +Ali Romman predecessor integer replay; Chris R / Clear1nsight and substantial +OpenAI Codex assistance for this derivative feasibility source. Apache-2.0. +""" +from fractions import Fraction + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def multiply(value, numerator, exponent): + value *= numerator + need(not exponent or value % (1 << exponent) == 0, 'exact dyadic division') + return value >> exponent + + +def literal_row(dst, src, numerator, exponent, scores=None, weights=None): + out = dict(dst) + totals = None if scores is None else list(scores) + for event, value in src.items(): + old = out.get(event, 0) + new = old + multiply(value, numerator, exponent) + if totals is not None: + change = abs(new) - abs(old) + totals[0] += change * weights[event][0] + totals[1] += change * weights[event][1] + totals[2] += change + if new: + out[event] = new + else: + out.pop(event, None) + return out if totals is None else (out, tuple(totals)) + + +def literal_coefficient_bytes(row, scale): + parts = [] + for event in sorted(row, reverse=True): + value = Fraction(row[event], scale) + parts.append(f'{event}:{value.numerator}/{value.denominator};'.encode()) + return b''.join(parts) + + +def run(native): + checks = [] + + def reject(label, fn, exception): + try: + fn() + except exception: + checks.append(label) + else: + raise ValueError('accepted rejected fixture: ' + label) + + big = 1 << 8192 + cases = [ + ({}, {}, 1, 0), + ({0: 8}, {0: 8}, -1, 0), + ({0: 3, 1: -2}, {0: -8, 2: 16}, 3, 2), + ({0: -3}, {0: 8, 3: -24}, -5, 3), + ({0: big, 1: -big}, {0: big, 2: -3 * big}, 3, 130), + ({0: 0, 1: 7}, {0: 0, 2: 8}, 0, 1), + ({3: -1}, {0: -16, 1: 48}, -7, 4), + ({0: big + 1}, {0: -(big + 1), 3: big - 1}, 1, 0), + ] + weights = [(3, 5), (7, 11), (13, 17), (19, 23)] + scores = [29, 31, 37] + for dst, src, numerator, exponent in cases: + before = (dict(dst), dict(src), list(scores), list(weights)) + need(native.add_row(dst, src, numerator, exponent) == + literal_row(dst, src, numerator, exponent), 'sparse row equality') + need(native.error_row(dst, src, numerator, exponent, scores, weights) == + literal_row(dst, src, numerator, exponent, scores, weights), + 'signed cancellation and weighted score equality') + need(native.scale_row(src, numerator, exponent) == + {i: multiply(v, numerator, exponent) for i, v in src.items()}, + 'scaled row equality including retained zero entries') + need((dst, src, scores, weights) == before, 'all row inputs unchanged') + checks.append('eight-row-and-score-differentials') + + same = {0: 8, 2: -16} + snapshot = dict(same) + need(native.add_row(same, same, -1, 0) == {}, 'safe aliased cancellation') + need(native.error_row(same, same, -1, 0, scores, weights) == + literal_row(same, same, -1, 0, scores, weights), 'safe aliased error row') + need(same == snapshot, 'alias source unchanged') + checks.append('aliased-inputs-return-fresh-outputs') + + # Prefix comparisons preserve source insertion order and every full row. + candidate, literal = {}, {} + candidate_scores = literal_scores = (0, 0, 0) + prefix_count = 0 + for src, numerator, exponent in [ + ({0: 64, 1: -32}, 1, 0), ({0: 32, 2: 16}, -2, 0), + ({1: 64, 3: -128}, 3, 1), ({2: -64, 3: 128}, 1, 2), + ({0: big, 1: -big}, 3, 130), ({0: big, 1: -big}, -3, 130)]: + candidate, candidate_scores = native.error_row( + candidate, src, numerator, exponent, candidate_scores, weights) + literal, literal_scores = literal_row( + literal, src, numerator, exponent, literal_scores, weights) + need((candidate, candidate_scores) == (literal, literal_scores), 'every signed prefix') + need(native.coefficient_bytes(candidate, 64) == + literal_coefficient_bytes(literal, 64), 'every prefix full canonical bytes') + prefix_count += 1 + checks.append('six-ordered-prefixes-and-complete-bytes') + + hash_rows = [({}, 1), ({0: 0}, 8), ({3: -8, 0: 16, 2: -3, 1: 0}, 8), + ({big: -(big + 1), 0: big, -2: -big}, 1 << 130), + ({1: -big, 0: big, 2: 3}, 1)] + for row, scale in hash_rows: + expected = literal_coefficient_bytes(row, scale) + got = native.coefficient_bytes(row, scale) + need(type(got) is bytes and got == expected, 'complete descending canonical bytes') + for event, value in row.items(): + need(native.coefficient_item_bytes(event, value, scale) == + literal_coefficient_bytes({event: value}, scale), 'signed one-event bytes') + checks.append('zero-negative-large-reduced-and-ordered-formatting') + for event, values, units in [ + (0, (0, 8, -8), (1, 8, 8)), + (17, (-3, 12, big + 1), (8, 8, 1 << 130)), + (-1, (-big, big, 0), (1, 1, 16))]: + expected = (str(event) + ':' + ','.join(str(Fraction(v, u)) + for v, u in zip(values, units)) + ';').encode() + need(native.score_bytes(event, values, units) == expected, 'score stream bytes omit /1') + checks.append('score-string-contract-distinct-from-coefficient-contract') + + column = {2: -64, 0: 128, 1: 0} + table = [[2, 3, 5], [7, 11, 13], [17, 19, 23]] + before = [list(row) for row in table] + expected = [(i, (table[i][0] + abs(v) * 3, + table[i][1] + abs(v) * 7, table[i][2] + abs(v)), + literal_coefficient_bytes({9: v}, 64)) for i, v in column.items()] + need(native.reverse_updates(column, table, 3, 7, 9, 64) == expected, + 'reverse scores and signed bytes in dict insertion order') + need(table == before, 'reverse score inputs unchanged') + shared = [2, 3, 5] + aliased_table = [shared] * 3 + native.reverse_updates(column, aliased_table, 3, 7, 9, 64) + need(aliased_table == [[2, 3, 5]] * 3 and shared == [2, 3, 5], 'reverse score alias safety') + checks.append('reverse-scores-signed-bytes-and-aliases') + + class ForeignInt(int): + def __mul__(self, other): + raise RuntimeError('foreign arithmetic must never execute') + + class ForeignDict(dict): + pass + + class ForeignList(list): + pass + + reject('bool-numerator', lambda: native.add_row({}, {}, True, 0), TypeError) + reject('foreign-int-value', lambda: native.add_row({}, {0: ForeignInt(2)}, 1, 0), TypeError) + reject('foreign-dict', lambda: native.add_row(ForeignDict(), {}, 1, 0), TypeError) + reject('foreign-key', lambda: native.add_row({}, {ForeignInt(0): 2}, 1, 0), TypeError) + reject('float-value', lambda: native.add_row({}, {0: 2.0}, 1, 0), TypeError) + reject('negative-exponent', lambda: native.add_row({}, {}, 1, -1), ValueError) + reject('bool-exponent', lambda: native.add_row({}, {}, 1, True), TypeError) + failed_dst, failed_src = {0: 9}, {0: 4, 1: 3} + reject('inexact-division-transaction', lambda: native.add_row(failed_dst, failed_src, 1, 1), ValueError) + need(failed_dst == {0: 9} and failed_src == {0: 4, 1: 3}, 'failure leaves inputs unchanged') + reject('inexact-scaled-row', lambda: native.scale_row({0: -3}, 1, 1), ValueError) + reject('nondyadic-scale', lambda: native.coefficient_bytes({0: 1}, 3), ValueError) + reject('zero-scale', lambda: native.coefficient_bytes({}, 0), ValueError) + reject('negative-scale', lambda: native.coefficient_bytes({}, -8), ValueError) + reject('bool-scale', lambda: native.coefficient_bytes({}, True), TypeError) + reject('short-score', lambda: native.error_row({}, {}, 1, 0, (0, 0), weights), ValueError) + reject('foreign-scores', lambda: native.error_row({}, {}, 1, 0, ForeignList([0, 0, 0]), weights), TypeError) + reject('foreign-weight', lambda: native.error_row({}, {0: 1}, 1, 0, scores, [(1, True)]), TypeError) + reject('weight-index-range', lambda: native.error_row({}, {4: 1}, 1, 0, scores, weights), IndexError) + reject('negative-weight-index', lambda: native.error_row({}, {-1: 1}, 1, 0, scores, weights), IndexError) + reject('reverse-index-range', lambda: native.reverse_updates({3: 1}, table, 1, 1, 0, 1), IndexError) + reject('score-nondyadic-unit', lambda: native.score_bytes(0, (0, 0, 0), (1, 1, 3)), ValueError) + reject('event-type', lambda: native.coefficient_item_bytes(True, 1, 1), TypeError) + return dict(status='PASS_FINITE_INTEGER_FORMAT', checks=checks, + row_cases=len(cases), ordered_prefixes=prefix_count, + independent_fraction_formatting=True, whole_replay=False, + timing_claim=False) + + +if __name__ == '__main__': + import argparse + import json + import native_loader + parser = argparse.ArgumentParser() + parser.add_argument('--source-sha256', required=True) + args = parser.parse_args() + result = run(native_loader.load(args.source_sha256)) + print(json.dumps(dict(result=result, build=native_loader.receipt()), sort_keys=True)) diff --git a/research/c-verification-feasibility/integer/integer_binding.py b/research/c-verification-feasibility/integer/integer_binding.py new file mode 100644 index 0000000000..8f888a1c42 --- /dev/null +++ b/research/c-verification-feasibility/integer/integer_binding.py @@ -0,0 +1,84 @@ +"""Derive a fresh candidate module from one authenticated integer.py source. + +No file is patched and no Fraction/reference function is monkeypatched. +All complete controls must run against this candidate as an explicitly changed +integer backend. The frozen PR5864 original remains separately loadable. +Source-only at handoff: not executed by its author. +""" +from hashlib import sha256 +from pathlib import Path +import types + + +REPLACEMENTS = [ + ('''def add_row(dst,src,n,k): + for i,v in src.items(): + value=dst.get(i,0)+multiply(v,n,k) + if value:dst[i]=value + else:dst.pop(i,None) +''', '''def add_row(dst,src,n,k): + return _integer_native.add_row(dst,src,n,k) +''', 1, 'fresh-native-sparse-add'), + (' add_row(rows[r],rows[s],a,k)', + ' rows[r]=add_row(rows[r],rows[s],a,k)', + 1, 'ideal-adopts-fresh-row'), + ('rows[r]={i:multiply(v,a,k) for i,v in rows[r].items()}', + 'rows[r]=_integer_native.scale_row(rows[r],a,k)', + 2, 'ideal-and-error-native-scale'), + (''' for i,v in rows[s].items(): + old=rows[r].get(i,0);value=old+multiply(v,a,k);change=abs(value)-abs(old) + scores[r][0]+=change*w[i][0];scores[r][1]+=change*w[i][1];scores[r][2]+=change + if value:rows[r][i]=value + else:rows[r].pop(i,None) +''', ''' rows[r],native_scores=_integer_native.error_row(rows[r],rows[s],a,k,scores[r],w) + scores[r]=list(native_scores) +''', 1, 'native-signed-error-row-and-scores'), + (" stream.update((str(j)+':'+','.join(str(F(v,u)) for v,u in zip(scores[r],units))+';').encode())", + ' stream.update(_integer_native.score_bytes(j,scores[r],units))', + 1, 'exact-three-score-stream-bytes'), + (' for j in sorted(row,reverse=True):update_hash(h,j,row[j],S)', + ' h.update(_integer_native.coefficient_bytes(row,S))', + 1, 'full-descending-coefficient-bytes'), + (''' for i,v in columns[r].items(): + scores[i][0]+=abs(v)*w[j][0];scores[i][1]+=abs(v)*w[j][1];scores[i][2]+=abs(v) + update_hash(hashes[i],j,v,S) +''', ''' for i,native_scores,native_bytes in _integer_native.reverse_updates(columns[r],scores,w[j][0],w[j][1],j,S): + scores[i]=list(native_scores) + hashes[i].update(native_bytes) +''', 1, 'native-reverse-scores-and-signed-byte-chunks'), + ('columns[r]={i:multiply(v,a,k) for i,v in columns[r].items()}', + 'columns[r]=_integer_native.scale_row(columns[r],a,k)', + 1, 'reverse-native-scale'), + ("elif op in ('ADD','COPY'):add_row(columns[s],columns[r],a,k)", + "elif op in ('ADD','COPY'):columns[s]=add_row(columns[s],columns[r],a,k)", + 1, 'reverse-adopts-fresh-row'), +] + + +def derive(source_path, native, expected_source_sha256): + source_path = Path(source_path) + if source_path.is_symlink() or not source_path.is_file(): + raise ValueError('integer input is a regular non-symlink source') + raw = source_path.read_bytes() + digest = sha256(raw).hexdigest() + if digest != expected_source_sha256: + raise ValueError('exact frozen integer source') + source = raw.decode('utf-8') + changes = [] + for before, after, count, name in REPLACEMENTS: + if source.count(before) != count: + raise ValueError('declared candidate seam count: ' + name) + source = source.replace(before, after) + changes.append(dict(name=name, count=count)) + module = types.ModuleType('integer_native_candidate') + module.__file__ = str(source_path) + module._integer_native = native + exec(compile(source, '', 'exec'), module.__dict__) + receipt = dict(original_integer_sha256=digest, + derived_integer_sha256=sha256(source.encode()).hexdigest(), + changes=changes, + integer_backend_changed=True, + fraction_reference_module_modified=False, + whole_replay_qualified=False, + source_only_handoff=True) + return module, receipt diff --git a/research/c-verification-feasibility/integer/integer_format.c b/research/c-verification-feasibility/integer/integer_format.c new file mode 100644 index 0000000000..a7f21fc93b --- /dev/null +++ b/research/c-verification-feasibility/integer/integer_format.c @@ -0,0 +1,470 @@ +/* + * Exact integer sparse-row and canonical dyadic formatting feasibility source. + * Derived from integer.py: Ali Romman with substantial OpenAI Codex assistance. + * Original literal scalar and reverse-cut oracles remain in the authenticated + * reference. New C implementation: OpenAI Codex assistance, 2026-10-27. + * Apache-2.0; preserve the predecessor NOTICE and complete attribution chain. + * + * SOURCE-ONLY PROTOTYPE: not compiled, executed, qualified, or benchmarked by + * its author. Uses public Python C API and arbitrary-size exact PyLong values. + * No mutable process-global answer cache and no sharing with Fraction oracle. + * Row functions return fresh objects and never mutate any supplied object. + */ +#define PY_SSIZE_T_CLEAN +#include + +static int exact_int(PyObject *value) +{ + if (!PyLong_CheckExact(value)) { + PyErr_SetString(PyExc_TypeError, "exact built-in int required"); + return 0; + } + return 1; +} + +static Py_ssize_t sequence_length(PyObject *value) +{ + if (PyList_CheckExact(value)) return PyList_GET_SIZE(value); + if (PyTuple_CheckExact(value)) return PyTuple_GET_SIZE(value); + PyErr_SetString(PyExc_TypeError, "exact built-in list or tuple required"); + return -1; +} + +static PyObject *sequence_item(PyObject *value, Py_ssize_t index) +{ + return PyList_CheckExact(value) ? PyList_GET_ITEM(value, index) + : PyTuple_GET_ITEM(value, index); +} + +static int int_sequence(PyObject *value, Py_ssize_t length) +{ + Py_ssize_t size = sequence_length(value); + if (size < 0) return 0; + if (size != length) { + PyErr_SetString(PyExc_ValueError, "integer sequence has required length"); + return 0; + } + for (Py_ssize_t i = 0; i < size; ++i) + if (!exact_int(sequence_item(value, i))) return 0; + return 1; +} + +static int int_row(PyObject *row) +{ + Py_ssize_t pos = 0; + PyObject *key, *value; + if (!PyDict_CheckExact(row)) { + PyErr_SetString(PyExc_TypeError, "exact built-in dict required"); + return 0; + } + while (PyDict_Next(row, &pos, &key, &value)) + if (!exact_int(key) || !exact_int(value)) return 0; + return 1; +} + +/* Positive power-of-two scale only; zero and negative scales cannot enter + * the dyadic normalizer. All operations remain PyLong operations. */ +static int dyadic_scale(PyObject *scale) +{ + PyObject *zero = NULL, *one = NULL, *less = NULL, *mask = NULL; + int positive, nonzero, ok = 0; + if (!exact_int(scale)) return 0; + zero = PyLong_FromLong(0); + one = PyLong_FromLong(1); + if (!zero || !one) goto done; + positive = PyObject_RichCompareBool(scale, zero, Py_GT); + if (positive < 0) goto done; + if (!positive) { + PyErr_SetString(PyExc_ValueError, "positive dyadic scale required"); + goto done; + } + less = PyNumber_Subtract(scale, one); + if (!less) goto done; + mask = PyNumber_And(scale, less); + if (!mask) goto done; + nonzero = PyObject_IsTrue(mask); + if (nonzero < 0) goto done; + if (nonzero) { + PyErr_SetString(PyExc_ValueError, "positive dyadic scale required"); + goto done; + } + ok = 1; + done: + Py_XDECREF(zero); Py_XDECREF(one); Py_XDECREF(less); Py_XDECREF(mask); + return ok; +} + +static PyObject *shift_denominator(PyObject *exponent, int *divide) +{ + PyObject *zero = NULL, *one = NULL, *result = NULL; + int negative; + if (!exact_int(exponent)) return NULL; + zero = PyLong_FromLong(0); + one = PyLong_FromLong(1); + if (!zero || !one) goto done; + negative = PyObject_RichCompareBool(exponent, zero, Py_LT); + if (negative < 0) goto done; + if (negative) { + PyErr_SetString(PyExc_ValueError, "nonnegative dyadic exponent required"); + goto done; + } + *divide = PyObject_IsTrue(exponent); + if (*divide < 0) goto done; + result = PyNumber_Lshift(one, exponent); + done: + Py_XDECREF(zero); Py_XDECREF(one); + return result; +} + +static PyObject *multiply_exact(PyObject *value, PyObject *numerator, + PyObject *denominator, int divide) +{ + PyObject *product = PyNumber_Multiply(value, numerator), *pair, *result; + int remainder; + if (!product || !divide) return product; + pair = PyNumber_Divmod(product, denominator); + Py_DECREF(product); + if (!pair) return NULL; + remainder = PyObject_IsTrue(PyTuple_GET_ITEM(pair, 1)); + if (remainder < 0) { Py_DECREF(pair); return NULL; } + if (remainder) { + Py_DECREF(pair); + PyErr_SetString(PyExc_ValueError, "exact dyadic division"); + return NULL; + } + result = Py_NewRef(PyTuple_GET_ITEM(pair, 0)); + Py_DECREF(pair); + return result; +} + +static int add_product(PyObject **score, PyObject *value, PyObject *weight) +{ + PyObject *product = weight ? PyNumber_Multiply(value, weight) + : Py_NewRef(value); + PyObject *next; + if (!product) return 0; + next = PyNumber_Add(*score, product); + Py_DECREF(product); + if (!next) return 0; + Py_SETREF(*score, next); + return 1; +} + +static PyObject *indexed_pair(PyObject *weights, PyObject *key) +{ + Py_ssize_t size = sequence_length(weights), index; + PyObject *pair; + if (size < 0) return NULL; + index = PyLong_AsSsize_t(key); + if (index == -1 && PyErr_Occurred()) return NULL; + if (index < 0 || index >= size) { + PyErr_SetString(PyExc_IndexError, "weight event index out of range"); + return NULL; + } + pair = sequence_item(weights, index); + return int_sequence(pair, 2) ? pair : NULL; +} + +static PyObject *row_add(PyObject *dst, PyObject *src, PyObject *numerator, + PyObject *exponent, PyObject *scores, PyObject *weights) +{ + PyObject *out = NULL, *den = NULL, *zero = NULL, *score_tuple = NULL; + PyObject *s[3] = {NULL, NULL, NULL}; + PyObject *key, *value, *scaled = NULL, *next = NULL; + PyObject *old_abs = NULL, *new_abs = NULL, *change = NULL, *result = NULL; + Py_ssize_t pos = 0; + int divide = 0, nonzero; + if (!int_row(dst) || !int_row(src) || !exact_int(numerator)) goto done; + if (scores) { + if (!int_sequence(scores, 3) || sequence_length(weights) < 0) goto done; + for (int c = 0; c < 3; ++c) s[c] = Py_NewRef(sequence_item(scores, c)); + } + den = shift_denominator(exponent, ÷); + zero = PyLong_FromLong(0); + if (!den || !zero) goto done; + out = PyDict_Copy(dst); + if (!out) goto done; + while (PyDict_Next(src, &pos, &key, &value)) { + PyObject *old = PyDict_GetItemWithError(out, key); + PyObject *pair = NULL; + int existed = old != NULL; + if (!old && PyErr_Occurred()) goto done; + if (!old) old = zero; + if (scores) { + pair = indexed_pair(weights, key); + if (!pair) goto done; + } + scaled = multiply_exact(value, numerator, den, divide); + if (!scaled) goto done; + next = PyNumber_Add(old, scaled); + Py_CLEAR(scaled); + if (!next) goto done; + if (scores) { + old_abs = PyNumber_Absolute(old); + new_abs = PyNumber_Absolute(next); + if (!old_abs || !new_abs) goto done; + change = PyNumber_Subtract(new_abs, old_abs); + Py_CLEAR(old_abs); Py_CLEAR(new_abs); + if (!change) goto done; + if (!add_product(&s[0], change, sequence_item(pair, 0)) || + !add_product(&s[1], change, sequence_item(pair, 1)) || + !add_product(&s[2], change, NULL)) goto done; + Py_CLEAR(change); + } + nonzero = PyObject_IsTrue(next); + if (nonzero < 0) goto done; + if (nonzero) { + if (PyDict_SetItem(out, key, next) < 0) goto done; + } else if (existed && PyDict_DelItem(out, key) < 0) goto done; + Py_CLEAR(next); + } + if (scores) { + score_tuple = PyTuple_New(3); + if (!score_tuple) goto done; + for (int c = 0; c < 3; ++c) { + PyTuple_SET_ITEM(score_tuple, c, s[c]); s[c] = NULL; + } + result = PyTuple_Pack(2, out, score_tuple); + } else result = Py_NewRef(out); + done: + Py_XDECREF(out); Py_XDECREF(den); Py_XDECREF(zero); + Py_XDECREF(score_tuple); Py_XDECREF(scaled); Py_XDECREF(next); + Py_XDECREF(old_abs); Py_XDECREF(new_abs); Py_XDECREF(change); + for (int c = 0; c < 3; ++c) Py_XDECREF(s[c]); + return result; +} + +static PyObject *add_row_method(PyObject *self, PyObject *args) +{ + PyObject *dst, *src, *numerator, *exponent; + (void)self; + if (!PyArg_ParseTuple(args, "OOOO:add_row", &dst, &src, &numerator, &exponent)) return NULL; + return row_add(dst, src, numerator, exponent, NULL, NULL); +} + +static PyObject *error_row_method(PyObject *self, PyObject *args) +{ + PyObject *dst, *src, *numerator, *exponent, *scores, *weights; + (void)self; + if (!PyArg_ParseTuple(args, "OOOOOO:error_row", &dst, &src, &numerator, + &exponent, &scores, &weights)) return NULL; + return row_add(dst, src, numerator, exponent, scores, weights); +} + +static PyObject *scale_row_method(PyObject *self, PyObject *args) +{ + PyObject *row, *numerator, *exponent, *den = NULL, *out = NULL, *result = NULL; + PyObject *key, *value, *next = NULL; + Py_ssize_t pos = 0; + int divide = 0; + (void)self; + if (!PyArg_ParseTuple(args, "OOO:scale_row", &row, &numerator, &exponent)) return NULL; + if (!int_row(row) || !exact_int(numerator)) goto done; + den = shift_denominator(exponent, ÷); + out = PyDict_New(); + if (!den || !out) goto done; + while (PyDict_Next(row, &pos, &key, &value)) { + next = multiply_exact(value, numerator, den, divide); + if (!next || PyDict_SetItem(out, key, next) < 0) goto done; + Py_CLEAR(next); + } + result = Py_NewRef(out); + done: + Py_XDECREF(den); Py_XDECREF(out); Py_XDECREF(next); + return result; +} + +/* scale was checked once by the batch entry point. For nonzero signed v, + * v & -v is its positive power-of-two divisor. Intersect with scale by min; + * dividing by that factor gives the same canonical pair as Fraction(v,scale). + * Exact integer decimal conversion retains CPython's configured digit guard. */ +static PyObject *ratio_text(PyObject *value, PyObject *scale, int always_denominator) +{ + PyObject *negative = NULL, *low = NULL, *factor = NULL, *num = NULL; + PyObject *den = NULL, *one = NULL, *result = NULL; + int nonzero = PyObject_IsTrue(value), larger, unit; + if (nonzero < 0) return NULL; + if (!nonzero) return PyUnicode_FromString(always_denominator ? "0/1" : "0"); + negative = PyNumber_Negative(value); + if (!negative) goto done; + low = PyNumber_And(value, negative); + if (!low) goto done; + larger = PyObject_RichCompareBool(low, scale, Py_GT); + if (larger < 0) goto done; + factor = larger ? scale : low; + num = PyNumber_FloorDivide(value, factor); + den = PyNumber_FloorDivide(scale, factor); + one = PyLong_FromLong(1); + if (!num || !den || !one) goto done; + unit = PyObject_RichCompareBool(den, one, Py_EQ); + if (unit < 0) goto done; + result = !always_denominator && unit ? PyObject_Str(num) + : PyUnicode_FromFormat("%S/%S", num, den); + done: + Py_XDECREF(negative); Py_XDECREF(low); Py_XDECREF(num); + Py_XDECREF(den); Py_XDECREF(one); + return result; +} + +static PyObject *event_text(PyObject *event, PyObject *value, PyObject *scale) +{ + PyObject *ratio = ratio_text(value, scale, 1), *result; + if (!ratio) return NULL; + result = PyUnicode_FromFormat("%S:%U;", event, ratio); + Py_DECREF(ratio); + return result; +} + +static PyObject *coefficient_bytes_method(PyObject *self, PyObject *args) +{ + PyObject *row, *scale, *keys = NULL, *parts = NULL, *empty = NULL; + PyObject *text = NULL, *result = NULL; + Py_ssize_t count; + (void)self; + if (!PyArg_ParseTuple(args, "OO:coefficient_bytes", &row, &scale)) return NULL; + if (!int_row(row) || !dyadic_scale(scale)) goto done; + keys = PyDict_Keys(row); + if (!keys || PyList_Sort(keys) < 0 || PyList_Reverse(keys) < 0) goto done; + count = PyList_GET_SIZE(keys); + parts = PyTuple_New(count); + if (!parts) goto done; + for (Py_ssize_t i = 0; i < count; ++i) { + PyObject *key = PyList_GET_ITEM(keys, i); + PyObject *value = PyDict_GetItemWithError(row, key); + PyObject *part; + if (!value) goto done; + part = event_text(key, value, scale); + if (!part) goto done; + PyTuple_SET_ITEM(parts, i, part); + } + empty = PyUnicode_FromString(""); + if (!empty) goto done; + text = PyUnicode_Join(empty, parts); + if (!text) goto done; + result = PyUnicode_AsUTF8String(text); + done: + Py_XDECREF(keys); Py_XDECREF(parts); Py_XDECREF(empty); Py_XDECREF(text); + return result; +} + +static PyObject *coefficient_item_bytes_method(PyObject *self, PyObject *args) +{ + PyObject *event, *value, *scale, *text, *result; + (void)self; + if (!PyArg_ParseTuple(args, "OOO:coefficient_item_bytes", &event, &value, &scale)) return NULL; + if (!exact_int(event) || !exact_int(value) || !dyadic_scale(scale)) return NULL; + text = event_text(event, value, scale); + if (!text) return NULL; + result = PyUnicode_AsUTF8String(text); + Py_DECREF(text); + return result; +} + +static PyObject *score_bytes_method(PyObject *self, PyObject *args) +{ + PyObject *event, *scores, *units, *parts = NULL, *comma = NULL; + PyObject *joined = NULL, *text = NULL, *result = NULL; + (void)self; + if (!PyArg_ParseTuple(args, "OOO:score_bytes", &event, &scores, &units)) return NULL; + if (!exact_int(event) || !int_sequence(scores, 3) || !int_sequence(units, 3)) goto done; + parts = PyTuple_New(3); + if (!parts) goto done; + for (int c = 0; c < 3; ++c) { + PyObject *unit = sequence_item(units, c), *part; + if (!dyadic_scale(unit)) goto done; + part = ratio_text(sequence_item(scores, c), unit, 0); + if (!part) goto done; + PyTuple_SET_ITEM(parts, c, part); + } + comma = PyUnicode_FromString(","); + if (!comma) goto done; + joined = PyUnicode_Join(comma, parts); + if (!joined) goto done; + text = PyUnicode_FromFormat("%S:%U;", event, joined); + if (!text) goto done; + result = PyUnicode_AsUTF8String(text); + done: + Py_XDECREF(parts); Py_XDECREF(comma); Py_XDECREF(joined); Py_XDECREF(text); + return result; +} + +/* Each returned tuple is (column index, new three-score tuple, exact bytes). + * Iteration order is the original column's dict insertion order. The caller + * assigns scores[index] and updates hashes[index] in that order. Input score + * triples may alias: no mutation occurs here or in any other exported API. */ +static PyObject *reverse_updates_method(PyObject *self, PyObject *args) +{ + PyObject *column, *scores, *wa, *wc, *event, *scale; + PyObject *out = NULL, *s[3] = {NULL, NULL, NULL}, *magnitude = NULL; + PyObject *st = NULL, *text = NULL, *bytes = NULL, *item = NULL, *result = NULL; + PyObject *key, *value; + Py_ssize_t pos = 0, count, offset = 0; + (void)self; + if (!PyArg_ParseTuple(args, "OOOOOO:reverse_updates", &column, &scores, + &wa, &wc, &event, &scale)) return NULL; + if (!int_row(column) || !exact_int(wa) || !exact_int(wc) || + !exact_int(event) || !dyadic_scale(scale)) goto done; + count = sequence_length(scores); + if (count < 0) goto done; + out = PyList_New(PyDict_Size(column)); + if (!out) goto done; + while (PyDict_Next(column, &pos, &key, &value)) { + Py_ssize_t index = PyLong_AsSsize_t(key); + PyObject *old; + if (index == -1 && PyErr_Occurred()) goto done; + if (index < 0 || index >= count) { + PyErr_SetString(PyExc_IndexError, "reverse score index out of range"); + goto done; + } + old = sequence_item(scores, index); + if (!int_sequence(old, 3)) goto done; + for (int c = 0; c < 3; ++c) s[c] = Py_NewRef(sequence_item(old, c)); + magnitude = PyNumber_Absolute(value); + if (!magnitude || !add_product(&s[0], magnitude, wa) || + !add_product(&s[1], magnitude, wc) || !add_product(&s[2], magnitude, NULL)) goto done; + Py_CLEAR(magnitude); + st = PyTuple_New(3); + if (!st) goto done; + for (int c = 0; c < 3; ++c) { PyTuple_SET_ITEM(st, c, s[c]); s[c] = NULL; } + text = event_text(event, value, scale); + if (!text) goto done; + bytes = PyUnicode_AsUTF8String(text); + Py_CLEAR(text); + if (!bytes) goto done; + item = PyTuple_Pack(3, key, st, bytes); + Py_CLEAR(st); Py_CLEAR(bytes); + if (!item) goto done; + PyList_SET_ITEM(out, offset++, item); item = NULL; + } + result = Py_NewRef(out); + done: + Py_XDECREF(out); Py_XDECREF(magnitude); Py_XDECREF(st); + Py_XDECREF(text); Py_XDECREF(bytes); Py_XDECREF(item); + for (int c = 0; c < 3; ++c) Py_XDECREF(s[c]); + return result; +} + +static PyMethodDef methods[] = { + {"add_row", add_row_method, METH_VARARGS, "Return dst + (n/2**k)*src as a fresh exact-int dict."}, + {"error_row", error_row_method, METH_VARARGS, "Return fresh (row, three-score tuple) after sparse signed update."}, + {"scale_row", scale_row_method, METH_VARARGS, "Return fresh exact scaled row; reject non-exact divisions."}, + {"coefficient_bytes", coefficient_bytes_method, METH_VARARGS, "Descending full row bytes: event:numerator/denominator;."}, + {"coefficient_item_bytes", coefficient_item_bytes_method, METH_VARARGS, "One exact coefficient chunk for an ordered reverse stream."}, + {"score_bytes", score_bytes_method, METH_VARARGS, "Three score values with Fraction string conventions."}, + {"reverse_updates", reverse_updates_method, METH_VARARGS, "Fresh sparse reverse score updates with exact signed coefficient bytes."}, + {NULL, NULL, 0, NULL} +}; + +static struct PyModuleDef module = { + PyModuleDef_HEAD_INIT, + "_integer_format", + "Source-only exact integer and dyadic formatting feasibility prototype.", + -1, + methods, + NULL, NULL, NULL, NULL +}; + +PyMODINIT_FUNC PyInit__integer_format(void) +{ + return PyModule_Create(&module); +} diff --git a/research/c-verification-feasibility/integer/micro_probe.py b/research/c-verification-feasibility/integer/micro_probe.py new file mode 100644 index 0000000000..9037a2e2ca --- /dev/null +++ b/research/c-verification-feasibility/integer/micro_probe.py @@ -0,0 +1,77 @@ +"""One fixed synthetic batch per process; root controls ordering and budgets. + +No actual-word speed projection follows from this batch. The candidate command +includes cold compilation/loading and finite qualification before batch timing; +outer guarded wall/CPU is authoritative for the complete command bill. +This source was not executed by its author. +""" +import argparse +from fractions import Fraction +from hashlib import sha256 +import json +import time + +from finite_probe import literal_row, literal_coefficient_bytes, run as finite_run + + +def batch(native): + # Fixed inputs, generated afresh inside each batch invocation. No result or + # answer sharing across baseline/candidate processes or separate invocations. + weights = [(i + 1, 2 * i + 3) for i in range(64)] + rows = [{i: ((-1) ** i) * ((1 << 192) + i * 64) for i in range(32)} + for _ in range(4)] + scores = [[0, 0, 0] for _ in rows] + scale = 64 + units = (128, 256, 64) + stream = sha256() + for step in range(1024): + destination = step % 4 + source = {i: (-1 if (step + i) % 3 == 0 else 1) * + ((1 << 192) + (i + 1) * 64) + for i in range(step % 32, step % 32 + 32)} + numerator = -3 if step % 2 else 3 + if native is None: + row, score = literal_row(rows[destination], source, numerator, 3, + scores[destination], weights) + score_bytes = (str(step) + ':' + ','.join( + str(Fraction(v, u)) for v, u in zip(score, units)) + ';').encode() + coefficient_bytes = literal_coefficient_bytes(row, scale) + else: + row, score = native.error_row(rows[destination], source, numerator, 3, + scores[destination], weights) + score_bytes = native.score_bytes(step, score, units) + coefficient_bytes = native.coefficient_bytes(row, scale) + rows[destination], scores[destination] = row, list(score) + stream.update(score_bytes) + stream.update(coefficient_bytes) + return dict(batch='fixed-1024-synthetic-sparse-score-format-v1', + steps=1024, final_rows=rows, final_scores=scores, + complete_byte_stream_sha256=stream.hexdigest()) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser() + parser.add_argument('--mode', choices=['baseline', 'candidate'], required=True) + parser.add_argument('--source-sha256') + args = parser.parse_args() + native = None + finite = None + build = None + if args.mode == 'candidate': + if args.source_sha256 is None: + parser.error('candidate requires --source-sha256') + import native_loader + native = native_loader.load(args.source_sha256) + finite = finite_run(native) + build = native_loader.receipt() + started_wall, started_cpu = time.perf_counter(), time.process_time() + result = batch(native) + batch_wall = time.perf_counter() - started_wall + batch_cpu = time.process_time() - started_cpu + result_digest = sha256(json.dumps(result, sort_keys=True, separators=(',', ':')).encode()).hexdigest() + print(json.dumps(dict(mode=args.mode, result_sha256=result_digest, + complete_byte_stream_sha256=result['complete_byte_stream_sha256'], + synthetic_batch_wall_seconds=batch_wall, + synthetic_batch_cpu_seconds=batch_cpu, + finite=finite, build=build, + complete_speed_claim=False), sort_keys=True)) diff --git a/research/c-verification-feasibility/integer/native_loader.py b/research/c-verification-feasibility/integer/native_loader.py new file mode 100644 index 0000000000..cb4534abef --- /dev/null +++ b/research/c-verification-feasibility/integer/native_loader.py @@ -0,0 +1,76 @@ +"""Paid cold build/load for root-owned, source-pinned serial feasibility only. + +This source was not executed by its author. A caller supplies the frozen C +source digest explicitly. No implicit acceptance of freshly edited C source. +""" +import atexit +from hashlib import sha256 +import importlib.util +from pathlib import Path +import platform +import shutil +import subprocess +import sys +import sysconfig +import tempfile +import time + +HERE = Path(__file__).resolve().parent +_loaded = None +_temporary = None +_receipt = None + + +def load(expected_source_sha256): + global _loaded, _temporary, _receipt + path = HERE / 'integer_format.c' + if path.is_symlink() or not path.is_file(): + raise ValueError('owned C source is a regular non-symlink file') + raw = path.read_bytes() + digest = sha256(raw).hexdigest() + if digest != expected_source_sha256: + raise ValueError('exact frozen owned C source') + if _loaded is not None: + if _receipt['source_sha256'] != digest: + raise ValueError('already loaded code has this exact source') + return _loaded + if platform.python_implementation() != 'CPython' or sys.version_info[:2] != (3, 12) or sys.platform != 'linux': + raise RuntimeError('feasibility requires Linux CPython 3.12') + compiler = shutil.which('cc') + if compiler is None: + raise RuntimeError('feasibility requires an existing C compiler') + started = time.perf_counter() + _temporary = tempfile.TemporaryDirectory(prefix='integer-format-owned-') + atexit.register(_temporary.cleanup) + directory = Path(_temporary.name) + snapshot = directory / 'integer_format.c' + snapshot.write_bytes(raw) + snapshot.chmod(0o444) + binary = directory / ('_integer_format' + sysconfig.get_config_var('EXT_SUFFIX')) + flags = ['-O2', '-shared', '-fPIC', '-std=c11', '-Wall', '-Werror', + '-I' + sysconfig.get_path('include')] + command = [compiler, *flags, str(snapshot), '-o', str(binary)] + build = subprocess.run(command, capture_output=True, text=True, check=False) + if build.returncode or build.stdout or build.stderr: + raise RuntimeError('native build rejected: ' + repr(dict( + command=command, returncode=build.returncode, + stdout=build.stdout, stderr=build.stderr))) + if path.is_symlink() or sha256(path.read_bytes()).hexdigest() != digest: + raise ValueError('owned C source unchanged through cold build') + binary.chmod(0o444) + spec = importlib.util.spec_from_file_location('_integer_format', binary) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + _receipt = dict(source_sha256=digest, compiler=compiler, flags=flags, + SOABI=sysconfig.get_config_var('SOABI'), + extension_suffix=sysconfig.get_config_var('EXT_SUFFIX'), + python=sys.version, + binary_sha256=sha256(binary.read_bytes()).hexdigest(), + cold_build_load_wall_seconds=time.perf_counter() - started, + compiler_cpu_accounting='parent outer process must include compiler children') + _loaded = module + return module + + +def receipt(): + return None if _receipt is None else dict(_receipt) diff --git a/research/c-verification-feasibility/owned_integer/diagnostic.py b/research/c-verification-feasibility/owned_integer/diagnostic.py new file mode 100644 index 0000000000..1fd8b0e58a --- /dev/null +++ b/research/c-verification-feasibility/owned_integer/diagnostic.py @@ -0,0 +1,202 @@ +"""One original-integer call-boundary rejection diagnostic; not a benchmark. + +SOURCE ONLY at handoff. Root owns all execution and resource accounting. +No arithmetic implementation is replaced. Frozen PR5864 full_C qualifier scope +and all its scientific/native/Observation checks run, with timers around the +selected ORIGINAL integer Engine methods. Separate custody scope is unchanged. +""" +from hashlib import sha256 +import json +from pathlib import Path +import sys +import time +from types import ModuleType + +ROUND = Path(__file__).resolve().parent.parent +BASE = ROUND / 'baseline-public' +FULL_SHA256 = 'ce6f15ca892db095d4b9f79b58cb3c199b18da341def761c577cc8651abc0cc0' +INTEGER_SHA256 = '82a73e4bcf1835bfdd510c7ad5538625c1b380c559b671e6a67be490615a743a' +BASELINE = dict(wall=34.66178539200337, cpu=34.47) +NOISE = dict(wall=2.713637237990042, cpu=2.3500000000000014) +EXPECTED_COUNTS = dict(ideal=4, error_trace=121, reverse_all=121) +FAMILIES = tuple(EXPECTED_COUNTS) +sys.path.insert(0, str(BASE)) + + +def need(ok, message): + if not ok: + raise ValueError(message) + + +def plain_json(value): + kind = type(value) + if kind in (str, int, float, bool, type(None)): + return True + if kind in (list, tuple): + return all(plain_json(item) for item in value) + if kind is dict: + return all(type(key) in (str, int) and plain_json(item) + for key, item in value.items()) + return False + + +class Ledger: + def __init__(self, digest, actual_word): + self.digest = digest + self.actual_key = digest(actual_word) + self.actual_length = len(actual_word['program']) + self.depth = 0 + self.records = [] + self.diagnostic_errors = [] + self.union_wall = 0.0 + self.union_cpu = 0.0 + + def metadata(self, word): + # Classification is outside every eligible interval and never changes + # the callee's return or exception. No foreign input method is invoked. + length = None + classification = 'unclassified' + try: + if type(word) is dict and type(word.get('program')) in (list, tuple): + length = len(word['program']) + if plain_json(word): + if self.digest(word) == self.actual_key: + classification = 'actual_word' + elif length is not None and length < self.actual_length: + classification = 'finite_fixture' + else: + classification = 'modified_word_control' + except Exception as error: + self.diagnostic_errors.append(type(error).__name__) + return length, classification + + def call(self, backend, family, word, args): + function = getattr(backend, family) + outermost = self.depth == 0 + self.depth += 1 + started_wall = time.perf_counter() + started_cpu = time.process_time() + error_type = None + try: + return function(word, *args) + except BaseException as error: + error_type = type(error).__name__ + raise + finally: + elapsed_cpu = time.process_time() - started_cpu + elapsed_wall = time.perf_counter() - started_wall + self.depth -= 1 + if outermost: + self.union_wall += elapsed_wall + self.union_cpu += elapsed_cpu + # Original Engine implementations do not call these three methods + # recursively. Outermost accounting still prevents double counting. + length, classification = self.metadata(word) + self.records.append(dict(family=family, program_length=length, + classification=classification, + outermost=outermost, exception=error_type, + wall_seconds=elapsed_wall, + cpu_seconds=elapsed_cpu)) + + def report(self): + counts = {name: sum(row['family'] == name for row in self.records) + for name in FAMILIES} + need(self.depth == 0, 'all timed calls exited') + need(not self.diagnostic_errors, 'diagnostic classification completed') + need(counts == EXPECTED_COUNTS, 'all expected original Engine boundaries observed') + need(all(row['outermost'] for row in self.records), 'frozen Engine boundaries are disjoint') + union = dict(wall=self.union_wall, cpu=self.union_cpu) + threshold = {kind: max(0.15 * BASELINE[kind], 0.50, NOISE[kind]) + for kind in ('wall', 'cpu')} + passes = {kind: union[kind] > threshold[kind] for kind in ('wall', 'cpu')} + return dict(status='PASS_ORIGINAL_INTEGER_BOUNDARY_DIAGNOSTIC', + arithmetic_changed=False, fraction_path_changed=False, + performance_sample=False, complete_speed_claim=False, + scope='frozen PR5864 full_C qualifier; separate custody checks excluded as before', + counts=counts, expected_actual_program_length=self.actual_length, + eligible_disjoint_union_seconds=union, + fixed_baseline_medians=BASELINE, fixed_noise_spreads=NOISE, + necessary_zero_cost_threshold_seconds=threshold, + strictly_exceeds_zero_cost_threshold=passes, + nomination_rejected=not all(passes.values()), + construction_admitted=False, + interpretation=('Even deleting every timed original integer call cannot fund the fixed gate.' + if not all(passes.values()) else + 'Zero-cost envelope did not reject; retained runtime and all new costs remain unpriced.'), + own_process_cpu_only_inside_engine=True, + outer_cpu_must_include_existing_compiler_children=True, + metadata_and_output_costs_outside_eligible_union=True, + records=self.records) + + +_LEDGERS = [] +_ORIGINAL_MODULES = [] + + +def timed_integer(module, reference, actual_word): + path = Path(module.__file__) + need(not path.is_symlink() and sha256(path.read_bytes()).hexdigest() == INTEGER_SHA256, + 'exact original integer source for boundary diagnostic') + original_engine = module.Engine + ledger = Ledger(reference.digest, actual_word) + _LEDGERS.append(ledger) + _ORIGINAL_MODULES.append((module, original_engine)) + + class TimedEngine: + def __init__(self, ref): + self._backend = original_engine(ref) + + def __getattr__(self, name): + return getattr(self._backend, name) + + def ideal(self, word): + return ledger.call(self._backend, 'ideal', word, ()) + + def error_trace(self, word, weights, rounded): + return ledger.call(self._backend, 'error_trace', word, (weights, rounded)) + + def reverse_all(self, word, weights, rounded): + return ledger.call(self._backend, 'reverse_all', word, (weights, rounded)) + + # Only this local facade changes the selected constructor. The loaded + # original module, its functions/globals, and every archive byte stay intact. + facade = ModuleType(module.__name__ + '_boundary_diagnostic') + facade.__dict__.update(module.__dict__) + facade.Engine = TimedEngine + return facade + + +def main(): + need(len(sys.argv) == 1, 'no diagnostic arguments or alternate workload') + path = BASE / 'full.py' + raw = path.read_bytes() + need(not path.is_symlink() and sha256(raw).hexdigest() == FULL_SHA256, + 'exact frozen PR5864 full qualifier source') + source = raw.decode() + before = " namespace=dict(entry.__dict__);namespace['_native_trace']=native_trace\n" + after = ''' integer_seam=" integer = v.load('integer_backend', package/'integer.py')\\n" + require(changed.count(integer_seam)==1,'one original integer diagnostic seam') + changed=changed.replace(integer_seam," integer = _timed_integer(v.load('integer_backend', package/'integer.py'), reference, word)\\n") + namespace=dict(entry.__dict__);namespace['_native_trace']=native_trace + namespace['_timed_integer']=_timed_integer +''' + need(source.count(before) == 1, 'one frozen full namespace seam') + source = source.replace(before, after) + namespace = dict(__name__='_original_integer_boundary_diagnostic', + __file__=str(path), _timed_integer=timed_integer) + exec(compile(source, str(path), 'exec'), namespace) + namespace['main'](True) + need(len(_LEDGERS) == 1, 'one selected original integer Engine family') + need(all(module.Engine is engine for module, engine in _ORIGINAL_MODULES), + 'loaded original Engine class was not changed') + need(sha256(path.read_bytes()).hexdigest() == FULL_SHA256, + 'full qualifier source unchanged after diagnostic') + result = _LEDGERS[0].report() + result['full_source_sha256'] = FULL_SHA256 + result['integer_source_sha256'] = INTEGER_SHA256 + result['instrumented_driver_sha256'] = sha256(source.encode()).hexdigest() + print(json.dumps(result, sort_keys=True)) + + +if __name__ == '__main__': + main() diff --git a/research/c-verification-feasibility/owned_screen.py b/research/c-verification-feasibility/owned_screen.py new file mode 100644 index 0000000000..83f19bab98 --- /dev/null +++ b/research/c-verification-feasibility/owned_screen.py @@ -0,0 +1,9 @@ +from pathlib import Path +import runpy,shutil,sys +from portable import prepared +with prepared('baseline') as (root,baseline,stage): + target=root/'owned_integer'/'diagnostic.py' + target.parent.mkdir() + shutil.copy2(Path(__file__).with_name('owned_integer')/'diagnostic.py',target) + sys.argv=[str(target)] + runpy.run_path(str(target),run_name='__main__') diff --git a/research/c-verification-feasibility/portable.py b/research/c-verification-feasibility/portable.py new file mode 100644 index 0000000000..0c4702d90e --- /dev/null +++ b/research/c-verification-feasibility/portable.py @@ -0,0 +1,102 @@ +"""Reconstruct exact measured source layout from the official frozen export. + +Chris R / Clear1nsight with substantial OpenAI Codex assistance. Apache-2.0. +Only immutable source bytes are reused. No scientific answers or PASS receipts +are reused. Every fresh invocation pays extraction, binding, compile and checks. +""" +from contextlib import contextmanager +from hashlib import sha256 +import json +from pathlib import Path +import shutil +import tarfile +import tempfile + +HERE = Path(__file__).resolve().parent +ARCHIVE_SHA256 = '7b142567acacac5182045bf8daa8780e916661c2cf343dbf81b13c88ead85d64' +HEAD = '3f15c943e4ad6479f03e674c80fff1269a16ccfe' + + +def require(ok, message): + if not ok: + raise ValueError(message) + + +def unpack(destination): + archive = HERE / 'inputs' / 'PR5864.tar' + require(not archive.is_symlink() and sha256(archive.read_bytes()).hexdigest() == ARCHIVE_SHA256, + 'exact official PR5864 export') + with tarfile.open(archive, 'r:') as stream: + members = stream.getmembers() + require(len(members) == 164 and len({m.name for m in members}) == 164, + 'unique complete official export') + receipt = json.loads(stream.extractfile('.research-export.json').read()) + require(receipt['commit'] == HEAD and len(receipt['files']) == 163, + 'exact published source head and file census') + rows = {row['path']: row for row in receipt['files']} + require(set(rows) | {'.research-export.json'} == {m.name for m in members}, + 'exact declared export members') + for member in members: + path = Path(member.name) + require(member.isfile() and 0 <= member.size <= 8 * 1024**2 and + not path.is_absolute() and '..' not in path.parts, + 'bounded regular safe member') + raw = stream.extractfile(member).read() + if member.name == '.research-export.json': + relative = path + else: + row = rows[member.name] + require(len(raw) == row['size'] and sha256(raw).hexdigest() == row['sha256'] + and row['mode'] in (0o644, 0o755), 'exact source bytes and mode declaration') + relative = path.relative_to('research/fraction-native-qualification') + target = destination / relative + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(raw) + target.chmod(0o444) + + +def inventory(root): + return {str(p.relative_to(root)): [sha256(p.read_bytes()).hexdigest(), p.stat().st_mode & 0o777] + for p in root.rglob('*') if p.is_file() and not p.is_symlink()} + + +@contextmanager +def prepared(mode): + require(mode in ('baseline', 'integer', 'rational', 'complete-B', 'complete-C'), 'known replay scope') + with tempfile.TemporaryDirectory(prefix='c-verification-screen-') as temporary: + root = Path(temporary) + baseline = root / 'baseline-public' + baseline.mkdir() + unpack(baseline) + before = inventory(baseline) + stage = root / 'stages' / 'integer-complete-v1' + stage.parent.mkdir() + stage.mkdir() + for p in (HERE / 'integer').iterdir(): + if p.is_file(): + shutil.copy2(p, stage / p.name) + for name in ('baseline_full.py', 'candidate_full.py'): + shutil.copy2(HERE / 'drivers' / name, stage / name) + if mode == 'rational': + stage = root / 'stages' / 'rational-v2' + stage.mkdir() + for p in (HERE / 'rational').iterdir(): + if p.is_file(): + shutil.copy2(p, stage / p.name) + package = stage / 'package' + shutil.copytree(baseline, package) + source = package / 'native_cache.c' + source.chmod(0o644) + source.write_bytes((stage / 'native_bulk.c').read_bytes()) + source_manifest = package / 'NATIVE-SOURCE.json' + manifest = json.loads(source_manifest.read_text()) + manifest['sha256'] = sha256(source.read_bytes()).hexdigest() + source_manifest.chmod(0o644) + source_manifest.write_text(json.dumps(manifest, indent=2) + '\n') + try: + yield root, baseline, stage + finally: + require(inventory(baseline) == before and + not any(p.is_symlink() for p in baseline.rglob('*')), + 'all original PR5864 baseline bytes and modes remain unchanged') + diff --git a/research/c-verification-feasibility/rational/arithmetic_binding.py b/research/c-verification-feasibility/rational/arithmetic_binding.py new file mode 100644 index 0000000000..f33affe523 --- /dev/null +++ b/research/c-verification-feasibility/rational/arithmetic_binding.py @@ -0,0 +1,120 @@ +"""Source-only prototype: authenticate operations bypassed by score batching. + +A compiled source tree is inspected as data; the independent Fraction oracle +is never patched. The first supported runtime is the pinned host CPython3.12. +""" +import builtins +from fractions import Fraction as F +import fractions +from hashlib import sha256 +import math +import numbers +import operator +from pathlib import Path +import sys +from types import CodeType, FunctionType, BuiltinFunctionType +import slot_binding + +SOURCE_SHA256='cf33568f7b767f66896995a7a81cc662e8be226f2e58efb61d2028f64eb5d231' +# Explicitly reviewed CPython source revisions; all live operation guards remain. +SUPPORTED_RUNTIME_SOURCES={(3,12,3):frozenset((SOURCE_SHA256,)), + (3,12,15):frozenset(('d52d1ab9d5be26924e4914a5e40069c992bbfa68f773694c2e5ee8452d0766a0',))} +DIRECT=('_add','_sub','_mul','__abs__','__bool__','__new__') +WRAPPED=(('__add__','_add','add','forward'),('__radd__','_add','add','reverse'), + ('__sub__','_sub','sub','forward'),('__rsub__','_sub','sub','reverse'), + ('__mul__','_mul','mul','forward'),('__rmul__','_mul','mul','reverse')) +BUILTINS=('isinstance','type','int','float','complex','super','abs') +_expected=None + +def _shape(code): + return (code.co_code,tuple(_shape(x) if type(x) is CodeType else x for x in code.co_consts), + code.co_names,code.co_varnames,code.co_freevars,code.co_cellvars, + code.co_argcount,code.co_posonlyargcount,code.co_kwonlyargcount, + code.co_flags,code.co_exceptiontable) + +def _codes(): + global _expected + path=Path(fractions.__file__) + raw=path.read_bytes() + if path.is_symlink() or sha256(raw).hexdigest() not in SUPPORTED_RUNTIME_SOURCES.get(sys.version_info[:3],()):raise ValueError('pinned Fraction source') + if _expected is not None:return _expected + compiled=compile(raw,str(path),'exec',optimize=sys.flags.optimize) + result={} + def visit(code): + result[code.co_qualname]=code + for value in code.co_consts: + if type(value) is CodeType:visit(value) + visit(compiled) + _expected=result + return result + +def _function(fn,qualname): + if type(fn) is not FunctionType or fn.__kwdefaults__ is not None: + raise ValueError('ordinary arithmetic function') + defaults=fn.__defaults__ + if qualname=='Fraction.__new__': + if type(defaults) is not tuple or len(defaults)!=2 or type(defaults[0]) is not int or defaults[0]!=0 or defaults[1] is not None:raise ValueError('arithmetic defaults') + elif defaults is not None:raise ValueError('arithmetic defaults') + if _shape(fn.__code__)!=_shape(_codes()[qualname]):raise ValueError('arithmetic executable shape') + if fn.__globals__ is not fractions.__dict__:raise ValueError('arithmetic globals owner') + if type(fn.__builtins__) is not dict:raise ValueError('arithmetic builtins mapping') + for name in BUILTINS: + if fn.__builtins__.get(name) is not getattr(builtins,name):raise ValueError('arithmetic builtins identity') + return fn + +def _snapshot(): + ns=type.__getattribute__(F,'__dict__') + out=[F,fractions.Fraction,math.gcd,operator.add,operator.sub,operator.mul] + for name in DIRECT+('_from_coprime_ints',)+tuple(x[0] for x in WRAPPED): + raw=ns.get(name);fn=raw.__func__ if type(raw) in (classmethod,staticmethod) else raw + out.append(raw) + if type(fn) is FunctionType: + out.extend((fn,fn.__code__,fn.__defaults__,fn.__kwdefaults__,fn.__closure__)) + if fn.__closure__: + for cell in fn.__closure__:out.extend((cell,cell.cell_contents)) + out.extend(fn.__globals__.get(x) for x in ('Fraction','math','numbers','operator')) + out.extend(fn.__builtins__.get(x) for x in BUILTINS) + for cls in F.__mro__: + ns=type.__getattribute__(cls,'__dict__') + out.extend((cls,ns.get('__iadd__'),ns.get('__setattr__'),ns.get('__delattr__'),ns.get('__del__'))) + return tuple(out) + +def bind(): + try: + if sys.implementation.name!='cpython' or sys.version_info[:2]!=(3,12):return None + slots=slot_binding.bind(strict=True) + expected_mro=(F,numbers.Rational,numbers.Real,numbers.Complex,numbers.Number,object) + if len(F.__mro__)!=len(expected_mro) or any(x is not y for x,y in zip(F.__mro__,expected_mro)):return None + ns=type.__getattribute__(F,'__dict__') + owned_slots=ns.get('__slots__') + if fractions.Fraction is not F or type(owned_slots) is not tuple or len(owned_slots)!=2 or any(type(x) is not str for x in owned_slots) or owned_slots!=('_numerator','_denominator'):return None + if fractions.__dict__.get('math') is not math or fractions.__dict__.get('operator') is not operator:return None + if type(math.gcd) is not BuiltinFunctionType or math.gcd.__name__!='gcd' or math.gcd.__self__ is not math:return None + for name in ('add','sub','mul'): + fn=getattr(operator,name) + if type(fn) is not BuiltinFunctionType or fn.__name__!=name or fn.__module__!='_operator':return None + for name in DIRECT: + raw=ns.get(name) + fn=_function(raw.__func__ if type(raw) is staticmethod else raw,'Fraction.'+name) + if fn.__closure__ is not None and not (fn.__code__.co_freevars==('__class__',) and len(fn.__closure__)==1 and fn.__closure__[0].cell_contents is F):return None + factory=ns.get('_from_coprime_ints') + if type(factory) is not classmethod:return None + fn=_function(factory.__func__,'Fraction._from_coprime_ints') + if fn.__closure__ is not None and not (fn.__code__.co_freevars==('__class__',) and len(fn.__closure__)==1 and fn.__closure__[0].cell_contents is F):return None + for name,mono,op,direction in WRAPPED: + fn=_function(ns.get(name),'Fraction._operator_fallbacks..'+direction) + closure=dict(zip(fn.__code__.co_freevars,(c.cell_contents for c in fn.__closure__ or ()))) + if len(closure)!=2 or closure.get('fallback_operator') is not getattr(operator,op) or closure.get('monomorphic_operator') is not ns[mono]:return None + for cls in F.__mro__: + raw=type.__getattribute__(cls,'__dict__') + if '__iadd__' in raw or '__del__' in raw:return None + if '__setattr__' in raw and raw['__setattr__'] is not object.__dict__['__setattr__']:return None + if '__delattr__' in raw and raw['__delattr__'] is not object.__dict__['__delattr__']:return None + return slots,_snapshot(),math.gcd + except (AttributeError,KeyError,TypeError,ValueError,OSError):return None + +def fresh(token): + if token is None or not slot_binding.fresh(token[0]):return False + try:now=_snapshot() + except (AttributeError,ValueError,TypeError):return False + return len(now)==len(token[1]) and all(x is y for x,y in zip(now,token[1])) diff --git a/research/c-verification-feasibility/rational/bulk_backend.py b/research/c-verification-feasibility/rational/bulk_backend.py new file mode 100644 index 0000000000..2d669b78de --- /dev/null +++ b/research/c-verification-feasibility/rational/bulk_backend.py @@ -0,0 +1,83 @@ +"""Source-only wrapper for the extended, staged PR5864 native package. + +Root stages native_bulk.c as native_cache.c and updates its source receipt. +No build is performed merely by importing this wrapper. +""" +from contextlib import contextmanager +from hashlib import sha256 +import inspect +from pathlib import Path +from fractions import Fraction as F +import math +import fraction_table as predecessor +import native_backend +import arithmetic_binding + +CAPACITY=predecessor.CAPACITY +BASE_DERIVE=predecessor.derive + +def canonical_fraction(value): + if type(value) is not F:return False + try:n,d=value._numerator,value._denominator + except AttributeError:return False + return type(n) is int and type(d) is int and d>0 and math.gcd(n,d)==1 + +def rational_domain(word,weights,rounded): + if not predecessor.certified_domain(word,weights,rounded):return False + if not predecessor.native_domain(word,weights):return False + if any(not canonical_fraction(value) for pair in weights for value in pair[:2]):return False + # Scalars are still converted at their original event, in original order. + # Exact strings remain permitted: F(str) returns a canonical Fraction or + # raises at the original point. No dyadic assumption or eager parsing. + for event in word['program']: + if any(type(x) is F and not canonical_fraction(x) for x in event):return False + return True + +class CompactContributions: + def __init__(self,capacity,weights,tokens): + callback=predecessor.checked_compute() + if callback is None:raise ValueError('original Fraction contribution callback') + self.native=native_backend.load().Cache(capacity,weights,tokens,callback, + F.__dict__['_numerator'],F.__dict__['_denominator'],F) + def event(self,q):return self.native.event(q) + def statistics(self):return self.native.statistics() + +def derive(reference,capacity=CAPACITY,mode='apply'): + fallback=BASE_DERIVE(reference,capacity,mode) + token=arithmetic_binding.bind() + source=predecessor.parent.parent.entry.parent + raw=inspect.getsource(reference.error_trace) + source.need(sha256(Path(reference.__file__).read_bytes()).hexdigest()==source.MODULE_SHA256,'exact rational reference source') + text=predecessor.native_text(raw,'apply') + before='contributions.event(q).apply(rows[r],rows[event[2]],scores[r])' + source.need(text.count(before)==1,'one rational score batch seam') + text=text.replace(before,'contributions.event(q).apply_rational(rows[r],rows[event[2]],scores[r],_rational_gcd)') + state=[None,False,None] + def report(value):state[0]=None if value is None else dict(value) + namespace=dict(reference.__dict__) + namespace.update(_compact_factory=lambda weights,tokens:CompactContributions(capacity,weights,tokens), + _contribution_report=report,_rational_gcd=None if token is None else token[2]) + exec(compile(text,'','exec'),namespace) + specialized=namespace['error_trace'] + def call(word,weights,rounded): + state[:]=[None,False,None] + if mode!='apply' or not capacity or predecessor.Contributions is not predecessor.NORMAL_CONTRIBUTIONS or not arithmetic_binding.fresh(token) or predecessor.checked_compute() is None: + return fallback(word,weights,rounded) + if not rational_domain(word,weights,rounded):return fallback(word,weights,rounded) + tokens=predecessor.weight_tokens(weights) + if tokens is None:return fallback(word,weights,rounded) + state[1]=True;state[2]=max(tokens)+1 if tokens else 0 + return specialized(word,weights,rounded,tokens) + call.rational_selected=lambda:state[1] + call.statistics=lambda:dict(state[0]) if state[1] and state[0] is not None else fallback.statistics() + call.compacted_selected=lambda:True if state[1] else fallback.compacted_selected() + call.token_count=lambda:state[2] if state[1] else fallback.token_count() + return call + +@contextmanager +def installed(reference,capacity=CAPACITY): + original=reference.error_trace + value=derive(reference,capacity) + reference.error_trace=value + try:yield value + finally:reference.error_trace=original diff --git a/research/c-verification-feasibility/rational/finite_probe.py b/research/c-verification-feasibility/rational/finite_probe.py new file mode 100644 index 0000000000..54ab450030 --- /dev/null +++ b/research/c-verification-feasibility/rational/finite_probe.py @@ -0,0 +1,219 @@ +"""Added bounded controls and an optional fixed BCCB diagnostic. + +SOURCE ONLY until executed by the sole serial parent runner. Invoke with the +staged extended PR5864 package path. --micro enables the declared diagnostic; +no actual-word run and no complete-performance claim are made here. +""" +from contextlib import contextmanager +from copy import deepcopy +from fractions import Fraction as F +import importlib.util +import json +import math +from pathlib import Path +import sys +import time + + +def need(ok,message): + if not ok:raise ValueError(message) + +def typed(value): + if type(value) is dict:return ('dict',tuple((typed(k),typed(v)) for k,v in value.items())) + if type(value) in (list,tuple):return (type(value).__name__,tuple(map(typed,value))) + return type(value).__module__,type(value).__qualname__ + +@contextmanager +def reference_source(): + from frozen import baseline + with baseline() as package: + sys.path.insert(0,str(package)) + spec=importlib.util.spec_from_file_location('rational_probe_bundle',package/'source.py') + source=importlib.util.module_from_spec(spec);spec.loader.exec_module(source) + with source.baseline() as p: + spec=importlib.util.spec_from_file_location('rational_probe_source',p/'verify.py') + v=importlib.util.module_from_spec(spec);spec.loader.exec_module(v) + with v.source() as (_,_,reference):yield reference + +def fixture(n=32): + # Odd denominators, negative terms, cancellation and values beyond int64. + ws=[(F((1<<130)+i,2*i+3),F((-1)**i*(i+1),2*i+5)) for i in range(n)] + src={i:F((-1)**i*((1<<80)+i+1),2*i+7) for i in range(n)} + dst={i:(-src[i] if i%3==0 else F(i-9,2*i+11)) for i in range(n) if i%2==0} + return ws,src,dst,[F(5,17),F(-7,19),F(1,23)] + +def main(package,micro=False): + sys.path.insert(0,str(Path(package).resolve())) + import arithmetic_binding as binding + import bulk_backend as bulk + import fraction_table as predecessor + import native_backend + native=native_backend.load() + token=binding.bind();need(token is not None and binding.fresh(token),'supported pinned arithmetic binder') + controls=[] + compute=predecessor.Contributions.compute + ws,src,start,scores=fixture() + def make(weights=ws,capacity=16,callback=compute): + return native.Cache(capacity,weights,list(range(len(weights))),callback, + F.__dict__['_numerator'],F.__dict__['_denominator'],F) + # Every source coefficient prefix, plus every event prefix below. + comparisons=0 + for q in (F(1),F(-1),F(1,2),F(7,11),F(-37,13)): + for cut in range(len(src)+1): + subset=dict(list(src.items())[:cut]) + expected=dict(start);expected_scores=list(scores) + for i,v in subset.items(): + old=expected.get(i,F(0));value=old+q*v;change=abs(value)-abs(old) + expected_scores[0]+=change*ws[i][0] + expected_scores[1]+=change*ws[i][1] + expected_scores[2]+=change + if value:expected[i]=value + else:expected.pop(i,None) + outputs=[];stats=[] + for method in ('apply','apply_rational'): + c=make();d=dict(start);s=list(scores);e=c.event(q) + if method=='apply':e.apply(d,subset,s) + else:e.apply_rational(d,subset,s,math.gcd) + outputs.append((d,s));stats.append(c.statistics()) + need(outputs[0]==outputs[1]==(expected,expected_scores),'literal, cache, rational coefficient prefix') + need(typed(outputs[0])==typed(outputs[1])==typed((expected,expected_scores)),'exact coefficient-prefix types') + need(stats[0]==stats[1],'all counters at coefficient prefix') + comparisons+=1 + controls.append('165-general-rational-coefficient-prefixes') + # Repeated hits and full FIFO wraps share no cache across implementations. + caches=[make(capacity=2),make(capacity=2)] + for q in (F(1),F(-1),F(7,11),F(1),F(-1)): + outputs=[] + for k,c in enumerate(caches): + d=dict(start);s=list(scores);e=c.event(q) + if k:e.apply_rational(d,src,s,math.gcd) + else:e.apply(d,src,s) + outputs.append((d,s)) + need(outputs[0]==outputs[1] and caches[0].statistics()==caches[1].statistics(),'FIFO exact after batch') + controls.append('batch-FIFO-and-full-counters') + def rejects(fn,kind,label): + try:fn() + except kind:controls.append(label) + else:raise ValueError('accepted '+label) + rejects(lambda:make().event(F(1)).apply_rational({},src,[0,F(0),F(0)],math.gcd),TypeError,'exact-score-type') + class ForeignFraction(F):pass + rejects(lambda:make().event(F(1)).apply_rational({},src,[ForeignFraction(0),F(0),F(0)],math.gcd),TypeError,'score-subclass') + bad=object.__new__(F);bad._numerator=1;bad._denominator=-3 + rejects(lambda:make().event(F(1)).apply_rational({},src,[bad,F(0),F(0)],math.gcd),ValueError,'negative-score-denominator') + rejects(lambda:make().event(F(1)).apply_rational(src,src,list(scores),math.gcd),TypeError,'same-row') + rejects(lambda:make().event(F(1)).apply_rational({},src,list(scores),lambda a,b:1),TypeError,'nonbuiltin-gcd') + # Low-level malformed callback tests check safety, not arbitrary callback equivalence. + moving={0:F(1)} + def mutate_source(*args):moving.clear();return compute(*args) + rejects(lambda:make(callback=mutate_source).event(F(1)).apply_rational({},moving,[F(0)]*3,math.gcd),RuntimeError,'source-iterator-mutation') + changing=[F(0)]*3 + def mutate_scores(*args):changing.clear();return compute(*args) + rejects(lambda:make(callback=mutate_scores).event(F(1)).apply_rational({}, {0:F(1)},changing,math.gcd),IndexError,'score-list-mutation') + changing=[F(0)]*3 + def replace_score(*args):changing[0]=F(9);return compute(*args) + rejects(lambda:make(callback=replace_score).event(F(1)).apply_rational({}, {0:F(1)},changing,math.gcd),RuntimeError,'score-value-mutation') + outcomes=[] + for method in ('apply','apply_rational'): + calls=[0] + def intermittent(*args): + calls[0]+=1 + if calls[0]==2:raise ArithmeticError('fixed callback failure') + return compute(*args) + c=make(callback=intermittent);d={};s=[F(0)]*3;e=c.event(F(1)) + try: + if method=='apply':e.apply(d,{0:F(1),1:F(1)},s) + else:e.apply_rational(d,{0:F(1),1:F(1)},s,math.gcd) + except ArithmeticError as error:outcomes.append((type(error).__name__,str(error),d,s,c.statistics())) + else:raise ValueError('missing callback exception') + need(outcomes[0]==outcomes[1],'completed score state before callback failure') + controls.append('callback-failure-publishes-completed-prefix') + # Every changed operation must force fresh() false and bind() rejection. + code=F._add.__code__ + try: + F._add.__code__=code.replace(co_consts=code.co_consts+('drift',)) + need(not binding.fresh(token) and binding.bind() is None,'live arithmetic code drift') + finally:F._add.__code__=code + controls.append('arithmetic-code-drift') + try: + F.__iadd__=lambda self,other:self + need(not binding.fresh(token) and binding.bind() is None,'added in-place operation') + finally:del F.__iadd__ + controls.append('inplace-protocol-drift') + factory=F.__dict__['_from_coprime_ints'];code=factory.__func__.__code__ + try: + factory.__func__.__code__=code.replace(co_consts=code.co_consts+('drift',)) + need(not binding.fresh(token) and binding.bind() is None,'factory code drift') + finally:factory.__func__.__code__=code + controls.append('materialization-source-drift') + gcd=math.gcd + try: + math.gcd=math.lcm + need(not binding.fresh(token) and binding.bind() is None,'gcd identity drift') + finally:math.gcd=gcd + controls.append('gcd-drift') + fn=F.__add__;position=fn.__code__.co_freevars.index('monomorphic_operator');cell=fn.__closure__[position];saved=cell.cell_contents + try: + cell.cell_contents=F._sub + need(not binding.fresh(token) and binding.bind() is None,'operator closure drift') + finally:cell.cell_contents=saved + controls.append('operator-closure-drift') + with reference_source() as reference: + word=dict(public=2,owned_fields=1,program=[['INIT',2,0],['MOVE',0,0,0,False], + ['ADD',1,0,'1/3',0],['COPY',2,1,1,0],['SCALE',1,'-5/7',0], + ['ADD',1,2,'-1',0],['CLEAR',2,0],['INIT',2,0],['ADD',2,0,'2',0], + ['SCALE',0,'1/2',0],['ADD',0,1,'3/5',0],['CLEAR',2,0]]) + weights=[(F(j+1,2*j+3),F(j+2,2*j+5)) for j in range(len(word['program']))] + rounded={'INIT','MOVE','ADD','COPY','SCALE','CLEAR'} + before=reference.digest((word,weights,sorted(rounded))) + fast=bulk.derive(reference);prior=predecessor.derive(reference) + for cut in range(len(word['program'])+1): + prefix=dict(word,program=word['program'][:cut]);w=weights[:cut] + literal=reference.error_trace(prefix,w,rounded);old=prior(prefix,w,rounded);new=fast(prefix,w,rounded) + need(literal==old==new and typed(literal)==typed(old)==typed(new),'complete event prefix values/types') + need(reference.digest(literal)==reference.digest(new),'event prefix witnesses and hashes') + need(fast.rational_selected(),'general non-dyadic rational route selected') + need(prior.statistics()==fast.statistics(),'event prefix counters') + comparisons+=1 + need(reference.digest((word,weights,sorted(rounded)))==before,'all inputs unchanged') + controls.append('13-complete-event-prefixes-with-nondyadic-weights-and-scalars') + # Unsupported exact-Fraction slot states retain the predecessor outcome. + malformed=object.__new__(F);malformed._numerator=2;malformed._denominator=4 + ws2=list(weights);ws2[0]=(malformed,F(1)) + old=prior(word,ws2,rounded);new=fast(word,ws2,rounded) + need(old==new and not fast.rational_selected(),'noncanonical slot fallback') + controls.append('noncanonical-weight-fallback') + # A changed __add__ that remains semantically equivalent is observable + # through selection: no rational arithmetic bypass is permitted. + add=F.__add__ + try: + F.__add__=lambda self,other:add(self,other) + literal=reference.error_trace(word,weights,rounded);new=fast(word,weights,rounded) + need(literal==new and not fast.rational_selected(),'changed arithmetic literal fallback') + finally:F.__add__=add + controls.append('changed-arithmetic-fallback') + result=dict(status='PASS_BOUNDED_RATIONAL_PROTOTYPE_ONLY',comparisons=comparisons, + added_controls=controls,control_count=len(controls),build=native_backend.receipt(), + independent_literal_oracle_used=True,actual_word_run=False,complete_performance=False) + if micro: + # One declared BCCB sequence, no retries and no projected complete gain. + samples=[] + for label in ('B1','C1','C2','B2'): + wall=time.perf_counter();cpu=time.process_time();c=make(capacity=16384) + check=None + for repeat in range(512): + d=dict(start);s=list(scores);e=c.event(F(7,11)) + if label.startswith('B'):e.apply(d,src,s) + else:e.apply_rational(d,src,s,math.gcd) + if check is None:check=(d,s) + else:need((d,s)==check,'micro every repeated result') + samples.append(dict(label=label,wall_seconds=time.perf_counter()-wall, + cpu_seconds=time.process_time()-cpu,statistics=c.statistics())) + result['micro']=dict(sequence='BCCB',samples=samples,batches=512,coefficients=32, + cold_build_excluded_from_micro=True,illustrative_only=True, + complete_oracle_restoration_unpriced=True) + print(json.dumps(result,sort_keys=True));return result + +if __name__=='__main__': + need(len(sys.argv) in (2,3),'finite_probe.py STAGED_PACKAGE [--micro]') + need(len(sys.argv)==2 or sys.argv[2]=='--micro','known diagnostic option') + main(sys.argv[1],len(sys.argv)==3) diff --git a/research/c-verification-feasibility/rational/native_bulk.c b/research/c-verification-feasibility/rational/native_bulk.c new file mode 100644 index 0000000000..1e908b9acd --- /dev/null +++ b/research/c-verification-feasibility/rational/native_bulk.c @@ -0,0 +1,388 @@ +/* Bounded cache plus source-qualified native rational score accumulation. + * Chris R / Clear1nsight, substantial OpenAI Codex/Astra assistance. Apache-2.0. + */ +#define PY_SSIZE_T_CLEAN +#include +#include + +typedef struct { + PyObject_HEAD + PyObject *dict, *weights, *tokens, *compute, *num, *den, *fraction; + PyObject **ring; + Py_ssize_t capacity, used, head, calls, hits, misses, evictions; + int ready, busy; +} Cache; +typedef struct { + PyObject_HEAD + vectorcallfunc vectorcall; + Cache *cache; + PyObject *q, *qn, *qd; +} Event; +static PyTypeObject CacheType, EventType; + +static int cache_traverse(Cache *s, visitproc visit, void *arg) { + Py_VISIT(s->dict); Py_VISIT(s->weights); Py_VISIT(s->tokens); + Py_VISIT(s->compute); Py_VISIT(s->num); Py_VISIT(s->den); Py_VISIT(s->fraction); + if (s->ring) for (Py_ssize_t i=0;icapacity;i++) Py_VISIT(s->ring[i]); + return 0; +} +static int cache_clear(Cache *s) { + s->ready=0; s->busy=1; + if (s->ring) { + for (Py_ssize_t i=0;icapacity;i++) Py_CLEAR(s->ring[i]); + PyMem_Free(s->ring); s->ring=NULL; + } + Py_CLEAR(s->dict); Py_CLEAR(s->weights); Py_CLEAR(s->tokens); + Py_CLEAR(s->compute); Py_CLEAR(s->num); Py_CLEAR(s->den); Py_CLEAR(s->fraction); + return 0; +} +static void cache_dealloc(Cache *s) { + PyObject_GC_UnTrack(s); cache_clear(s); Py_TYPE(s)->tp_free((PyObject *)s); +} +static int event_traverse(Event *s, visitproc visit, void *arg) { + Py_VISIT(s->cache); Py_VISIT(s->q); Py_VISIT(s->qn); Py_VISIT(s->qd); return 0; +} +static int event_clear(Event *s) { + Py_CLEAR(s->cache); Py_CLEAR(s->q); Py_CLEAR(s->qn); Py_CLEAR(s->qd); return 0; +} +static void event_dealloc(Event *s) { + PyObject_GC_UnTrack(s); event_clear(s); Py_TYPE(s)->tp_free((PyObject *)s); +} +static PyObject *event_disabled(PyTypeObject *type, PyObject *args, PyObject *kw) { + (void)type; (void)args; (void)kw; + PyErr_SetString(PyExc_TypeError,"events are created only by Cache.event"); return NULL; +} +static int is_pair(PyObject *p) { + return (PyList_CheckExact(p)||PyTuple_CheckExact(p)) && PySequence_Size(p)>=2; +} +static PyObject *cache_new(PyTypeObject *type, PyObject *args, PyObject *kw) { + if (kw && PyDict_Size(kw)) { PyErr_SetString(PyExc_TypeError,"positional cache arguments only");return NULL; } + PyObject *cap,*weights,*tokens,*compute,*num,*den,*fraction; + if (!PyArg_UnpackTuple(args,"Cache",7,7,&cap,&weights,&tokens,&compute,&num,&den,&fraction)) return NULL; + if (!PyLong_CheckExact(cap)) { PyErr_SetString(PyExc_ValueError,"integer capacity");return NULL; } + Py_ssize_t ncap=PyLong_AsSsize_t(cap); + if (ncap<1 || ncap>16384 || PyErr_Occurred()) { if(!PyErr_Occurred()) PyErr_SetString(PyExc_ValueError,"capacity 1..16384");return NULL; } + if (!(PyList_CheckExact(weights)||PyTuple_CheckExact(weights)) || !PyList_CheckExact(tokens) || !PyFunction_Check(compute) || !PyType_Check(fraction) || Py_TYPE(num)!=&PyMemberDescr_Type || Py_TYPE(den)!=&PyMemberDescr_Type || !Py_TYPE(num)->tp_descr_get || !Py_TYPE(den)->tp_descr_get) { + PyErr_SetString(PyExc_TypeError,"exact native packet types");return NULL; + } + Py_ssize_t n=PySequence_Size(weights); + if (PyList_GET_SIZE(tokens)!=n) { PyErr_SetString(PyExc_ValueError,"weight/token size");return NULL; } + Cache *s=(Cache *)type->tp_alloc(type,0); + if (!s) return NULL; + s->capacity=ncap; + s->dict=PyDict_New();s->weights=PyTuple_New(n);s->tokens=PyTuple_New(n); + s->ring=PyMem_Calloc((size_t)ncap,sizeof(PyObject *)); + if (!s->dict || !s->weights || !s->tokens || !s->ring) { if(!PyErr_Occurred())PyErr_NoMemory();Py_DECREF(s);return NULL; } + s->compute=Py_NewRef(compute);s->num=Py_NewRef(num);s->den=Py_NewRef(den);s->fraction=Py_NewRef(fraction); + for (Py_ssize_t i=0;iweights,i,pair); + PyObject *token=PySequence_GetItem(tokens,i); + if (!token) { Py_DECREF(s);return NULL; } + if (!PyLong_CheckExact(token)) { Py_DECREF(token);Py_DECREF(s);PyErr_SetString(PyExc_TypeError,"integer token");return NULL; } + Py_ssize_t t=PyLong_AsSsize_t(token); + if (t<0 || t>=16384 || PyErr_Occurred()) { Py_DECREF(token);Py_DECREF(s);if(!PyErr_Occurred())PyErr_SetString(PyExc_ValueError,"bounded token");return NULL; } + PyTuple_SET_ITEM(s->tokens,i,token); + } + s->ready=1;return (PyObject *)s; +} +static PyObject *member(PyObject *descriptor, PyObject *object, PyObject *type) { + return Py_TYPE(descriptor)->tp_descr_get(descriptor,object,type); +} +static PyObject *contribution(Event *e, PyObject *old, PyObject *v, Py_ssize_t i) { + Cache *s=e->cache; + if (i<0 || i>=PyTuple_GET_SIZE(s->tokens)) { PyErr_SetString(PyExc_IndexError,"native site index");return NULL; } + if (!Py_IS_TYPE(old,(PyTypeObject *)s->fraction)||!Py_IS_TYPE(v,(PyTypeObject *)s->fraction)) { PyErr_SetString(PyExc_TypeError,"exact Fraction coefficients");return NULL; } + PyObject *parts[4]={NULL,NULL,NULL,NULL}; + for (int k=0;k<4;k++) { + parts[k]=member(k%2?s->den:s->num,k<2?old:v,s->fraction); + if (!parts[k] || !PyLong_CheckExact(parts[k])) { + for(int j=0;j<4;j++)Py_XDECREF(parts[j]); + if(!PyErr_Occurred())PyErr_SetString(PyExc_TypeError,"integer Fraction slots"); + return NULL; + } + } + PyObject *key=PyTuple_New(7); + if(!key){for(int j=0;j<4;j++)Py_DECREF(parts[j]);return NULL;} + PyTuple_SET_ITEM(key,0,parts[0]);PyTuple_SET_ITEM(key,1,parts[1]); + PyTuple_SET_ITEM(key,2,Py_NewRef(e->qn));PyTuple_SET_ITEM(key,3,Py_NewRef(e->qd)); + PyTuple_SET_ITEM(key,4,parts[2]);PyTuple_SET_ITEM(key,5,parts[3]);PyTuple_SET_ITEM(key,6,Py_NewRef(PyTuple_GET_ITEM(s->tokens,i))); + if(s->calls==PY_SSIZE_T_MAX){Py_DECREF(key);PyErr_SetString(PyExc_OverflowError,"native counter overflow");return NULL;} + s->calls++; + PyObject *result=PyDict_GetItemWithError(s->dict,key); + if(result){s->hits++;Py_INCREF(result);Py_DECREF(key);return result;} + if(PyErr_Occurred()){Py_DECREF(key);return NULL;} + s->misses++; + PyObject *pair=PyTuple_GET_ITEM(s->weights,i); + PyObject *argv[5]={old,e->q,v,PyTuple_GET_ITEM(pair,0),PyTuple_GET_ITEM(pair,1)}; + result=PyObject_Vectorcall(s->compute,argv,5,NULL); + if(!result){Py_DECREF(key);return NULL;} + if(!PyTuple_CheckExact(result)||PyTuple_GET_SIZE(result)!=4){Py_DECREF(result);Py_DECREF(key);PyErr_SetString(PyExc_TypeError,"four exact contributions");return NULL;} + for(int k=0;k<4;k++)if(!Py_IS_TYPE(PyTuple_GET_ITEM(result,k),(PyTypeObject *)s->fraction)){Py_DECREF(result);Py_DECREF(key);PyErr_SetString(PyExc_TypeError,"Fraction contributions");return NULL;} + if(s->used==s->capacity){ + PyObject *oldkey=s->ring[s->head]; + if(PyDict_DelItem(s->dict,oldkey)<0){Py_DECREF(result);Py_DECREF(key);return NULL;} + Py_CLEAR(s->ring[s->head]);s->used--;s->evictions++; + } + if(PyDict_SetItem(s->dict,key,result)<0){Py_DECREF(result);Py_DECREF(key);return NULL;} + s->ring[s->head]=key;s->head=(s->head+1)%s->capacity;s->used++; + return result; +} +static int begin_event(Event *e) { + if(!e->cache||!e->cache->ready){PyErr_SetString(PyExc_RuntimeError,"cleared native event");return -1;} + if(e->cache->busy){PyErr_SetString(PyExc_RuntimeError,"reentrant native event");return -1;} + e->cache->busy=1;return 0; +} +static PyObject *event_call(PyObject *obj, PyObject *const *args, size_t nargsf, PyObject *kw) { + Event *e=(Event *)obj; + if(PyVectorcall_NARGS(nargsf)!=3 || (kw&&PyTuple_GET_SIZE(kw))){PyErr_SetString(PyExc_TypeError,"event(old,v,index)");return NULL;} + if(!PyLong_CheckExact(args[2])){PyErr_SetString(PyExc_TypeError,"integer site index");return NULL;} + Py_ssize_t i=PyLong_AsSsize_t(args[2]);if(PyErr_Occurred())return NULL; + if(begin_event(e)<0)return NULL; + PyObject *result=contribution(e,args[0],args[1],i);e->cache->busy=0;return result; +} +static PyObject *cache_event(Cache *s, PyObject *q) { + if(!s->ready){PyErr_SetString(PyExc_RuntimeError,"cleared cache");return NULL;} + if(!Py_IS_TYPE(q,(PyTypeObject *)s->fraction)){PyErr_SetString(PyExc_TypeError,"exact Fraction scalar");return NULL;} + Event *e=(Event *)EventType.tp_alloc(&EventType,0);if(!e)return NULL; + e->vectorcall=event_call;e->cache=(Cache *)Py_NewRef((PyObject *)s);e->q=Py_NewRef(q); + e->qn=member(s->num,q,s->fraction); + if(!e->qn){Py_DECREF(e);return NULL;} + e->qd=member(s->den,q,s->fraction); + if(!e->qd){Py_DECREF(e);return NULL;} + if(!PyLong_CheckExact(e->qn)||!PyLong_CheckExact(e->qd)){Py_DECREF(e);PyErr_SetString(PyExc_TypeError,"integer scalar slots");return NULL;} + return (PyObject *)e; +} +static PyObject *cache_statistics(Cache *s, PyObject *unused) { + (void)unused; + if(!s->ready){PyErr_SetString(PyExc_RuntimeError,"cleared cache");return NULL;} + return Py_BuildValue("{s:n,s:n,s:n,s:n,s:n,s:n,s:n}","calls",s->calls,"hits",s->hits,"misses",s->misses,"evictions",s->evictions,"bypasses",(Py_ssize_t)0,"resident",PyDict_Size(s->dict),"capacity",s->capacity); +} +static PyObject *event_apply(Event *e, PyObject *args) { + PyObject *dst,*src,*scores; + if(!PyArg_UnpackTuple(args,"apply",3,3,&dst,&src,&scores))return NULL; + if(!PyDict_CheckExact(dst)||!PyDict_CheckExact(src)||dst==src||!PyList_CheckExact(scores)||PyList_GET_SIZE(scores)!=3){PyErr_SetString(PyExc_TypeError,"distinct exact rows and three scores");return NULL;} + if(begin_event(e)<0)return NULL; + Cache *s=e->cache; + PyObject *pair=NULL,*result=NULL; + PyObject *view=PyObject_CallMethod(src,"items",NULL); + PyObject *iterator=view?PyObject_GetIter(view):NULL; + Py_XDECREF(view); + if(!iterator)goto fail; + while((pair=PyIter_Next(iterator))){ + if(!PyTuple_CheckExact(pair)||PyTuple_GET_SIZE(pair)!=2){PyErr_SetString(PyExc_TypeError,"dict item pair");goto fail;} + PyObject *index=PyTuple_GET_ITEM(pair,0),*value=PyTuple_GET_ITEM(pair,1); + if(!PyLong_CheckExact(index)){PyErr_SetString(PyExc_TypeError,"integer source site");goto fail;} + Py_ssize_t i=PyLong_AsSsize_t(index);if(PyErr_Occurred())goto fail; + PyObject *zeroarg=PyLong_FromLong(0);if(!zeroarg)goto fail; + PyObject *zero=PyObject_CallOneArg(s->fraction,zeroarg);Py_DECREF(zeroarg);if(!zero)goto fail; + PyObject *old=PyDict_GetItemWithError(dst,index); + if(old){Py_INCREF(old);Py_DECREF(zero);}else if(PyErr_Occurred()){Py_DECREF(zero);goto fail;}else old=zero; + result=contribution(e,old,value,i);Py_DECREF(old);if(!result)goto fail; + for(int k=0;k<3;k++){ + PyObject *score=PyList_GetItem(scores,k); + if(!score)goto fail; + Py_INCREF(score); + PyObject *next=PyNumber_InPlaceAdd(score,PyTuple_GET_ITEM(result,k+1)); + Py_DECREF(score); + if(!next)goto fail; + if(PyList_SetItem(scores,k,next)<0)goto fail; + } + int truth=PyObject_IsTrue(PyTuple_GET_ITEM(result,0)); + if(truth<0)goto fail; + if(truth){if(PyDict_SetItem(dst,index,PyTuple_GET_ITEM(result,0))<0)goto fail;} + else{ + PyObject *present=PyDict_GetItemWithError(dst,index); + if(present){if(PyDict_DelItem(dst,index)<0)goto fail;} + else if(PyErr_Occurred())goto fail; + } + Py_CLEAR(result);Py_CLEAR(pair); + } + if(PyErr_Occurred())goto fail; + Py_DECREF(iterator);s->busy=0;Py_RETURN_NONE; +fail:Py_XDECREF(result);Py_XDECREF(pair);Py_XDECREF(iterator);s->busy=0;return NULL; +} +/* Owned extension: normalized, arbitrary-width score accumulators. + * Preconditions are established by arithmetic_binding.py and the wrapper. + * The legacy apply() method and its generic callback semantics are unchanged. + */ +typedef struct { PyObject *n, *d; } Rational; +static void rational_clear(Rational *x) { Py_CLEAR(x->n); Py_CLEAR(x->d); } +static int rational_read(Cache *s, PyObject *f, Rational *x, PyObject *zero) { + if(!Py_IS_TYPE(f,(PyTypeObject *)s->fraction)) { + PyErr_SetString(PyExc_TypeError,"exact Fraction score/increment");return -1; + } + x->n=member(s->num,f,s->fraction); + if(!x->n)return -1; + x->d=member(s->den,f,s->fraction); + if(!x->d)return -1; + if(!PyLong_CheckExact(x->n)||!PyLong_CheckExact(x->d)) { + PyErr_SetString(PyExc_TypeError,"exact integer rational slots");return -1; + } + int positive=PyObject_RichCompareBool(x->d,zero,Py_GT); + if(positive<0)return -1; + if(!positive){PyErr_SetString(PyExc_ValueError,"positive rational denominator");return -1;} + return 0; +} +static PyObject *rational_gcd(PyObject *gcd,PyObject *a,PyObject *b,PyObject *zero) { + PyObject *g=PyObject_CallFunctionObjArgs(gcd,a,b,NULL); + if(!g)return NULL; + if(!PyLong_CheckExact(g)){Py_DECREF(g);PyErr_SetString(PyExc_TypeError,"exact gcd result");return NULL;} + int positive=PyObject_RichCompareBool(g,zero,Py_GT); + if(positive<=0){Py_DECREF(g);if(!PyErr_Occurred())PyErr_SetString(PyExc_ValueError,"positive gcd result");return NULL;} + return g; +} +static int rational_add(Rational *a,const Rational *b,PyObject *gcd,PyObject *zero,PyObject *one) { + PyObject *g=NULL,*s=NULL,*u=NULL,*v=NULL,*t=NULL,*g2=NULL,*nn=NULL,*dd=NULL; + int equal=PyObject_RichCompareBool(a->d,b->d,Py_EQ); + if(equal<0)goto fail; + if(equal){ + t=PyNumber_Add(a->n,b->n);if(!t)goto fail; + g2=rational_gcd(gcd,t,a->d,zero);if(!g2)goto fail; + int unit=PyObject_RichCompareBool(g2,one,Py_EQ);if(unit<0)goto fail; + if(unit){nn=Py_NewRef(t);dd=Py_NewRef(a->d);} + else{nn=PyNumber_FloorDivide(t,g2);if(!nn)goto fail;dd=PyNumber_FloorDivide(a->d,g2);if(!dd)goto fail;} + }else{ + g=rational_gcd(gcd,a->d,b->d,zero);if(!g)goto fail; + int unit=PyObject_RichCompareBool(g,one,Py_EQ);if(unit<0)goto fail; + if(unit){ + u=PyNumber_Multiply(a->n,b->d);if(!u)goto fail; + v=PyNumber_Multiply(a->d,b->n);if(!v)goto fail; + nn=PyNumber_Add(u,v);if(!nn)goto fail; + dd=PyNumber_Multiply(a->d,b->d);if(!dd)goto fail; + }else{ + s=PyNumber_FloorDivide(a->d,g);if(!s)goto fail; + u=PyNumber_FloorDivide(b->d,g);if(!u)goto fail; + v=PyNumber_Multiply(a->n,u);if(!v)goto fail; + Py_CLEAR(u);u=PyNumber_Multiply(b->n,s);if(!u)goto fail; + t=PyNumber_Add(v,u);if(!t)goto fail; + g2=rational_gcd(gcd,t,g,zero);if(!g2)goto fail; + unit=PyObject_RichCompareBool(g2,one,Py_EQ);if(unit<0)goto fail; + if(unit){nn=Py_NewRef(t);dd=PyNumber_Multiply(s,b->d);if(!dd)goto fail;} + else{ + nn=PyNumber_FloorDivide(t,g2);if(!nn)goto fail; + Py_CLEAR(u);u=PyNumber_FloorDivide(b->d,g2);if(!u)goto fail; + dd=PyNumber_Multiply(s,u);if(!dd)goto fail; + } + } + } + Py_SETREF(a->n,nn);nn=NULL;Py_SETREF(a->d,dd);dd=NULL; + Py_XDECREF(g);Py_XDECREF(s);Py_XDECREF(u);Py_XDECREF(v);Py_XDECREF(t);Py_XDECREF(g2); + return 0; +fail: + Py_XDECREF(g);Py_XDECREF(s);Py_XDECREF(u);Py_XDECREF(v);Py_XDECREF(t);Py_XDECREF(g2);Py_XDECREF(nn);Py_XDECREF(dd); + return -1; +} +static PyObject *rational_fraction(Cache *s,const Rational *x) { + /* The wrapper binds exact owned slot descriptors and object allocation. + No PyLong internals, machine-word truncation or foreign Fraction type. */ + if(!Py_TYPE(s->num)->tp_descr_set||!Py_TYPE(s->den)->tp_descr_set){ + PyErr_SetString(PyExc_TypeError,"writable owned Fraction slots");return NULL; + } + PyObject *f=PyType_GenericAlloc((PyTypeObject *)s->fraction,0); + if(!f)return NULL; + if(Py_TYPE(s->num)->tp_descr_set(s->num,f,x->n)<0||Py_TYPE(s->den)->tp_descr_set(s->den,f,x->d)<0){Py_DECREF(f);return NULL;} + return f; +} +static int rational_scores_unchanged(PyObject *scores,PyObject **initial) { + if(PyList_GET_SIZE(scores)!=3){PyErr_SetString(PyExc_IndexError,"score list changed during rational apply");return -1;} + for(int k=0;k<3;k++)if(PyList_GET_ITEM(scores,k)!=initial[k]){ + PyErr_SetString(PyExc_RuntimeError,"score value changed during rational apply");return -1; + } + return 0; +} +static int rational_publish(Cache *s,PyObject *scores,PyObject **initial,Rational *acc) { + PyObject *out[3]={NULL,NULL,NULL}; + if(rational_scores_unchanged(scores,initial)<0)return -1; + for(int k=0;k<3;k++){out[k]=rational_fraction(s,&acc[k]);if(!out[k])goto fail;} + if(rational_scores_unchanged(scores,initial)<0)goto fail; + for(int k=0;k<3;k++){if(PyList_SetItem(scores,k,out[k])<0){out[k]=NULL;goto fail;}out[k]=NULL;} + return 0; +fail:for(int k=0;k<3;k++)Py_XDECREF(out[k]);return -1; +} +static PyObject *event_apply_rational(Event *e,PyObject *args) { + PyObject *dst,*src,*scores,*gcd; + if(!PyArg_UnpackTuple(args,"apply_rational",4,4,&dst,&src,&scores,&gcd))return NULL; + if(!PyDict_CheckExact(dst)||!PyDict_CheckExact(src)||dst==src||!PyList_CheckExact(scores)||PyList_GET_SIZE(scores)!=3||!PyCFunction_Check(gcd)){ + PyErr_SetString(PyExc_TypeError,"distinct exact rows, three scores, builtin gcd");return NULL; + } + if(begin_event(e)<0)return NULL; + Cache *s=e->cache; + Rational acc[3]={{NULL,NULL},{NULL,NULL},{NULL,NULL}}; + Rational inc={NULL,NULL}; + PyObject *initial[3]={NULL,NULL,NULL},*pair=NULL,*result=NULL,*iterator=NULL; + PyObject *zero=PyLong_FromLong(0),*one=PyLong_FromLong(1); + int accumulated=0,ready=0; + if(!zero||!one)goto fail; + for(int k=0;k<3;k++){ + initial[k]=Py_NewRef(PyList_GET_ITEM(scores,k)); + if(rational_read(s,initial[k],&acc[k],zero)<0)goto fail; + } + ready=1; + PyObject *view=PyObject_CallMethod(src,"items",NULL); + iterator=view?PyObject_GetIter(view):NULL;Py_XDECREF(view); + if(!iterator)goto fail; + while((pair=PyIter_Next(iterator))){ + if(!PyTuple_CheckExact(pair)||PyTuple_GET_SIZE(pair)!=2){PyErr_SetString(PyExc_TypeError,"dict item pair");goto fail;} + PyObject *index=PyTuple_GET_ITEM(pair,0),*value=PyTuple_GET_ITEM(pair,1); + if(!PyLong_CheckExact(index)){PyErr_SetString(PyExc_TypeError,"integer source site");goto fail;} + Py_ssize_t i=PyLong_AsSsize_t(index);if(PyErr_Occurred())goto fail; + /* Retain the literal per-coefficient Fraction(0) construction. */ + PyObject *z=PyObject_CallOneArg(s->fraction,zero);if(!z)goto fail; + PyObject *old=PyDict_GetItemWithError(dst,index); + if(old){Py_INCREF(old);Py_DECREF(z);}else if(PyErr_Occurred()){Py_DECREF(z);goto fail;}else old=z; + result=contribution(e,old,value,i);Py_DECREF(old);if(!result)goto fail; + if(rational_scores_unchanged(scores,initial)<0)goto fail; + for(int k=0;k<3;k++){ + if(rational_read(s,PyTuple_GET_ITEM(result,k+1),&inc,zero)<0)goto fail; + if(rational_add(&acc[k],&inc,gcd,zero,one)<0)goto fail; + rational_clear(&inc);accumulated=1; + } + int truth=PyObject_IsTrue(PyTuple_GET_ITEM(result,0));if(truth<0)goto fail; + if(truth){if(PyDict_SetItem(dst,index,PyTuple_GET_ITEM(result,0))<0)goto fail;} + else{ + PyObject *present=PyDict_GetItemWithError(dst,index); + if(present){if(PyDict_DelItem(dst,index)<0)goto fail;} + else if(PyErr_Occurred())goto fail; + } + Py_CLEAR(result);Py_CLEAR(pair); + } + if(PyErr_Occurred())goto fail; + if(accumulated&&rational_publish(s,scores,initial,acc)<0)goto fail; + for(int k=0;k<3;k++){rational_clear(&acc[k]);Py_DECREF(initial[k]);} + Py_DECREF(iterator);Py_DECREF(zero);Py_DECREF(one);s->busy=0;Py_RETURN_NONE; +fail:{ + PyObject *error=PyErr_GetRaisedException(); + /* Publish completed exact additions on an ordinary failure where safe. + A mutated caller list is never repaired, resized or silently ignored. */ + if(ready&&accumulated){if(rational_publish(s,scores,initial,acc)<0)PyErr_Clear();} + rational_clear(&inc); + for(int k=0;k<3;k++){rational_clear(&acc[k]);Py_XDECREF(initial[k]);} + Py_XDECREF(pair);Py_XDECREF(result);Py_XDECREF(iterator);Py_XDECREF(zero);Py_XDECREF(one);s->busy=0; + if(error)PyErr_SetRaisedException(error);else PyErr_SetString(PyExc_RuntimeError,"rational apply failed without exception"); + return NULL; +}} + +static PyMethodDef cache_methods[]={{"event",(PyCFunction)cache_event,METH_O,"Fresh scalar context."},{"statistics",(PyCFunction)cache_statistics,METH_NOARGS,"Full counters."},{NULL,NULL,0,NULL}}; +static PyMethodDef event_methods[]={{"apply_rational",(PyCFunction)event_apply_rational,METH_VARARGS,"Source-qualified exact rational score batch."},{"apply",(PyCFunction)event_apply,METH_VARARGS,"Same coefficient loop and Python numeric operations."},{NULL,NULL,0,NULL}}; +static PyTypeObject CacheType={PyVarObject_HEAD_INIT(NULL,0) + .tp_name="_fraction_native.Cache",.tp_basicsize=sizeof(Cache),.tp_flags=Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC, + .tp_new=cache_new,.tp_dealloc=(destructor)cache_dealloc,.tp_traverse=(traverseproc)cache_traverse,.tp_clear=(inquiry)cache_clear,.tp_methods=cache_methods}; +static PyTypeObject EventType={PyVarObject_HEAD_INIT(NULL,0) + .tp_name="_fraction_native.Event",.tp_basicsize=sizeof(Event),.tp_flags=Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_GC|Py_TPFLAGS_HAVE_VECTORCALL, + .tp_new=event_disabled,.tp_dealloc=(destructor)event_dealloc,.tp_traverse=(traverseproc)event_traverse,.tp_clear=(inquiry)event_clear, + .tp_call=PyVectorcall_Call,.tp_vectorcall_offset=offsetof(Event,vectorcall),.tp_methods=event_methods}; +static struct PyModuleDef module={PyModuleDef_HEAD_INIT,"_fraction_native","Bounded cache; exact Python arithmetic.",-1,NULL}; +PyMODINIT_FUNC PyInit__fraction_native(void){ + if(PyType_Ready(&CacheType)<0||PyType_Ready(&EventType)<0)return NULL; + PyObject *m=PyModule_Create(&module);if(!m)return NULL; + if(PyModule_AddObjectRef(m,"Cache",(PyObject *)&CacheType)<0){Py_DECREF(m);return NULL;} + return m; +} diff --git a/research/c-verification-feasibility/replay.py b/research/c-verification-feasibility/replay.py new file mode 100644 index 0000000000..4a403909ed --- /dev/null +++ b/research/c-verification-feasibility/replay.py @@ -0,0 +1,22 @@ +"""Optional single guarded complete frozen-qualifier replay; no retry or benchmark fishing.""" +import fcntl +from pathlib import Path +import sys +import guard + +PACKAGE = Path(__file__).resolve().parent +if len(sys.argv) != 3 or sys.argv[1] not in ('B', 'C', 'D'): + raise ValueError('replay.py B|C|D NEW_EXTERNAL_EVIDENCE_DIRECTORY') +evidence = Path(sys.argv[2]).resolve() +if evidence.is_relative_to(PACKAGE) or evidence.exists(): + raise ValueError('new evidence directory outside the immutable package required') +evidence.mkdir(parents=True) +guard.HERE = evidence +guard.SOURCE = PACKAGE +guard.CLOSURE = tuple(sorted(str(p.relative_to(PACKAGE)) for p in PACKAGE.rglob('*') + if p.is_file() and '__pycache__' not in p.parts)) + ('/usr/lib/python3.12/fractions.py',) +guard.AGGREGATE = 600 +with (evidence / 'execution.lock').open('a') as lock: + fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB) + script = 'owned_screen.py' if sys.argv[1] == 'D' else 'full_' + sys.argv[1] + '.py' + guard.run('complete-' + sys.argv[1], script) diff --git a/research/c-verification-feasibility/verify.py b/research/c-verification-feasibility/verify.py new file mode 100644 index 0000000000..c5626ffabd --- /dev/null +++ b/research/c-verification-feasibility/verify.py @@ -0,0 +1,55 @@ +"""Scoped fresh checks. This command does not admit a performance improvement.""" +from hashlib import sha256 +import json +from pathlib import Path +import runpy +import sys +from portable import prepared, require + +HERE = Path(__file__).resolve().parent +require(len(sys.argv) == 2 and sys.argv[1] in ('baseline', 'integer', 'rational'), 'explicit finite scope') +mode = sys.argv[1] +manifest = json.loads((HERE / 'CODE-SOURCES.json').read_text()) +for name, digest in manifest.items(): + path = HERE / name + require(not path.is_symlink() and sha256(path.read_bytes()).hexdigest() == digest, + 'exact qualified prototype source: ' + name) +with prepared(mode) as (root, baseline, stage): + if mode == 'baseline': + sys.path.insert(0, str(baseline)) + sys.argv = [str(baseline / 'verify.py')] + runpy.run_path(sys.argv[0], run_name='__main__') + elif mode == 'integer': + sys.path.insert(0, str(stage)) + sys.argv = [str(stage / 'finite_probe.py'), '--source-sha256', manifest['integer/integer_format.c']] + runpy.run_path(sys.argv[0], run_name='__main__') + else: + sys.path.insert(0, str(stage)) + import fractions + print(json.dumps(dict(runtime_fraction_source_sha256=sha256(Path(fractions.__file__).read_bytes()).hexdigest(),python=sys.version,scope='rational-source-pin-diagnostic'),sort_keys=True)) + from finite_probe import main + main(stage / 'package', micro=False) + import arithmetic_binding as binding + from fractions import Fraction as F + token = binding.bind() + require(token is not None, 'original arithmetic binding') + F.__del__ = lambda self: None + try: + require(binding.bind() is None and not binding.fresh(token), 'destructor drift rejects') + finally: + del F.__del__ + # A populated expected-code cache must not admit an unknown file. + import fractions, tempfile + saved=fractions.__file__ + with tempfile.TemporaryDirectory(prefix='unknown-fraction-source-') as temp: + foreign=Path(temp)/'fractions.py' + foreign.write_bytes(Path(saved).read_bytes()+b'\n# unapproved source revision\n') + fractions.__file__=str(foreign) + try: + require(binding.bind() is None, 'unknown Fraction source rejects after cache populated') + finally: + fractions.__file__=saved + require(binding.bind() is not None, 'known Fraction source binding restored') + print('PASS_ADDED_DESTRUCTOR_AND_UNKNOWN_SOURCE_BINDING_CONTROLS') +print('PASS_C_VERIFICATION_SCOPED_FINITE ' + mode) + diff --git a/tests/fixtures/README.md b/tests/fixtures/README.md new file mode 100644 index 0000000000..472a6a502f --- /dev/null +++ b/tests/fixtures/README.md @@ -0,0 +1,41 @@ +# Frozen research routing fixture + +`research-routing-v7.json` retains two exact task cards from priority revision 7: +`portable-replay` and `centre-path-sharing`. They exercise the generic-baseline +and historical-ceiling routes in `choose_current_research_task.py`. The fixture +records the source commit, path and SHA256. The card objects are unchanged. + +The source is commit `553d26d796fde9871ff2661a49ac7732e945410f`, file +`docs/research/agent-task-catalog.json`. The test places these cards in a small +catalogue with one track of weight 100. This carrier is test data, not a change +to research priorities. Current cards are checked separately from the live +catalogue. Every live card must preserve its other fields; each distinct direct +command also passes through both real CLIs. + +The CLI fixture copies the two real scripts. It creates inert reference files +for path validation and copies the current selected record for receipt fields. +It does not execute those references or verify a mathematical claim. Missing +references, sparse omissions, deleted files and staged replacements have separate +negative tests. No Git history, network request or change to the live catalogue +is needed to run the fixture. + +```sh +python3 -B -m unittest discover -s tests -p test_research_current_assignment.py -v +python3 -B -m unittest discover -s tests -p test_research_assignment.py -v +``` + +This fixture repairs the CI handoff in +[Discussion 5722](https://github.com/CrocSwap/integer-mult-bounds/discussions/5722). +The [investigation](https://github.com/CrocSwap/integer-mult-bounds/discussions/5758) +records the failure, checks and publication status. The original scripts, task +catalogue and selected frontier are unchanged. + +On base `de5ec2e7a6074068452f45b1a191b5c72832df4a`, the old suite has eight +failures and two errors. After the repair, all 12 current-assignment tests pass +under Python 3.14.7 and Python 3.12.14, including an isolated optimized run. +All 16 related assignment tests pass under Python 3.12.14. This is test coverage, +not a mathematical replay. See the investigation for hosted-plan status. + +Retain the original catalogue, routing and test authors, including Douglas +Colkitt, Ali Romman and Mihir Srivastava. New fixture and test repair: Ali Romman +with substantial OpenAI Codex assistance. No subagents. Apache-2.0. diff --git a/tests/fixtures/research-routing-v7.json b/tests/fixtures/research-routing-v7.json new file mode 100644 index 0000000000..f5d52ac21d --- /dev/null +++ b/tests/fixtures/research-routing-v7.json @@ -0,0 +1,87 @@ +{ + "source_commit": "553d26d796fde9871ff2661a49ac7732e945410f", + "source_path": "docs/research/agent-task-catalog.json", + "source_sha256": "f7a48bfa2659b88378282a8eee7d9fe52cdf505594124c4d1686b58510fffd72", + "scope": "Two exact revision-7 cards. The test carrier is not a research allocation.", + "cards": [ + { + "id": "centre-path-sharing", + "question": "Can the 64-per-call centre path (eight rank-8 COPY/ERASE totals through the private temporary) be shared across calls or shrunk?", + "starting_points": [ + "docs/research/research-family-status.md", + "research/complex-local-word-ceiling/README.md", + "research/split-centres-global/proofs/PR386-BIT-GEOMETRY.txt", + "certificates/selected-result.json" + ], + "methods": [ + "Derive a fully charged favorable relaxation for sharing one centre path across k calls, including restoration, hosting and precision.", + "Prove a lower bound on copied information per call for the selected decoder contract." + ], + "acceptance_gate": "Show the changed centre charge and copy profile per call with every added restoration or hosting cost charged, and its ceiling via ceiling.ceiling(centre=...). A scoped local result may be retained without a complete supplier. Expanding it into further construction rounds requires the family-level budget and obligation gate in research-family-status.md; an optimistic passing relaxation alone is not acceptance.", + "first_step": { + "command": [ + "python3", + "-B", + "research/complex-local-word-ceiling/verify.py" + ], + "expected": "PASS_COMPLEX_LOCAL_WORD_CEILING", + "inspect": "Read the selected word's per-call local profile, its packing ceiling and the lever table; run levers.py for the ideal budget of the lever you target.", + "scope": "Positive control and planning budget only; this is not a new construction or full cold replay." + }, + "first_experiment": "Write the per-call centre charge and copy children for sharing across k = 2 calls, charge the sharing overhead, and screen it; stop this route if even the ideal sharing gains under 10%. Ideal budgets: free 2.80x, shared by two 1.90x (levers.py).", + "bottleneck_link": "The centre path consumes 64 of about 99.6 unpaid coordinates per call, i.e. about 64% of the raw deficit.", + "allowed_variations": [ + "One sharing pattern across a fixed number of calls.", + "One reduced copied-total contract for the existing decoder.", + "If the coverage law, template or guard changes, derive an applicable fully charged replacement bound instead of applying the incumbent ceiling outside its scope." + ], + "scope_change_triggers": [ + "Removing copies without a replacement contract for the decoder's copied totals.", + "Continuing a partial cost improvement while leaving the same unpriced consumer, restoration or central-readout obligation unresolved; refresh the family expansion decision first. Local product-retiming evidence has a narrow scope and is not a ban on changed graphs or contracts." + ], + "overlap_terms": [ + "centre path", + "copied totals", + "private temporary", + "shared centre", + "batching" + ] + }, + { + "id": "portable-replay", + "question": "Can one reproducible environment or artifact-comparison failure be repaired?", + "starting_points": [ + "research/gzip-container-reproducibility/README.md", + "docs/ci-verification.md" + ], + "methods": [ + "Reproduce one portability failure and add a minimal cross-environment fix.", + "Audit one canonical-payload comparison for omitted proof-relevant fields." + ], + "acceptance_gate": "Preserve immutable source hashes and proof-relevant content; a different compressed byte stream alone is not a mathematical mismatch.", + "first_step": { + "command": [ + "python3", + "-B", + "scripts/research_baseline.py" + ], + "expected": "PASS_RESEARCH_BASELINE_BINDINGS_ONLY", + "inspect": "Read the gzip-container reproducibility examples and distinguish frozen source bytes from regenerated payloads.", + "scope": "Positive control / source-bound orientation only; this is not a new construction or full cold replay." + }, + "first_experiment": "Reproduce one specific mismatch or audit one canonical comparison for omitted proof-relevant fields.", + "bottleneck_link": "Portable exact checks prevent environment failures from blocking valid contributions.", + "allowed_variations": [ + "One interpreter/version mismatch or one payload field comparison." + ], + "scope_change_triggers": [ + "Removing immutable-source pins because generated compressed bytes differ." + ], + "overlap_terms": [ + "gzip container", + "reproducibility", + "canonical payload" + ] + } + ] +} diff --git a/tests/test_research_current_assignment.py b/tests/test_research_current_assignment.py index 860f6b9b9e..c524c0037f 100644 --- a/tests/test_research_current_assignment.py +++ b/tests/test_research_current_assignment.py @@ -1,9 +1,15 @@ -"""Current orientation must preserve frozen task-selection evidence.""" +"""Current orientation must preserve frozen task-selection evidence. + +Frozen fixtures and live-catalog coverage: Ali Romman with OpenAI Codex +assistance. Retain the original routing and test authors. Apache-2.0. +""" import copy +from contextlib import contextmanager import importlib.util import json from pathlib import Path import subprocess +import shutil import sys import tempfile import unittest @@ -15,16 +21,49 @@ LEGACY = current.LEGACY legacy = current.runpy.run_path(str(LEGACY)) CATALOG = json.loads((ROOT / legacy["CATALOG"]).read_text(encoding="utf-8")) +FROZEN = json.loads((ROOT / "tests/fixtures/research-routing-v7.json").read_text()) +FROZEN_CATALOG = { + "schema_version": 1, "priority_revision": 7, + "priority_log": "docs/research/routing-fixture.md", + "tracks": [{"id": "routing-fixtures", "weight": 100, "tasks": FROZEN["cards"]}], +} + + +@contextmanager +def frozen_cli_tree(): + """Run the real scripts with exact old cards and inert reference files.""" + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + required = {FROZEN_CATALOG["priority_log"], + "scripts/research_selected_baseline.py", "scripts/research_package.py", + "research/historical-complex-ceiling-replay/VERIFY.json", + "research/historical-complex-ceiling-replay/verify.py"} + for card in FROZEN["cards"]: + required.update(card["starting_points"]) + required.add(card["first_step"]["command"][-1]) + for name in required: + path = root / name + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text("Inert reference for CLI validation only.\n") + for name in ("choose_research_task.py", "choose_current_research_task.py"): + shutil.copyfile(ROOT / "scripts" / name, root / "scripts" / name) + path = root / legacy["CATALOG"] + path.parent.mkdir(parents=True, exist_ok=True) + path.write_text(json.dumps(FROZEN_CATALOG)) + path = root / "certificates/selected-result.json" + path.parent.mkdir(parents=True, exist_ok=True) + shutil.copyfile(ROOT / "certificates/selected-result.json", path) + yield root class CurrentResearchAssignmentTests(unittest.TestCase): - def test_every_frozen_card_and_other_fields_stay_exact(self): - before = copy.deepcopy(CATALOG) + def check_card_round_trips(self, catalog): + before = copy.deepcopy(catalog) resolved = 0 historical = 0 - for track in CATALOG["tracks"]: + for track in catalog["tracks"]: for task in track["tasks"]: - result = legacy["select"](CATALOG, "a1" * 16, task_id=task["id"]) + result = legacy["select"](catalog, "a1" * 16, task_id=task["id"]) original = copy.deepcopy(result) current.resolve_current_first_steps(result, ROOT) card = result["suggestions"][0] @@ -55,19 +94,25 @@ def test_every_frozen_card_and_other_fields_stay_exact(self): self.assertTrue(card.pop("first_step_resolution")) card["first_step"] = card.pop("catalog_first_step") self.assertEqual(result, original) - self.assertEqual(resolved, 16) - self.assertEqual(historical, 4) - self.assertEqual(CATALOG, before) + self.assertEqual(catalog, before) + return resolved, historical + + def test_frozen_routes_and_other_fields_stay_exact(self): + self.assertEqual(self.check_card_round_trips(FROZEN_CATALOG), (1, 1)) + + def test_every_live_card_and_other_fields_stay_exact(self): + self.assertTrue(CATALOG["tracks"]) + self.check_card_round_trips(CATALOG) def test_only_exact_generic_command_is_resolved(self): - result = copy.deepcopy(legacy["select"](CATALOG, "0" * 32, task_id="portable-replay")) + result = copy.deepcopy(legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="portable-replay")) result["suggestions"][0]["first_step"]["command"].append("--historical-fixture") original = copy.deepcopy(result) self.assertEqual(current.resolve_current_first_steps(result, ROOT), []) self.assertEqual(result, original) def test_missing_current_helper_does_not_change_receipt(self): - result = legacy["select"](CATALOG, "0" * 32, task_id="portable-replay") + result = legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="portable-replay") original = copy.deepcopy(result) with tempfile.TemporaryDirectory() as directory: with self.assertRaisesRegex(ValueError, "missing current first-step script"): @@ -82,7 +127,7 @@ def test_nonexact_scientific_commands_are_not_reinterpreted(self): ): with self.subTest(command=command): result = copy.deepcopy(legacy["select"]( - CATALOG, "0" * 32, task_id="centre-path-sharing")) + FROZEN_CATALOG, "0" * 32, task_id="centre-path-sharing")) result["suggestions"][0]["first_step"]["command"] = command original = copy.deepcopy(result) self.assertEqual(current.resolve_current_first_steps(result, ROOT), []) @@ -102,34 +147,52 @@ def test_missing_historical_reference_leaves_all_cards_unchanged(self): path = root / name path.parent.mkdir(parents=True, exist_ok=True) path.write_text("fixture\n") - result = legacy["select"](CATALOG, "0" * 32, task_id="portable-replay") + result = legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="portable-replay") result["suggestions"] += legacy["select"]( - CATALOG, "0" * 32, task_id="centre-path-sharing")["suggestions"] + FROZEN_CATALOG, "0" * 32, task_id="centre-path-sharing")["suggestions"] original = copy.deepcopy(result) with self.assertRaises(ValueError) as raised: current.resolve_current_first_steps(result, root) self.assertIn(absent, str(raised.exception)) self.assertEqual(result, original) - def cli(self, script, args): - return subprocess.run([sys.executable, "-B", str(script), *args], cwd=ROOT, + def cli(self, script, args, root=ROOT): + return subprocess.run([sys.executable, "-B", str(root / "scripts" / Path(script).name), *args], cwd=root, capture_output=True, text=True, encoding="utf-8") def test_cli_preserves_legacy_output_and_emits_both_commands(self): - args = ["--seed", "0" * 32, "--task", "portable-replay"] - original = self.cli(LEGACY, args) - output = self.cli(ROOT / "scripts/choose_current_research_task.py", args) - self.assertEqual(original.returncode, 0) - self.assertEqual(output.returncode, 0) - old, new = json.loads(original.stdout), json.loads(output.stdout) - card = new["suggestions"][0] - self.assertEqual(card["first_step"]["command"], - ["python3", "-B", "scripts/research_selected_baseline.py"]) - self.assertEqual(card.pop("catalog_first_step"), old["suggestions"][0]["first_step"]) - self.assertTrue(card.pop("first_step_resolution")) - card["first_step"] = old["suggestions"][0]["first_step"] - self.assertEqual(new, old) - self.assertEqual(self.cli(LEGACY, args).stdout, original.stdout) + with frozen_cli_tree() as root: + args = ["--seed", "0" * 32, "--task", "portable-replay"] + original = self.cli(LEGACY, args, root) + output = self.cli(ROOT / "scripts/choose_current_research_task.py", args, root) + self.assertEqual(original.returncode, 0) + self.assertEqual(output.returncode, 0) + old, new = json.loads(original.stdout), json.loads(output.stdout) + card = new["suggestions"][0] + self.assertEqual(card["first_step"]["command"], + ["python3", "-B", "scripts/research_selected_baseline.py"]) + self.assertEqual(card.pop("catalog_first_step"), old["suggestions"][0]["first_step"]) + self.assertTrue(card.pop("first_step_resolution")) + card["first_step"] = old["suggestions"][0]["first_step"] + self.assertEqual(new, old) + self.assertEqual(self.cli(LEGACY, args, root).stdout, original.stdout) + + def test_live_cli_preserves_each_unmapped_command(self): + checked = {tuple(card["first_step"]["command"]) for card in FROZEN["cards"]} + for track in CATALOG["tracks"]: + for task in track["tasks"]: + command = tuple(task["first_step"]["command"]) + if command in checked: + continue + checked.add(command) + with self.subTest(task=task["id"]): + args = ["--seed", "0" * 32, "--task", task["id"]] + original = self.cli(LEGACY, args) + output = self.cli(ROOT / "scripts/choose_current_research_task.py", args) + self.assertEqual(original.returncode, 0, original.stderr) + self.assertEqual(output.returncode, 0, output.stderr) + self.assertEqual(json.loads(output.stdout), json.loads(original.stdout)) + self.assertEqual(self.cli(LEGACY, args).stdout, original.stdout) def test_help_and_error_preserve_child_status_and_output(self): for args, code in ((["--help"], 0), (["--unknown-option"], 2), (["--seed", "bad"], 2)): @@ -139,23 +202,24 @@ def test_help_and_error_preserve_child_status_and_output(self): self.assertEqual((output.stdout, output.stderr), (original.stdout, original.stderr)) def test_cli_distinguishes_current_orientation_from_historical_control(self): - args = ["--seed", "0" * 32, "--task", "complex-new-helper-inventory"] - original = self.cli(LEGACY, args) - output = self.cli(ROOT / "scripts/choose_current_research_task.py", args) - self.assertEqual(original.returncode, 0, original.stderr) - self.assertEqual(output.returncode, 0, output.stderr) - old, new = json.loads(original.stdout), json.loads(output.stdout) - card = new["suggestions"][0] - self.assertEqual(card["first_step"]["command"][2], "scripts/research_selected_baseline.py") - self.assertEqual(card["first_step"]["expected"], "PASS_RESEARCH_BASELINE_BINDINGS_ONLY") - follow_up, = card.pop("follow_up_steps") - self.assertEqual(follow_up["command"][-1], "research/historical-complex-ceiling-replay") - self.assertIn("historical", follow_up["scope"].lower()) - self.assertIn("cost law", follow_up["inspect"]) - self.assertTrue(card.pop("first_step_resolution")) - card["first_step"] = card.pop("catalog_first_step") - self.assertEqual(new, old) - self.assertEqual(self.cli(LEGACY, args).stdout, original.stdout) + with frozen_cli_tree() as root: + args = ["--seed", "0" * 32, "--task", "centre-path-sharing"] + original = self.cli(LEGACY, args, root) + output = self.cli(ROOT / "scripts/choose_current_research_task.py", args, root) + self.assertEqual(original.returncode, 0, original.stderr) + self.assertEqual(output.returncode, 0, output.stderr) + old, new = json.loads(original.stdout), json.loads(output.stdout) + card = new["suggestions"][0] + self.assertEqual(card["first_step"]["command"][2], "scripts/research_selected_baseline.py") + self.assertEqual(card["first_step"]["expected"], "PASS_RESEARCH_BASELINE_BINDINGS_ONLY") + follow_up, = card.pop("follow_up_steps") + self.assertEqual(follow_up["command"][-1], "research/historical-complex-ceiling-replay") + self.assertIn("historical", follow_up["scope"].lower()) + self.assertIn("cost law", follow_up["inspect"]) + self.assertTrue(card.pop("first_step_resolution")) + card["first_step"] = card.pop("catalog_first_step") + self.assertEqual(new, old) + self.assertEqual(self.cli(LEGACY, args, root).stdout, original.stdout) def test_sparse_historical_references_require_unchanged_head_entries(self): with tempfile.TemporaryDirectory() as directory: @@ -178,12 +242,12 @@ def git(*args): git("update-index", "--skip-worktree", *omitted) for name in omitted: (root / name).unlink() - result = legacy["select"](CATALOG, "0" * 32, task_id="coverage-law-change") + result = legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="centre-path-sharing") self.assertEqual(current.resolve_current_first_steps(result, root), sorted(omitted)) # Ordinary deletion must not acquire the deliberate-sparse exemption. changed = omitted[-1] git("update-index", "--no-skip-worktree", changed) - result = legacy["select"](CATALOG, "0" * 32, task_id="coverage-law-change") + result = legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="centre-path-sharing") original = copy.deepcopy(result) with self.assertRaises(ValueError): current.resolve_current_first_steps(result, root) @@ -208,9 +272,9 @@ def git(*args): git("-c", "user.name=Fixture", "-c", "user.email=fixture@example.invalid", "-c", "core.hooksPath=/dev/null", "commit", "-qm", "helper") git("update-index", "--skip-worktree", name); path.unlink() - result = legacy["select"](CATALOG, "0" * 32, task_id="portable-replay") + result = legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="portable-replay") self.assertEqual(current.resolve_current_first_steps(result, root), [name]) git("update-index", "--no-skip-worktree", name) - result = legacy["select"](CATALOG, "0" * 32, task_id="portable-replay") + result = legacy["select"](FROZEN_CATALOG, "0" * 32, task_id="portable-replay") with self.assertRaisesRegex(ValueError, "missing current first-step script"): current.resolve_current_first_steps(result, root)