在Isabelle中定义dataype时出错

时间:2016-06-29 10:08:40

标签: isabelle

我正在研究一种使用拓扑的理论,并且有一种开放集合会很有帮助。我尝试了以下方法:

    context topology
begin
typedef openset = "{U. U ∈ T}"
end

其中topology是一个语言环境,context命令正确地给出了输出

locale topology =
  fixes T :: "'a set set" 
  assumes "topology T"

但是,我收到以下错误:

  

表示集合中的额外类型变量:“'a”上面的错误   发生在typedef“openset”

这是什么意思?这里T只是一组集合,我希望有一个由属于T的集合组成的类型,有没有办法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

首先,这不是数据类型 - 它是'普通'类型定义。

问题是您不能拥有依赖于区域设置参数的类型定义。伊莎贝尔的逻辑基础目前不允许这样的事情。参看还有这个问题:What Kind of Type Definitions are Legal in Local Contexts?