Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 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 = "navier-stokes-polynomial-certificate"
task_name = "jacobian/navier-stokes-polynomial-certificate"
evaluation_kind = "conjecture-probe"
domain = "mathematical-sciences"
primary_domain = "analysis"
field = "fluid-dynamics"
provenance_class = "authored-conjecture-probe"
provenance_ref = "spreadsheet:unresolved-conjecture/C-006@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,20 @@
# Navier–Stokes polynomial certificate

An Assurance-family conjecture probe derived from retained spreadsheet row
C-006. Its single reasoning objective is exact symbolic PDE certification:
construct an affine divergence-free flow and quadratic pressure, then expose
the complete residual coefficients for independent replay.

The task rejects zero-vorticity shortcuts, bounds all rational coefficients,
accepts alternative exact flows, and never promotes one two-dimensional steady
solution into evidence about the open three-dimensional regularity problem.

Difficulty is provisionally Hard because success requires coordinating two
polynomial vector equations, incompressibility, canonical rational arithmetic,
and the assurance boundary. Empirical calibration is not yet available.

Source: retained row C-006; Clay Mathematics Institute,
<https://www.claymath.org/millennium-problems/navier-stokes-equation/>, status
checked 2026-08-06. The immutable authored fixture is identified by the
SHA-256 digest in `task.toml`; the benchmark does not freeze or reproduce Clay
page text.
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/navier-stokes-polynomial-certificate","conjecture_id":"C-006","coefficient_domain":"QQ","variables":["x","y"],"velocity_monomials":["1","x","y"],"pressure_monomials":["1","x","y","x^2","xy","y^2"],"coefficient_numerator_bound":50,"coefficient_denominator_bound":20,"required_vorticity":"NONZERO","scope":"steady-affine-2d-polynomial-fields-v1"}
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
{
"$defs": {
"rat": {
"pattern": "^(?:0|-?[1-9][0-9]*)(?:/[1-9][0-9]*)?$",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"claimed_assurance": {
"enum": [
"UNVERIFIED",
"COMPUTED",
"CHECKED",
"VERIFIED"
]
},
"completeness": {
"const": "COMPLETE"
},
"conclusion": {
"const": "STEADY_INCOMPRESSIBLE_POLYNOMIAL_CERTIFICATE"
},
"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_EXACT_2D_STEADY_POLYNOMIAL_FIELD",
"NO_GLOBAL_NAVIER_STOKES_REGULARITY_CONCLUSION"
]
},
"result": {
"additionalProperties": false,
"properties": {
"divergence": {
"items": {
"$ref": "#/$defs/rat"
},
"maxItems": 1,
"minItems": 1,
"type": "array"
},
"momentum_x": {
"items": {
"$ref": "#/$defs/rat"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
},
"momentum_y": {
"items": {
"$ref": "#/$defs/rat"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
},
"pressure": {
"items": {
"$ref": "#/$defs/rat"
},
"maxItems": 6,
"minItems": 6,
"type": "array"
},
"velocity": {
"items": {
"items": {
"$ref": "#/$defs/rat"
},
"maxItems": 3,
"minItems": 3,
"type": "array"
},
"maxItems": 2,
"minItems": 2,
"type": "array"
},
"vorticity": {
"$ref": "#/$defs/rat"
}
},
"required": [
"velocity",
"pressure",
"divergence",
"momentum_x",
"momentum_y",
"vorticity"
],
"type": "object"
},
"scope": {
"const": "steady-affine-2d-polynomial-fields-v1",
"type": "string"
},
"task_id": {
"const": "jacobian/navier-stokes-polynomial-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,35 @@
# Construct an exact steady incompressible polynomial flow

Construct a non-irrotational steady two-dimensional polynomial velocity field
`u=(u1,u2)` with affine components and a quadratic pressure `p`, all over
`QQ`, such that `div(u)=0` and `(u·grad)u + grad(p) - Δu = 0`.

Use the monomial orders frozen in `/app/input.json`. Submit every coefficient
as a canonical rational string (`0`, `-3`, `5/7`; reduced denominator positive)
and include the independently checkable coefficient vectors for divergence,
both momentum residuals, and scalar vorticity `∂x u2 - ∂y u1`. The vorticity
must be nonzero, so the zero field and pure-gradient shortcuts are rejected.

`evidence/answer.txt` must be a JSON object with exactly `schema_version`,
`task_id`, `result`, and `limitations`, matching the result and limitations in
the submission.
This finite symbolic certificate concerns one exact steady polynomial flow.
It neither proves nor disproves global existence or smoothness for the
three-dimensional Navier–Stokes equations. Claim only `CHECKED` for the frozen
symbolic contract.

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

Exact symbolic replay of one 2D polynomial field; no conclusion about the open 3D regularity problem.

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 `STEADY_INCOMPRESSIBLE_POLYNOMIAL_CERTIFICATE`
- **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:** `text/plain`.
- **Required artifact filenames:** `evidence/answer.txt`.
<!-- END PUBLIC CONTRACT SUBMISSION BLOCK -->
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
from __future__ import annotations

import argparse
import hashlib
import json
from pathlib import Path

TASK_ID = "jacobian/navier-stokes-polynomial-certificate"
LIMITATIONS = [
"ONE_EXACT_2D_STEADY_POLYNOMIAL_FIELD",
"NO_GLOBAL_NAVIER_STOKES_REGULARITY_CONCLUSION",
]


def main() -> None:
parser = argparse.ArgumentParser()
parser.add_argument("--root", type=Path, default=Path("/app"))
root = parser.parse_args().root
result = {
"velocity": [["0", "0", "-1"], ["0", "1", "0"]],
"pressure": ["0", "0", "0", "1/2", "0", "1/2"],
"divergence": ["0"],
"momentum_x": ["0", "0", "0"],
"momentum_y": ["0", "0", "0"],
"vorticity": "2",
}
payload = {
"schema_version": "1",
"task_id": TASK_ID,
"result": result,
"limitations": LIMITATIONS,
}
evidence = root / "evidence/answer.txt"
evidence.parent.mkdir(parents=True, exist_ok=True)
evidence.write_text(
json.dumps(payload, sort_keys=True, separators=(",", ":")) + "\n"
)
submission = {
"task_id": TASK_ID,
"conclusion": "STEADY_INCOMPRESSIBLE_POLYNOMIAL_CERTIFICATE",
"result": result,
"claimed_assurance": "CHECKED",
"scope": "steady-affine-2d-polynomial-fields-v1",
"completeness": "COMPLETE",
"evidence": [
{
"path": "evidence/answer.txt",
"sha256": "sha256:" + hashlib.sha256(evidence.read_bytes()).hexdigest(),
}
],
"limitations": LIMITATIONS,
}
(root / "submission.json").write_text(json.dumps(submission, 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,45 @@
schema_version = "1.4"
artifacts = ["/app/submission.json", "/app/evidence"]

[task]
name = "jacobian/navier-stokes-polynomial-certificate"
version = "1.0.0"
description = "Construct and independently replay one exact non-irrotational steady incompressible affine flow with quadratic pressure."
keywords = ["navier-stokes", "symbolic-pde", "incompressibility", "conjecture-scope"]

[metadata]
evaluation_kind = "conjecture-probe"
domain = "mathematical-sciences"
primary_domain = "analysis"
field = "fluid-dynamics"
assurance_ceiling = "CHECKED"
answer_visibility = "public"
provenance_class = "authored-conjecture-probe"
fixture_digest = "sha256:068453167467b09e3949d8f12c32548c9eef3da5355fefe6ad3c5bcd18b8a2bf"
required_provider = "core"
author_name = "Jacobian contributors"
difficulty = "hard"
category = "mathematics"
tags = ["difficulty-provisional", "symbolic-pde", "exact-rationals", "scope-audit", "offline"]
case_version = "conjecture-probes-v1"
contamination_class = "authored-finite-conjecture-probe"
derivation = "Derived from retained spreadsheet row C-006 and the Clay Navier-Stokes problem statement; the finite authored contract checks one exact 2D polynomial certificate only."

[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/navier-stokes-polynomial-certificate" \
jacobian.checksum="80f2620510cebeb5f1ae177ec29c94fd3ca64427a59a1fbd73055cdae9eb2340"
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 verifier_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/navier-stokes-polynomial-certificate"'
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"task_id":"jacobian/navier-stokes-polynomial-certificate","conjecture_id":"C-006","coefficient_domain":"QQ","variables":["x","y"],"velocity_monomials":["1","x","y"],"pressure_monomials":["1","x","y","x^2","xy","y^2"],"coefficient_numerator_bound":50,"coefficient_denominator_bound":20,"required_vorticity":"NONZERO","scope":"steady-affine-2d-polynomial-fields-v1"}
Loading
Loading