{
  "id": 693850,
  "title": "Competitive Olympiad Reasoning Under Kaggle Constraints",
  "content": "<p><strong>Kaggle Notebook Url:</strong> <a href=\"https://www.kaggle.com/code/anthonynnagbo/final-sub/\" target=\"_blank\">Kaggle Notebook</a>\n<strong>Google Colab URL:</strong> <a href=\"https://colab.research.google.com/drive/11GMWBbfb1rvSM6iMmQd4QkgQWM-tTWoX?usp=sharing\" target=\"_blank\">Google Colab</a>\n<strong>Hugging Face Model URL:</strong> <a href=\"https://huggingface.co/unsloth/gpt-oss-120b\" target=\"_blank\">unsloth/gpt-oss-120b</a>\n<strong>Kaggle Model URL:</strong> <a href=\"https://www.kaggle.com/models/danielhanchen/gpt-oss-120b/Transformers/default/1\" target=\"_blank\">danielhanchen/gpt-oss-120b</a>\n<strong>Acknowledgments:</strong>  I would like to thank the organizers from <strong>AIMO Prize</strong>, <strong>XTX Markets</strong>, and <strong>Kaggle</strong> for this year’s AIMO-3 challenge.\nSpecial thanks to <strong>Simon Frieder</strong> for being so accessible and providing valuable insights throughout the event.  Finally, I am grateful to the broader research community for inspiring this work through their contributions.</p>\n<h2>Abstract</h2>\n<p>This write-up describes an AIMO-3 submission built around an inference-only reasoning pipeline for olympiad-style mathematics under strict Kaggle notebook constraints. The system uses GPT-OSS-120B served locally through vLLM together with a stateful Python tool for exact arithmetic, symbolic manipulation, numerical verification, and limited brute-force checking. Instead of relying on a single chain of thought, the notebook generates multiple solution attempts in parallel, extracts boxed integer answers, and aggregates them by majority vote. The pipeline also includes practical runtime engineering such as model-cache warmup, compile-cache reuse, deadline-aware stopping, and bounded concurrency so that a very large open model remains usable within the competition environment.\nThe submission achieved <strong>39/50 on the public leaderboard</strong> and <strong>40.5/50 on the private leaderboard</strong>. The main claim supported by this write-up is that a carefully engineered tool-integrated inference pipeline can be competitive even without fine-tuning, provided that raw model reasoning is coupled to exact computation, runtime control, and disciplined answer aggregation. At the same time, the write-up also reports negative evidence, including a confident failure on IMO 2025 Problem 6, to clarify that the system is competitive but not broadly reliable on frontier olympiad problems.</p>\n<h2>1. Submission Provenance</h2>\n<p>This write-up is based on the final submission notebook , which was the artifact chosen for the private leaderboard rerun and therefore identifies both the underlying artifact and the current scores state explicitly.\nThe intended reproducible release is the same submission version rather than an upgraded post-competition variant. No unrestricted result is claimed here. If the public release later differs in minor ways needed for Hugging Face or Colab publication, those differences would be documented explicitly together with the final URLs.</p>\n<h2>2. Problem Setting and Design Goal</h2>\n<p>The competition required solving olympiad-style integer-answer mathematics problems through a Kaggle notebook submission interface, not in an unconstrained research environment. The practical task was therefore dual: the system had to reason well enough to solve difficult problems, and it had to remain stable enough to finish a full notebook run within Kaggle's execution budget.\nThis shaped the design goal. Rather than optimize only for isolated single-problem successes, I aimed for a pipeline that could remain competitive under the notebook runtime limit, behave stably across reruns, and generalize better than a narrowly hand-tuned leaderboard trick. In practice that meant combining a strong base model with exact computation, multiple reasoning trajectories, bounded execution, and answer aggregation.</p>\n<h2>3. Method Overview</h2>\n<p>At a high level, the submission is a tool-integrated inference pipeline built around GPT-OSS-120B, a persistent Python execution environment, and multi-sample answer aggregation.</p>\n<ol>\n<li><strong>Runtime preparation.</strong> The notebook warms caches, restores compile artifacts when available, configures the inference environment, and launches a local vLLM server.</li>\n<li><strong>Multiple reasoning trajectories.</strong> For each problem, the system launches multiple reasoning trajectories using a single fixed prompt.</li>\n<li><strong>Stateful tool use.</strong> Each trajectory has access to a persistent Python/Jupyter tool with <code>math</code>, <code>numpy</code>, and <code>sympy</code>, enabling exact computation and verification inside the reasoning loop.</li>\n<li><strong>Bounded reasoning and aggregation.</strong> Generations are monitored under context and wall-clock constraints, reflection-style checks are inserted periodically, boxed integer answers are extracted, and the final prediction is chosen by majority vote.\nThe central technical idea is not any one of these components by itself. The main contribution is the combination: a strong open model, exact computational support, multiple reasoning trajectories, and runtime-aware orchestration working together as one system.</li>\n</ol>\n<h2>4. Implementation Details</h2>\n<h3>4.1 Runtime and Inference Stack</h3>\n<p>The notebook runs GPT-OSS-120B from <code>/kaggle/input/gpt-oss-120b/transformers/default/1</code> through vLLM. The active generator configuration uses <code>MAX_LEN = 70_000</code>, <code>K = 8</code>, <code>temperature = 1.0</code>, <code>top_p = 1.0</code>, <code>min_p = 0.02</code>, and majority-vote answer aggregation. The notebook also contains verifier scaffolding, but <code>ENABLE_VERIFIER = False</code> and <code>ENABLE_VERIFIER_FEEDBACK = False</code> in the submitted configuration, so the final documented system is best understood as a single-model submission with optional verifier code present but inactive.\nThe Python tool is implemented as a stateful Jupyter-backed execution environment with timeout handling, health checks, and session reuse. On each problem, the harness launches parallel trajectories with deadline-aware timeouts, early stopping when a majority answer is reached, and defensive fallbacks when streams fail, contexts overflow, or no valid boxed answer is recovered.</p>\n<h3>4.2 System Diagram or Pipeline Summary</h3>\n<p>Inserted below diagram summarizing the main components of the pipeline.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F12319208%2F969126fa64603116b7f68654eec6bfbc%2FKaggle%20Notebook%20vLLM-2026-04-22-134356.png?generation=1776867590720448&amp;alt=media\" alt=\"\">\n<strong>Figure 1.</strong> High-level overview of the submitted inference pipeline. The notebook prepares the runtime, launches a local vLLM server for GPT-OSS-120B, runs <code>K = 8</code> parallel reasoning trajectories with access to a persistent Python tool, and aggregates extracted boxed answers by majority vote before returning the final submission.</p>\n<ol>\n<li><strong>Model initialization and runtime preparation.</strong> The notebook preloads the GPT-OSS-120B weights, reuses available compile caches, configures the inference environment, and launches a local vLLM server so that the model can be queried efficiently within Kaggle's runtime budget.</li>\n<li><strong>Prompted multi-trajectory generation with tool access.</strong> For each problem, the system launches several parallel reasoning attempts. Each attempt has access to a stateful Python tool with <code>math</code>, <code>numpy</code>, and <code>sympy</code>, enabling exact computation and verification during the reasoning process.</li>\n<li><strong>Iterative reasoning, reflection, and bounded execution.</strong> During generation, the pipeline monitors context length, wall-clock budget, and tool-execution timeouts. Reflection-style interventions are inserted to encourage checking and correction, while deadline-aware control prevents a single failed trajectory from consuming too much of the total submission budget.</li>\n<li><strong>Answer extraction, aggregation, and submission.</strong> The system parses boxed integer answers from candidate traces, aggregates them by majority vote, and emits the final answer through the Kaggle submission API. In local testing mode, the same harness also records per-problem outputs and running accuracy against the reference set.</li>\n</ol>\n<h2>5. Why This Approach</h2>\n<h3>5.1 Prior Hypothesis</h3>\n<p>My working hypothesis was that the base model already had enough raw mathematical capability to solve a meaningful subset of the benchmark, but that practical failures would come from instability rather than from complete lack of knowledge. In particular, I expected long reasoning chains to fail through arithmetic slips, context drift, premature commitment to weak approaches, and run-to-run inconsistency.\nThat hypothesis led to three design choices. First, exact computation should be available inside the reasoning loop, not only as post-processing. Second, parallel sampling should reduce dependence on a single brittle trajectory. Third, some amount of explicit checking should help when using a decoding regime intended to preserve diverse lines of attack. The project therefore evolved toward a reliability-first pipeline rather than toward a purely model-centric or training-centric solution.</p>\n<h3>5.2 Alternatives Considered</h3>\n<p>What other approaches did I consider, and why were they rejected?</p>\n<table>\n<thead>\n<tr>\n<th>Alternative</th>\n<th>What I Tried</th>\n<th>Outcome</th>\n<th>Why I Did Not Use It</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Fine-tuning or supervised finetuning on model-generated proofs</td>\n<td>I explored enhancing the GPT-OSS-20B and GPT-OSS-120B models using Supervised Fine-Tuning (SFT). This involved training on roughly 6,000 synthetic samples, consisting of proofs and solutions generated by GPT-OSS-120B models, and I considered more extensions such as self-distillation or semi-online adaptation .</td>\n<td>This line of work appeared potentially promising, but I did not have enough time within the competition window to validate a training pipeline to the level of rigor required for the final submission. In my notes, this remained exploratory rather than a settled competitive advantage.</td>\n<td>I did not base the final submission on this path because the strongest evidence available during the competition favored an inference-time system I could test end-to-end inside the Kaggle environment.</td>\n</tr>\n<tr>\n<td>More aggressive intervention strategies such as frequent interruption, hinted prompting, and heavier reflection schedules</td>\n<td>I experimented informally with reflection, hints, prompt diversity, and different styles of intervention while monitoring pipeline behavior on difficult reference problems such as problems 9 and 10.</td>\n<td>Some interventions appeared helpful in isolated cases, especially when they improved grounding or reduced arithmetic mistakes, but other forms of interruption seemed to harm coherence by breaking the model's ongoing reasoning process. The evidence here was preliminary rather than conclusive.</td>\n<td>I used a restrained version of reflection in the final pipeline, but I did not make heavier intervention or hint-dependent strategies a central claim because they were not yet supported by sufficiently rigorous ablation evidence.</td>\n</tr>\n</tbody>\n</table>\n<h3>5.3 Key Insight</h3>\n<p>The pivotal insight was that the competition should be treated as a reliability problem, not only as a raw-capability problem. I started from the question of how to improve mathematical problem solving, but over time it became clear that the decisive issue was not simply whether the model could ever reach a correct solution. The more important question was whether a full pipeline could reach correct solutions consistently enough, within Kaggle's constraints, across different reruns and across different problem types. That shift in perspective pushed the project away from a purely model-centric and toward a systems-and-inference mindset.\nOnce I viewed the problem this way, the design became more coherent. Prompting, tool use, reflection, runtime engineering, and answer aggregation were no longer separate tricks; they were all components of the same attempt to convert fragile reasoning into a more stable process. In that sense, the key insight was not that any single intervention solved the problem by itself, but that combining a strong base model with exact computation, multiple trajectories, and controlled execution was more promising than pushing harder on any one axis alone. This also explains why I prioritized the pipeline over fine-tuning in the final submission: the pipeline could be tested directly under the actual competition constraints and therefore supported a stronger reproducibility story.</p>\n<h2>6. Experiments and Evidence</h2>\n<p>The strongest internal benchmark encoded directly in the notebook is the Kaggle reference-set gateway used for offline validation. In addition, I used repeated-run diagnostics on selected hard reference problems, especially problems 9 and 10, to assess stability across reruns. I also stress-tested the full pipeline on IMO 2025 Problem 6, where it failed confidently.\nThe most important empirical takeaways were the following.</p>\n<table>\n<thead>\n<tr>\n<th>Question</th>\n<th>Evidence</th>\n<th>Takeaway</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Does tool use help?</td>\n<td>Development-time qualitative comparison and final inclusion in the best submission</td>\n<td>Tool access appeared useful for exact computation and verification, although I do not claim a complete isolated causal estimate.</td>\n</tr>\n<tr>\n<td>Does reflection always help?</td>\n<td>Mixed diagnostics on hard problems</td>\n<td>Light checking sometimes helped; heavier interruption could harm coherence.</td>\n</tr>\n<tr>\n<td>Is the method broadly reliable on very hard olympiad problems?</td>\n<td>IMO 2025 Problem 6 stress test</td>\n<td>No. The pipeline can still fail confidently on sufficiently difficult problems.</td>\n</tr>\n<tr>\n<td>These experiments guided the final design, but not all were logged as exhaustive controlled ablations. Accordingly, the strongest formal evidence remains the official public leaderboard result, while the internal evidence mainly supports claims about stability, plausibility, and failure modes.</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3>IMO 2025 Problem 6 Stress Test</h3>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F12319208%2F83f9b4e512eb5def8ad94e121238f4e8%2Fimo2025_p6_vote_patterns.png?generation=1776879236132782&amp;alt=media\" alt=\"\">\n<strong>Figure 2.</strong> shows the result of running the full pipeline on IMO 2025 Problem 6, which is widely regarded as one of the hardest problems in recent memory. I ran the notebook on this problem several times with different random seeds and observed stable convergence to the same wrong answer, even though the reasoning traces were coherent and used tools correctly.\nI used IMO 2025 Problem 6 as an informal proxy for what the hardest end of AIMO-3 might look like in terms of structural complexity, long-horizon reasoning, and sensitivity to early problem interpretation.\nThese runs are informative because they show not only disagreement, but also stable convergence to the same wrong answer. This suggests a failure mode deeper than sampling noise or a local arithmetic error: the model may fail to form the right structural understanding of the problem early enough to choose an effective solution strategy. Once that initial framing is wrong, downstream reasoning can remain coherent, use tools correctly, and still converge to an incorrect answer.\nI include this result as negative evidence rather than anecdote. It suggests that for very hard problems, the bottleneck may be not only verification or computation, but correct problem understanding at the outset. Tool use and majority vote improve reliability when viable solution paths are present, but they do not guarantee recovery from a flawed initial representation of the task.</p>\n<h3>Failed Ideas or Ideas Worth Reporting</h3>\n<p>First, I explored training-oriented ideas, including supervised finetuning on model-generated proofs and the broader possibility of self-distillation or stronger fine-tuning pipelines. My view during the competition was that these directions might eventually improve smaller models or improve grounding, but I did not reach a level of validation that justified making them part of the final submission. Because of the competition timeline, inference-time engineering offered a much shorter path to something I could actually test end-to-end under Kaggle constraints.\nSecond, I considered more adaptive strategies such as semi test-time reinforcement learning or online adaptation from reasoning feedback. I did not implement these in the competition submission, mainly because they would have required more time, compute, and methodological control than the notebook setting permitted. I still regard them as plausible future directions, especially for turning intermediate reasoning traces into learning signals rather than using them only for immediate correction.\nThird, some observations from development were useful precisely because they were mixed. For example, explicit self-reflection sometimes helped the model recover from local mistakes, but frequent interruption also appeared capable of harming coherence by breaking the flow of reasoning. Likewise, adding more mathematical heuristics or olympiad-specific cues to prompts sometimes seemed to reduce time-to-answer on selected problems, but I did not gather sufficiently rigorous evidence to make that a principal claim. I also tested the full pipeline on IMO 2025 Problem 6 as a stress test and observed a confident failure rather than a hesitant near-miss. That negative result is important: it suggests that the pipeline can still be systematically wrong on very hard problems even when it produces high-confidence reasoning. I include these points because they shaped the final design, but they should be interpreted as development insights rather than fully established empirical findings.</p>\n<h2>7. Results and Interpretation</h2>\n<p>The official public leaderboard score for the documented submission was <strong>39/50</strong>, also, the  public leaderboard score for the documented submission was <strong>40.5/50</strong>. This establishes that the submission is a genuinely competitive restricted notebook system rather than a toy demonstration.\nAt the same time, the public leaderboard alone does not prove that each design choice made a measurable causal contribution, nor does it eliminate the possibility of public-set overfitting. The fair reading is that the pipeline has strong public evidence of effectiveness, moderate internal evidence of robustness, and incomplete evidence about which individual interventions mattered most. The confident failure on IMO 2025 Problem 6 is important negative evidence and should constrain any broader claims of generality.</p>\n<h2>8. Limitations</h2>\n<p>This submission has five important limitations.</p>\n<ol>\n<li>The method is compute-heavy and operationally delicate because it serves a very large model inside a constrained notebook environment.</li>\n<li>Several design claims are supported more by targeted diagnostics than by exhaustive ablation tables.</li>\n<li>The pipeline is not reliably correct on very hard out-of-distribution problems, as illustrated by the confident failure on IMO 2025 Problem 6.</li>\n<li>Reproducing the notebook outside Kaggle still requires careful environment matching because not all package versions and hardware details are pinned directly inside the notebook.\nFor these reasons, the write-up should be read as evidence of a competitive and partially robust inference pipeline, not as evidence that the general olympiad-level reasoning problem has been solved.</li>\n</ol>\n<h2>9. Conclusion</h2>\n<p>This submission shows that a carefully engineered inference-only pipeline can remain competitive in AIMO-3 without fine-tuning when raw model reasoning is combined with exact tool use, bounded execution, and answer aggregation. The main lesson is that performance depended as much on pipeline reliability as on raw model capability.\nThe strongest formal evidence is the public leaderboard score of <strong>39/50</strong> and private leaderboard score of <strong>40.5/50</strong>. The supporting internal evidence suggests that the chosen pipeline was more stable than a brittle single-trajectory baseline, but it does not justify sweeping claims about universal correctness. The right conclusion is therefore modest but meaningful: tool-integrated, runtime-aware inference can be competitive under Kaggle constraints, but serious failure modes remain.</p>\n<h2>References</h2>\n<ul>\n<li>Moshkov, I. et al. (2025). AIMO-2 Winning Solution: Building State-of-the-Art Mathematical Reasoning Models with OpenMathReasoning dataset. arXiv:2504.16891.</li>\n<li>Beeching, E. et al. (2024). Project Numina: AI Mathematical Olympiad Progress Prize 1 Winning Solution. Technical Report.</li>\n<li>kaggleqrdl (2026). Kaggle Notebook. <a href=\"https://www.kaggle.com/code/kaggleqrdl/41-50-same-as-parthenos-s-no-modifications\" target=\"_blank\">https://www.kaggle.com/code/kaggleqrdl/41-50-same-as-parthenos-s-no-modifications</a></li>\n<li>parthenos (2026). 44/50 - let me over cook. Kaggle Notebook. <a href=\"https://www.kaggle.com/code/nihilisticneuralnet/44-50-let-me-over-cook\" target=\"_blank\">https://www.kaggle.com/code/nihilisticneuralnet/44-50-let-me-over-cook</a></li>\n<li>Yichen Huang and Lin F. Yang. Winning gold at imo 2025 with a model-agnostic verification-and-refinement pipeline, 2025. URL <a href=\"https://arxiv.org/abs/2507.15855\" target=\"_blank\">https://arxiv.org/abs/2507.15855</a>.</li>\n<li>Feng, T., Jung, J., Lee, J., Kim, S. H., &amp; Luong, T. (2026). Towards autonomous mathematics research. arXiv preprint arXiv:2602.10177.</li>\n<li>AIMO Prize [@AIMOprize]. (2026, April 1). 1/ Nemotron-Cascade-2-30B-A3B was published on 19th March. It's the 2nd model claimed to achieve Gold Medal-level performance in the [Tweet]. X. <a href=\"https://x.com/AIMOprize/status/2039441022996934783\" target=\"_blank\">https://x.com/AIMOprize/status/2039441022996934783</a></li>\n<li>Chen, E. (2026, April 9). IMO 2025 solution notes. Evan Chen. <a href=\"https://web.evanchen.cc/exams/IMO-2025-notes.pdf\" target=\"_blank\">https://web.evanchen.cc/exams/IMO-2025-notes.pdf</a></li>\n<li><a href=\"https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-2/writeups/tascj-7th-place-solution-pure-luck\" target=\"_blank\">https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-2/writeups/tascj-7th-place-solution-pure-luck</a></li>\n</ul>\n<h2>Appendix A. Prompt Family Summary</h2>\n<p>The active prompt list in the submitted notebook is:</p>\n<ul>\n<li><code>SOLVER_PROMPT</code></li>\n<li><code>VERIFIER_PROMPT</code>\nAcross these prompts, the shared behavioral constraints are consistent: reason carefully, use Python for exact computation or verification when appropriate, do not guess, and return a final boxed integer answer.</li>\n</ul>\n<h2>Appendix B. Key Hyperparameters</h2>\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>SEED</code></td>\n<td><code>42</code></td>\n</tr>\n<tr>\n<td><code>MAX_LEN</code></td>\n<td><code>70_000</code></td>\n</tr>\n<tr>\n<td><code>USE_BUDGET</code></td>\n<td><code>False</code></td>\n</tr>\n<tr>\n<td><code>K</code></td>\n<td><code>8</code></td>\n</tr>\n<tr>\n<td><code>TEMPERATURE</code></td>\n<td><code>1.0</code></td>\n</tr>\n<tr>\n<td><code>TOP_P</code></td>\n<td><code>1.0</code></td>\n</tr>\n<tr>\n<td><code>MIN_P</code></td>\n<td><code>0.02</code></td>\n</tr>\n<tr>\n<td><code>TOP_logprobs</code></td>\n<td><code>5</code></td>\n</tr>\n<tr>\n<td><code>GENERATOR_PORT</code></td>\n<td><code>8000</code></td>\n</tr>\n<tr>\n<td><code>GENERATOR_GPU_MEMORY_UTILIZATION</code></td>\n<td><code>0.96</code></td>\n</tr>\n<tr>\n<td><code>GENERATOR_MAX_NUM_SEQS</code></td>\n<td><code>256</code></td>\n</tr>\n<tr>\n<td><code>ENABLE_VERIFIER</code></td>\n<td><code>False</code></td>\n</tr>\n<tr>\n<td><code>ENABLE_VERIFIER_FEEDBACK</code></td>\n<td><code>False</code></td>\n</tr>\n</tbody>\n</table>",
  "comments": [
    {
      "id": 3457726,
      "author_name": "Philip Vonderlind",
      "author_url": "",
      "post_date": "2026-05-14T08:34:42.890000",
      "content": "<p>Adding to <a href=\"https://www.kaggle.com/sambealing\" target=\"_blank\">@sambealing</a>'s comments below, I have a few additional suggestions and questions:</p>\n<ol>\n<li><p><strong>Ablations</strong>: As Sam mentioned, it would be helpful to report any evidence or ablations that motivated the design choices described in Section <code>5.1</code>. Adding plots could also make it easier to quickly compare the effects of different implementations.</p></li>\n<li><p><strong>SFT Dataset</strong>: You mention using a custom dataset of 60k examples for SFT. Generating this many high-quality datapoints is a substantial effort, so it would be valuable to add a dedicated section describing the data sources, the full generation pipeline, and the motivation behind creating your own dataset. It would also be useful to explain why you chose not to use an existing large math dataset, such as one of the datasets from the Math Corpus Prize, which includes many <code>gpt-oss-120b</code> trace datasets, or a public dataset such as <a href=\"https://huggingface.co/datasets/nvidia/OpenMathReasoning\" target=\"_blank\">OpenMathReasoning</a>.</p></li>\n<li><p><strong>Reproducibility</strong>: To make your work easier to reuse, is the full training and evaluation code available somewhere? I could not find a direct link in the writeup. Ideally, the code would be well documented and easily accessible, for example, through a GitHub repository with a clear <code>README</code>.</p></li>\n</ol>\n<p>Looking forward to your response :)</p>",
      "votes": 1,
      "replies": [
        {
          "id": 3457850,
          "author_name": "Anthony Nwafor",
          "author_url": "",
          "post_date": "2026-05-14T13:22:31.380000",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/philipvonderlind\" target=\"_blank\">@philipvonderlind</a>, thank you for questions and thoughtful suggestions,</p>\n<p>On ablations, I agree that the current write-up would benefit from more quantitative evidence supporting the design choices in §5.1. Those choices were mainly informed by reference-set diagnostics and repeated runs on selected hard problems during development, rather than by a fully controlled ablation study. I can make that clearer in the write-up.</p>\n<p>On the SFT dataset point, the dataset was assembled from a mix of selected CrystalMath[Math Corpus Prize] problems and other public-source problems, which I then used to generate <code>gpt-oss-120B</code> traces. The main reason for creating a custom dataset was that, for the problems I was focusing on at the time, I was not able to find existing<code>gpt-oss-120B</code> high-thinking-effort traces that matched the cases I wanted to examine. I was also aware of resources such as OpenMathReasoning, but in this exploratory setting I wanted to work with traces generated by <code>gpt-oss-120B</code> itself rather than rely only on reasoning data produced by other models. This was motivated partly by weaknesses I had observed on hard cases, especially AIMO-3 reference Problem 10, and partly by the practical intuition that model-matched traces might be more useful for this particular SFT direction. That said, this remained exploratory work and was not part of the final submitted inference pipeline, so I did not mean to present it as a validated core contribution.</p>\n<p>On reproducibility, the current write-up links the final Kaggle notebook and colab version of the submission, and i also attached the exploratory SFT and semi-Test Time RL notebooks in the comment section so reviewers can see what was tried beyond the final workflow. I am also planning to ship a much cleaner and more complete version through a Github repository with a clear <code>README</code> so the training and evaluation workflow is easier to follow and reuse. The attached notebooks were meant as supporting reference and material in the meantime, not as the final packaged reproducibility release.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3457712,
      "author_name": "Sam Bealing",
      "author_url": "",
      "post_date": "2026-05-14T08:05:09.690000",
      "content": "<p>Hi, thank you for your submission to the Writeup Prize. <a href=\"https://www.kaggle.com/philipvonderlind\" target=\"_blank\">@philipvonderlind</a> and I will post some questions below that help us in assessing your submission more closely, as described in the <a href=\"https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-3/discussion/689703\" target=\"_blank\">updated discussion post</a>.</p>\n<ol>\n<li><strong>Reference-set ablations:</strong> §6 reports qualitative findings on the Kaggle reference set, and §8 acknowledges the lack of exhaustive ablation tables. Do you have any quantitative evidence to support the takeaways you mention? This could be on benchmark datasets other than AIMO.</li>\n<li><strong>IMO 2025 P6 representativeness:</strong> This problem has an unusual structure trap in that the required construction relies on the side length being a perfect square (<code>2025 = 45^2</code>), so some strategies (e.g. experimenting with small cases) don't necessarily yield useful results. Did you stress-test the pipeline on any other hard olympiad problems with different challenges, or could the \"stable convergence to a wrong answer\" failure mode be specific to problems where small-case intuition is actively misleading (presumably there was some sort of pattern as to why the model focussed on 3037)?</li>\n</ol>\n<p>Look forward to reading your responses on these.</p>",
      "votes": 1,
      "replies": [
        {
          "id": 3457822,
          "author_name": "Anthony Nwafor",
          "author_url": "",
          "post_date": "2026-05-14T12:06:19.060000",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/sambealing\" target=\"_blank\">@sambealing</a> thank you for the questions</p>\n<p>On the first point, i do not have a controlled quantitative ablation suit beyond the official AIMO evalation. The statements in §6 were intended as development-time observations from reference-set diagnostics and repeated runs as selected hard problems, not as strong claims backed by exhuastive tables. I am happy to revise the write-up to make that more clearer.</p>\n<p>On the second point, I agree that IMO 2025 P6 should not be treated as fully representative of all hard olympiad problems. I included it as a stress test showing that the pipeline can converge stably to a wrong answer even when the reasoning trace is coherent and tool-supported. The  intended claim was limited: tool use, self-reflection (bounded self-refinement), and majority voting do not guarantee recovery once the model commits to a flawed structural interpretation. It was not meant as evidence that this exact failure model is universal across all hard problems.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 3450600,
      "author_name": "Anthony Nwafor",
      "author_url": "",
      "post_date": "2026-04-30T04:48:30.157000",
      "content": "<p>Attached for reference are the files related to approaches and experiments that were evaluated but not incorporated into the final workflow. They were included here to document what was tried, provide additional context, and support any future review or follow-up if needed.</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "comment_count": 5,
  "messages": [
    {
      "id": 3457726,
      "postDate": "2026-05-14T08:34:42.890Z",
      "content": "<p>Adding to <a href=\"https://www.kaggle.com/sambealing\" target=\"_blank\">@sambealing</a>'s comments below, I have a few additional suggestions and questions:</p>\n<ol>\n<li><p><strong>Ablations</strong>: As Sam mentioned, it would be helpful to report any evidence or ablations that motivated the design choices described in Section <code>5.1</code>. Adding plots could also make it easier to quickly compare the effects of different implementations.</p></li>\n<li><p><strong>SFT Dataset</strong>: You mention using a custom dataset of 60k examples for SFT. Generating this many high-quality datapoints is a substantial effort, so it would be valuable to add a dedicated section describing the data sources, the full generation pipeline, and the motivation behind creating your own dataset. It would also be useful to explain why you chose not to use an existing large math dataset, such as one of the datasets from the Math Corpus Prize, which includes many <code>gpt-oss-120b</code> trace datasets, or a public dataset such as <a href=\"https://huggingface.co/datasets/nvidia/OpenMathReasoning\" target=\"_blank\">OpenMathReasoning</a>.</p></li>\n<li><p><strong>Reproducibility</strong>: To make your work easier to reuse, is the full training and evaluation code available somewhere? I could not find a direct link in the writeup. Ideally, the code would be well documented and easily accessible, for example, through a GitHub repository with a clear <code>README</code>.</p></li>\n</ol>\n<p>Looking forward to your response :)</p>",
      "rawMarkdown": "Adding to @sambealing's comments below, I have a few additional suggestions and questions:\n\n1. **Ablations**: As Sam mentioned, it would be helpful to report any evidence or ablations that motivated the design choices described in Section `5.1`. Adding plots could also make it easier to quickly compare the effects of different implementations.\n\n2. **SFT Dataset**: You mention using a custom dataset of 60k examples for SFT. Generating this many high-quality datapoints is a substantial effort, so it would be valuable to add a dedicated section describing the data sources, the full generation pipeline, and the motivation behind creating your own dataset. It would also be useful to explain why you chose not to use an existing large math dataset, such as one of the datasets from the Math Corpus Prize, which includes many `gpt-oss-120b` trace datasets, or a public dataset such as [OpenMathReasoning](https://huggingface.co/datasets/nvidia/OpenMathReasoning).\n\n3. **Reproducibility**: To make your work easier to reuse, is the full training and evaluation code available somewhere? I could not find a direct link in the writeup. Ideally, the code would be well documented and easily accessible, for example, through a GitHub repository with a clear `README`.\n\nLooking forward to your response :)",
      "votes": 1,
      "replies": [
        {
          "id": 3457850,
          "postDate": "2026-05-14T13:22:31.380Z",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/philipvonderlind\" target=\"_blank\">@philipvonderlind</a>, thank you for questions and thoughtful suggestions,</p>\n<p>On ablations, I agree that the current write-up would benefit from more quantitative evidence supporting the design choices in §5.1. Those choices were mainly informed by reference-set diagnostics and repeated runs on selected hard problems during development, rather than by a fully controlled ablation study. I can make that clearer in the write-up.</p>\n<p>On the SFT dataset point, the dataset was assembled from a mix of selected CrystalMath[Math Corpus Prize] problems and other public-source problems, which I then used to generate <code>gpt-oss-120B</code> traces. The main reason for creating a custom dataset was that, for the problems I was focusing on at the time, I was not able to find existing<code>gpt-oss-120B</code> high-thinking-effort traces that matched the cases I wanted to examine. I was also aware of resources such as OpenMathReasoning, but in this exploratory setting I wanted to work with traces generated by <code>gpt-oss-120B</code> itself rather than rely only on reasoning data produced by other models. This was motivated partly by weaknesses I had observed on hard cases, especially AIMO-3 reference Problem 10, and partly by the practical intuition that model-matched traces might be more useful for this particular SFT direction. That said, this remained exploratory work and was not part of the final submitted inference pipeline, so I did not mean to present it as a validated core contribution.</p>\n<p>On reproducibility, the current write-up links the final Kaggle notebook and colab version of the submission, and i also attached the exploratory SFT and semi-Test Time RL notebooks in the comment section so reviewers can see what was tried beyond the final workflow. I am also planning to ship a much cleaner and more complete version through a Github repository with a clear <code>README</code> so the training and evaluation workflow is easier to follow and reuse. The attached notebooks were meant as supporting reference and material in the meantime, not as the final packaged reproducibility release.</p>",
          "rawMarkdown": "Hi @philipvonderlind, thank you for questions and thoughtful suggestions,\n\nOn ablations, I agree that the current write-up would benefit from more quantitative evidence supporting the design choices in §5.1. Those choices were mainly informed by reference-set diagnostics and repeated runs on selected hard problems during development, rather than by a fully controlled ablation study. I can make that clearer in the write-up.\n\nOn the SFT dataset point, the dataset was assembled from a mix of selected CrystalMath[Math Corpus Prize] problems and other public-source problems, which I then used to generate `gpt-oss-120B` traces. The main reason for creating a custom dataset was that, for the problems I was focusing on at the time, I was not able to find existing`gpt-oss-120B` high-thinking-effort traces that matched the cases I wanted to examine. I was also aware of resources such as OpenMathReasoning, but in this exploratory setting I wanted to work with traces generated by `gpt-oss-120B` itself rather than rely only on reasoning data produced by other models. This was motivated partly by weaknesses I had observed on hard cases, especially AIMO-3 reference Problem 10, and partly by the practical intuition that model-matched traces might be more useful for this particular SFT direction. That said, this remained exploratory work and was not part of the final submitted inference pipeline, so I did not mean to present it as a validated core contribution.\n\nOn reproducibility, the current write-up links the final Kaggle notebook and colab version of the submission, and i also attached the exploratory SFT and semi-Test Time RL notebooks in the comment section so reviewers can see what was tried beyond the final workflow. I am also planning to ship a much cleaner and more complete version through a Github repository with a clear `README` so the training and evaluation workflow is easier to follow and reuse. The attached notebooks were meant as supporting reference and material in the meantime, not as the final packaged reproducibility release."
        }
      ]
    },
    {
      "id": 3457712,
      "postDate": "2026-05-14T08:05:09.690Z",
      "content": "<p>Hi, thank you for your submission to the Writeup Prize. <a href=\"https://www.kaggle.com/philipvonderlind\" target=\"_blank\">@philipvonderlind</a> and I will post some questions below that help us in assessing your submission more closely, as described in the <a href=\"https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-3/discussion/689703\" target=\"_blank\">updated discussion post</a>.</p>\n<ol>\n<li><strong>Reference-set ablations:</strong> §6 reports qualitative findings on the Kaggle reference set, and §8 acknowledges the lack of exhaustive ablation tables. Do you have any quantitative evidence to support the takeaways you mention? This could be on benchmark datasets other than AIMO.</li>\n<li><strong>IMO 2025 P6 representativeness:</strong> This problem has an unusual structure trap in that the required construction relies on the side length being a perfect square (<code>2025 = 45^2</code>), so some strategies (e.g. experimenting with small cases) don't necessarily yield useful results. Did you stress-test the pipeline on any other hard olympiad problems with different challenges, or could the \"stable convergence to a wrong answer\" failure mode be specific to problems where small-case intuition is actively misleading (presumably there was some sort of pattern as to why the model focussed on 3037)?</li>\n</ol>\n<p>Look forward to reading your responses on these.</p>",
      "rawMarkdown": "Hi, thank you for your submission to the Writeup Prize. @philipvonderlind and I will post some questions below that help us in assessing your submission more closely, as described in the [updated discussion post](https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-3/discussion/689703).\n\n1. **Reference-set ablations:** §6 reports qualitative findings on the Kaggle reference set, and §8 acknowledges the lack of exhaustive ablation tables. Do you have any quantitative evidence to support the takeaways you mention? This could be on benchmark datasets other than AIMO.\n2. **IMO 2025 P6 representativeness:** This problem has an unusual structure trap in that the required construction relies on the side length being a perfect square (`2025 = 45^2`), so some strategies (e.g. experimenting with small cases) don't necessarily yield useful results. Did you stress-test the pipeline on any other hard olympiad problems with different challenges, or could the \"stable convergence to a wrong answer\" failure mode be specific to problems where small-case intuition is actively misleading (presumably there was some sort of pattern as to why the model focussed on 3037)?\n\nLook forward to reading your responses on these.",
      "votes": 1,
      "replies": [
        {
          "id": 3457822,
          "postDate": "2026-05-14T12:06:19.060Z",
          "content": "<p>Hi <a href=\"https://www.kaggle.com/sambealing\" target=\"_blank\">@sambealing</a> thank you for the questions</p>\n<p>On the first point, i do not have a controlled quantitative ablation suit beyond the official AIMO evalation. The statements in §6 were intended as development-time observations from reference-set diagnostics and repeated runs as selected hard problems, not as strong claims backed by exhuastive tables. I am happy to revise the write-up to make that more clearer.</p>\n<p>On the second point, I agree that IMO 2025 P6 should not be treated as fully representative of all hard olympiad problems. I included it as a stress test showing that the pipeline can converge stably to a wrong answer even when the reasoning trace is coherent and tool-supported. The  intended claim was limited: tool use, self-reflection (bounded self-refinement), and majority voting do not guarantee recovery once the model commits to a flawed structural interpretation. It was not meant as evidence that this exact failure model is universal across all hard problems.</p>",
          "rawMarkdown": "Hi @sambealing thank you for the questions\n\nOn the first point, i do not have a controlled quantitative ablation suit beyond the official AIMO evalation. The statements in §6 were intended as development-time observations from reference-set diagnostics and repeated runs as selected hard problems, not as strong claims backed by exhuastive tables. I am happy to revise the write-up to make that more clearer.\n\nOn the second point, I agree that IMO 2025 P6 should not be treated as fully representative of all hard olympiad problems. I included it as a stress test showing that the pipeline can converge stably to a wrong answer even when the reasoning trace is coherent and tool-supported. The  intended claim was limited: tool use, self-reflection (bounded self-refinement), and majority voting do not guarantee recovery once the model commits to a flawed structural interpretation. It was not meant as evidence that this exact failure model is universal across all hard problems."
        }
      ]
    },
    {
      "id": 3446979,
      "postDate": "2026-04-22T14:41:54.777Z",
      "content": "<p><strong>Kaggle Notebook Url:</strong> <a href=\"https://www.kaggle.com/code/anthonynnagbo/final-sub/\" target=\"_blank\">Kaggle Notebook</a>\n<strong>Google Colab URL:</strong> <a href=\"https://colab.research.google.com/drive/11GMWBbfb1rvSM6iMmQd4QkgQWM-tTWoX?usp=sharing\" target=\"_blank\">Google Colab</a>\n<strong>Hugging Face Model URL:</strong> <a href=\"https://huggingface.co/unsloth/gpt-oss-120b\" target=\"_blank\">unsloth/gpt-oss-120b</a>\n<strong>Kaggle Model URL:</strong> <a href=\"https://www.kaggle.com/models/danielhanchen/gpt-oss-120b/Transformers/default/1\" target=\"_blank\">danielhanchen/gpt-oss-120b</a>\n<strong>Acknowledgments:</strong>  I would like to thank the organizers from <strong>AIMO Prize</strong>, <strong>XTX Markets</strong>, and <strong>Kaggle</strong> for this year’s AIMO-3 challenge.\nSpecial thanks to <strong>Simon Frieder</strong> for being so accessible and providing valuable insights throughout the event.  Finally, I am grateful to the broader research community for inspiring this work through their contributions.</p>\n<h2>Abstract</h2>\n<p>This write-up describes an AIMO-3 submission built around an inference-only reasoning pipeline for olympiad-style mathematics under strict Kaggle notebook constraints. The system uses GPT-OSS-120B served locally through vLLM together with a stateful Python tool for exact arithmetic, symbolic manipulation, numerical verification, and limited brute-force checking. Instead of relying on a single chain of thought, the notebook generates multiple solution attempts in parallel, extracts boxed integer answers, and aggregates them by majority vote. The pipeline also includes practical runtime engineering such as model-cache warmup, compile-cache reuse, deadline-aware stopping, and bounded concurrency so that a very large open model remains usable within the competition environment.\nThe submission achieved <strong>39/50 on the public leaderboard</strong> and <strong>40.5/50 on the private leaderboard</strong>. The main claim supported by this write-up is that a carefully engineered tool-integrated inference pipeline can be competitive even without fine-tuning, provided that raw model reasoning is coupled to exact computation, runtime control, and disciplined answer aggregation. At the same time, the write-up also reports negative evidence, including a confident failure on IMO 2025 Problem 6, to clarify that the system is competitive but not broadly reliable on frontier olympiad problems.</p>\n<h2>1. Submission Provenance</h2>\n<p>This write-up is based on the final submission notebook , which was the artifact chosen for the private leaderboard rerun and therefore identifies both the underlying artifact and the current scores state explicitly.\nThe intended reproducible release is the same submission version rather than an upgraded post-competition variant. No unrestricted result is claimed here. If the public release later differs in minor ways needed for Hugging Face or Colab publication, those differences would be documented explicitly together with the final URLs.</p>\n<h2>2. Problem Setting and Design Goal</h2>\n<p>The competition required solving olympiad-style integer-answer mathematics problems through a Kaggle notebook submission interface, not in an unconstrained research environment. The practical task was therefore dual: the system had to reason well enough to solve difficult problems, and it had to remain stable enough to finish a full notebook run within Kaggle's execution budget.\nThis shaped the design goal. Rather than optimize only for isolated single-problem successes, I aimed for a pipeline that could remain competitive under the notebook runtime limit, behave stably across reruns, and generalize better than a narrowly hand-tuned leaderboard trick. In practice that meant combining a strong base model with exact computation, multiple reasoning trajectories, bounded execution, and answer aggregation.</p>\n<h2>3. Method Overview</h2>\n<p>At a high level, the submission is a tool-integrated inference pipeline built around GPT-OSS-120B, a persistent Python execution environment, and multi-sample answer aggregation.</p>\n<ol>\n<li><strong>Runtime preparation.</strong> The notebook warms caches, restores compile artifacts when available, configures the inference environment, and launches a local vLLM server.</li>\n<li><strong>Multiple reasoning trajectories.</strong> For each problem, the system launches multiple reasoning trajectories using a single fixed prompt.</li>\n<li><strong>Stateful tool use.</strong> Each trajectory has access to a persistent Python/Jupyter tool with <code>math</code>, <code>numpy</code>, and <code>sympy</code>, enabling exact computation and verification inside the reasoning loop.</li>\n<li><strong>Bounded reasoning and aggregation.</strong> Generations are monitored under context and wall-clock constraints, reflection-style checks are inserted periodically, boxed integer answers are extracted, and the final prediction is chosen by majority vote.\nThe central technical idea is not any one of these components by itself. The main contribution is the combination: a strong open model, exact computational support, multiple reasoning trajectories, and runtime-aware orchestration working together as one system.</li>\n</ol>\n<h2>4. Implementation Details</h2>\n<h3>4.1 Runtime and Inference Stack</h3>\n<p>The notebook runs GPT-OSS-120B from <code>/kaggle/input/gpt-oss-120b/transformers/default/1</code> through vLLM. The active generator configuration uses <code>MAX_LEN = 70_000</code>, <code>K = 8</code>, <code>temperature = 1.0</code>, <code>top_p = 1.0</code>, <code>min_p = 0.02</code>, and majority-vote answer aggregation. The notebook also contains verifier scaffolding, but <code>ENABLE_VERIFIER = False</code> and <code>ENABLE_VERIFIER_FEEDBACK = False</code> in the submitted configuration, so the final documented system is best understood as a single-model submission with optional verifier code present but inactive.\nThe Python tool is implemented as a stateful Jupyter-backed execution environment with timeout handling, health checks, and session reuse. On each problem, the harness launches parallel trajectories with deadline-aware timeouts, early stopping when a majority answer is reached, and defensive fallbacks when streams fail, contexts overflow, or no valid boxed answer is recovered.</p>\n<h3>4.2 System Diagram or Pipeline Summary</h3>\n<p>Inserted below diagram summarizing the main components of the pipeline.\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F12319208%2F969126fa64603116b7f68654eec6bfbc%2FKaggle%20Notebook%20vLLM-2026-04-22-134356.png?generation=1776867590720448&amp;alt=media\" alt=\"\">\n<strong>Figure 1.</strong> High-level overview of the submitted inference pipeline. The notebook prepares the runtime, launches a local vLLM server for GPT-OSS-120B, runs <code>K = 8</code> parallel reasoning trajectories with access to a persistent Python tool, and aggregates extracted boxed answers by majority vote before returning the final submission.</p>\n<ol>\n<li><strong>Model initialization and runtime preparation.</strong> The notebook preloads the GPT-OSS-120B weights, reuses available compile caches, configures the inference environment, and launches a local vLLM server so that the model can be queried efficiently within Kaggle's runtime budget.</li>\n<li><strong>Prompted multi-trajectory generation with tool access.</strong> For each problem, the system launches several parallel reasoning attempts. Each attempt has access to a stateful Python tool with <code>math</code>, <code>numpy</code>, and <code>sympy</code>, enabling exact computation and verification during the reasoning process.</li>\n<li><strong>Iterative reasoning, reflection, and bounded execution.</strong> During generation, the pipeline monitors context length, wall-clock budget, and tool-execution timeouts. Reflection-style interventions are inserted to encourage checking and correction, while deadline-aware control prevents a single failed trajectory from consuming too much of the total submission budget.</li>\n<li><strong>Answer extraction, aggregation, and submission.</strong> The system parses boxed integer answers from candidate traces, aggregates them by majority vote, and emits the final answer through the Kaggle submission API. In local testing mode, the same harness also records per-problem outputs and running accuracy against the reference set.</li>\n</ol>\n<h2>5. Why This Approach</h2>\n<h3>5.1 Prior Hypothesis</h3>\n<p>My working hypothesis was that the base model already had enough raw mathematical capability to solve a meaningful subset of the benchmark, but that practical failures would come from instability rather than from complete lack of knowledge. In particular, I expected long reasoning chains to fail through arithmetic slips, context drift, premature commitment to weak approaches, and run-to-run inconsistency.\nThat hypothesis led to three design choices. First, exact computation should be available inside the reasoning loop, not only as post-processing. Second, parallel sampling should reduce dependence on a single brittle trajectory. Third, some amount of explicit checking should help when using a decoding regime intended to preserve diverse lines of attack. The project therefore evolved toward a reliability-first pipeline rather than toward a purely model-centric or training-centric solution.</p>\n<h3>5.2 Alternatives Considered</h3>\n<p>What other approaches did I consider, and why were they rejected?</p>\n<table>\n<thead>\n<tr>\n<th>Alternative</th>\n<th>What I Tried</th>\n<th>Outcome</th>\n<th>Why I Did Not Use It</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Fine-tuning or supervised finetuning on model-generated proofs</td>\n<td>I explored enhancing the GPT-OSS-20B and GPT-OSS-120B models using Supervised Fine-Tuning (SFT). This involved training on roughly 6,000 synthetic samples, consisting of proofs and solutions generated by GPT-OSS-120B models, and I considered more extensions such as self-distillation or semi-online adaptation .</td>\n<td>This line of work appeared potentially promising, but I did not have enough time within the competition window to validate a training pipeline to the level of rigor required for the final submission. In my notes, this remained exploratory rather than a settled competitive advantage.</td>\n<td>I did not base the final submission on this path because the strongest evidence available during the competition favored an inference-time system I could test end-to-end inside the Kaggle environment.</td>\n</tr>\n<tr>\n<td>More aggressive intervention strategies such as frequent interruption, hinted prompting, and heavier reflection schedules</td>\n<td>I experimented informally with reflection, hints, prompt diversity, and different styles of intervention while monitoring pipeline behavior on difficult reference problems such as problems 9 and 10.</td>\n<td>Some interventions appeared helpful in isolated cases, especially when they improved grounding or reduced arithmetic mistakes, but other forms of interruption seemed to harm coherence by breaking the model's ongoing reasoning process. The evidence here was preliminary rather than conclusive.</td>\n<td>I used a restrained version of reflection in the final pipeline, but I did not make heavier intervention or hint-dependent strategies a central claim because they were not yet supported by sufficiently rigorous ablation evidence.</td>\n</tr>\n</tbody>\n</table>\n<h3>5.3 Key Insight</h3>\n<p>The pivotal insight was that the competition should be treated as a reliability problem, not only as a raw-capability problem. I started from the question of how to improve mathematical problem solving, but over time it became clear that the decisive issue was not simply whether the model could ever reach a correct solution. The more important question was whether a full pipeline could reach correct solutions consistently enough, within Kaggle's constraints, across different reruns and across different problem types. That shift in perspective pushed the project away from a purely model-centric and toward a systems-and-inference mindset.\nOnce I viewed the problem this way, the design became more coherent. Prompting, tool use, reflection, runtime engineering, and answer aggregation were no longer separate tricks; they were all components of the same attempt to convert fragile reasoning into a more stable process. In that sense, the key insight was not that any single intervention solved the problem by itself, but that combining a strong base model with exact computation, multiple trajectories, and controlled execution was more promising than pushing harder on any one axis alone. This also explains why I prioritized the pipeline over fine-tuning in the final submission: the pipeline could be tested directly under the actual competition constraints and therefore supported a stronger reproducibility story.</p>\n<h2>6. Experiments and Evidence</h2>\n<p>The strongest internal benchmark encoded directly in the notebook is the Kaggle reference-set gateway used for offline validation. In addition, I used repeated-run diagnostics on selected hard reference problems, especially problems 9 and 10, to assess stability across reruns. I also stress-tested the full pipeline on IMO 2025 Problem 6, where it failed confidently.\nThe most important empirical takeaways were the following.</p>\n<table>\n<thead>\n<tr>\n<th>Question</th>\n<th>Evidence</th>\n<th>Takeaway</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Does tool use help?</td>\n<td>Development-time qualitative comparison and final inclusion in the best submission</td>\n<td>Tool access appeared useful for exact computation and verification, although I do not claim a complete isolated causal estimate.</td>\n</tr>\n<tr>\n<td>Does reflection always help?</td>\n<td>Mixed diagnostics on hard problems</td>\n<td>Light checking sometimes helped; heavier interruption could harm coherence.</td>\n</tr>\n<tr>\n<td>Is the method broadly reliable on very hard olympiad problems?</td>\n<td>IMO 2025 Problem 6 stress test</td>\n<td>No. The pipeline can still fail confidently on sufficiently difficult problems.</td>\n</tr>\n<tr>\n<td>These experiments guided the final design, but not all were logged as exhaustive controlled ablations. Accordingly, the strongest formal evidence remains the official public leaderboard result, while the internal evidence mainly supports claims about stability, plausibility, and failure modes.</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n<h3>IMO 2025 Problem 6 Stress Test</h3>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F12319208%2F83f9b4e512eb5def8ad94e121238f4e8%2Fimo2025_p6_vote_patterns.png?generation=1776879236132782&amp;alt=media\" alt=\"\">\n<strong>Figure 2.</strong> shows the result of running the full pipeline on IMO 2025 Problem 6, which is widely regarded as one of the hardest problems in recent memory. I ran the notebook on this problem several times with different random seeds and observed stable convergence to the same wrong answer, even though the reasoning traces were coherent and used tools correctly.\nI used IMO 2025 Problem 6 as an informal proxy for what the hardest end of AIMO-3 might look like in terms of structural complexity, long-horizon reasoning, and sensitivity to early problem interpretation.\nThese runs are informative because they show not only disagreement, but also stable convergence to the same wrong answer. This suggests a failure mode deeper than sampling noise or a local arithmetic error: the model may fail to form the right structural understanding of the problem early enough to choose an effective solution strategy. Once that initial framing is wrong, downstream reasoning can remain coherent, use tools correctly, and still converge to an incorrect answer.\nI include this result as negative evidence rather than anecdote. It suggests that for very hard problems, the bottleneck may be not only verification or computation, but correct problem understanding at the outset. Tool use and majority vote improve reliability when viable solution paths are present, but they do not guarantee recovery from a flawed initial representation of the task.</p>\n<h3>Failed Ideas or Ideas Worth Reporting</h3>\n<p>First, I explored training-oriented ideas, including supervised finetuning on model-generated proofs and the broader possibility of self-distillation or stronger fine-tuning pipelines. My view during the competition was that these directions might eventually improve smaller models or improve grounding, but I did not reach a level of validation that justified making them part of the final submission. Because of the competition timeline, inference-time engineering offered a much shorter path to something I could actually test end-to-end under Kaggle constraints.\nSecond, I considered more adaptive strategies such as semi test-time reinforcement learning or online adaptation from reasoning feedback. I did not implement these in the competition submission, mainly because they would have required more time, compute, and methodological control than the notebook setting permitted. I still regard them as plausible future directions, especially for turning intermediate reasoning traces into learning signals rather than using them only for immediate correction.\nThird, some observations from development were useful precisely because they were mixed. For example, explicit self-reflection sometimes helped the model recover from local mistakes, but frequent interruption also appeared capable of harming coherence by breaking the flow of reasoning. Likewise, adding more mathematical heuristics or olympiad-specific cues to prompts sometimes seemed to reduce time-to-answer on selected problems, but I did not gather sufficiently rigorous evidence to make that a principal claim. I also tested the full pipeline on IMO 2025 Problem 6 as a stress test and observed a confident failure rather than a hesitant near-miss. That negative result is important: it suggests that the pipeline can still be systematically wrong on very hard problems even when it produces high-confidence reasoning. I include these points because they shaped the final design, but they should be interpreted as development insights rather than fully established empirical findings.</p>\n<h2>7. Results and Interpretation</h2>\n<p>The official public leaderboard score for the documented submission was <strong>39/50</strong>, also, the  public leaderboard score for the documented submission was <strong>40.5/50</strong>. This establishes that the submission is a genuinely competitive restricted notebook system rather than a toy demonstration.\nAt the same time, the public leaderboard alone does not prove that each design choice made a measurable causal contribution, nor does it eliminate the possibility of public-set overfitting. The fair reading is that the pipeline has strong public evidence of effectiveness, moderate internal evidence of robustness, and incomplete evidence about which individual interventions mattered most. The confident failure on IMO 2025 Problem 6 is important negative evidence and should constrain any broader claims of generality.</p>\n<h2>8. Limitations</h2>\n<p>This submission has five important limitations.</p>\n<ol>\n<li>The method is compute-heavy and operationally delicate because it serves a very large model inside a constrained notebook environment.</li>\n<li>Several design claims are supported more by targeted diagnostics than by exhaustive ablation tables.</li>\n<li>The pipeline is not reliably correct on very hard out-of-distribution problems, as illustrated by the confident failure on IMO 2025 Problem 6.</li>\n<li>Reproducing the notebook outside Kaggle still requires careful environment matching because not all package versions and hardware details are pinned directly inside the notebook.\nFor these reasons, the write-up should be read as evidence of a competitive and partially robust inference pipeline, not as evidence that the general olympiad-level reasoning problem has been solved.</li>\n</ol>\n<h2>9. Conclusion</h2>\n<p>This submission shows that a carefully engineered inference-only pipeline can remain competitive in AIMO-3 without fine-tuning when raw model reasoning is combined with exact tool use, bounded execution, and answer aggregation. The main lesson is that performance depended as much on pipeline reliability as on raw model capability.\nThe strongest formal evidence is the public leaderboard score of <strong>39/50</strong> and private leaderboard score of <strong>40.5/50</strong>. The supporting internal evidence suggests that the chosen pipeline was more stable than a brittle single-trajectory baseline, but it does not justify sweeping claims about universal correctness. The right conclusion is therefore modest but meaningful: tool-integrated, runtime-aware inference can be competitive under Kaggle constraints, but serious failure modes remain.</p>\n<h2>References</h2>\n<ul>\n<li>Moshkov, I. et al. (2025). AIMO-2 Winning Solution: Building State-of-the-Art Mathematical Reasoning Models with OpenMathReasoning dataset. arXiv:2504.16891.</li>\n<li>Beeching, E. et al. (2024). Project Numina: AI Mathematical Olympiad Progress Prize 1 Winning Solution. Technical Report.</li>\n<li>kaggleqrdl (2026). Kaggle Notebook. <a href=\"https://www.kaggle.com/code/kaggleqrdl/41-50-same-as-parthenos-s-no-modifications\" target=\"_blank\">https://www.kaggle.com/code/kaggleqrdl/41-50-same-as-parthenos-s-no-modifications</a></li>\n<li>parthenos (2026). 44/50 - let me over cook. Kaggle Notebook. <a href=\"https://www.kaggle.com/code/nihilisticneuralnet/44-50-let-me-over-cook\" target=\"_blank\">https://www.kaggle.com/code/nihilisticneuralnet/44-50-let-me-over-cook</a></li>\n<li>Yichen Huang and Lin F. Yang. Winning gold at imo 2025 with a model-agnostic verification-and-refinement pipeline, 2025. URL <a href=\"https://arxiv.org/abs/2507.15855\" target=\"_blank\">https://arxiv.org/abs/2507.15855</a>.</li>\n<li>Feng, T., Jung, J., Lee, J., Kim, S. H., &amp; Luong, T. (2026). Towards autonomous mathematics research. arXiv preprint arXiv:2602.10177.</li>\n<li>AIMO Prize [@AIMOprize]. (2026, April 1). 1/ Nemotron-Cascade-2-30B-A3B was published on 19th March. It's the 2nd model claimed to achieve Gold Medal-level performance in the [Tweet]. X. <a href=\"https://x.com/AIMOprize/status/2039441022996934783\" target=\"_blank\">https://x.com/AIMOprize/status/2039441022996934783</a></li>\n<li>Chen, E. (2026, April 9). IMO 2025 solution notes. Evan Chen. <a href=\"https://web.evanchen.cc/exams/IMO-2025-notes.pdf\" target=\"_blank\">https://web.evanchen.cc/exams/IMO-2025-notes.pdf</a></li>\n<li><a href=\"https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-2/writeups/tascj-7th-place-solution-pure-luck\" target=\"_blank\">https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-2/writeups/tascj-7th-place-solution-pure-luck</a></li>\n</ul>\n<h2>Appendix A. Prompt Family Summary</h2>\n<p>The active prompt list in the submitted notebook is:</p>\n<ul>\n<li><code>SOLVER_PROMPT</code></li>\n<li><code>VERIFIER_PROMPT</code>\nAcross these prompts, the shared behavioral constraints are consistent: reason carefully, use Python for exact computation or verification when appropriate, do not guess, and return a final boxed integer answer.</li>\n</ul>\n<h2>Appendix B. Key Hyperparameters</h2>\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>SEED</code></td>\n<td><code>42</code></td>\n</tr>\n<tr>\n<td><code>MAX_LEN</code></td>\n<td><code>70_000</code></td>\n</tr>\n<tr>\n<td><code>USE_BUDGET</code></td>\n<td><code>False</code></td>\n</tr>\n<tr>\n<td><code>K</code></td>\n<td><code>8</code></td>\n</tr>\n<tr>\n<td><code>TEMPERATURE</code></td>\n<td><code>1.0</code></td>\n</tr>\n<tr>\n<td><code>TOP_P</code></td>\n<td><code>1.0</code></td>\n</tr>\n<tr>\n<td><code>MIN_P</code></td>\n<td><code>0.02</code></td>\n</tr>\n<tr>\n<td><code>TOP_logprobs</code></td>\n<td><code>5</code></td>\n</tr>\n<tr>\n<td><code>GENERATOR_PORT</code></td>\n<td><code>8000</code></td>\n</tr>\n<tr>\n<td><code>GENERATOR_GPU_MEMORY_UTILIZATION</code></td>\n<td><code>0.96</code></td>\n</tr>\n<tr>\n<td><code>GENERATOR_MAX_NUM_SEQS</code></td>\n<td><code>256</code></td>\n</tr>\n<tr>\n<td><code>ENABLE_VERIFIER</code></td>\n<td><code>False</code></td>\n</tr>\n<tr>\n<td><code>ENABLE_VERIFIER_FEEDBACK</code></td>\n<td><code>False</code></td>\n</tr>\n</tbody>\n</table>",
      "rawMarkdown": "\n**Kaggle Notebook Url:** [Kaggle Notebook](https://www.kaggle.com/code/anthonynnagbo/final-sub/)\n\n**Google Colab URL:** [Google Colab](https://colab.research.google.com/drive/11GMWBbfb1rvSM6iMmQd4QkgQWM-tTWoX?usp=sharing)\n\n**Hugging Face Model URL:** [unsloth/gpt-oss-120b](https://huggingface.co/unsloth/gpt-oss-120b)\n**Kaggle Model URL:** [danielhanchen/gpt-oss-120b](https://www.kaggle.com/models/danielhanchen/gpt-oss-120b/Transformers/default/1)\n\n**Acknowledgments:**  I would like to thank the organizers from **AIMO Prize**, **XTX Markets**, and **Kaggle** for this year’s AIMO-3 challenge.\nSpecial thanks to **Simon Frieder** for being so accessible and providing valuable insights throughout the event.  Finally, I am grateful to the broader research community for inspiring this work through their contributions.\n\n\n## Abstract\n\nThis write-up describes an AIMO-3 submission built around an inference-only reasoning pipeline for olympiad-style mathematics under strict Kaggle notebook constraints. The system uses GPT-OSS-120B served locally through vLLM together with a stateful Python tool for exact arithmetic, symbolic manipulation, numerical verification, and limited brute-force checking. Instead of relying on a single chain of thought, the notebook generates multiple solution attempts in parallel, extracts boxed integer answers, and aggregates them by majority vote. The pipeline also includes practical runtime engineering such as model-cache warmup, compile-cache reuse, deadline-aware stopping, and bounded concurrency so that a very large open model remains usable within the competition environment.\n\nThe submission achieved **39/50 on the public leaderboard** and **40.5/50 on the private leaderboard**. The main claim supported by this write-up is that a carefully engineered tool-integrated inference pipeline can be competitive even without fine-tuning, provided that raw model reasoning is coupled to exact computation, runtime control, and disciplined answer aggregation. At the same time, the write-up also reports negative evidence, including a confident failure on IMO 2025 Problem 6, to clarify that the system is competitive but not broadly reliable on frontier olympiad problems.\n\n## 1. Submission Provenance\n\nThis write-up is based on the final submission notebook , which was the artifact chosen for the private leaderboard rerun and therefore identifies both the underlying artifact and the current scores state explicitly.\n\nThe intended reproducible release is the same submission version rather than an upgraded post-competition variant. No unrestricted result is claimed here. If the public release later differs in minor ways needed for Hugging Face or Colab publication, those differences would be documented explicitly together with the final URLs.\n\n## 2. Problem Setting and Design Goal\n\nThe competition required solving olympiad-style integer-answer mathematics problems through a Kaggle notebook submission interface, not in an unconstrained research environment. The practical task was therefore dual: the system had to reason well enough to solve difficult problems, and it had to remain stable enough to finish a full notebook run within Kaggle's execution budget.\n\nThis shaped the design goal. Rather than optimize only for isolated single-problem successes, I aimed for a pipeline that could remain competitive under the notebook runtime limit, behave stably across reruns, and generalize better than a narrowly hand-tuned leaderboard trick. In practice that meant combining a strong base model with exact computation, multiple reasoning trajectories, bounded execution, and answer aggregation.\n\n## 3. Method Overview\n\nAt a high level, the submission is a tool-integrated inference pipeline built around GPT-OSS-120B, a persistent Python execution environment, and multi-sample answer aggregation.\n\n1. **Runtime preparation.** The notebook warms caches, restores compile artifacts when available, configures the inference environment, and launches a local vLLM server.\n2. **Multiple reasoning trajectories.** For each problem, the system launches multiple reasoning trajectories using a single fixed prompt.\n3. **Stateful tool use.** Each trajectory has access to a persistent Python/Jupyter tool with `math`, `numpy`, and `sympy`, enabling exact computation and verification inside the reasoning loop.\n4. **Bounded reasoning and aggregation.** Generations are monitored under context and wall-clock constraints, reflection-style checks are inserted periodically, boxed integer answers are extracted, and the final prediction is chosen by majority vote.\n\nThe central technical idea is not any one of these components by itself. The main contribution is the combination: a strong open model, exact computational support, multiple reasoning trajectories, and runtime-aware orchestration working together as one system.\n\n## 4. Implementation Details\n\n### 4.1 Runtime and Inference Stack\n\nThe notebook runs GPT-OSS-120B from `/kaggle/input/gpt-oss-120b/transformers/default/1` through vLLM. The active generator configuration uses `MAX_LEN = 70_000`, `K = 8`, `temperature = 1.0`, `top_p = 1.0`, `min_p = 0.02`, and majority-vote answer aggregation. The notebook also contains verifier scaffolding, but `ENABLE_VERIFIER = False` and `ENABLE_VERIFIER_FEEDBACK = False` in the submitted configuration, so the final documented system is best understood as a single-model submission with optional verifier code present but inactive.\n\nThe Python tool is implemented as a stateful Jupyter-backed execution environment with timeout handling, health checks, and session reuse. On each problem, the harness launches parallel trajectories with deadline-aware timeouts, early stopping when a majority answer is reached, and defensive fallbacks when streams fail, contexts overflow, or no valid boxed answer is recovered.\n\n### 4.2 System Diagram or Pipeline Summary\n\nInserted below diagram summarizing the main components of the pipeline.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F12319208%2F969126fa64603116b7f68654eec6bfbc%2FKaggle%20Notebook%20vLLM-2026-04-22-134356.png?generation=1776867590720448&alt=media)\n\n**Figure 1.** High-level overview of the submitted inference pipeline. The notebook prepares the runtime, launches a local vLLM server for GPT-OSS-120B, runs `K = 8` parallel reasoning trajectories with access to a persistent Python tool, and aggregates extracted boxed answers by majority vote before returning the final submission.\n\n1. **Model initialization and runtime preparation.** The notebook preloads the GPT-OSS-120B weights, reuses available compile caches, configures the inference environment, and launches a local vLLM server so that the model can be queried efficiently within Kaggle's runtime budget.\n2. **Prompted multi-trajectory generation with tool access.** For each problem, the system launches several parallel reasoning attempts. Each attempt has access to a stateful Python tool with `math`, `numpy`, and `sympy`, enabling exact computation and verification during the reasoning process.\n3. **Iterative reasoning, reflection, and bounded execution.** During generation, the pipeline monitors context length, wall-clock budget, and tool-execution timeouts. Reflection-style interventions are inserted to encourage checking and correction, while deadline-aware control prevents a single failed trajectory from consuming too much of the total submission budget.\n4. **Answer extraction, aggregation, and submission.** The system parses boxed integer answers from candidate traces, aggregates them by majority vote, and emits the final answer through the Kaggle submission API. In local testing mode, the same harness also records per-problem outputs and running accuracy against the reference set.\n\n## 5. Why This Approach\n\n### 5.1 Prior Hypothesis\n\nMy working hypothesis was that the base model already had enough raw mathematical capability to solve a meaningful subset of the benchmark, but that practical failures would come from instability rather than from complete lack of knowledge. In particular, I expected long reasoning chains to fail through arithmetic slips, context drift, premature commitment to weak approaches, and run-to-run inconsistency.\n\nThat hypothesis led to three design choices. First, exact computation should be available inside the reasoning loop, not only as post-processing. Second, parallel sampling should reduce dependence on a single brittle trajectory. Third, some amount of explicit checking should help when using a decoding regime intended to preserve diverse lines of attack. The project therefore evolved toward a reliability-first pipeline rather than toward a purely model-centric or training-centric solution.\n\n### 5.2 Alternatives Considered\n\nWhat other approaches did I consider, and why were they rejected?\n\n| Alternative | What I Tried | Outcome | Why I Did Not Use It |\n| --- | --- | --- | --- |\n| Fine-tuning or supervised finetuning on model-generated proofs | I explored enhancing the GPT-OSS-20B and GPT-OSS-120B models using Supervised Fine-Tuning (SFT). This involved training on roughly 6,000 synthetic samples, consisting of proofs and solutions generated by GPT-OSS-120B models, and I considered more extensions such as self-distillation or semi-online adaptation . | This line of work appeared potentially promising, but I did not have enough time within the competition window to validate a training pipeline to the level of rigor required for the final submission. In my notes, this remained exploratory rather than a settled competitive advantage. | I did not base the final submission on this path because the strongest evidence available during the competition favored an inference-time system I could test end-to-end inside the Kaggle environment. |\n| More aggressive intervention strategies such as frequent interruption, hinted prompting, and heavier reflection schedules | I experimented informally with reflection, hints, prompt diversity, and different styles of intervention while monitoring pipeline behavior on difficult reference problems such as problems 9 and 10. | Some interventions appeared helpful in isolated cases, especially when they improved grounding or reduced arithmetic mistakes, but other forms of interruption seemed to harm coherence by breaking the model's ongoing reasoning process. The evidence here was preliminary rather than conclusive. | I used a restrained version of reflection in the final pipeline, but I did not make heavier intervention or hint-dependent strategies a central claim because they were not yet supported by sufficiently rigorous ablation evidence. |\n\n### 5.3 Key Insight\n\nThe pivotal insight was that the competition should be treated as a reliability problem, not only as a raw-capability problem. I started from the question of how to improve mathematical problem solving, but over time it became clear that the decisive issue was not simply whether the model could ever reach a correct solution. The more important question was whether a full pipeline could reach correct solutions consistently enough, within Kaggle's constraints, across different reruns and across different problem types. That shift in perspective pushed the project away from a purely model-centric and toward a systems-and-inference mindset.\n\nOnce I viewed the problem this way, the design became more coherent. Prompting, tool use, reflection, runtime engineering, and answer aggregation were no longer separate tricks; they were all components of the same attempt to convert fragile reasoning into a more stable process. In that sense, the key insight was not that any single intervention solved the problem by itself, but that combining a strong base model with exact computation, multiple trajectories, and controlled execution was more promising than pushing harder on any one axis alone. This also explains why I prioritized the pipeline over fine-tuning in the final submission: the pipeline could be tested directly under the actual competition constraints and therefore supported a stronger reproducibility story.\n\n## 6. Experiments and Evidence\n\nThe strongest internal benchmark encoded directly in the notebook is the Kaggle reference-set gateway used for offline validation. In addition, I used repeated-run diagnostics on selected hard reference problems, especially problems 9 and 10, to assess stability across reruns. I also stress-tested the full pipeline on IMO 2025 Problem 6, where it failed confidently.\n\nThe most important empirical takeaways were the following.\n\n| Question | Evidence | Takeaway |\n| --- | --- | --- |\n| Does tool use help? | Development-time qualitative comparison and final inclusion in the best submission | Tool access appeared useful for exact computation and verification, although I do not claim a complete isolated causal estimate. |\n| Does reflection always help? | Mixed diagnostics on hard problems | Light checking sometimes helped; heavier interruption could harm coherence. |\n| Is the method broadly reliable on very hard olympiad problems? | IMO 2025 Problem 6 stress test | No. The pipeline can still fail confidently on sufficiently difficult problems. | \n\n\nThese experiments guided the final design, but not all were logged as exhaustive controlled ablations. Accordingly, the strongest formal evidence remains the official public leaderboard result, while the internal evidence mainly supports claims about stability, plausibility, and failure modes.\n\n### IMO 2025 Problem 6 Stress Test\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F12319208%2F83f9b4e512eb5def8ad94e121238f4e8%2Fimo2025_p6_vote_patterns.png?generation=1776879236132782&alt=media)\n**Figure 2.** shows the result of running the full pipeline on IMO 2025 Problem 6, which is widely regarded as one of the hardest problems in recent memory. I ran the notebook on this problem several times with different random seeds and observed stable convergence to the same wrong answer, even though the reasoning traces were coherent and used tools correctly.\n\nI used IMO 2025 Problem 6 as an informal proxy for what the hardest end of AIMO-3 might look like in terms of structural complexity, long-horizon reasoning, and sensitivity to early problem interpretation.\n\nThese runs are informative because they show not only disagreement, but also stable convergence to the same wrong answer. This suggests a failure mode deeper than sampling noise or a local arithmetic error: the model may fail to form the right structural understanding of the problem early enough to choose an effective solution strategy. Once that initial framing is wrong, downstream reasoning can remain coherent, use tools correctly, and still converge to an incorrect answer.\n\nI include this result as negative evidence rather than anecdote. It suggests that for very hard problems, the bottleneck may be not only verification or computation, but correct problem understanding at the outset. Tool use and majority vote improve reliability when viable solution paths are present, but they do not guarantee recovery from a flawed initial representation of the task.\n\n### Failed Ideas or Ideas Worth Reporting\n\nFirst, I explored training-oriented ideas, including supervised finetuning on model-generated proofs and the broader possibility of self-distillation or stronger fine-tuning pipelines. My view during the competition was that these directions might eventually improve smaller models or improve grounding, but I did not reach a level of validation that justified making them part of the final submission. Because of the competition timeline, inference-time engineering offered a much shorter path to something I could actually test end-to-end under Kaggle constraints.\n\nSecond, I considered more adaptive strategies such as semi test-time reinforcement learning or online adaptation from reasoning feedback. I did not implement these in the competition submission, mainly because they would have required more time, compute, and methodological control than the notebook setting permitted. I still regard them as plausible future directions, especially for turning intermediate reasoning traces into learning signals rather than using them only for immediate correction.\n\nThird, some observations from development were useful precisely because they were mixed. For example, explicit self-reflection sometimes helped the model recover from local mistakes, but frequent interruption also appeared capable of harming coherence by breaking the flow of reasoning. Likewise, adding more mathematical heuristics or olympiad-specific cues to prompts sometimes seemed to reduce time-to-answer on selected problems, but I did not gather sufficiently rigorous evidence to make that a principal claim. I also tested the full pipeline on IMO 2025 Problem 6 as a stress test and observed a confident failure rather than a hesitant near-miss. That negative result is important: it suggests that the pipeline can still be systematically wrong on very hard problems even when it produces high-confidence reasoning. I include these points because they shaped the final design, but they should be interpreted as development insights rather than fully established empirical findings.\n\n## 7. Results and Interpretation\n\nThe official public leaderboard score for the documented submission was **39/50**, also, the  public leaderboard score for the documented submission was **40.5/50**. This establishes that the submission is a genuinely competitive restricted notebook system rather than a toy demonstration.\n\nAt the same time, the public leaderboard alone does not prove that each design choice made a measurable causal contribution, nor does it eliminate the possibility of public-set overfitting. The fair reading is that the pipeline has strong public evidence of effectiveness, moderate internal evidence of robustness, and incomplete evidence about which individual interventions mattered most. The confident failure on IMO 2025 Problem 6 is important negative evidence and should constrain any broader claims of generality.\n\n\n## 8. Limitations\n\nThis submission has five important limitations.\n\n1. The method is compute-heavy and operationally delicate because it serves a very large model inside a constrained notebook environment.\n2. Several design claims are supported more by targeted diagnostics than by exhaustive ablation tables.\n3. The pipeline is not reliably correct on very hard out-of-distribution problems, as illustrated by the confident failure on IMO 2025 Problem 6.\n4. Reproducing the notebook outside Kaggle still requires careful environment matching because not all package versions and hardware details are pinned directly inside the notebook.\n\nFor these reasons, the write-up should be read as evidence of a competitive and partially robust inference pipeline, not as evidence that the general olympiad-level reasoning problem has been solved.\n\n## 9. Conclusion\n\nThis submission shows that a carefully engineered inference-only pipeline can remain competitive in AIMO-3 without fine-tuning when raw model reasoning is combined with exact tool use, bounded execution, and answer aggregation. The main lesson is that performance depended as much on pipeline reliability as on raw model capability.\n\nThe strongest formal evidence is the public leaderboard score of **39/50** and private leaderboard score of **40.5/50**. The supporting internal evidence suggests that the chosen pipeline was more stable than a brittle single-trajectory baseline, but it does not justify sweeping claims about universal correctness. The right conclusion is therefore modest but meaningful: tool-integrated, runtime-aware inference can be competitive under Kaggle constraints, but serious failure modes remain.\n\n\n## References\n\n- Moshkov, I. et al. (2025). AIMO-2 Winning Solution: Building State-of-the-Art Mathematical Reasoning Models with OpenMathReasoning dataset. arXiv:2504.16891.\n- Beeching, E. et al. (2024). Project Numina: AI Mathematical Olympiad Progress Prize 1 Winning Solution. Technical Report.\n- kaggleqrdl (2026). Kaggle Notebook. https://www.kaggle.com/code/kaggleqrdl/41-50-same-as-parthenos-s-no-modifications\n- parthenos (2026). 44/50 - let me over cook. Kaggle Notebook. https://www.kaggle.com/code/nihilisticneuralnet/44-50-let-me-over-cook\n- Yichen Huang and Lin F. Yang. Winning gold at imo 2025 with a model-agnostic verification-and-refinement pipeline, 2025. URL https://arxiv.org/abs/2507.15855.\n- Feng, T., Jung, J., Lee, J., Kim, S. H., & Luong, T. (2026). Towards autonomous mathematics research. arXiv preprint arXiv:2602.10177.\n- AIMO Prize [@AIMOprize]. (2026, April 1). 1/ Nemotron-Cascade-2-30B-A3B was published on 19th March. It's the 2nd model claimed to achieve Gold Medal-level performance in the [Tweet]. X. https://x.com/AIMOprize/status/2039441022996934783\n- Chen, E. (2026, April 9). IMO 2025 solution notes. Evan Chen. https://web.evanchen.cc/exams/IMO-2025-notes.pdf\n- https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-2/writeups/tascj-7th-place-solution-pure-luck\n\n## Appendix A. Prompt Family Summary\n\nThe active prompt list in the submitted notebook is:\n\n- `SOLVER_PROMPT`\n- `VERIFIER_PROMPT`\n\nAcross these prompts, the shared behavioral constraints are consistent: reason carefully, use Python for exact computation or verification when appropriate, do not guess, and return a final boxed integer answer.\n\n## Appendix B. Key Hyperparameters\n\n| Parameter | Value |\n| --- | --- |\n| `SEED` | `42` |\n| `MAX_LEN` | `70_000` |\n| `USE_BUDGET` | `False` |\n| `K` | `8` |\n| `TEMPERATURE` | `1.0` |\n| `TOP_P` | `1.0` |\n| `MIN_P` | `0.02` |\n| `TOP_logprobs` | `5` |\n| `GENERATOR_PORT` | `8000` |\n| `GENERATOR_GPU_MEMORY_UTILIZATION` | `0.96` |\n| `GENERATOR_MAX_NUM_SEQS` | `256` |\n| `ENABLE_VERIFIER` | `False` |\n| `ENABLE_VERIFIER_FEEDBACK` | `False` |",
      "votes": 1
    },
    {
      "id": 3450600,
      "postDate": "2026-04-30T04:48:30.157Z",
      "content": "<p>Attached for reference are the files related to approaches and experiments that were evaluated but not incorporated into the final workflow. They were included here to document what was tried, provide additional context, and support any future review or follow-up if needed.</p>",
      "rawMarkdown": "Attached for reference are the files related to approaches and experiments that were evaluated but not incorporated into the final workflow. They were included here to document what was tried, provide additional context, and support any future review or follow-up if needed."
    }
  ],
  "complete": true,
  "source": "live",
  "fetched_at": "2026-10-20T04:24:06Z",
  "competition_id": 118448,
  "competition_slug": "ai-mathematical-olympiad-progress-prize-3",
  "team_id": 14801006,
  "solution_url": "/competitions/ai-mathematical-olympiad-progress-prize-3/writeups/competitive-olympiad-reasoning-under-kaggle-constr"
}