伊莎贝尔:排序错误

Isabelle: Wellsortedness error

Isabelle 中的 Wellsortedness 错误是什么。

我遇到了一个麻烦,比如:

我该如何解决?

value 命令在内部使用代码生成器进行评估,而代码生成器会引发排序良好的错误。在上面的例子中,Isabelle 的类型检查器为术语 mirror Typ 推断出一个具有类型变量的类型,即 'a tree,其中类型变量 'a 具有排序 type。由于 'a tree 可能包含 'a 的值,代码生成器还尝试生成用于漂亮打印的代码 'a tree,它在类型 class [=19= 中实现].然而,这失败了,因为 'a 的推断类型是 type 而不是 term_of,这就是排序错误的原因。

避免错误的最简单方法是显式给出单态类型。例如,

value "mirror Tip :: nat tree"

应该可以。