summaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md74
1 files changed, 35 insertions, 39 deletions
diff --git a/README.md b/README.md
index 56b76ec..090c297 100644
--- a/README.md
+++ b/README.md
@@ -1,35 +1,47 @@
# GAP minimal reproduction package
-This repository contains the generation and verification pipeline for GAP:
-four surface-renaming families and one proof-plan-preserving kernel variant.
-It is intentionally small and includes one canonical Putnam example for an
-end-to-end check.
+This repository provides a one-item end-to-end reproduction of GAP: four
+surface-renaming families and one verified kernel variant.
## One-click reproduction
Open `GAP_End_to_End.ipynb` and choose **Run All**. The notebook:
1. installs the package;
-2. loads one canonical problem;
-3. generates four surface variants;
-4. runs the five-stage kernel pipeline;
-5. applies five judges until the same candidate receives two consecutive
+2. loads one canonical Putnam problem;
+3. generates the four surface variants;
+4. extracts the kernel proof plan and mutable slots;
+5. generates a new question and complete solution with the same plan;
+6. runs five judges until the unchanged candidate receives two consecutive
unanimous rounds;
-6. exports and validates one machine-readable GAP record.
+7. exports and validates one machine-readable GAP record.
-The default live model is `o3`. Set `OPENAI_API_KEY` before starting Jupyter,
-or enter it in the notebook's hidden prompt. The key is not written to the
-notebook or run artifacts.
+The default model is `o3`. Set `OPENAI_API_KEY` before starting Jupyter, or
+enter it in the notebook's hidden prompt. The key is never saved.
-To test the complete software path without API calls:
+For a no-API software check:
```bash
GAP_OFFLINE_SMOKE=1 jupyter notebook GAP_End_to_End.ipynb
```
-Offline smoke mode uses scripted model responses. It validates pipeline wiring,
-verification control flow, and release assembly; it does not evaluate generated
-mathematical content.
+Offline smoke mode uses fixed responses. It validates pipeline wiring,
+verification control flow, and release assembly; it does not assess generated
+mathematics.
+
+## Prompt fidelity
+
+Generation, surface-renaming, judge, and repair prompts are copied verbatim
+from the original author source and the prompt listing in the paper. Their
+UTF-8 SHA-256 digests are pinned in `PROMPT_SHA256SUMS` and enforced by
+`tests/test_prompts.py`.
+
+The OpenAI adapter does not send `temperature`; this is compatible with `o3`,
+whose supported value is its default.
+
+The conceptual five stages are represented explicitly in saved artifacts.
+The original implementation batches stages 1–3 into Prompt-A and stages 4–5
+into Prompt-B; the wrapper does not change those prompts. See `STAGE_MAP.md`.
## Install and test
@@ -69,7 +81,7 @@ PYTHONPATH=src python -m gap_pipeline.cli generate-surfaces \
--proposer-model o3
```
-Assemble the final record after both runs complete:
+Assemble the final record:
```bash
PYTHONPATH=src python -m gap_pipeline.cli export-release \
@@ -80,26 +92,10 @@ PYTHONPATH=src python -m gap_pipeline.cli export-release \
--item-id 1998-B-1
```
-## Protocol
-
-The kernel path consists of:
-
-1. reference solution → proof DAG;
-2. proof DAG → content-free method plan;
-3. guarded replacement at a DAG leaf;
-4. replacement diffusion through the fixed DAG;
-5. regenerated proof → self-contained problem statement.
-
-Verification uses `J=5` judges, requires `K=2` consecutive unanimous rounds for
-the same candidate, and permits at most `T=15` rounds. A non-unanimous round
-resets the pass streak and triggers repair.
-
-`STAGE_MAP.md` maps each paper operation to the implementation and its validated
-output. Every model call and intermediate stage is saved below the selected run
-directory for inspection.
-
-## Reproducibility scope
+## Verification protocol
-LLM generation is stochastic, so repeated live runs need not produce identical
-wording. This package reproduces the prompts, transformation stages, typed
-structural checks, verification state machine, and release format.
+Kernel verification uses `J=5` judges, requires `K=2` consecutive unanimous
+rounds for the same candidate, and allows at most `T=15` rounds. A rejected
+round resets the streak and triggers a complete question-and-solution repair.
+Every call, stage output, iteration, and final record is saved under the chosen
+run directory.