Leanинструмент интерактивного доказательства теорем. Основан на исчислении конструкций с индуктивными типами. Имеет открытый исходный код, размещенный на GitHub. Проект Lean был запущен Леонардо де Моурой в Microsoft Research в 2013 году[1].

Lean
Логотип программы Lean
ТипProof assistant
РазработчикMicrosoft Research
Написана наC++
Операционная система Cross-platform
Языки интерфейсаанглийский
Первый выпуск2013; 11 лет назад (2013)
Аппаратная платформа кроссплатформенность
Последняя версияv3.4.2 (18 января 2019; 5 лет назад (2019-01-18))
Тестовая версияv4.0.0-m5 (7 августа 2022; 20 месяцев назад (2022-08-07))
Репозиторийgithub.com/leanprover/le…
github.com/leanprover/le…
ЛицензияApache License 2.0
Сайтleanprover.github.io

Lean имеет интерфейс, который отличает его от других интерактивных средств доказательства теорем. Lean может быть скомпилирован на JavaScript и доступен в веб-браузере. Он имеет встроенную поддержку символов Юникода. (Они могут быть набраны с использованием последовательностей, подобных применяемым в системе LaTeX, таких как "\times" для "×".) Lean также имеет обширную поддержку метапрограммирования.

Применение

Lean привлек внимание математиков Томаса Хейлза и Кевина Базарда.Хейлз использует его для своего проекта «formalabstracts»[2].Базард использует его для проекта Xena[3]Одна из целей проекта Xena — переписать все теоремы и доказательства в учебной программе по математике для студентов Имперского колледжа Лондона.

В рамках проекта Xena формализовано сложное доказательство из области condensed mathematics[en], развиваемой Петером Шольце[4][5][6].

Примеры кода

Определение натуральных чисел:

inductive nat : Type| zero : nat| succ : nat  nat

Определение операции сложения для натуральных чисел:

definition add : nat  nat  nat| n zero     := n| n (succ m) := succ(add n m)

Пример простого доказательства.

theorem and_swap : p  q  q  p :=    assume h1 : p  q,    h1.right, h1.left

Это же доказательство:

theorem and_swap (p q : Prop) : p  q  q  p :=begin    assume h : (p  q), -- assume p ∧ q is true    cases h, -- extract the individual propositions from the conjunction    split, -- split the goal conjunction into two cases: prove p and prove q separately    repeat { assumption }end

См. также

Примечания

Ссылки

🔥 Top keywords: Заглавная страницаЯндексДуров, Павел ВалерьевичСлужебная:ПоискYouTubeЛунин, Андрей АлексеевичПодносова, Ирина ЛеонидовнаВКонтактеФоллаут (телесериал)WildberriesTelegramРеал Мадрид (футбольный клуб)Богуславская, Зоя БорисовнаДуров, Валерий СемёновичРоссияXVideosСписок умерших в 2024 годуЧикатило, Андрей РомановичFallout (серия игр)Список игроков НХЛ, забросивших 500 и более шайбПопков, Михаил ВикторовичOzon17 апреляИльин, Иван АлександровичMail.ruСёгун (мини-сериал, 2024)Слово пацана. Кровь на асфальтеПутин, Владимир ВладимировичЛига чемпионов УЕФАГагарина, Елена ЮрьевнаБишимбаев, Куандык ВалихановичЛига чемпионов УЕФА 2023/2024Турнир претендентов по шахматам 2024Манчестер СитиMGM-140 ATACMSРоссийский миротворческий контингент в Нагорном КарабахеЗагоризонтный радиолокаторПинапВодительское удостоверение в Российской Федерации