Lean (помощник по проверке) - Википедия - Lean (proof assistant)

Lean (помощник по проверке)
Разработчики)Microsoft Research
изначальный выпуск2013; 7 лет назад (2013)
Стабильный выпуск
3.4.2 / 18 января 2019; 23 месяца назад (2019-01-18)
Репозиторийgithub.com/ Leanprover/худой
Написано вC ++
Операционная системаКроссплатформенность
Доступно ванглийский
ТипПомощник доказательства
ЛицензияЛицензия Apache 2.0
Интернет сайтхудой.github.io

Худой это средство доказательства теорем и язык программирования. Он основан на Расчет конструкций с индуктивные типы.

Lean имеет ряд особенностей, которые отличают его от других интерактивных средств доказательства теорем. Lean может быть скомпилирован в JavaScript и доступен в веб-браузере. Он имеет встроенную поддержку символов Unicode. (Их можно ввести с помощью Латекс -подобные последовательности, такие как « times» вместо «×». Lean использует свой собственный язык для метапрограммирования. Итак, если пользователь хочет написать функцию, которая автоматически доказывает некоторые теоремы, он пишет эту функцию на собственном языке Lean.

Lean привлек внимание математиков Томас Хейлз[1] и Кевин Баззард.[2] Хейлз использует его для своего проекта, Формальные аннотации. Buzzard использует его для Зена проект. Одна из целей проекта Xena Project - переписать все теоремы и доказательства в математической программе бакалавриата. Имперский колледж Лондон в Lean.

Примеры

Вот как натуральные числа определяются в Lean.

индуктивный нац : Тип| нуль : нац| succ : нац  нац

Вот операция сложения, определенная для натуральных чисел.

определение Добавить : нац  нац  нац| п нуль     := п| п (succ м) := succ(Добавить п м)

Это простое доказательство в режиме обучения в терминах.

теорема and_swap : п  q  q  п :=    предполагать h1 : п  q,    h1.right, h1.left

Это же доказательство может быть выполнено с помощью тактики.

теорема and_swap (п q : Опора) : п  q  q  п :=начинать    предполагать час : (п  q), - предположим, что p ∧ q верно    случаи час, - извлечь отдельные предложения из союза    расколоть, - разделить целевую конъюнкцию на два случая: доказать p и доказать q отдельно    повторение { предположение }конец

Смотрите также

Рекомендации

  1. ^ Хейлз, Томас. "Обзор средства доказательства теорем бережливого производства". Получено 6 октября 2020.
  2. ^ Канюк, Кевин. "Будущее математики?" (PDF). Получено 6 октября 2020.

внешняя ссылка