是否可以在任何互归纳类型上确定相等性?

Is equality decidable on any coinductive type?

这是我的第一个post,如有错误,请见谅。

我怀疑,在 Coq 中,像 Stream 这样的余归类型没有可判定的相等性。也就是说,给定两个流 s 和 t,无法确定是 s=t 还是 ~(s=t)。我怀疑 Coq 中的所有合归纳类型都是如此。

快速 google 并通过堆栈交换搜索没有显示任何确认信息。任何人都可以确认或纠正我吗?

我认为你是对的。据我所知,您甚至无法正确说明两个流相等的含义,因为这意味着您可以在有限时间内检查它们,但它们是无限项。

你可以做的是声明任何 finite 检查你的共同归纳项是相同的,或者定义一个 "co-inductive" 平等的概念,就像它在标准库中完成:

https://coq.inria.fr/library/Coq.Lists.Streams.html