类型变量作为语言环境

时间:2019-07-03 02:00:14

标签: isabelle

在Isabelle中,有一种方法可以确保类型变量可以是语言环境的解释?

例如,我知道可以确保类型变量属于特定类:

isValid :: 'a::ord =>: bool

但是,我找不到如何将此想法扩展到语言环境:

class address ....
<snip>
locale Message =
   fixes
     sender   :: "'message => 'address::address" and
     receiver :: "'message => 'address::address" and
     isValid ::  "'message => bool"

locale Filter =
  fixes
    fiterFunc :: "'filter => 'message::Message => filterResult"

“过滤器”区域设置给出错误,例如未定义的类。有没有办法写这样的表达式?

1 个答案:

答案 0 :(得分:0)

语言环境解释在语言环境的教程和参考手册中进行了描述。我先前关于SO的答案之一包含相关参考资料:link。从参考手册的3.3.6节开始:“排序具有非常简单的内部语法,可以是单个类名c或表示这些类的交集的列表{c1, ..., cn}”。因此,不可能将语言环境用作类型变量的一部分。语言环境的解释机制完全不同。