stringtranslate.com

Изабель (ассистент корректора)

Автоматизированный доказатель теорем Isabelle [a] — это доказатель теорем логики высшего порядка (HOL) , написанный на Standard ML и Scala . Как доказатель теорем в стиле Logic for Computable Functions (LCF), он основан на небольшом логическом ядре (ядре) для повышения достоверности доказательств, не требуя, но поддерживая, явные объекты доказательств.

Isabelle доступен в гибкой системной структуре, позволяющей логически безопасные расширения, которые включают как теории, так и реализации для генерации кода, документирования и специальной поддержки для различных формальных методов . Его можно рассматривать как интегрированную среду разработки (IDE) для формальных методов. В последние годы значительное количество теорий и расширений систем было собрано в Архиве формальных доказательств Isabelle ( Isabelle AFP ) [2]

Изабель была названа Лоуренсом Полсоном в честь дочери Жерара Юэ . [3]

Доказательство теоремы Изабеллы — это свободное программное обеспечение , выпущенное под пересмотренной лицензией BSD .

Функции

Isabelle является обобщенной: она предоставляет металогику (слабую теорию типов ), которая используется для кодирования объектных логик, таких как логика первого порядка (FOL), логика высшего порядка (HOL) или теория множеств Цермело–Френкеля (ZFC). Наиболее широко используемой объектной логикой является Isabelle/HOL, хотя значительные разработки теории множеств были завершены в Isabelle/ZF. Основной метод доказательства Isabelle — это версия резолюции высшего порядка, основанная на объединении высшего порядка .

Несмотря на интерактивность, Isabelle предлагает эффективные инструменты автоматического рассуждения, такие как механизм переписывания терминов и доказатель таблиц , различные процедуры принятия решений и, через интерфейс автоматизации доказательств Sledgehammer , решатели внешних теорий выполнимости по модулю (SMT) (включая CVC4 ) и автоматизированные доказательные устройства теорем (ATP) на основе резолюций , включая E , SPASS и Vampire ( метод доказательства Metis [b] реконструирует доказательства резолюций, сгенерированные этими ATP). [4] Он также предлагает два поисковика моделей ( генератора контрпримеров ): Nitpick [5] и Nunchaku . [6]

Isabelle предлагает локали, которые являются модулями, структурирующими большие доказательства. Локаль фиксирует типы, константы и предположения в указанной области действия [5], так что их не нужно повторять для каждой леммы .

Isarпонятное полуавтоматическое рассуждение ») — формальный язык доказательств Изабель. Он вдохновлен системой Mizar . [5]

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

Isabelle позволяет писать доказательства в двух разных стилях: процедурном и декларативном . Процедурные доказательства определяют ряд тактик ( функций/процедур доказательства теорем ), которые следует применять. Хотя они отражают процедуру, которую математик-человек может применить для доказательства результата, их обычно трудно читать, поскольку они не описывают результат этих шагов. Декларативные доказательства (поддерживаемые языком доказательств Isabelle, Isar), с другой стороны, определяют фактические математические операции, которые необходимо выполнить, и поэтому их легче читать и проверять людям.

Процедурный стиль устарел в последних версиях Isabelle. [ необходима ссылка ]

Например, декларативное доказательство от противного в языке Изар того, что квадратный корень из двух не является рациональным числом, можно записать следующим образом.

теорема sqrt2_not_rational: "sqrt 2 ∉ ℚ" доказательство пусть ?x = "sqrt 2" предположим "?x ∈ ℚ" тогда получим mn :: nat где sqrt_rat: "¦?x¦ = m / n" и lower_terms: "взаимно простое m n" по (правило Rats_abs_nat_div_natE) следовательно "m^2 = ?x^2 * n^2" по (auto simp add: power2_eq_square) следовательно eq: "m^2 = 2 * n^2" используя of_nat_eq_iff power2_eq_square по fastforce следовательно "2 dvd m^2" по simp следовательно "2 dvd m" по simp имеем "2 dvd n" доказательство - из ‹2 dvd m› получим k где "m = 2 * k" .. с eq имеем "2 * n^2 = 2^2 * k^2" по simp следовательно "2 dvd n^2" по simp таким образом "2 dvd n" по simp qed с ‹2 dvd m› имеем "2 dvd gcd m n" по (правило gcd_greatest) с lower_terms имеем "2 dvd 1" по simp таким образом False используя odd_one по blast qed                                

