Panduan Pengaturan Lingkungan Otomatisasi Pembuktian Lean 4 Lokal untuk Penelitian Matematika
TuBrief 편집팀
2026년 8월 10일
0
Computing/Software원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
커뮤니티의 다른 글
댓글 (0)
Log in to leave a comment
아직 작성된 글이 없습니다
원본 영상을 바탕으로 AI의 도움을 받아 작성했습니다. 원본 영상이 기준입니다.
Log in to leave a comment
아직 작성된 글이 없습니다
Saat memasang sistem pemecahan masalah matematika skala besar di desktop laboratorium, ringkasan arsitektur raksasa sama sekali tidak membantu. Bagian ini merangkum langkah-langkah praktis untuk menyiapkan pipeline Lean 4 secara langsung di lingkungan lokal dan menghubungkan agen multi-eksekusi jangka panjang untuk mengotomatiskan sepenuhnya tugas eksplorasi matematika.
Jika Anda menginstal Lean 4 secara manual di lingkungan pengembangan dan mengandalkan protokol server bahasa VS Code, hal tersebut akan menyebabkan hambatan (bottleneck) parah selama verifikasi AI skala besar. Jika binari prakompilasi Mathlib4 tidak di-cache, CPU lokal akan mengompilasi ulang ratusan ribu teorema secara manual, sehingga pengaturan lingkungan saja memerlukan waktu lebih dari 180 menit. Untuk memproses permintaan verifikasi kode puluhan kali atau lebih per detik, Anda harus beralih ke pipeline Kimina Lean Server berbasis FastAPI.
Berikut adalah prosedur pengaturan spesifik untuk memangkas waktu pengaturan verifikasi masalah matematika berdurasi panjang dari 180 menit menjadi kurang dari 20 menit:
`lean
import Lake
open Lake DSL
package «proof_automation» {
}
equire 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» {
}
`
`bash
lake update
lake exe cache get
lake build
`
Setelah menyelesaikan tugas ini, Anda akan langsung menerima cache prakompilasi sehingga lingkungan eksekusi REPL lokal yang lengkap siap dalam waktu 20 menit, dan Anda dapat memverifikasi hingga 50 paragraf pembuktian secara bersamaan per detik.
Jika Anda mencoba membuktikan teorema kompleks dengan panggilan prompt Large Language Model tunggal, Anda akan kehilangan sub-tujuan atau masuk ke dalam perulangan tak terbatas seiring dengan semakin panjangnya konteks. Anda harus menerapkan arsitektur Directed Acyclic Graph (DAG) hierarkis yang membagi peran menjadi agen root yang bertanggung jawab atas dekomposisi masalah dan sub-agen yang mengeksekusi taktik bawahan yang terisolasi.
Jika Anda mengadopsi format JSON sebagai standar komunikasi agen dan mengisolasi cakupan saat meneruskan prompt, Anda dapat mengurangi konsumsi token API hingga 40 persen atau lebih. Skema JSON yang digunakan saat memanggil sub-agen adalah sebagai berikut:
`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"]
}
`
Urutan kontrol langkah demi langkah untuk memblokir perulangan tak terbatas yang disebabkan oleh halusinasi agen dan menjalankan struktur hierarkis yang stabil adalah sebagai berikut:
Dalam tugas eksplorasi pembuktian yang berlangsung selama berjam-jam, pengiriman seluruh riwayat percakapan ke API backend pada setiap permintaan akan menyebabkan penggunaan token meroket. Anda harus membangun lapisan cache berbasis LeanExplore dan Vector DB, serta mengontrol overhead token input dengan merangkum hasil Tactic menengah yang telah diverifikasi ke dalam grafik memori dalam bentuk teorema bantu (lemma).
Daftarkan pengenal lingkungan (environment identifier) sesi REPL di server backend untuk menghapus sintaks import Mathlib yang berulang di bagian atas prompt. Hanya dengan melakukan ini, token input dapat langsung dikurangi dari 50 persen menjadi 70 persen. Prosedur implementasi pipeline kontrol untuk mencegah lonjakan biaya API akibat melebihi batas anggaran adalah sebagai berikut:
`python
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)
`
Metode di mana agen AI meninjau kesalahan secara manual setelah membuat kode adalah hambatan fatal bagi keseluruhan penelitian. Data parsing JSON seperti kesalahan sintaksis, ketidakcocokan tipe (type mismatch), dan target yang belum terselesaikan yang dikeluarkan oleh kompiler Lean REPL harus dihubungkan langsung ke input umpan balik agen.
Cara kerja perulangan kontrol koreksi otomatis yang menggantikan tinjauan manual dan meningkatkan kecepatan penelitian lebih dari 2 kali lipat adalah sebagai berikut:
`python
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 C"].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
`
Kode Clean yang telah diverifikasi sepenuhnya akan melewati alat konversi doc-gen4 dan paperproof untuk otomatis menghasilkan visualisasi grafik logis dan konteks LaTeX yang dapat langsung disisipkan ke dalam makalah penelitian.
`bash
lake build LeanAutomation:docs
lean-graph extract --input Main.lean --output proof_dependency.json
`