Lean 4 Skills — плагин
Плагин для доказательства теорем в Lean 4: поиск по mathlib, циклы заполнения sorry, проверка аксиом и страховочные хуки
- 486 ★ репозитория
- Последний коммит
- MIT
Расширенный доступ
Почему такой уровень
- Агент правит `.lean`-файлы, запускает сборку и вспомогательные скрипты, а `checkpoint` делает коммиты в вашем репозитории.
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add plugins/lean-4-skillsОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемРасширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.
- Агент правит `.lean`-файлы, запускает сборку и вспомогательные скрипты, а `checkpoint` делает коммиты в вашем репозитории.
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Lean 4 Skills — плагин для Claude Code и Codex, который ведет агента через работу с доказательствами на Lean 4. Один основной скилл `lean4` включается при правке `.lean`-файлов, ошибках `lake build`, поиске лемм в mathlib и формализации математики. Он опирается на языковой сервер (LSP): сначала ищет готовый факт в mathlib, потом пишет тактики и после каждого шага собирает проект. В плагине двенадцать рабочих процессов: `draft`, `formalize`, `autoformalize`, `prove`, `autoprove`, `disprove`, `checkpoint`, `review`, `refactor`, `golf`, `learn` и `diagnose`. В Claude Code они вызываются как `/lean4:prove` и так далее. Четыре субагента закрывают заполнение пропусков `sorry`, починку ошибок, укорачивание доказательств и устранение лишних аксиом. Утверждения теорем и подписи агент оставляет как есть, пока вы не попросите иное. Режим `autoprove` работает с явными лимитами циклов и времени.
Для кого. Математикам и разработчикам, которые формализуют теоремы в Lean 4 с mathlib и поручают агенту заполнять пропуски в доказательствах и разбирать ошибки сборки.
Подходит, если
- В файле осталось с десяток `sorry`, и агент должен заполнить их по циклам с проверкой сборки после каждого шага.
- Доказательство работает, но длинное, и `golf` укорачивает его без потери смысла.
- Нужно проверить, что итоговая теорема опирается только на стандартные аксиомы.
- Утверждение подозрительно, и `disprove` ищет контрпример с проверенным опровержением.
Не подходит, если
- Доказательства пишутся в Coq, Agda или Isabelle: описание скилла прямо исключает другие системы.
- Утверждения теорем нужно переписывать по ходу: для этого предназначены `formalize` и `autoformalize`, а `prove` держит заголовки неизменными.
- Проект еще ни разу не собирался: выполните `lake build` до подключения агента, иначе проверка через LSP упирается в таймауты.
Пример запроса к агенту
Запусти /lean4:prove на Foo.lean, заполни sorry со строки 42 и покажи, какие аксиомы использует итоговая теорема.Ограничения
Установка в Cursor, Windsurf, Gemini CLI и других агентах описана, но автоматическими тестами не проверяется: они покрывают только Claude Code и Codex. Установка через менеджер скиллов дает инструкции и справочники без вспомогательных скриптов, хуков и команд `/lean4:*`: для них нужен плагин или портативный клон. В Windows для Claude Code нужен Git Bash или расширение для VS Code. Живой разбор целей доказательства дает отдельный сервер lean-lsp-mcp: без него агент опирается на полные сборки, и цикл идет заметно медленнее.
Как отключить. В Claude Code выполните `/plugin uninstall lean4`, для Codex — удалите плагин через `codex plugin`. Хуки и вспомогательные скрипты исчезают вместе с плагином, а ваши `.lean`-файлы остаются как есть.
Частые вопросы
Как поставить плагин в Claude Code?
Выполните `/plugin marketplace add cameronfreer/lean4-skills`, затем `/plugin install lean4`. Скилл включается сам при работе с `.lean`-файлами, а проверить установку можно командой `/lean4:diagnose`.
Как поставить плагин в Codex?
Выполните `codex plugin marketplace add cameronfreer/lean4-skills --ref main`, затем `codex plugin add lean4@lean4-skills`. Команд `/lean4:*` в Codex нет, скилл вызывается через `$lean4`.
Чем отличаются `prove` и `autoprove`?
`prove` идет цикл за циклом вместе с вами и останавливается на контрольных точках. `autoprove` крутит циклы сам, пока не упрется в заданные лимиты числа циклов и времени.
Нужен ли отдельный сервер lean-lsp-mcp?
Нет, плагин работает и без него, но с ним проверка целей и поиск по mathlib идут быстрее, чем через повторные полные сборки.
Что делает `checkpoint`?
Фиксирует точку: собирает файл и проект, проверяет аксиомы и делает коммит. `review` в отличие от него только читает код и ничего не меняет.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
ПлагиныСкиллы Lean 4 для Codex и Claude Code: от проекта до сверки формулировки с исходной теоремой, 12 процессов
MCP-сервер к языковому серверу Lean 4: агент читает цели доказательства, ошибки и ищет теоремы прямо в проекте
Millennium Harness проверяет доказательства на Lean 4 и Dafny и отсекает подделки, пока агент не докажет теорему без лазеек.
Дисциплина доказательств для Claude Code: любое утверждение требует артефакта, а тесты перед словом «готово» запускаются заново.
Плагин Claude Code для разработки по большой спецификации: требования с доказательствами, ходячий скелет и спринты с аудитом
Плагин Claude Code с 17 скиллами: размер задачи, дизайн-ревью, TDD, свежие субагенты и PR после трех решений человека.
Коротко о README
Общий цикл для доказательных процессов — план, работа, контрольная точка, обзор, повторный план и продолжение либо остановка. Если агент застрял, цикл заставляет его пересмотреть план. Правки без команды получают один ограниченный проход, после которого работа передается нужному процессу.
Бейдж для README
Исходный SKILL.md
--- name: lean4 description: "Use when editing .lean files, debugging Lean 4 builds (type mismatch, sorry, failed to synthesize instance, axiom warnings, lake build errors), searching mathlib for lemmas, formalizing mathematics in Lean, finding a counterexample to, refuting, or disproving a Lean statement, or learning Lean 4 concepts. Also trigger when the user asks for help with Lean 4, mathlib, or lakefile. Do NOT trigger for Coq/Rocq, Agda, Isabelle, HOL4, Mizar, Idris, Megalodon, or other non-Lean theorem provers." license: MIT --- # Lean 4 Theorem Proving Use this skill whenever you're editing Lean 4 proofs, debugging Lean builds, formalizing mathematics in Lean, or learning Lean 4 concepts. It prioritizes LSP-based inspection and mathlib search, with scripted primitives for sorry analysis, axiom checking, and error parsing. ## Core Principles **Search before prove.** Many mathematical facts already exist in mathlib. Search exhaustively before writing tactics. **Build incrementally.** Lean's type checker is your test suite—if it compiles with no sorries and standard axioms only, the proof is sound. **Respect scope.** Follow the user's preference: fill one sorry, its transitive dependencies, all sorries in a file, or everything. Ask if unclear. **Use 100-character line width for Lean files.** Do not wrap lines at 80 characters — Lean and mathlib convention is 100. If a line fits within 100 characters, keep it on one line. See [mathlib-style](references/mathlib-style.md) for breaking strategies when lines exceed 100. **Mathlib style quick check.** For ordinary mathematical lambdas, write `fun x ↦ ...` (`\mapsto`), not `fun x => ...`. Use `=>` for `match`/`do` branches and metaprogramming callback idioms. Prefer `show P by tac` for tactic proofs; use `show P from term` only for term proofs. See [mathlib-style](references/mathlib-style.md). **Preserve statements and signatures — they're the file's contract.** Theorem/lemma statements and type signatures are off-limits unless the user explicitly requests changes; changing them can break callers or alter the theorem being proved. If a proof seems to require changing a statement or adding a custom axiom, stop and discuss first because that changes the contract or the proof's trust basis. Exception: within synthesis wrappers (`/lean4:formalize`, `/lean4:autoformalize`), session-generated declarations may be redrafted under the outer-loop statement-safety rules; see cycle-engine.md. **Docstrings are scoped by workflow.** Existing docstrings are API. The default is **Rule A** — any workflow that mutates existing declarations follows it unless the user explicitly requests docstring changes: | Mode | May do | Boundary | |------|--------|----------| | **A — editing existing declarations** (e.g. `/lean4:prove`, `sorry-filler-deep`, golf, refactor, any agent editing existing decls) | adjust inline comments in proof bodies | never rewrite an existing docstring — explicit user request only | | **B — review** (`/lean4:review`) | flag weak/missing docstrings and propose replacement text in the report | read-only — never mutates files | | **C — new-file / new-decl generation** (`/lean4:draft`, `/lean4:formalize`, `/lean4:autoformalize`) | emit module/declaration docstrings on files or declarations it newly creates | existing docstrings stay under Rule A | Per-command policy lives in each command's doc. The docstring split applies in every project; when the mathlib Template Gate selects the mathlib header, Rule C fills its module-docstring slot — Rule C neither selects nor redefines the [template](references/mathlib-style.md#1-file-header-copyright-module-imports-critical). ## Commands | Command | Purpose | |---------|---------| | `/lean4:draft` | Draft Lean declaration skeletons from informal claims | | `/lean4:formalize` | Interactive formalization — drafting plus guided proving | | `/lean4:autoformalize` | Autonomous end-to-end formalization from informal sources | | `/lean4:prove` | Guided cycle-by-cycle theorem proving with explicit checkpoints | | `/lean4:autoprove` | Autonomous multi-cycle theorem proving with explicit stop budgets | | `/lean4:disprove` | Guided counterexample search with certified refutation | | `/lean4:checkpoint` | Save progress with a safe commit checkpoint |