diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 74 |
1 files changed, 35 insertions, 39 deletions
@@ -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. |