Приложения

Isabelle использовался для поддержки формальных методов спецификации, разработки и проверки программных и аппаратных систем.

Изабель использовалась для формализации многочисленных теорем из математики и компьютерных наук , таких как теорема Гёделя о полноте , теорема Гёделя о непротиворечивости аксиомы выбора , теорема о простых числах , корректность протоколов безопасности и свойства семантики языков программирования . Многие из формальных доказательств, как уже упоминалось, поддерживаются в Архиве формальных доказательств, который содержит (по состоянию на 2019 год) не менее 500 статей с более чем 2 миллионами строк доказательств в общей сложности. [7]

Ларри Полсон ведет список исследовательских проектов, в которых используется Isabelle. [10]

Альтернативы

Несколько языков и систем предоставляют схожие функции:

Примечания

Ссылки

  1. ^ Paulson, LC (1986). «Естественная дедукция как разрешение высшего порядка». Журнал логического программирования . 3 (3): 237–258. arXiv : cs/9301104 . doi :10.1016/0743-1066(86)90015-4. S2CID  27085090.
  2. ^ Эберл, Мануэль; Кляйн, Гервин; Нипков, Тобиас; Полсон, Ларри ; Тиманн, Рене. «Архив формальных доказательств» . Проверено 1 мая 2021 г.
  3. ^ Гордон, Майк (1994-11-16). "1.2 История". Изабель и Х.О.Л. Исследования Кембриджского AR (Группа автоматизированного рассуждения). Архивировано из оригинала 2017-03-05 . Получено 2016-04-28 .
  4. ^ Джасмин Кристиан Бланшетт, Лукас Бульван, Тобиас Нипков, «Автоматическое доказательство и опровержение в Isabelle/HOL», в: Чезаре Тинелли, Виорика Софрони-Стоккерманс (ред.), Международный симпозиум по границам комбинированных систем – FroCoS 2011, Springer, 2011.
  5. ^ abc Жасмин Кристиан Бланшетт, Матиас Флери, Питер Ламмих и Кристоф Вайденбах, «Проверенная структура решателя SAT с обучением, забыванием, перезапуском и инкрементностью», Журнал автоматизированного рассуждения 61 :333–365 (2018).
  6. ^ Эндрю Рейнольдс, Жасмин Кристиан Бланшетт, Саймон Круанес, Чезаре Тинелли, «Поиск моделей для рекурсивных функций в SMT», в: Никола Оливетти, Ашиш Тивари (ред.), 8-я Международная совместная конференция по автоматизированному рассуждению, Springer, 2016.
  7. ^ Эберл, Мануэль; Кляйн, Гервин; Нипков, Тобиас; Полсон, Ларри ; Тиманн, Рене. «Архив формальных доказательств» . Проверено 22 октября 2019 г.
  8. ^ Кляйн, Гервин; Элфинстоун, Кевин; Хейзер, Гернот; Андроник, Джун; Кок, Дэвид; Деррин, Филипп; Элкадуве, Дхаммика; Энгельхардт, Кай; Колански, Рафал; Норриш, Майкл; Сьюэлл, Томас; Тач, Харви; Уинвуд, Саймон (октябрь 2009 г.). "seL4: Формальная проверка ядра ОС" (PDF) . 22-й симпозиум ACM по принципам операционных систем . Биг Скай, Монтана, США. стр. 207–200.
  9. ^ Strniša, Rok; Parkinson, Matthew (7 февраля 2011 г.). "Lightweight Java". Архив формальных доказательств (редакция за февраль 2011 г.). ISSN  2150-914X . Получено 25.11.2019 .
  10. ^ «Проекты — Wiki сообщества Изабель».

Дальнейшее чтение

Внешние ссылки