首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何定义type_synonym的类实例?

如何定义type_synonym的类实例?
EN

Stack Overflow用户
提问于 2017-08-16 08:14:28
回答 1查看 177关注 0票数 2

typesemilattice_sup类的一个实例:

代码语言:javascript
复制
datatype type = BType | IType | AType

instantiation type :: semilattice_sup
begin
end

我还试图将type × bool类型声明为该类的一个实例:

代码语言:javascript
复制
type_synonym stype = "type × bool"

instantiation stype :: semilattice_sup
begin
end

但我得到了以下错误:

代码语言:javascript
复制
Bad type name: "stype"

如何定义type_synonym的类实例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-16 08:40:11

实际上,在HOL中的Product_Order中已经有一个产品类型的Product_Order实例,所以如果type有一个semilattice_sup实例,那么type × bool也有(如果包括Product_Order )。请注意,这是点序,而不是字典顺序。

如果您需要另一个订单或与您的类型非常特定的东西,您也可以用typedef定义一个全新的类型。

代码语言:javascript
复制
typedef type' = "UNIV :: (type × bool) set"
  by auto

这使您可以使用Abs_type'Rep_type'来在type'type × bool之间进行转换,而且由于这是一个全新的类型,所以您可以为它提供类型类实例。

为了完整起见,类型类是用locales实现的,您可以手动解释类型类区域设置,给出类型类的所有定义和引理,但当然,与类型类框架的集成将无法工作。首先,type × bool不会像semilattice_sup那样。不过,偶尔,这也是一个可行的解决方案:

代码语言:javascript
复制
interpretation type_bool: semilattice_sup mysup myle myless
proof

(其中mysupmylemylesssup< for type × bool,您必须提供这些信息,然后证明它们符合公理。当然,名字是完全任意的,包括type_bool)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45708423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档