수학 연구를 위한 로컬 Lean 4 증명 자동화 환경 세팅 가이드
TuBrief 편집팀
2026년 8월 10일
0
컴퓨터/소프트웨어원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
대규모 수학 문제 해결 시스템을 연구실 데스크톱에 올릴 때 거대 아키텍처 개요는 아무런 도움이 되지 않습니다. 로컬 환경에서 Lean 4 파이프라인을 직접 세팅하고 장기 실행형 멀티 에이전트를 연동해 수학 탐색 작업을 완전히 자동화하는 실무 단계를 정리합니다.
개발 환경에서 Lean 4를 수동으로 설치하고 VS Code 언어 서버 프로토콜에 의존하면 대규모 AI 검증 시 심각한 병목을 유발합니다. Mathlib4 사전 컴파일 바이너리가 캐싱되지 않으면 로컬 CPU가 수십만 개의 정리를 직접 재컴파일하므로 환경 구축에만 180분이 넘게 소요됩니다. 초당 수십 회 이상 코드 검증 요청을 처리하려면 FastAPI 기반의 Kimina Lean Server 파이프라인으로 전환해야 합니다.
장기 실행형 수학 문제 검증 작업 세팅 시간을 180분에서 20분 이내로 단축하는 구체적인 구축 절차는 다음과 같습니다.
import Lake
open Lake DSL
package «proof_automation» {
}
require mathlib from git
"https://github.com/leanprover-community/mathlib4.git" @ "v4.15.0"
require repl from git
"https://github.com/leanprover-community/repl.git" @ "main"
@[default_target]
lean_lib «ProofAutomation» {
}
lake update
lake exe cache get
lake build
이 작업을 완료하면 사전 컴파일 캐시를 즉시 수신하여 20분 내에 완전한 로컬 REPL 실행 환경이 준비되며, 초당 최대 50개의 증명 단락을 동시에 검증할 수 있습니다.
단일 대형 언어 모델 프롬프트 호출로 복잡한 정리 증명을 시도하면 컨텍스트가 길어짐에 따라 하위 목표를 상실하거나 무한 루프에 진입합니다. 문제 분할을 담당하는 루트 에이전트와 격리된 하위 전술을 실행하는 서브 에이전트로 역할을 분리한 계층적 방향성 비순환 그래프 아키텍처를 적용해야 합니다.
에이전트 통신 규격으로 JSON 포맷을 채택하고 스코프를 격리하여 프롬프트를 전달하면 API 토큰 소비량을 40퍼센트 이상 절감할 수 있습니다. 서브 에이전트 호출 시 사용하는 JSON 스키마는 다음과 같습니다.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "SubAgentProofTask",
"type": "object",
"properties": {
"task_id": { "type": "string" },
"target_hypothesis": { "type": "string" },
"current_goal_state": { "type": "string" },
"previous_failure_logs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"attempted_tactic": { "type": "string" },
"error_message": { "type": "string" }
}
}
},
"sub_goal_target": { "type": "string" }
},
"required": ["task_id", "target_hypothesis", "current_goal_state", "sub_goal_target"]
}
에이전트의 환각으로 인한 무한 루프를 차단하고 안정적인 계층 구조를 가동하는 단계별 제어 순서는 다음과 같습니다.
수시간 동안 지속되는 증명 탐색 작업에서 매 요청마다 전체 대화 이력을 백엔드 API로 전송하면 토큰 사용량이 폭증합니다. LeanExplore 및 Vector DB 기반의 캐싱 레이어를 구축하고, 이미 검증된 중간 Tactic 결과를 보조 정리 형태로 메모리 그래프에 요약 반영함으로써 입력 토큰 오버헤드를 제어해야 합니다.
백엔드 서버에는 REPL 세션의 환경 식별자를 등록하여 프롬프트 상단에서 반복되는 import Mathlib 구문을 제거합니다. 이것만으로 입력 토큰을 50퍼센트에서 70퍼센트까지 즉시 축소할 수 있습니다. 예산 한도 초과로 인한 API 비용 폭증을 방지하기 위한 제어 파이프라인 구현 절차는 다음과 같습니다.
import sys
import json
import logging
class CostMonitor:
def __init__(self, max_budget_usd: float, token_cost_per_1k: float):
self.max_budget = max_budget_usd
self.cost_per_1k = token_cost_per_1k
self.total_tokens_used = 0
self.current_cost = 0.0
def track_usage(self, prompt_tokens: int, completion_tokens: int):
tokens_in_call = prompt_tokens + completion_tokens
self.total_tokens_used += tokens_in_call
self.current_cost += (tokens_in_call / 1000.0) * self.cost_per_1k
logging.info(f"[TELEMETRY] Used Tokens: {tokens_in_call} | Total Cost: ${self.current_cost:.4f}")
if self.current_cost >= self.max_budget:
self.trigger_safe_pause()
def trigger_safe_pause(self):
logging.warning("[WARNING] Target budget threshold reached. Pausing workflow...")
with open(".leanflow/workflow-state/checkpoint.json", "w") as f:
json.dump({"status": "PAUSED_BUDGET_EXCEEDED", "tokens": self.total_tokens_used}, f)
sys.exit(0)
AI 에이전트가 코드를 생성한 후 수동으로 오류를 검토하는 방식은 연구 전체의 치명적인 병목입니다. Lean REPL 컴파일러가 출력하는 구문 오류, 타입 불일치, 미해결 목표 등의 JSON 파싱 데이터를 에이전트의 피드백 입력으로 직접 연결해야 합니다.
수동 검토를 대체하고 연구 속도를 2배 이상 향상시키는 자동 수정 제어 루프의 작동 방식은 다음과 같습니다.
def parse_lean_repl_output(repl_response_json: str):
data = json.loads(repl_response_json)
parsed_diagnostics = {
"has_error": False,
"errors": [],
"open_sorries": []
}
if "messages" in data:
for msg in data["messages"]:
if msg.get("severity") == "error":
parsed_diagnostics["has_error"] = True
parsed_diagnostics["errors"].append({
"line": msg["pos"]["line"],
"column": msg["pos"]["column"],
"data": msg["data"]
})
if "sorries" in data:
for sorry in data["sorries"]:
parsed_diagnostics["open_sorries"].append({
"goal": sorry["goal"],
"proof_state": sorry["proofState"],
"line": sorry["pos"]["line"]
})
return parsed_diagnostics
완전히 검증된 Clean 코드는 doc-gen4 및 paperproof 변환 도구를 통과하여 연구 논문에 즉시 삽입 가능한 논리 그래프 시각화 및 LaTeX 문맥으로 자동으로 생성됩니다.
lake build LeanAutomation:docs
lean-graph extract --input Main.lean --output proof_dependency.json