一键导入
theorem-search
Use TheoremSearch to find, verify, and cite mathematical theorem statements, named results, proof routes, and literature dependencies.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use TheoremSearch to find, verify, and cite mathematical theorem statements, named results, proof routes, and literature dependencies.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when creating new skills, editing existing skills, or verifying skills work before deployment
Use when creating new subagents, editing existing subagents, or verifying subagents work before deployment
Use when choosing, editing, or overriding EvE driver settings for codex_smoke, codex_max, or interactive/debug runs.
Use when an Eve agent is behaving wrong (stuck, gaming the score, bad reasoning) and you need to read its own rollout to find out why
Use when implementing a sanity check subagent for the phase 2 optimization in Eve loop.
Use when implementing a subagent.
| name | theorem-search |
| description | Use TheoremSearch to find, verify, and cite mathematical theorem statements, named results, proof routes, and literature dependencies. |
Use this skill when a proof needs:
TheoremSearch is supporting evidence only. It does not prove that a dependency is valid for the current proof. Always compare the returned statement against the exact proof obligation.
Official docs:
https://www.theoremsearch.com/docshttps://api.theoremsearch.comPOST https://api.theoremsearch.com/searchhttps://api.theoremsearch.com/mcpDefault to the REST API in this workspace: it is directly callable with curl,
requires no agent-runtime configuration, and returns the search payload without
protocol wrapping. Use MCP when the current agent runtime already has the
TheoremSearch MCP server configured and tested.
TheoremSearch indexes theorem-level statements, not just whole papers. A query is embedded, matched against theorem slogans, and reranked. The best hit may be:
Therefore, trust body and paper metadata more than slogan, name, or rank.
Use natural language, LaTeX, or a mix. Start broad enough to find the theorem, then narrow with filters or a sharper query.
curl -sS https://api.theoremsearch.com/search \
-H 'Content-Type: application/json' \
-d '{
"query": "every projective module over a local ring is free",
"n_results": 5
}'
Expected top-level shape:
{
"theorems": [
{
"slogan_id": 7725846,
"theorem_id": 22812802,
"name": "Theorem 5.11",
"body": "If $P$ is a projective module over a local ring $R$, then $P$ is free.",
"slogan": "A projective module over a local ring is free.",
"theorem_type": "theorem",
"label": null,
"link": null,
"paper": {
"paper_id": "1011.0038v1",
"source": "arXiv",
"title": "Faithfully flat descent for projectivity of modules",
"authors": ["Alexander Perry"],
"link": "http://arxiv.org/abs/1011.0038v1",
"primary_category": "math.AC",
"categories": ["math.AC"],
"citations": 0,
"year": 2010,
"journal_published": false
},
"similarity": 0.9086642212279158,
"score": 0.9086642212279158,
"has_metadata": true
}
]
}
Required:
query: natural-language or LaTeX description of the result.Common optional fields:
n_results: number of theorem results to return. Default is 10.sources: source filter. Officially documented examples include arXiv,
Stacks Project, ProofWiki, CRing Project, HoTT Book,
Open Logic Project, and An Infinitely Large Napkin. The live API may
expose additional sources over time.authors: partial author-name filters.types: theorem-like object filters, for example theorem, lemma,
proposition, corollary, definition, or remark. Results may preserve
source casing inconsistently, so if a type filter misses, retry without it.tags: subject tags, especially arXiv categories such as math.AG,
math.AC, math.NT, math.LO.paper_filter: substring filter over paper titles.year_range: inclusive [min_year, max_year].citation_range: inclusive [min_citations, max_citations].include_unknown_citations: when using citation_range, keep papers with no
citation data. Default is true.citation_weight: blend citation count into ranking. Use 0.0 for pure
semantic search. Increase only when standard/high-citation sources matter.prompt: optional instruction prepended before embedding. Use sparingly.db_top_k: candidate-pool size before reranking. Defaults to 2 * n_results.
Increase when recall matters more than latency.Filtered example:
curl -sS https://api.theoremsearch.com/search \
-H 'Content-Type: application/json' \
-d '{
"query": "smooth Deligne Mumford stack has a dense open subscheme",
"n_results": 8,
"sources": ["Stacks Project", "arXiv"],
"tags": ["math.AG"],
"year_range": [2000, 2026],
"include_unknown_citations": true,
"db_top_k": 40
}'
n_results between 5 and 10.body for every plausible hit. Ignore hits whose assumptions do not
match, even if the slogan looks perfect.sources, tags, authors, paper_filter, or types.body, paper title, or named theorem.Good query patterns:
"finite etale morphism is open and closed""normal noetherian domain height one localization discrete valuation ring""Nakayama lemma finitely generated module local ring""EGA flat morphism openness theorem"Poor query patterns:
"prove this" or "main theorem""X is dense in U"For each plausible theorem, inspect:
body: exact theorem statement. This is the primary evidence.name: local theorem label, for example Theorem 5.11.theorem_type: theorem, lemma, proposition, corollary, definition, remark.slogan: generated natural-language summary. Useful for search, not proof.link: statement-level link if available.paper.source: corpus/source, for example arXiv or Stacks Project.paper.title: paper or project title.paper.authors: authors, when available.paper.link: paper-level URL, often arXiv.paper.primary_category and paper.categories: subject categories.paper.year, paper.journal_ref, paper.journal_published.paper.citations: citation count if known.similarity: semantic similarity before citation weighting.score: final ranking score after optional weighting.has_metadata: whether richer metadata was available.Do not treat score thresholds as correctness thresholds. A low-scoring exact statement can be useful; a high-scoring result can still have wrong hypotheses.
Before using a result in a proof, check:
If a dependency is only close, write it as unresolved or as a search lead. Do not silently strengthen or weaken theorem statements.
When a theorem is used, record enough information for audit:
Dependency: projective modules over local rings are free
TheoremSearch hit: Theorem 5.11
Statement: If $P$ is a projective module over a local ring $R$, then $P$ is free.
Source: arXiv, "Faithfully flat descent for projectivity of modules"
Authors: Alexander Perry
Year: 2010
Link: http://arxiv.org/abs/1011.0038v1
Score: 0.9086642212279158
Assessment: exact match for the required algebra lemma.
If the proof only needs a standard result and the search hit is a pointer to a secondary paper, prefer citing the classical theorem name in the proof while keeping the search provenance in notes.
Use paper search when you know a title fragment or arXiv ID and need a canonical paper identifier.
curl -sS 'https://api.theoremsearch.com/paper-search?q=derived%20categories&limit=5'
Expected shape:
{
"papers": [
{
"paper_id": "f23156d8-433b-4f66-8b7b-8b58faabea6d",
"title": "A Course on Derived Categories",
"external_id": "1206.6632",
"source": "arXiv"
}
]
}
This endpoint is autocomplete-like. It is useful for locating a paper but does not replace theorem-level search.
The public website documents dependency graph exploration. The live OpenAPI schema exposes these graph/detail paths:
GET /graph/paper?external_id=<id>&sources=<source>GET /graph/paper/{paper_id}GET /graph/statement/{statement_id}GET /graph/embedding?query=<query>GET /graph/pagerank?query=<query>GET /statement/{statement_id}GET /paper/{paper_id}POST /statements with {"ids": [...]}POST /papers with {"ids": [...]}Use these only as auxiliary tools after search has identified a likely paper or
statement. Availability can vary by corpus and deployment; a 404 or empty
graph does not invalidate a theorem search hit.
Paper graph example:
curl -sS 'https://api.theoremsearch.com/graph/paper?external_id=1011.0038&sources=arXiv&mode=minimal'
Statement graph example:
curl -sS 'https://api.theoremsearch.com/graph/statement/<statement_id>?direction=src&formality=informal&mode=full'
Use graph output to discover:
Do not cite graph edges as mathematical facts unless the corresponding statements are inspected.
TheoremSearch also exposes an MCP server at:
https://api.theoremsearch.com/mcp
The MCP server has a single theorem_search tool with the same parameters as
POST /search. MCP is useful when the agent runtime is already configured to
call MCP tools; REST is simpler for shell-based proof work.
Example MCP JSON-RPC request, for reference only:
curl -sS -X POST https://api.theoremsearch.com/mcp \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "1",
"method": "tools/call",
"params": {
"name": "theorem_search",
"arguments": {
"query": "every projective module over a local ring is free",
"n_results": 5
}
}
}'
If search fails:
TheoremSearch unavailable and include the
endpoint and error text.unresolved, summarize the closest hit, and explain
the mismatch./search; graph is auxiliary.Never fabricate:
When reporting a search to a parent solver, use one of these concise outcomes:
TheoremSearch: RESOLVED
Need: <proof obligation>
Result: <name/type>
Statement: <exact body>
Source: <source>, <paper title>, <authors>, <year>, <link>
Score: <score>
Use: <why the hypotheses and conclusion match>
TheoremSearch: PARTIAL
Need: <proof obligation>
Closest result: <name/type and exact body>
Source: <metadata>
Mismatch: <specific missing/extra hypothesis or wrong conclusion>
Next query: <sharper query or filter>
TheoremSearch: UNRESOLVED
Need: <proof obligation>
Searches tried: <queries/filters>
Reason: <empty, low relevance, inconsistent, unavailable>