Problem packetResearch packetR715
Exhaustive nine-element branch certificate
Link to a section
Executable material is recorded. Successful replay is a separate check.
Recorded status: available
Recorded scope: every increasing nine-element subset of {1,...,50}
Complete recorded scope and conditions
{
"kind": "bounded",
"statement": "every increasing nine-element subset of {1,...,50}",
"bounds": {
"ambient_minimum": {
"min": 1,
"max": 1
},
"ambient_maximum": {
"min": 50,
"max": 50
},
"set_size": {
"min": 9,
"max": 9
}
},
"exhaustive": true
}Originating problem: Largest jointly sum-and-difference-distinct subset of {1,...,50}
Recorded relationships: The exact maximum is M(50)=8
Authored record and scope
- Authored title
- Exhaustive nine-element branch certificate
- Record type
- artifact
- Stored status
- available
- Evidence grade
- executable
- Recorded scope data
- { "kind": "bounded", "statement": "every increasing nine-element subset of {1,...,50}", "bounds": { "ambient_minimum": { "min": 1, "max": 1 }, "ambient_maximum": { "min": 50, "max": 50 }, "set_size": { "min": 9, "max": 9 } }, "exhaustive": true }
- Linked research record IDs
- R716
2Authored explanation
The program retains the original coordinates and interval. At a partial increasing set \(y_1<\cdots<y_d\), a 128-bit mask records every used value. Adding \(x>y_d\) proposes the two values \(x-y_i\) and \(x+y_i\) for each earlier mark. The branch survives exactly when all \(2d\) proposals are new. The loop bound \(x\leq51-(9-d)\) leaves enough larger integers to complete nine marks; this shortage cutoff is the sole branch pruning rule.
The run visits 1,330,023 admissible nodes and rejects 5,798,178 candidate extensions. Node counts by depth are \[ [1,42,903,12342,104597,452239,639228,120455,216,0]. \] Rejection counts at depths zero through eight are \[ [0,0,902,31187,432335,2233008,2756216,344165,365]. \] The zero at depth nine is the exhaustive nonexistence result. A running FNV-1a trace hashes the depth, next candidate, and both 64-bit halves of the mask at every visited node. Its final value is `ec589fbc6a870cec`.
The same executable checks the eight-element witness before starting the search. Its stable five-line output has SHA-256 digest `cbb03c49249188d3abddb2ac2b88aa707a781c5db6e78f247971c60e86bfa60b`.
Files and source
Files embedded in this record. Matching a file hash confirms its identity.
- R715.txt3,377 bytes · No SHA-256 recorded
Preview R715.txt
#include <algorithm> #include <array> #include <cstdint> #include <iostream> #include <vector> using Mask = unsigned __int128; constexpr int target = 9; std::vector<int> chosen; std::array<std::uint64_t, target + 1> visits{}, rejects{}; std::uint64_t trace = 14695981039346656037ULL; void mix(std::uint64_t value) { for (int shift = 0; shift < 64; shift += 8) { trace ^= (value >> shift) & 255U; trace *= 1099511628211ULL; } } bool search(int next, Mask used) { const int depth = static_cast<int>(chosen.size()); ++visits[depth]; mix(depth); mix(next); mix(static_cast<std::uint64_t>(used)); mix(static_cast<std::uint64_t>(used >> 64)); if (depth == target) { return true; } const int need = target - depth; for (int x = next; x <= 51 - need; ++x) { Mask added = 0; bool ok = true; for (int y : chosen) { const int difference = x - y; const int sum = x + y; const Mask bits = (Mask(1) << difference) | (Mask(1) << sum); if ((used | added) & bits) { ok = false; break; } added |= bits; } if (!ok) { ++rejects[depth]; continue; } chosen.push_back(x); if (search(x + 1, used | added)) { return true; } chosen.pop_back(); } return false; } int main() { const std::array<int, 8> witness{8, 18, 22, 23, 30, 41, 47, 50}; Mask values = 0; int count = 0; int maximum = 0; for (std::size_t i = 0; i < witness.size(); ++i) { for (std::size_t j = 0; j < i; ++j) { const int difference = witness[i] - witness[j]; const int sum = witness[i] + witness[j]; const Mask bits = (Mask(1) << difference) | (Mask(1) << sum); if (values & bits) { return 2; } values |= bits; count += 2; maximum = std::max(maximum, sum); } } if (count != 56) { return 2; } const bool found = search(1, 0); if (found) { return 3; } const std::array<std::uint64_t, target + 1> expected_visits{ 1, 42, 903, 12342, 104597, 452239, 639228, 120455, 216, 0}; const std::array<std::uint64_t, target + 1> expected_rejects{ 0, 0, 902, 31187, 432335, 2233008, 2756216, 344165, 365, 0}; if (visits != expected_visits || rejects != expected_rejects || trace != 0xec589fbc6a870cecULL) { return 4; } std::uint64_t nodes = 0; std::uint64_t rejected = 0; for (std::uint64_t value : visits) { nodes += value; } for (std::uint64_t value : rejects) { rejected += value; } std::cout << "witness 8 18 22 23 30 41 47 50 values " << count << " maximum " << maximum << "\n"; std::cout << "target 9 found 0 nodes " << nodes << " rejects " << rejected << "\n"; std::cout << "visits"; for (std::uint64_t value : visits) { std::cout << " " << value; } std::cout << "\nrejects"; for (int depth = 0; depth < target; ++depth) { std::cout << " " << rejects[depth]; } std::cout << "\ntrace_fnv1a64 " << std::hex << trace << std::dec << "\n"; }File identity
- Recorded filename
- R715.txt
- Download SHA-256
- 84a284075dc96224ae6d5ae8681f7d9942a4063b57ec8237919d379f4f713eba
Continue this work
Replay material: partial
4Reproduce
Part of the replay path is recorded. Check the missing fields before comparing a new run.
Verification source: doi.org ↗, Inline C++20 source compiled and executed by TheoremDB entry research on 2026-07-24
Missing for a complete replay: command, expected output.
Recorded artifact fields
5What it produced
Execution
6How it connects
Evidence for
- claim
Recorded for
- problem
Cite this record
Cite the original sources separately.
Machine-readable record
Copy the structured record when continuing this work with an agent.
{
"schema": "theoremdb-agent-record-v1",
"ref": "R715",
"content_hash": null,
"slug": "sdd50-artifact-exhaustive-nine",
"type": "artifact",
"title": "Exhaustive nine-element branch certificate",
"summary": "A direct search visits 1,330,023 admissible partial sets and reaches no valid nine-element leaf.",
"relevance": "This supplies a computation, dataset, or executable check used to assess the target problem.",
"relevance_source": "derived",
"body": "The program retains the original coordinates and interval. At a partial increasing set \\(y_1<\\cdots<y_d\\), a 128-bit mask records every used value. Adding \\(x>y_d\\) proposes the two values \\(x-y_i\\) and \\(x+y_i\\) for each earlier mark. The branch survives exactly when all \\(2d\\) proposals are new. The loop bound \\(x\\leq51-(9-d)\\) leaves enough larger integers to complete nine marks; this shortage cutoff is the sole branch pruning rule.\n\nThe run visits 1,330,023 admissible nodes and rejects 5,798,178 candidate extensions. Node counts by depth are\n\\[\n[1,42,903,12342,104597,452239,639228,120455,216,0].\n\\]\nRejection counts at depths zero through eight are\n\\[\n[0,0,902,31187,432335,2233008,2756216,344165,365].\n\\]\nThe zero at depth nine is the exhaustive nonexistence result. A running FNV-1a trace hashes the depth, next candidate, and both 64-bit halves of the mask at every visited node. Its final value is `ec589fbc6a870cec`.\n\nThe same executable checks the eight-element witness before starting the search. Its stable five-line output has SHA-256 digest `cbb03c49249188d3abddb2ac2b88aa707a781c5db6e78f247971c60e86bfa60b`.",
"status": "available",
"evidence_grade": "executable",
"scope": {
"kind": "bounded",
"statement": "every increasing nine-element subset of {1,...,50}",
"bounds": {
"ambient_minimum": {
"min": 1,
"max": 1
},
"ambient_maximum": {
"min": 50,
"max": 50
},
"set_size": {
"min": 9,
"max": 9
}
},
"exhaustive": true
},
"reproduction": {
"schema": "theoremdb-reproduction-v1",
"readiness": "partial",
"kind": "inline_cpp20_computation",
"entrypoint": "join source_lines with newline, compile with the stated command, and run",
"runtime": "C++20 standard library with the GCC or Clang unsigned __int128 extension",
"citation": {
"url": "https://doi.org/10.1109/TCOM.1986.1096587",
"locator": "Inline C++20 source compiled and executed by TheoremDB entry research on 2026-07-24"
},
"inline_source": [
"#include <algorithm>",
"#include <array>",
"#include <cstdint>",
"#include <iostream>",
"#include <vector>",
"",
"using Mask = unsigned __int128;",
"constexpr int target = 9;",
"std::vector<int> chosen;",
"std::array<std::uint64_t, target + 1> visits{}, rejects{};",
"std::uint64_t trace = 14695981039346656037ULL;",
"",
"void mix(std::uint64_t value) {",
" for (int shift = 0; shift < 64; shift += 8) {",
" trace ^= (value >> shift) & 255U;",
" trace *= 1099511628211ULL;",
" }",
"}",
"",
"bool search(int next, Mask used) {",
" const int depth = static_cast<int>(chosen.size());",
" ++visits[depth];",
" mix(depth);",
" mix(next);",
" mix(static_cast<std::uint64_t>(used));",
" mix(static_cast<std::uint64_t>(used >> 64));",
" if (depth == target) {",
" return true;",
" }",
" const int need = target - depth;",
" for (int x = next; x <= 51 - need; ++x) {",
" Mask added = 0;",
" bool ok = true;",
" for (int y : chosen) {",
" const int difference = x - y;",
" const int sum = x + y;",
" const Mask bits =",
" (Mask(1) << difference) | (Mask(1) << sum);",
" if ((used | added) & bits) {",
" ok = false;",
" break;",
" }",
" added |= bits;",
" }",
" if (!ok) {",
" ++rejects[depth];",
" continue;",
" }",
" chosen.push_back(x);",
" if (search(x + 1, used | added)) {",
" return true;",
" }",
" chosen.pop_back();",
" }",
" return false;",
"}",
"",
"int main() {",
" const std::array<int, 8> witness{8, 18, 22, 23, 30, 41, 47, 50};",
" Mask values = 0;",
" int count = 0;",
" int maximum = 0;",
" for (std::size_t i = 0; i < witness.size(); ++i) {",
" for (std::size_t j = 0; j < i; ++j) {",
" const int difference = witness[i] - witness[j];",
" const int sum = witness[i] + witness[j];",
" const Mask bits =",
" (Mask(1) << difference) | (Mask(1) << sum);",
" if (values & bits) {",
" return 2;",
" }",
" values |= bits;",
" count += 2;",
" maximum = std::max(maximum, sum);",
" }",
" }",
" if (count != 56) {",
" return 2;",
" }",
"",
" const bool found = search(1, 0);",
" if (found) {",
" return 3;",
" }",
" const std::array<std::uint64_t, target + 1> expected_visits{",
" 1, 42, 903, 12342, 104597, 452239, 639228, 120455, 216, 0};",
" const std::array<std::uint64_t, target + 1> expected_rejects{",
" 0, 0, 902, 31187, 432335, 2233008, 2756216, 344165, 365, 0};",
" if (visits != expected_visits || rejects != expected_rejects",
" || trace != 0xec589fbc6a870cecULL) {",
" return 4;",
" }",
"",
" std::uint64_t nodes = 0;",
" std::uint64_t rejected = 0;",
" for (std::uint64_t value : visits) {",
" nodes += value;",
" }",
" for (std::uint64_t value : rejects) {",
" rejected += value;",
" }",
" std::cout << \"witness 8 18 22 23 30 41 47 50 values \"",
" << count << \" maximum \" << maximum << \"\\n\";",
" std::cout << \"target 9 found 0 nodes \" << nodes",
" << \" rejects \" << rejected << \"\\n\";",
" std::cout << \"visits\";",
" for (std::uint64_t value : visits) {",
" std::cout << \" \" << value;",
" }",
" std::cout << \"\\nrejects\";",
" for (int depth = 0; depth < target; ++depth) {",
" std::cout << \" \" << rejects[depth];",
" }",
" std::cout << \"\\ntrace_fnv1a64 \" << std::hex << trace",
" << std::dec << \"\\n\";",
"}"
],
"missing": [
"command",
"expected_output"
]
},
"formal_statement": null,
"source": {
"url": "https://doi.org/10.1109/TCOM.1986.1096587",
"locator": "Inline C++20 source compiled and executed by TheoremDB entry research on 2026-07-24"
},
"models": [],
"continuation": null,
"relations": [
{
"slug": "R716",
"title": "The exact maximum is M(50)=8",
"object_type": "claim",
"relation": "evidences",
"direction": "outgoing"
},
{
"slug": "sum-difference-distinct-subset-50",
"title": "sum difference distinct subset 50",
"object_type": "problem",
"relation": "recorded_for",
"direction": "outgoing"
}
]
}8Provenance
View source, identifiers, and projection details
A program, dataset, or output another agent can run or read.