Lean 4 Skills — плагин

Плагин для доказательства теорем в Lean 4: поиск по mathlib, циклы заполнения sorry, проверка аксиом и страховочные хуки

  • 486 ★ репозитория
  • Последний коммит
  • MIT
Плагин

Расширенный доступ

Почему такой уровень

  • Агент правит `.lean`-файлы, запускает сборку и вспомогательные скрипты, а `checkpoint` делает коммиты в вашем репозитории.
Все причины и проверки

cameronfreer/lean4-skills

Установка

В терминале, через 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 процессов

СкиллМинимальный доступ70Звезды репозитория

MCP-сервер к языковому серверу Lean 4: агент читает цели доказательства, ошибки и ищет теоремы прямо в проекте

MCP-серверРасширенный доступ550Звезды репозитория

Millennium Harness проверяет доказательства на Lean 4 и Dafny и отсекает подделки, пока агент не докажет теорему без лазеек.

CLIРасширенный доступ2,9 тыс.Звезды репозитория

Дисциплина доказательств для Claude Code: любое утверждение требует артефакта, а тесты перед словом «готово» запускаются заново.

ПлагинРасширенный доступ97Звезды репозитория

Плагин Claude Code для разработки по большой спецификации: требования с доказательствами, ходячий скелет и спринты с аудитом

ПлагинРасширенный доступ183Звезды репозитория

Плагин Claude Code с 17 скиллами: размер задачи, дизайн-ревью, TDD, свежие субагенты и PR после трех решений человека.

ПлагинРасширенный доступ97Звезды репозитория

Коротко о 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 |

Сообщить о проблеме