Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
schema_version="2"
task_id="reconstruction-deck-certificate"
task_name="jacobian/reconstruction-deck-certificate"
evaluation_kind="conjecture-probe"
domain="mathematical-sciences"
primary_domain="graph-theory"
field="graph-reconstruction"
provenance_class="authored-conjecture-probe"
provenance_ref="spreadsheet:unresolved-conjecture/C-042@2026-08-06"
assurance_ceiling="CHECKED"
required_provider="core"
environment_profile="core-python-minimal-verifier"
verifier_contract_version="1"
evaluation_owner="jacobian/conjecture-probes-v1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Reconstruction deck certificate

Regression benchmark from retained row C-042. Its single objective is exact
graph reconstruction from independently scrambled cards. The verifier checks
nine full isomorphism embeddings and the sevenfold edge-occurrence identity,
while accepting any globally relabeled reconstruction.

Difficulty is provisional Hard because the agent must coordinate nine local
label spaces into one global graph without a supplied correspondence.
Source context: <https://mathworld.wolfram.com/GraphReconstructionConjecture.html>,
status checked 2026-08-06. One finite reconstruction is no global proof.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM python:3.12-slim@sha256:57cd7c3a7a273101a6485ba99423ee568157882804b1124b4dd04266317710de
COPY input.json submission_schema.json /app/
WORKDIR /app
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"task_id":"jacobian/reconstruction-deck-certificate","conjecture_id":"C-042","vertex_count":9,"edge_count":15,"cards":[{"card_id":"card-0","edges":[[0,1],[0,3],[1,4],[1,6],[2,5],[2,6],[2,7],[3,4],[3,6],[4,5],[4,7]]},{"card_id":"card-1","edges":[[0,1],[0,3],[0,5],[1,2],[1,4],[1,6],[2,5],[2,7],[3,5],[3,6],[3,7],[4,7]]},{"card_id":"card-2","edges":[[0,2],[0,3],[0,4],[1,4],[1,6],[2,5],[2,7],[3,5],[3,6],[4,7],[6,7]]},{"card_id":"card-3","edges":[[0,2],[0,3],[1,4],[1,6],[2,5],[2,7],[3,4],[3,5],[3,6],[4,7],[5,7]]},{"card_id":"card-4","edges":[[0,1],[0,2],[0,3],[1,4],[1,6],[2,4],[2,5],[2,7],[3,6],[4,5],[4,7],[5,6]]},{"card_id":"card-5","edges":[[0,3],[1,2],[1,4],[1,6],[1,7],[2,3],[2,5],[2,7],[3,6],[4,5],[4,7]]},{"card_id":"card-6","edges":[[0,3],[0,7],[1,2],[1,4],[1,6],[2,5],[2,7],[3,5],[3,6],[4,5],[4,6],[4,7],[6,7]]},{"card_id":"card-7","edges":[[0,2],[0,3],[1,2],[1,3],[1,4],[1,6],[2,5],[2,7],[3,4],[3,6],[4,7],[6,7]]},{"card_id":"card-8","edges":[[0,1],[0,3],[0,6],[1,4],[1,5],[1,6],[2,5],[2,7],[3,4],[3,6],[4,7],[6,7]]}],"scope":"nine-card-reconstruction-v1"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
{
"$defs": {
"edge": {
"items": {
"maximum": 8,
"minimum": 0,
"type": "integer"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"embedding": {
"additionalProperties": false,
"properties": {
"card_id": {
"pattern": "^card-[0-8]$",
"type": "string"
},
"deleted_vertex": {
"maximum": 8,
"minimum": 0,
"type": "integer"
},
"local_to_original": {
"items": {
"maximum": 8,
"minimum": 0,
"type": "integer"
},
"maxItems": 8,
"minItems": 8,
"type": "array",
"uniqueItems": true
}
},
"required": [
"card_id",
"deleted_vertex",
"local_to_original"
],
"type": "object"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"claimed_assurance": {
"enum": [
"UNVERIFIED",
"COMPUTED",
"CHECKED",
"VERIFIED"
]
},
"completeness": {
"const": "COMPLETE"
},
"conclusion": {
"const": "FINITE_GRAPH_DECK_RECONSTRUCTION"
},
"evidence": {
"items": {
"additionalProperties": false,
"properties": {
"path": {
"const": "evidence/answer.txt"
},
"sha256": {
"pattern": "^sha256:[0-9a-f]{64}$",
"type": "string"
}
},
"required": [
"path",
"sha256"
],
"type": "object"
},
"maxItems": 1,
"minItems": 1,
"type": "array"
},
"limitations": {
"const": [
"ONE_SCRAMBLED_NINE_CARD_DECK",
"EXACT_CARD_EMBEDDINGS",
"NO_GLOBAL_RECONSTRUCTION_CONCLUSION"
]
},
"result": {
"additionalProperties": false,
"properties": {
"edge_card_multiplicity": {
"const": 7
},
"embeddings": {
"items": {
"$ref": "#/$defs/embedding"
},
"maxItems": 9,
"minItems": 9,
"type": "array"
},
"original_edges": {
"items": {
"$ref": "#/$defs/edge"
},
"maxItems": 15,
"minItems": 15,
"type": "array",
"uniqueItems": true
},
"reconstruction_status": {
"const": "EXACT_UP_TO_RELABELING"
}
},
"required": [
"original_edges",
"embeddings",
"edge_card_multiplicity",
"reconstruction_status"
],
"type": "object"
},
"scope": {
"const": "nine-card-reconstruction-v1",
"type": "string"
},
"task_id": {
"const": "jacobian/reconstruction-deck-certificate"
}
},
"required": [
"task_id",
"conclusion",
"result",
"claimed_assurance",
"scope",
"completeness",
"evidence",
"limitations"
],
"type": "object"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Reconstruct a graph from its scrambled vertex deck

The input contains nine independently relabeled eight-vertex cards. Recover a
simple graph on vertices `0..8` with exactly 15 edges. For every card submit
the deleted original vertex and a bijective `local_to_original` map of its
local vertices `0..7` onto the other eight original vertices.

The verifier checks every mapped card edge set against the corresponding
vertex-deleted subgraph. It also aggregates all mapped cards and requires every
original edge to occur exactly seven times and every nonedge zero times.
Relabeled isomorphic reconstructions are accepted.

Evidence is matching JSON (`application/json`) with exactly `schema_version`
(the string `"1"`), `task_id`, `result`, and `limitations`. This reconstructs one finite deck only and
does not prove the Reconstruction Conjecture.

<!-- BEGIN PUBLIC CONTRACT SUBMISSION BLOCK -->
## Submission

Exact reconstruction of one finite deck only.

Write `/app/submission.json` to the exact schema in `environment/submission_schema.json`. The submission envelope requires `task_id`, `conclusion`, `result`, `claimed_assurance`, `scope`, `completeness`, `evidence`, and `limitations`.

- **Conclusion:** exactly `FINITE_GRAPH_DECK_RECONSTRUCTION`
- **Assurance:** scoreable values are `UNVERIFIED`, `COMPUTED`, `CHECKED` (ceiling `CHECKED`); the submission schema accepts any of `UNVERIFIED`, `COMPUTED`, `CHECKED`, `VERIFIED` but only scoreable assurances receive credit.
- **Scope:** the exact value declared in `submission_schema.json`
- **Completeness:** `COMPLETE`.
- **Evidence:** 1-1 item(s); allowed path(s): `evidence/answer.txt`; digest must match `^sha256:[0-9a-f]{64}$`.
- **Evidence media types:** `application/json`.
- **Required artifact filenames:** `evidence/answer.txt`.
<!-- END PUBLIC CONTRACT SUBMISSION BLOCK -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
from __future__ import annotations

import argparse
import hashlib
import json
from pathlib import Path

TASK_ID = "jacobian/reconstruction-deck-certificate"
LIMITATIONS = [
"ONE_SCRAMBLED_NINE_CARD_DECK",
"EXACT_CARD_EMBEDDINGS",
"NO_GLOBAL_RECONSTRUCTION_CONCLUSION",
]


def main():
parser = argparse.ArgumentParser()
parser.add_argument("--root", type=Path, default=Path("/app"))
root = parser.parse_args().root
original = [
[0, 1],
[0, 2],
[0, 3],
[0, 8],
[1, 2],
[1, 4],
[2, 3],
[2, 5],
[3, 4],
[3, 7],
[4, 5],
[5, 6],
[5, 8],
[6, 7],
[7, 8],
]
maps = [
[1, 4, 7, 2, 5, 8, 3, 6],
[2, 5, 8, 3, 6, 0, 4, 7],
[3, 6, 0, 4, 7, 1, 5, 8],
[4, 7, 1, 5, 8, 2, 6, 0],
[5, 8, 2, 6, 0, 3, 7, 1],
[6, 0, 3, 7, 1, 4, 8, 2],
[7, 1, 4, 8, 2, 5, 0, 3],
[8, 2, 5, 0, 3, 6, 1, 4],
[0, 3, 6, 1, 4, 7, 2, 5],
]
result = {
"original_edges": original,
"embeddings": [
{"card_id": f"card-{d}", "deleted_vertex": d, "local_to_original": maps[d]}
for d in range(9)
],
"edge_card_multiplicity": 7,
"reconstruction_status": "EXACT_UP_TO_RELABELING",
}
payload = {
"schema_version": "1",
"task_id": TASK_ID,
"result": result,
"limitations": LIMITATIONS,
}
e = root / "evidence/answer.txt"
e.parent.mkdir(parents=True, exist_ok=True)
e.write_text(json.dumps(payload, sort_keys=True, separators=(",", ":")) + "\n")
s = {
"task_id": TASK_ID,
"conclusion": "FINITE_GRAPH_DECK_RECONSTRUCTION",
"result": result,
"claimed_assurance": "CHECKED",
"scope": "nine-card-reconstruction-v1",
"completeness": "COMPLETE",
"evidence": [
{
"path": "evidence/answer.txt",
"sha256": "sha256:" + hashlib.sha256(e.read_bytes()).hexdigest(),
}
],
"limitations": LIMITATIONS,
}
(root / "submission.json").write_text(json.dumps(s, sort_keys=True) + "\n")


if __name__ == "__main__":
main()
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/sh
set -eu
python /solution/solve.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
schema_version="1.4"
artifacts=["/app/submission.json","/app/evidence"]
[task]
name="jacobian/reconstruction-deck-certificate"
version="1.0.0"
description="Reconstruct an exact graph from nine independently scrambled vertex-deleted cards."
keywords=["graph-reconstruction","vertex-deck","isomorphism","multiplicity"]
[metadata]
evaluation_kind="conjecture-probe"
domain="mathematical-sciences"
primary_domain="graph-theory"
field="graph-reconstruction"
assurance_ceiling="CHECKED"
answer_visibility="public"
provenance_class="authored-conjecture-probe"
fixture_digest="sha256:fa9628ff393ec8adcf919ebac9d4c260414ebb0318c339b64f768b022e009304"
required_provider="core"
author_name="Jacobian contributors"
difficulty="hard"
category="mathematics"
tags=["difficulty-provisional","graph-reconstruction","isomorphism","offline"]
case_version="conjecture-probes-v1"
contamination_class="authored-finite-conjecture-probe"
derivation="Derived from retained spreadsheet row C-042; the scrambled finite deck is authored and digest-pinned."
[agent]
timeout_sec=600.0
[verifier]
timeout_sec=120.0
environment_mode="separate"
[environment]
network_mode="no-network"
cpus=1
memory_mb=1024
storage_mb=4096
[verifier.environment]
network_mode="no-network"
cpus=1
memory_mb=1024
storage_mb=4096
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM python:3.12-slim@sha256:57cd7c3a7a273101a6485ba99423ee568157882804b1124b4dd04266317710de
LABEL jacobian.task="jacobian/reconstruction-deck-certificate" \
jacobian.checksum="ec768c07e19e355b184d9ed64b2aec8fcea93765e671e3ae5e925e13282e47dc"
RUN python -m pip install --no-cache-dir attrs==26.1.0 jsonschema==4.26.0 jsonschema-specifications==2025.9.1 referencing==0.37.0 rpds-py==2026.6.3 typing-extensions==4.16.0
COPY input.json public_contract.json test.sh verifier.py verifier_support.py /tests/
COPY input.json /app/input.json
RUN chmod +x /tests/test.sh && python -c 'import json; assert json.load(open("/tests/input.json"))["task_id"] == "jacobian/reconstruction-deck-certificate"'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"task_id":"jacobian/reconstruction-deck-certificate","conjecture_id":"C-042","vertex_count":9,"edge_count":15,"cards":[{"card_id":"card-0","edges":[[0,1],[0,3],[1,4],[1,6],[2,5],[2,6],[2,7],[3,4],[3,6],[4,5],[4,7]]},{"card_id":"card-1","edges":[[0,1],[0,3],[0,5],[1,2],[1,4],[1,6],[2,5],[2,7],[3,5],[3,6],[3,7],[4,7]]},{"card_id":"card-2","edges":[[0,2],[0,3],[0,4],[1,4],[1,6],[2,5],[2,7],[3,5],[3,6],[4,7],[6,7]]},{"card_id":"card-3","edges":[[0,2],[0,3],[1,4],[1,6],[2,5],[2,7],[3,4],[3,5],[3,6],[4,7],[5,7]]},{"card_id":"card-4","edges":[[0,1],[0,2],[0,3],[1,4],[1,6],[2,4],[2,5],[2,7],[3,6],[4,5],[4,7],[5,6]]},{"card_id":"card-5","edges":[[0,3],[1,2],[1,4],[1,6],[1,7],[2,3],[2,5],[2,7],[3,6],[4,5],[4,7]]},{"card_id":"card-6","edges":[[0,3],[0,7],[1,2],[1,4],[1,6],[2,5],[2,7],[3,5],[3,6],[4,5],[4,6],[4,7],[6,7]]},{"card_id":"card-7","edges":[[0,2],[0,3],[1,2],[1,3],[1,4],[1,6],[2,5],[2,7],[3,4],[3,6],[4,7],[6,7]]},{"card_id":"card-8","edges":[[0,1],[0,3],[0,6],[1,4],[1,5],[1,6],[2,5],[2,7],[3,4],[3,6],[4,7],[6,7]]}],"scope":"nine-card-reconstruction-v1"}
Loading
Loading