Я видел много документации по синтаксису и доказательствам Isabelle, но мало ли я нашел об этом основах. У меня есть несколько вопросов, и я был бы очень благодарен, если бы кто-то мог найти время, чтобы ответить:
1) Почему Isabelle/HOL не допускают функции, которые не заканчиваются? Многие другие языки, такие как Haskell, допускают неограничивающие функции.
2) Какие символы являются искусством метаязыка Изабеллы? Я прочитал, что есть символы в метаязыке для универсальной квантификации (/\
) и для импликации (==>
). Однако эти символы имеют свой аналог на языке объектного уровня (∀ и -->
). Я понимаю, что -->
- это функция уровня объекта типа bool => bool => bool
. Однако как определяются ∀ и ∃? Являются ли они логическими функциями уровня объекта? Если это так, они не являются вычислимыми (учитывая бесконечные области). Я заметил, что я могу писать логические функции в темах ∀ и ∃, но они не являются вычислимыми. Итак, что такое ∀ и ∃? Являются ли они частью уровня объекта? Если да, то как они определены?
3) Являются ли теоремы Изабеллы просто булевыми выражениями? Тогда булевы являются частью метаязыка?
4) Насколько я знаю, Isabelle - строгий язык программирования. Как я могу использовать бесконечные объекты? Скажем, бесконечные списки. Возможно ли это в Isabelle/HOL?
Извините, если эти вопросы очень просты. Кажется, я не нашел хорошего учебника по метатеории Изабель. Мне бы очень хотелось, чтобы кто-нибудь мог порекомендовать мне хороший учебник по этим темам.
Большое спасибо.