是否可以在任何互归纳类型上确定相等性?
Is equality decidable on any coinductive type?
这是我的第一个post,如有错误,请见谅。
我怀疑,在 Coq 中,像 Stream 这样的余归类型没有可判定的相等性。也就是说,给定两个流 s 和 t,无法确定是 s=t 还是 ~(s=t)。我怀疑 Coq 中的所有合归纳类型都是如此。
快速 google 并通过堆栈交换搜索没有显示任何确认信息。任何人都可以确认或纠正我吗?
我认为你是对的。据我所知,您甚至无法正确说明两个流相等的含义,因为这意味着您可以在有限时间内检查它们,但它们是无限项。
你可以做的是声明任何 finite 检查你的共同归纳项是相同的,或者定义一个 "co-inductive" 平等的概念,就像它在标准库中完成:
这是我的第一个post,如有错误,请见谅。
我怀疑,在 Coq 中,像 Stream 这样的余归类型没有可判定的相等性。也就是说,给定两个流 s 和 t,无法确定是 s=t 还是 ~(s=t)。我怀疑 Coq 中的所有合归纳类型都是如此。
快速 google 并通过堆栈交换搜索没有显示任何确认信息。任何人都可以确认或纠正我吗?
我认为你是对的。据我所知,您甚至无法正确说明两个流相等的含义,因为这意味着您可以在有限时间内检查它们,但它们是无限项。
你可以做的是声明任何 finite 检查你的共同归纳项是相同的,或者定义一个 "co-inductive" 平等的概念,就像它在标准库中完成: