【发布时间】:2021-09-10 15:27:55
【问题描述】:
我对依赖类型定理证明者如何在上下文中进行替换感兴趣。我在 Coq 中找到了一个名为“intro ->”的东西,如下所述:
https://coq.inria.fr/refman/proof-engine/tactics.html#intropattern-rarrow-ex
在示例中,它表示目标:
x,y,z:自然
H : x = y
>y = z -> x = z
会变成
x, z : 自然
H : x = z
x = z
在应用“intros ->”之后。
不知道将H:x = y 代入H:x = z 的步骤是怎么做的,这一步Coq 的逻辑规则是什么?这似乎是重写的一个步骤,根据我目前的知识,大多数重写都是根据等式,所以从 H:x = y 到 H:x = z 的替换应该来自像 (H:x = y ) = (H:x= z) ($\diamond$),但是这样的等式是非良构的,因为原则上,我们要求等式的 LHS 和 RHS 具有相同的类型,所以这种相等($\diamond$)取决于 y = z 的假设。
有人可以帮忙解释一下“intro ->”是如何工作的吗?我们是否需要参与像 ($\diamond$) 这样的“等式”?
【问题讨论】:
标签: coq