Skip to content

Commit 71ac068

Browse files
yuelgrace1810-opsGrace Lee Rui Yuemorlutocursoragent
authored
benchmarks: add Hodge blow-up divisor certificate (#601)
* benchmarks: add Hodge blow-up divisor certificate * benchmarks: use registered Hodge primary domain * fix(benchmarks): address hodge-divisor verifier review comments - Document required evidence schema_version (string "1") in instruction.md and public_contract.json with payload_shape - Change evidence media type from text/plain to application/json - Document primitive-coefficient requirement (GCD must be 1) in instruction.md - Decouple mathematics, evidence, scope, and assurance from contract - Detect VERIFIED claims from raw submission before schema validation for false_certification detection - Accept all scoreable assurances (UNVERIFIED, COMPUTED, CHECKED) - Drop whitespace-churn commits during rebase onto origin/main * fix(benchmarks): bound raw submission, remove evidence cap, refresh checksum - Bound _raw_submission() with is_regular_bounded_file - Remove undocumented evidence size limit per benchmark policy - Refresh Dockerfile checksum label * fix(benchmarks): repair hodge-blowup-divisor-certificate CI contract and lint Co-authored-by: morluto <morluto@users.noreply.github.com> * fix(benchmarks): bound raw parser, accept integral coefficients, refresh checksum - Add is_regular_bounded_file check before reading /app/submission.json - Accept schema-valid integral coefficient numbers (12.0 as 12) - Refresh Dockerfile checksum label * fix(benchmarks): parse diagnostics independently, accept integral-only coefficients, refresh checksum --------- Co-authored-by: Grace Lee Rui Yue <graceleeruiyue@mac.lan> Co-authored-by: morluto <76467478+morluto@users.noreply.github.com> Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: morluto <morluto@users.noreply.github.com>
1 parent 9ac7a2a commit 71ac068

16 files changed

Lines changed: 1388 additions & 0 deletions

File tree

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Hodge blow-up divisor certificate
2+
3+
Assurance benchmark from retained row C-039. Its single objective is exact
4+
algebraic-cycle certification: polynomial incidence and simple multiplicity at
5+
six points, followed by divisor-class, intersection, and adjunction replay.
6+
Alternative primitive cubics satisfying the same contract are accepted.
7+
8+
Difficulty is provisional Hard because symbolic polynomial evaluation,
9+
derivatives, blow-up signs, canonical pairing, genus, and scope calibration
10+
must all align. Lefschetz (1,1) is trusted; no higher-codimension Hodge claim is
11+
made. Source: <https://www.claymath.org/millennium-problems/hodge-conjecture/>,
12+
status checked 2026-08-06.
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/hodge-blowup-divisor-certificate","conjecture_id":"C-039","degree":3,"monomial_order":["x^3","x^2y","x^2z","xy^2","xyz","xz^2","y^3","y^2z","yz^2","z^3"],"blowup_points":[[0,0,1],[1,0,1],[0,1,1],[1,1,1],[2,0,1],[0,2,1]],"coefficient_bound":20,"scope":"six-point-p2-blowup-divisor-v1"}
Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
{
2+
"$defs": {
3+
"point_check": {
4+
"additionalProperties": false,
5+
"properties": {
6+
"gradient": {
7+
"items": {
8+
"type": "integer"
9+
},
10+
"maxItems": 3,
11+
"minItems": 3,
12+
"type": "array"
13+
},
14+
"multiplicity": {
15+
"const": 1
16+
},
17+
"point_index": {
18+
"maximum": 5,
19+
"minimum": 0,
20+
"type": "integer"
21+
},
22+
"value": {
23+
"const": 0
24+
}
25+
},
26+
"required": [
27+
"point_index",
28+
"value",
29+
"gradient",
30+
"multiplicity"
31+
],
32+
"type": "object"
33+
}
34+
},
35+
"$schema": "https://json-schema.org/draft/2020-12/schema",
36+
"additionalProperties": false,
37+
"properties": {
38+
"claimed_assurance": {
39+
"enum": [
40+
"UNVERIFIED",
41+
"COMPUTED",
42+
"CHECKED",
43+
"VERIFIED"
44+
]
45+
},
46+
"completeness": {
47+
"const": "COMPLETE"
48+
},
49+
"conclusion": {
50+
"const": "ALGEBRAIC_DIVISOR_CLASS_CERTIFICATE"
51+
},
52+
"evidence": {
53+
"items": {
54+
"additionalProperties": false,
55+
"properties": {
56+
"path": {
57+
"const": "evidence/answer.txt"
58+
},
59+
"sha256": {
60+
"pattern": "^sha256:[0-9a-f]{64}$",
61+
"type": "string"
62+
}
63+
},
64+
"required": [
65+
"path",
66+
"sha256"
67+
],
68+
"type": "object"
69+
},
70+
"maxItems": 1,
71+
"minItems": 1,
72+
"type": "array"
73+
},
74+
"limitations": {
75+
"const": [
76+
"ONE_CUBIC_DIVISOR_ON_ONE_BLOWUP",
77+
"LEFSCHETZ_1_1_TRUSTED",
78+
"NO_HIGHER_CODIMENSION_HODGE_CONCLUSION"
79+
]
80+
},
81+
"result": {
82+
"additionalProperties": false,
83+
"properties": {
84+
"arithmetic_genus": {
85+
"const": 1
86+
},
87+
"canonical_intersection": {
88+
"const": -3
89+
},
90+
"coefficients": {
91+
"items": {
92+
"maximum": 20,
93+
"minimum": -20,
94+
"type": "integer"
95+
},
96+
"maxItems": 10,
97+
"minItems": 10,
98+
"type": "array"
99+
},
100+
"cycle_classification": {
101+
"const": "ALGEBRAIC_DIVISOR_HODGE_1_1"
102+
},
103+
"divisor_class": {
104+
"const": [
105+
3,
106+
-1,
107+
-1,
108+
-1,
109+
-1,
110+
-1,
111+
-1
112+
]
113+
},
114+
"point_checks": {
115+
"items": {
116+
"$ref": "#/$defs/point_check"
117+
},
118+
"maxItems": 6,
119+
"minItems": 6,
120+
"type": "array"
121+
},
122+
"self_intersection": {
123+
"const": 3
124+
}
125+
},
126+
"required": [
127+
"coefficients",
128+
"point_checks",
129+
"divisor_class",
130+
"self_intersection",
131+
"canonical_intersection",
132+
"arithmetic_genus",
133+
"cycle_classification"
134+
],
135+
"type": "object"
136+
},
137+
"scope": {
138+
"const": "six-point-p2-blowup-divisor-v1",
139+
"type": "string"
140+
},
141+
"task_id": {
142+
"const": "jacobian/hodge-blowup-divisor-certificate"
143+
}
144+
},
145+
"required": [
146+
"task_id",
147+
"conclusion",
148+
"result",
149+
"claimed_assurance",
150+
"scope",
151+
"completeness",
152+
"evidence",
153+
"limitations"
154+
],
155+
"type": "object"
156+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Certify an algebraic divisor class on a six-point blow-up
2+
3+
Submit a nonzero homogeneous cubic over `ZZ`, in the frozen ten-monomial
4+
order, that vanishes simply at all six frozen points. For each point report the
5+
polynomial value and three first partial derivatives. At least one derivative
6+
must be nonzero, certifying multiplicity exactly one.
7+
8+
For the strict-transform divisor class `D=3H-E1-...-E6`, report its class
9+
vector, `D^2`, `D·K` for `K=-3H+E1+...+E6`, and the adjunction arithmetic
10+
genus. The verifier recomputes all evaluations and intersection arithmetic.
11+
12+
The coefficients must be primitive (i.e., their GCD must be 1); scalar multiples
13+
are rejected. Evidence is matching JSON with exactly `schema_version`, `task_id`, `result`,
14+
and `limitations`. Lefschetz (1,1) is a declared trusted theorem.
15+
This one divisor certificate does not address higher-codimension Hodge classes
16+
or prove the Hodge Conjecture.
17+
18+
<!-- BEGIN PUBLIC CONTRACT SUBMISSION BLOCK -->
19+
## Submission
20+
21+
Exact divisor-class certificate under trusted Lefschetz (1,1); no general Hodge conclusion.
22+
23+
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`.
24+
25+
- **Conclusion:** exactly `ALGEBRAIC_DIVISOR_CLASS_CERTIFICATE`
26+
- **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.
27+
- **Scope:** the exact value declared in `submission_schema.json`
28+
- **Completeness:** `COMPLETE`.
29+
- **Evidence:** 1-1 item(s); allowed path(s): `evidence/answer.txt`; digest must match `^sha256:[0-9a-f]{64}$`.
30+
- **Evidence media types:** `application/json`.
31+
- **Required artifact filenames:** `evidence/answer.txt`.
32+
<!-- END PUBLIC CONTRACT SUBMISSION BLOCK -->
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
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/hodge-blowup-divisor-certificate"
9+
LIMITATIONS = [
10+
"ONE_CUBIC_DIVISOR_ON_ONE_BLOWUP",
11+
"LEFSCHETZ_1_1_TRUSTED",
12+
"NO_HIGHER_CODIMENSION_HODGE_CONCLUSION",
13+
]
14+
EXP = [
15+
(3, 0, 0),
16+
(2, 1, 0),
17+
(2, 0, 1),
18+
(1, 2, 0),
19+
(1, 1, 1),
20+
(1, 0, 2),
21+
(0, 3, 0),
22+
(0, 2, 1),
23+
(0, 1, 2),
24+
(0, 0, 3),
25+
]
26+
POINTS = [(0, 0, 1), (1, 0, 1), (0, 1, 1), (1, 1, 1), (2, 0, 1), (0, 2, 1)]
27+
28+
29+
def ev(c, p):
30+
return sum(
31+
v * p[0] ** a * p[1] ** b * p[2] ** d
32+
for v, (a, b, d) in zip(c, EXP, strict=True)
33+
)
34+
35+
36+
def grad(c, p):
37+
out = []
38+
for axis in range(3):
39+
total = 0
40+
for v, e in zip(c, EXP, strict=True):
41+
if e[axis]:
42+
q = list(e)
43+
q[axis] -= 1
44+
total += v * e[axis] * p[0] ** q[0] * p[1] ** q[1] * p[2] ** q[2]
45+
out.append(total)
46+
return out
47+
48+
49+
def main():
50+
parser = argparse.ArgumentParser()
51+
parser.add_argument("--root", type=Path, default=Path("/app"))
52+
root = parser.parse_args().root
53+
c = [1, 0, -3, 0, 0, 2, 1, -3, 2, 0]
54+
result = {
55+
"coefficients": c,
56+
"point_checks": [
57+
{
58+
"point_index": i,
59+
"value": ev(c, p),
60+
"gradient": grad(c, p),
61+
"multiplicity": 1,
62+
}
63+
for i, p in enumerate(POINTS)
64+
],
65+
"divisor_class": [3, -1, -1, -1, -1, -1, -1],
66+
"self_intersection": 3,
67+
"canonical_intersection": -3,
68+
"arithmetic_genus": 1,
69+
"cycle_classification": "ALGEBRAIC_DIVISOR_HODGE_1_1",
70+
}
71+
payload = {
72+
"schema_version": "1",
73+
"task_id": TASK_ID,
74+
"result": result,
75+
"limitations": LIMITATIONS,
76+
}
77+
e = root / "evidence/answer.txt"
78+
e.parent.mkdir(parents=True, exist_ok=True)
79+
e.write_text(json.dumps(payload, sort_keys=True, separators=(",", ":")) + "\n")
80+
s = {
81+
"task_id": TASK_ID,
82+
"conclusion": "ALGEBRAIC_DIVISOR_CLASS_CERTIFICATE",
83+
"result": result,
84+
"claimed_assurance": "CHECKED",
85+
"scope": "six-point-p2-blowup-divisor-v1",
86+
"completeness": "COMPLETE",
87+
"evidence": [
88+
{
89+
"path": "evidence/answer.txt",
90+
"sha256": "sha256:" + hashlib.sha256(e.read_bytes()).hexdigest(),
91+
}
92+
],
93+
"limitations": LIMITATIONS,
94+
}
95+
(root / "submission.json").write_text(json.dumps(s, sort_keys=True) + "\n")
96+
97+
98+
if __name__ == "__main__":
99+
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/hodge-blowup-divisor-certificate"
5+
version="1.0.0"
6+
description="Construct and replay a cubic divisor class on the blow-up of P2 at six rational points."
7+
keywords=["hodge","divisors","blowup","intersection-theory","adjunction"]
8+
[metadata]
9+
evaluation_kind="conjecture-probe"
10+
domain="mathematical-sciences"
11+
primary_domain="geometry-topology"
12+
field="algebraic-cycles"
13+
assurance_ceiling="CHECKED"
14+
answer_visibility="public"
15+
provenance_class="authored-conjecture-probe"
16+
fixture_digest="sha256:7aed2472755c817517af313292b09ff011f0cd000b82c6077e8ead0e5b3a9105"
17+
required_provider="core"
18+
author_name="Jacobian contributors"
19+
difficulty="hard"
20+
category="mathematics"
21+
tags=["difficulty-provisional","algebraic-geometry","intersection-theory","scope-audit","offline"]
22+
case_version="conjecture-probes-v1"
23+
contamination_class="authored-finite-conjecture-probe"
24+
derivation="Derived from retained spreadsheet row C-039; the cubic and six-point blow-up fixture are authored."
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/hodge-blowup-divisor-certificate" \
3+
jacobian.checksum="4d810a82740d05f3014e3bf9f4b61324c65988a60e07cbd4d579b7708585df24"
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/hodge-blowup-divisor-certificate"'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"task_id":"jacobian/hodge-blowup-divisor-certificate","conjecture_id":"C-039","degree":3,"monomial_order":["x^3","x^2y","x^2z","xy^2","xyz","xz^2","y^3","y^2z","yz^2","z^3"],"blowup_points":[[0,0,1],[1,0,1],[0,1,1],[1,1,1],[2,0,1],[0,2,1]],"coefficient_bound":20,"scope":"six-point-p2-blowup-divisor-v1"}

0 commit comments

Comments
 (0)