Skip to content

Commit 0b67a48

Browse files
author
Grace Lee Rui Yue
committed
benchmarks: add finite Hadwiger minor certificate
1 parent 7f5a035 commit 0b67a48

16 files changed

Lines changed: 1296 additions & 0 deletions

File tree

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Hadwiger triangle-free minor certificate
2+
3+
Regression-family task from retained row C-008. Its sole objective is a fully
4+
checkable finite coloring/minor relationship: exhaustive rejection of all
5+
three-colorings plus a connected `K4` branch-set model. Triangle-free and
6+
minimum-degree requirements prevent a trivial complete-graph witness.
7+
8+
The verifier accepts vertex relabelings and alternative qualifying graphs.
9+
Difficulty is provisional Hard due to simultaneous construction, coloring,
10+
exhaustive lower-bound verification, and minor connectivity/adjoinment.
11+
12+
Source context: <https://mathworld.wolfram.com/HadwigerConjecture.html>, status
13+
checked 2026-08-06. The authored finite fixture does not prove the conjecture.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
FROM python:3.12-slim@sha256:57cd7c3a7a273101a6485ba99423ee568157882804b1124b4dd04266317710de
2+
COPY input.json submission_schema.json /app/
3+
WORKDIR /app
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"task_id":"jacobian/hadwiger-triangle-free-minor-certificate","conjecture_id":"C-008","vertex_count":11,"edge_count":20,"required_chromatic_number":4,"required_minor_order":4,"require_triangle_free":true,"scope":"triangle-free-11-vertex-hadwiger-instance-v1"}
Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
{
2+
"$defs": {
3+
"branch": {
4+
"items": {
5+
"maximum": 10,
6+
"minimum": 0,
7+
"type": "integer"
8+
},
9+
"maxItems": 8,
10+
"minItems": 1,
11+
"type": "array",
12+
"uniqueItems": true
13+
},
14+
"edge": {
15+
"items": {
16+
"maximum": 10,
17+
"minimum": 0,
18+
"type": "integer"
19+
},
20+
"maxItems": 2,
21+
"minItems": 2,
22+
"type": "array"
23+
}
24+
},
25+
"$schema": "https://json-schema.org/draft/2020-12/schema",
26+
"additionalProperties": false,
27+
"properties": {
28+
"claimed_assurance": {
29+
"enum": [
30+
"UNVERIFIED",
31+
"COMPUTED",
32+
"CHECKED",
33+
"VERIFIED"
34+
]
35+
},
36+
"completeness": {
37+
"const": "COMPLETE"
38+
},
39+
"conclusion": {
40+
"const": "FINITE_HADWIGER_K4_CERTIFICATE"
41+
},
42+
"evidence": {
43+
"items": {
44+
"additionalProperties": false,
45+
"properties": {
46+
"path": {
47+
"const": "evidence/answer.txt"
48+
},
49+
"sha256": {
50+
"pattern": "^sha256:[0-9a-f]{64}$",
51+
"type": "string"
52+
}
53+
},
54+
"required": [
55+
"path",
56+
"sha256"
57+
],
58+
"type": "object"
59+
},
60+
"maxItems": 1,
61+
"minItems": 1,
62+
"type": "array"
63+
},
64+
"limitations": {
65+
"const": [
66+
"ONE_TRIANGLE_FREE_11_VERTEX_GRAPH",
67+
"EXHAUSTIVE_THREE_COLOR_REJECTION",
68+
"NO_GLOBAL_HADWIGER_CONCLUSION"
69+
]
70+
},
71+
"result": {
72+
"additionalProperties": false,
73+
"properties": {
74+
"branch_sets": {
75+
"items": {
76+
"$ref": "#/$defs/branch"
77+
},
78+
"maxItems": 4,
79+
"minItems": 4,
80+
"type": "array"
81+
},
82+
"chromatic_number": {
83+
"const": 4
84+
},
85+
"edges": {
86+
"items": {
87+
"$ref": "#/$defs/edge"
88+
},
89+
"maxItems": 20,
90+
"minItems": 20,
91+
"type": "array",
92+
"uniqueItems": true
93+
},
94+
"four_coloring": {
95+
"items": {
96+
"maximum": 3,
97+
"minimum": 0,
98+
"type": "integer"
99+
},
100+
"maxItems": 11,
101+
"minItems": 11,
102+
"type": "array"
103+
},
104+
"minor_order": {
105+
"const": 4
106+
}
107+
},
108+
"required": [
109+
"edges",
110+
"four_coloring",
111+
"branch_sets",
112+
"chromatic_number",
113+
"minor_order"
114+
],
115+
"type": "object"
116+
},
117+
"scope": {
118+
"const": "triangle-free-11-vertex-hadwiger-instance-v1",
119+
"type": "string"
120+
},
121+
"task_id": {
122+
"const": "jacobian/hadwiger-triangle-free-minor-certificate"
123+
}
124+
},
125+
"required": [
126+
"task_id",
127+
"conclusion",
128+
"result",
129+
"claimed_assurance",
130+
"scope",
131+
"completeness",
132+
"evidence",
133+
"limitations"
134+
],
135+
"type": "object"
136+
}
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Construct a nontrivial finite Hadwiger certificate
2+
3+
Submit a simple connected triangle-free graph on vertices `0..10` with exactly
4+
20 edges and minimum degree at least 3. Supply a proper four-coloring and four
5+
pairwise-disjoint nonempty branch sets witnessing a `K4` minor: every branch
6+
set must induce a connected subgraph and every pair must have a crossing edge.
7+
8+
The verifier independently rejects every possible three-coloring by exact
9+
backtracking, checks the submitted four-coloring, and validates the complete
10+
minor model. Complete graphs, triangles, isolated padding, and label-only
11+
chromatic claims are rejected.
12+
13+
Evidence is matching JSON with exactly `schema_version`, `task_id`, `result`,
14+
and `limitations`, at most 2 MiB. This checks one finite graph only and does not
15+
prove Hadwiger's conjecture.
16+
17+
<!-- BEGIN PUBLIC CONTRACT SUBMISSION BLOCK -->
18+
## Submission
19+
20+
Exact finite coloring and minor replay only; no global Hadwiger conclusion.
21+
22+
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`.
23+
24+
- **Conclusion:** exactly `FINITE_HADWIGER_K4_CERTIFICATE`
25+
- **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.
26+
- **Scope:** the exact value declared in `submission_schema.json`
27+
- **Completeness:** `COMPLETE`.
28+
- **Evidence:** 1-1 item(s); allowed path(s): `evidence/answer.txt`; digest must match `^sha256:[0-9a-f]{64}$`.
29+
- **Evidence media types:** `text/plain`.
30+
- **Required artifact filenames:** `evidence/answer.txt`.
31+
<!-- END PUBLIC CONTRACT SUBMISSION BLOCK -->
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
from __future__ import annotations
2+
3+
import argparse
4+
import hashlib
5+
import json
6+
from pathlib import Path
7+
8+
TASK_ID = "jacobian/hadwiger-triangle-free-minor-certificate"
9+
LIMITATIONS = [
10+
"ONE_TRIANGLE_FREE_11_VERTEX_GRAPH",
11+
"EXHAUSTIVE_THREE_COLOR_REJECTION",
12+
"NO_GLOBAL_HADWIGER_CONCLUSION",
13+
]
14+
15+
16+
def main():
17+
parser = argparse.ArgumentParser()
18+
parser.add_argument("--root", type=Path, default=Path("/app"))
19+
root = parser.parse_args().root
20+
edges = [
21+
[0, 1],
22+
[0, 4],
23+
[0, 6],
24+
[0, 9],
25+
[1, 2],
26+
[1, 5],
27+
[1, 7],
28+
[2, 3],
29+
[2, 6],
30+
[2, 8],
31+
[3, 4],
32+
[3, 7],
33+
[3, 9],
34+
[4, 5],
35+
[4, 8],
36+
[5, 10],
37+
[6, 10],
38+
[7, 10],
39+
[8, 10],
40+
[9, 10],
41+
]
42+
result = {
43+
"edges": edges,
44+
"four_coloring": [0, 1, 0, 1, 2, 0, 1, 0, 1, 2, 3],
45+
"branch_sets": [[0], [1], [2, 6], [3, 4, 5]],
46+
"chromatic_number": 4,
47+
"minor_order": 4,
48+
}
49+
payload = {
50+
"schema_version": "1",
51+
"task_id": TASK_ID,
52+
"result": result,
53+
"limitations": LIMITATIONS,
54+
}
55+
e = root / "evidence/answer.txt"
56+
e.parent.mkdir(parents=True, exist_ok=True)
57+
e.write_text(json.dumps(payload, sort_keys=True, separators=(",", ":")) + "\n")
58+
s = {
59+
"task_id": TASK_ID,
60+
"conclusion": "FINITE_HADWIGER_K4_CERTIFICATE",
61+
"result": result,
62+
"claimed_assurance": "CHECKED",
63+
"scope": "triangle-free-11-vertex-hadwiger-instance-v1",
64+
"completeness": "COMPLETE",
65+
"evidence": [
66+
{
67+
"path": "evidence/answer.txt",
68+
"sha256": "sha256:" + hashlib.sha256(e.read_bytes()).hexdigest(),
69+
}
70+
],
71+
"limitations": LIMITATIONS,
72+
}
73+
(root / "submission.json").write_text(json.dumps(s, sort_keys=True) + "\n")
74+
75+
76+
if __name__ == "__main__":
77+
main()
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/sh
2+
set -eu
3+
python /solution/solve.py
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
schema_version="1.4"
2+
artifacts=["/app/submission.json","/app/evidence"]
3+
[task]
4+
name="jacobian/hadwiger-triangle-free-minor-certificate"
5+
version="1.0.0"
6+
description="Construct a triangle-free 4-chromatic graph with an exact K4 minor certificate."
7+
keywords=["hadwiger","graph-coloring","clique-minor","triangle-free"]
8+
[metadata]
9+
evaluation_kind="conjecture-probe"
10+
domain="mathematical-sciences"
11+
primary_domain="graph-theory"
12+
field="graph-minors"
13+
assurance_ceiling="CHECKED"
14+
answer_visibility="public"
15+
provenance_class="authored-conjecture-probe"
16+
fixture_digest="sha256:fc4ba259102fdf0f361c0393e7b540738ef18969631ebfb44a499c70b41ba0a5"
17+
required_provider="core"
18+
author_name="Jacobian contributors"
19+
difficulty="hard"
20+
category="mathematics"
21+
tags=["difficulty-provisional","graph-coloring","clique-minor","exhaustive-verification","offline"]
22+
case_version="conjecture-probes-v1"
23+
contamination_class="authored-finite-conjecture-probe"
24+
derivation="Derived from retained spreadsheet row C-008; the finite graph contract is authored and independently checked."
25+
[agent]
26+
timeout_sec=600.0
27+
[verifier]
28+
timeout_sec=120.0
29+
environment_mode="separate"
30+
[environment]
31+
network_mode="no-network"
32+
cpus=1
33+
memory_mb=1024
34+
storage_mb=4096
35+
[verifier.environment]
36+
network_mode="no-network"
37+
cpus=1
38+
memory_mb=1024
39+
storage_mb=4096
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
FROM python:3.12-slim@sha256:57cd7c3a7a273101a6485ba99423ee568157882804b1124b4dd04266317710de
2+
LABEL jacobian.task="jacobian/hadwiger-triangle-free-minor-certificate" \
3+
jacobian.checksum="97c73358d2fcc15771a1fa7401bc7dc7041549e11f1b4e9604ac6eb039b87726"
4+
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
5+
COPY input.json public_contract.json test.sh verifier.py verifier_support.py /tests/
6+
COPY input.json /app/input.json
7+
RUN chmod +x /tests/test.sh && python -c 'import json; assert json.load(open("/tests/input.json"))["task_id"] == "jacobian/hadwiger-triangle-free-minor-certificate"'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"task_id":"jacobian/hadwiger-triangle-free-minor-certificate","conjecture_id":"C-008","vertex_count":11,"edge_count":20,"required_chromatic_number":4,"required_minor_order":4,"require_triangle_free":true,"scope":"triangle-free-11-vertex-hadwiger-instance-v1"}

0 commit comments

Comments
 (0)