Coq引理陈述中的定义与命题相等

时间:2018-10-20 16:59:29

标签: coq coq-tactic

在以广泛使用eauto N为基础,以Coq(CPDT风格)证明编写高度自动化的证明时,我必须经常修改引理陈述以使eauto易于使用。特别是,我必须用形式(2)forall vars, P (f args)...替换形式(1)P(其中forall x args, x = f args -> P x -> ...出现在论文中或假设之间)的语句。使用格式(2),eauto可以根据需要实例化x到适当的表达式e(通过统一找到),并通过其通常的证明搜索来分别证明e = f args。相反,对于形式(1),必须在证明期间使用e = f args rewrite ,IIUC eauto不会这样做(除非使用专用Hint Extern

是否有更好的现有策略以这种方式实现相同的结果,可能是自动化的?我所看到的最接近的东西是Software Foundations的LibTactics中的applys_eq策略,该策略允许以(1)形式应用引理,而将e = f args作为单独的目标;但是,该策略需要完全手动的说明。

我了解我的要求可能太难或太慢;知道这是一种合理的方法将有助于停止寻找并继续下去。我听说至少有一位经验丰富的Coq用户描述了相同的问题和相同的方法。

0 个答案:

没有答案