Я пытаюсь понять, как строится математика в Изабель.По какой-то причине во всех руководствах / руководствах скрыты многие детали реализации базовых типов, таких как конструирование натуральных чисел, целых, рациональных и вещественных чисел.Просматривая каталог src / HOL и просматривая файлы .thy, я обнаружил такие блоки кода, как:
keywords
"print_quotmapsQ3" "print_quotientsQ3" "print_quotconsts" :: diag and
"quotient_type" :: thy_goal_defn and "/" and
"quotient_definition" :: thy_goal_defn
begin
в Quotient.thy.Здесь используются ключевые слова, так что позже вы можете определить тип как:
quotient_type rat = "int * int" / partial: "ratrel"
и другие связанные определения.Я не смог понять, как работает функция «ключевые слова».Это не особенно очевидно из кода, и единственная документация, которую я могу найти, находится в Справочном руководстве Изабель / Изар, где написано следующее:
"Спецификация ключевых слов объявляет внешний синтаксис (глава 3), который представлен вэта теория позже (редко встречается в приложениях для конечных пользователей). Необходимо указать как второстепенные ключевые слова, так и основные ключевые слова языка команд Isar, чтобы синтаксический анализ корректных документов работал должным образом. Ключевые слова команды должны быть классифицированы.в соответствии с их структурной ролью в формальном тексте. Примеры можно увидеть в самих источниках Isabelle / HOL, таких как ключевые слова "typedef" :: thy_goal_defn или ключевые слова "datatype" :: thy_defn для определений теоретического уровня с доказательством и без него,соответственно."(стр. 91)
Это поднимает вопрос о том, что такое определение на уровне теории, которое я не смог выяснить.