일단 문제 풀이 자체가 oneshot으로 진행된 게 아니고, 총 5단계의 파이프라인을 반복하며 Gemini 2.5를 호출했다는 점에 유의.
1단계 - 초기 해답 생성
모델이 문제에 대한 초기 해답 샘플을 여러 개 생성한다.
2단계 - 자가 개선
모델이 스스로 생성한 해답을 검토하고 개선하도록 한다. 이 단계는 모델의 사고 예산(thinking budget) 한계를 극복하기 위해 도입되었다. Gemini 2.5 Pro의 최대 사고 토큰은 32,768개로, 복잡한 IMO 문제를 한 번에 풀기에는 부족할 수 있다. 자가 개선 단계는 추가적인 사고 토큰을 투입하여 모델이 작업을 검토하고 계속 진행할 수 있도록 한다.
3단계 - 검증
생성된 해답을 단계별로 정밀하게 검토하고, 오류나 논리적 허점이 담긴 버그 리포트를 생성한다. 검증 결과에 따라 다음 단계로 진행한다
- 5회 연속 통과 시: 해답으로 채택
- 주요 문제가 10회 지속 시: 해답을 기각
- 실패 시: 4단계로 이동
4단계 - 버그 리포트 검토
검증기가 생성한 버그 리포트의 각 항목을 신중하게 검토한다. 만약 검증기가 실수를 해서 실제로는 문제가 아닌데 문제라고 보고했다면, 해당 항목은 버그 리포트에서 삭제한다.
5단계 - 수정
검토를 마친 버그 리포트를 바탕으로 모델이 해답을 수정하거나 개선한다. 이 과정은 오류를 고치거나 논리적 간극을 메우는 작업을 포함한다. 수정이 완료되면 다시 3단계(검증)로 돌아가 반복적인 개선 과정을 거친다.
1단계 프롬프트
### 문제 ###
[여기에 해결할 수학 문제의 TeX(라텍스) 원문을 붙여넣으세요.]
===============================================================
### 핵심 지침 ###
**1. 논리적 엄밀함을 최우선으로 합니다:** 당신의 가장 중요한 목표는 완전하고 논리적으로 엄밀하게 정당화된 해답을 작성하는 것입니다. 모든 풀이 과정은 논리적으로 타당하고 명확하게 설명되어야 합니다. 결함이 있거나 불완전한 추론을 통해 얻은 정답은 실패로 간주합니다.
**2. 완전성에 대해 정직해야 합니다:** 만약 완전한 해답을 찾지 못했다면, 추측하거나 결함이 있는 해답을 만들어서는 안 됩니다. 대신, 당신이 엄밀하게 증명할 수 있는 중요한 부분적인 결과만을 제시해야 합니다. 예를 들어 다음과 같습니다.
* 핵심 보조정리(lemma) 증명
* 논리적으로 타당한 케이스 분류 증명에서 하나 또는 그 이상의 케이스를 완벽하게 해결
* 문제에 등장하는 수학적 대상의 결정적인 속성을 확립
* 최적화 문제에서 상한 또는 하한을 증명 (단, 그 경계값이 달성 가능하다는 증명은 제외)
**3. 모든 수학 표기는 TeX를 사용합니다:** 모든 수학 변수, 표현, 관계식은 반드시 TeX 구분 기호(예: '정수 $n$이 주어졌을 때...')로 묶어야 합니다.
### 출력 형식 ###
당신의 응답은 반드시 다음 두 섹션으로, 아래 명시된 순서에 따라 정확하게 구성되어야 합니다.
**1. 요약**
당신이 찾아낸 결과에 대한 간결한 개요를 제공합니다. 이 섹션은 다음 두 부분으로 구성되어야 합니다.
* **가. 판정:** 완전한 해답을 찾았는지, 아니면 부분적인 해답인지를 명확하게 한 문장으로 서술합니다.
* **완전한 해답의 경우:** "문제를 성공적으로 해결했습니다. 최종 정답은..."과 같이 최종 답을 명시합니다.
* **부분적인 해답의 경우:** "완전한 해답을 찾지는 못했지만, ...라는 것을 엄밀하게 증명했습니다."와 같이 당신이 증명할 수 있었던 주요 결론을 서술합니다.
* **나. 방법 개요:** 당신의 해답에 대한 높은 수준의 개념적 윤곽을 제시합니다. 이 개요는 전문가가 상세한 내용을 읽지 않고도 주장의 논리적 흐름을 이해할 수 있도록 해야 합니다. 다음 내용이 포함되어야 합니다.
* 전체 전략에 대한 서술
* 핵심 보조정리나 주요 중간 결과에 대한 완전하고 정확한 수학적 기술
* 주장의 핵심을 이루는 주요 구성이나 케이스 분류에 대한 설명
**2. 상세 해답**
단계별 전체 수학적 증명을 제시합니다. 각 단계는 논리적으로 정당화되고 명확하게 설명되어야 합니다. 전문가가 어떤 논리적 간극도 메울 필요 없이 당신의 추론의 정확성을 검증할 수 있을 만큼 상세해야 합니다. 이 섹션에는 다른 해설, 대안적 접근 방식, 실패한 시도 없이 오직 완전하고 엄밀한 증명 **자체만** 포함되어야 합니다.
### 자가 수정 지침 ###
결과를 최종적으로 출력하기 전에, 당신이 작성한 '요약'과 '상세 해답'을 신중하게 검토하여 위의 모든 지침을 깨끗하고 엄격하게 준수하는지 확인하십시오. 모든 문장이 최종적이고 일관된 수학적 주장에 직접적으로 기여하는지 검증하십시오.
2단계 프롬프트
[지시]
이전 지침에서 요구한 '논리적 엄밀함'과 '완전성'의 기준을 다시 한번 상기하면서, 아래 당신이 생성한 해답의 모든 논리적 단계와 주장을 검토하고 개선하십시오.
* 논리적 비약이나 증명되지 않은 가정이 없는지 확인하십시오.
* 각 단계의 정당화가 충분히 상세하고 명확한지 점검하십시오.
* 더 간결하면서도 엄밀한 논증이 가능하다면 해답을 재구성하십시오.
개선된 최종 버전을 '1단계 프롬프트'에서 요구한 출력 형식에 맞추어 다시 제출하십시오.
[검토 및 개선할 해답]
[1단계 또는 2단계의 이전 반복에서 생성된 해답 내용]
3단계 프롬프트
[역할 및 과업]
당신은 국제수학올림피아드(IMO) 수준 시험의 전문 수학자이자 꼼꼼한 채점관입니다. 당신의 주요 임무는 제공된 수학 해답을 엄격하게 검증하는 것입니다. 해답은 **모든 단계가 엄밀하게 정당화된 경우에만** 올바른 것으로 판단합니다. 결함 있는 추론, 교육에 기반한 추측, 또는 주장의 간극을 통해 올바른 최종 답에 도달한 해답은 반드시 부정확하거나 불완전한 것으로 지적해야 합니다.
===============================================================
[문제]
[여기에 원본 문제의 TeX(라텍스) 원문을 붙여넣으세요.]
[검증할 해답]
[여기에 검증할 해답의 TeX(라텍스) 원문을 붙여넣으세요.]
===============================================================
[지침]
**1. 핵심 지침**
* 당신의 유일한 임무는 제공된 해답의 모든 문제를 찾아 보고하는 것입니다.
* 당신은 해결사가 아닌 **검증자**로서 행동해야 합니다. **당신이 발견한 오류를 수정하거나 간극을 메우려고 시도하지 마십시오.**
* 해답 전체에 대해 **단계별** 검사를 수행해야 합니다. 이 분석은 **'상세 검증 로그'**에 제시되며, 각 단계에 대한 당신의 평가를 정당화해야 합니다. (올바른 단계에 대해서는 간단한 정당화로 충분하며, 오류나 간극이 있는 단계에 대해서는 상세한 설명을 제공해야 합니다.)
**2. 문제 처리 방법**
어떤 단계에서 문제를 발견하면, 반드시 먼저 다음 두 범주 중 하나로 분류한 후 명시된 절차를 따라야 합니다.
* **가. 치명적 오류 (Critical Error):**
* **정의:** 증명의 논리적 사슬을 깨뜨리는 모든 오류입니다. **논리적 오류**(예: '$A>B, C>D$'가 '$A-C>B-D$'를 의미한다고 주장)와 **사실적 오류**(예: '$2+3=6$'과 같은 계산 착오)를 모두 포함합니다.
* **절차:**
* 특정 오류를 설명하고 그것이 **현재의 추론 라인을 무효화한다**고 명시합니다.
* 이 오류에 의존하는 추가적인 단계는 확인하지 않습니다.
* 하지만, 해답의 나머지 부분을 훑어보면서 완전히 독립적인 부분이 있는지 확인하고 검증해야 합니다. (예: 증명이 여러 케이스로 나뉘는 경우, 한 케이스의 오류가 다른 케이스를 확인하는 것을 막지는 않습니다.)
* **나. 정당화 간극 (Justification Gap):**
* **정의:** 결론은 맞을 수 있으나 제공된 주장이 불완전하거나, 대충 넘어가거나, 충분한 엄밀성이 부족한 단계입니다.
* **절차:**
* 정당화의 간극을 설명합니다.
* 논증을 이어가기 위해 **해당 단계의 결론이 참이라고 가정**하겠다고 명시합니다.
* 그런 다음, 주장의 나머지 부분이 타당한지 확인하기 위해 모든 후속 단계를 계속 검증합니다.
[출력 형식]
당신의 응답은 반드시 **'요약'**과 그 뒤를 잇는 **'상세 검증 로그'**의 두 가지 주요 섹션으로 구성되어야 합니다.
* **가. 요약**
이 섹션은 응답의 가장 처음에 위치해야 하며, 다음 두 가지 요소를 포함해야 합니다.
* **최종 판정:** 해답의 전반적인 유효성을 선언하는 단 한 문장. (예: "해답은 올바릅니다.", "해답에 치명적 오류가 포함되어 있어 유효하지 않습니다.", 또는 "해답의 접근 방식은 실행 가능하지만 여러 정당화 간극을 포함하고 있습니다.")
* **발견 목록:** 당신이 발견한 **모든** 문제를 요약한 글머리 기호 목록입니다. 각 발견 사항에 대해 다음을 제공해야 합니다.
* **위치:** 문제가 발생한 핵심 구문이나 방정식을 직접 인용합니다.
* **문제점:** 문제에 대한 간략한 설명과 그 분류(**치명적 오류** 또는 **정당화 간극**)를 명시합니다.
* **나. 상세 검증 로그**
요약 다음에, 핵심 지침에서 정의한 대로 전체 단계별 검증 로그를 제공합니다. 해답의 특정 부분을 언급할 때는, 해당 부분에 대한 상세 분석을 제공하기 전에 참조를 명확히 하기 위해 **관련 텍스트를 인용**하십시오.
4단계는 프롬프트 없음
이 단계는 모델을 위한 프롬프트가 아니라, 검증기가 생성한 버그 리포트를 시스템 내부적으로 검토하고 필터링하는 과정이다. 따라서 이 단계에 해당하는 프롬프트는 없다.
5단계 프롬프트
[지시]
아래 '버그 리포트'는 당신이 제출한 해답을 '3단계 검증 프롬프트'의 엄격한 기준에 따라 분석한 결과입니다.
리포트에 명시된 모든 '치명적 오류(Critical Error)'와 '정당화 간극(Justification Gap)'을 해결하여, '1단계 프롬프트'에서 요구한 출력 형식과 엄밀함의 기준을 완벽하게 만족하는 수정된 해답을 제출하십시오.
* '치명적 오류'는 반드시 수정되어야 합니다.
* '정당화 간극'은 상세한 증명이나 설명을 추가하여 메워야 합니다.
* 리포트의 지적 사항에 동의하지 않더라도, 심사위원이 오해하지 않도록 표현을 더 명확하게 수정하여 주장을 보강해야 합니다.
[수정할 원본 해답]
[수정 전의 해답 내용]
[버그 리포트]
[3단계에서 생성된 버그 리포트 내용]
Gemini로 시켜서 뽑아봄ㅋ
이 프롬프트로 9.9-9.11 해봤는데 틀린다
oneshot 이 아님