2014-11-11 3 views
0

У меня есть следующий код в Isabelle:Нетипизированные набор операций в Isabelle

typedecl type1 
typedecl type2 

consts 
    A::"type1 set" 
    B::"type2 set" 

Когда я хочу использовать операцию объединения с А и В, как показано ниже:

axiomatization where 
c0: "A ∩ B = {}" 

Так как A и B является множества разных типов, я получаю ошибку столкновение типов, что имеет смысл!

Мне интересно, есть ли какие-либо аналоги для операций с множеством, которые они неявно рассматривают свои операнды как чистые множества (т. Е. Игнорируют их типы), поэтому становится возможным что-то вроде A ∩ 'B (∩' - это операция, аналогичная операции выше смысл).

PS: Другим обходным способом является литье типа, которое я написал в качестве отдельного вопроса here, чтобы лучше организовать мои вопросы.

Благодаря

ответ

2

Наборы в Isabelle/HOL всегда типизированные, то есть, они содержат только элементы одного типа. Если вы хотите иметь нетипизированные множества, вам нужно переключиться на другую логику, такую ​​как Isabelle/ZF.

Аналогично, все значения в HOL аннотируются с их типом, и это является основополагающим для логики. Равенство, например, может применяться только к двум значениям одного и того же типа. Следовательно, нет понятия равенства между значениями разных типов. Следовательно, не существует заданной операции, которая игнорирует тип значений, поскольку такая операция обязательно должна знать, как идентифицировать значения разных типов.

+0

Спасибо, пожалуйста, дайте мне несколько советов, как я могу переключиться на Isabelle/ZF? Я использую JEdit с установленной isabelle, и я импортирую основную теорию в свой файл. Является ли синтаксис Isabelle/ZF отличным от Isabelle/HOL? Я был бы признателен за немного больше объяснений. – qartal

+1

Чтобы переключиться на логику ZF, выберите логические изображения ZF на панели теории и перезапустите. Заметим, что ZF полностью не пересекается с HOL, т. Е. Ни одно из определений в HOL не доступно как таковое в ZF. Кроме того, ZF использует другой синтаксис. Файл ROOT в '$ ISABELLE_HOME/src/ZF' содержит некоторые ссылки на литературу по логике ZF. –

+0

Я бы рассмотрел переход на Isabelle/ZF как теоретический. В отличие от Isabelle/HOL, его библиотека и инструменты не были разработаны за последние 20 лет. Внимательно взглянув на ваше приложение, вы должны найти способы работы с системой типа HOL. – Makarius

 Смежные вопросы

  • Нет связанных вопросов^_^