Isabelle中没有类型的集合操作

时间:2014-11-11 11:10:27

标签: set isabelle isar

我在Isabelle中有以下代码:

typedecl type1
typedecl type2

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

当我想使用A和B的联合操作时如下:

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

由于A和B是不同类型的集合,我得到类型冲突的错误,这是有道理的!

我想知道是否有任何对应的集合操作,他们隐含地认为他们的操作数是纯粹的集合(即忽略他们的类型),因此像A∩' B成为可能(∩'在上述意义上是∩操作对应物。)

PS: 另一种解决方法是类型转换,我将其作为单独的问题here编写,以便更好地组织我的问题。

由于

1 个答案:

答案 0 :(得分:2)

Isabelle / HOL中的集合始终是键入的,即它们仅包含一种类型的元素。如果你想要无类型的集合,你必须切换到另一个逻辑,如Isabelle / ZF。

同样,HOL中的所有值都使用其类型进行注释,这是逻辑的基础。例如,Equality只能应用于两个相同类型的值。因此,不存在不同类型的价值之间的平等概念。因此,没有设置操作忽略值的类型,因为这样的操作必须知道如何识别不同类型的值。