在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"
“过滤器”区域设置给出错误,例如未定义的类。有没有办法写这样的表达式?
答案 0 :(得分:0)
语言环境解释在语言环境的教程和参考手册中进行了描述。我先前关于SO的答案之一包含相关参考资料:link。从参考手册的3.3.6节开始:“排序具有非常简单的内部语法,可以是单个类名c或表示这些类的交集的列表{c1, ..., cn}
”。因此,不可能将语言环境用作类型变量的一部分。语言环境的解释机制完全不同。