Jump to content

Изабель (помощник по доказательству)

(Перенаправлено с Изабель/HOL )
Изабель
Оригинальный автор(ы) Лоуренс Полсон
Разработчик(и) Кембриджский университет и Мюнхенский технический университет и др.
Первоначальный выпуск 1986 [1]
Стабильная версия
Изабель2024 / май 2024 г .; 3 месяца назад ( 2024-05 )
Написано в Стандартное машинное обучение и Scala
Операционная система Линукс , Виндовс , МакОС
Тип Математика
Лицензия Лицензия BSD
Веб-сайт Изабель .цель .из

Изабель [а] Автоматизированное средство доказательства теорем — это средство доказательства теорем логики высшего порядка (HOL) , написанное на стандартном ML и Scala . Как средство доказательства теорем в стиле LCF , оно основано на небольшом логическом ядре (ядре) для повышения достоверности доказательств, не требуя (но поддерживая) явных объектов доказательства.

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

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

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

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

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

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

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

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

[ редактировать ]

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

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

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

theorem sqrt2_not_rational:
  "sqrt 2 ∉ ℚ"
proof
  let ?x = "sqrt 2"
  assume "?x ∈ ℚ"
  then obtain m n :: nat where
    sqrt_rat: "¦?x¦ = m / n" and lowest_terms: "coprime m n"
    by (rule Rats_abs_nat_div_natE)
  hence "m^2 = ?x^2 * n^2" by (auto simp add: power2_eq_square)
  hence eq: "m^2 = 2 * n^2" using of_nat_eq_iff power2_eq_square by fastforce
  hence "2 dvd m^2" by simp
  hence "2 dvd m" by simp
  have "2 dvd n" proof -
    from ‹2 dvd m› obtain k where "m = 2 * k" ..
    with eq have "2 * n^2 = 2^2 * k^2" by simp
    hence "2 dvd n^2" by simp
    thus "2 dvd n" by simp
  qed
  with ‹2 dvd m› have "2 dvd gcd m n" by (rule gcd_greatest)
  with lowest_terms have "2 dvd 1" by simp
  thus False using odd_one by blast
qed

Приложения

[ редактировать ]

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

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

  • В 2009 году проект L4.verified в NICTA предоставил первое формальное доказательство функциональной корректности ядра операционной системы общего назначения: [8] seL4 (безопасное встроенное L4 ) микроядро . Доказательство построено и проверено в Isabelle/HOL и включает более 200 000 строк сценария доказательства для проверки 7500 строк языка C. Проверка охватывает код, проектирование и реализацию, а основная теорема утверждает, что код C правильно реализует формальную спецификацию языка C. ядро. Доказательство выявило 144 ошибки в ранней версии кода C ядра seL4 и около 150 проблем в дизайне и спецификации.

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

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

[ редактировать ]

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

Примечания

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

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

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 98e3b31d8966ddc59de54e999ac3df3d__1717336500
URL1:https://arc.ask3.ru/arc/aa/98/3d/98e3b31d8966ddc59de54e999ac3df3d.html
Заголовок, (Title) документа по адресу, URL1:
Isabelle (proof assistant) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)