伊莎贝尔:排序错误
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"
应该可以。
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"
应该可以。