summaryrefslogtreecommitdiff
path: root/STAGE_MAP.md
blob: 9e05842723434b01df16faa065412e61113c73f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# GAP paper-to-code and provenance map

The recovered original Putnam generator at `PutnamVariants@c3bed737` makes two
model calls: Prompt-A returns 1--5 `core_steps` plus mutable-slot descriptions,
and Prompt-B directly returns a complete question and solution. Those exact
historical prompts remain byte pinned in `prompts.py`.

The manuscript describes a richer five-stage procedure. The default executable
path in `paper_pipeline.py` implements those operations explicitly, using the
paper-aligned prompts in `kernel_prompts.py`. It does not claim these new
prompts are byte-identical to the historical two-call generator.

| Paper operation | Implementation | Saved artifact |
|---|---|---|
| Surface rename | `SurfacePipeline.run_family` | `surface_<family>_variant.json` |
| 1. Reference solution to concrete proof DAG | `PaperKernelPipeline.construct_dag` + `ProofDAG` validation | `01_proof_dag.json` |
| 2. Content-free method plan | `PaperKernelPipeline.summarize_methods` | `02_method_plan.json` |
| 3. Guarded replacement generation | `PaperKernelPipeline.generate_replacements` | `03_replacement_vNN.json` |
| 4. Node-by-node DAG diffusion | `PaperKernelPipeline.diffuse_dag` | `04_diffused_proof_vNN.json` |
| 5. Answer-to-question rendering | `PaperKernelPipeline.render_variant` | `05_rendered_variant_vNN.json` |
| Five-judge verification | `PaperKernelPipeline.verify` | five call records and one iteration record per round |
| Consecutive-pass protocol | `PaperKernelPipeline.verify` | `K=2` on the unchanged bundle hash |
| Repair loop | `PaperKernelPipeline.build_bundle` | rerun stages 3--5 from judge feedback; at most `T=15` rounds |

## Enforced contracts

- The concrete DAG may branch; every dependency must reference an earlier node,
  and every node must contribute to the terminal node.
- The method plan contains exactly one method label per DAG node.
- Every replacement records its source node, exact old/new values, mathematical
  guard, and guard justification.
- The diffused proof must preserve node IDs, dependencies, and method labels.
- The rendered solution must cite every node in order and retain the diffused
  terminal answer.
- Every judge must discuss every node ID and every replacement slot ID.

## Per-item artifacts

```text
items/<item-id>/
  input.json
  config.json
  calls/<request-id>.json
  stages/<stage>.json
  iterations/<round>.json
  final.json
```

Historical prompt literals are byte-locked by `PROMPT_SHA256SUMS` and
`tests/test_prompts.py`. The new five-stage prompts are versioned source code
and covered by schema and end-to-end tests. The OpenAI adapter does not pass a
temperature argument; `o3` therefore uses its supported default.