coq - Coq 引理语句中的定义与命题相等
问题描述
当在 Coq(CPDT 风格)证明中编写高度自动化的证明时,基于对 的广泛使用eauto N
,我必须经常修改我的引理语句以允许eauto
轻松使用它们。特别是,我必须将形式 (1) 的陈述forall vars, P (f args)...
(P
出现在论文中或假设中的地方)替换为形式 (2) forall x args, x = f args -> P x -> ...
。使用形式(2),可以根据需要eauto
实例化为适当的表达式(通过统一找到),并通过其通常的证明搜索单独证明。相反,对于形式 (1),有必要在证明期间重写,这是 IIUC不做的事情(除非使用 dedicated )。x
e
e = f args
e = f args
eauto
Hint Extern
是否有更好的现有策略以这种方式实现相同的结果,可能是自动化的?我见过的最接近的事情是applys_eq
Software Foundations 的 LibTactics 中的策略,它允许在形式 (1) 中应用引理,但将e = f args
其作为单独的目标;然而,这种策略需要一个完全手动的规范。
我明白我的要求可能太难或太慢;知道这是一种合理的方法将有助于停止寻找并继续。我听说至少有一位经验丰富的 Coq 用户描述了同样的问题和同样的方法。
解决方案
推荐阅读
- paypal - 如何在 PayPal Express Checkout 中动态更改货币和传递其他数据
- python - 如何读取复杂的数据数组
- node.js - 如何通过 gulp 管道内 Vinyl 文件的相对输出路径进行操作?
- javascript - 如何比较地理围栏中的纬度和经度值?
- algorithm - 如何将样本量结果外推到总体人口的最佳方法
- mysql - 当我确实有别名时,每个派生表都必须在 mysql 中有自己的别名错误
- python - 根据时间戳将 CSV 中列中的数据与空值组合
- ubuntu - 我的域仅适用于 https://www.domainname.com 否则 domainname.com 和 www.domainname.com 不起作用
- android - 提醒:Graph API v2.8 将于 2019 年 4 月 18 日弃用。请使用 API 升级工具了解这可能会如何影响您的应用
- python-3.x - Numpy 将两个不同的 linspaces 组合成一个坐标矩阵