coq - 如何在 Coq 中进行高阶项重写?
问题描述
这个问题是基于我的问题https://cs.stackexchange.com/questions/96533/how-to-transform-lambda-function-to-multi-argument-lambda-function-and-how-to-re有该问题中的两个功能和两个术语:
功能:
is: (e->t)->(e->t)
IS: e->(e->t)->t
条款:
(is(boss))(John): t
IS(John, boss): t
我的问题是:如何重写涉及is
只有 的术语的术语IS
?Coq(或第三方工具)是否有这样的重写功能?Coq 是否有工具来检查重写条款的相等性?
也许这样的重写可以在 Coq 世界之外完成,也许还有其他纯粹的 lambda 演算工具仅具有句法操作?
解决方案
没有工具可以对您直接描述的 Coq 代码进行那种文本转换。在不了解 GrammaticalFramework 的情况下,我想您最好的选择是编写一个 Sed 脚本,该脚本查找is
应用于参数的出现,并用IS
.
第二种“IS”形式可以更容易地转换为 is-boss 谓词,这就是我努力达到它的原因。
我认为,如果您使用 Sed 脚本,您可以IS_BOSS
直接访问表单,而无需使用IS
.
推荐阅读
- c# - 带有 NetTopologySuite.IO.GeoJSON 的 JsonConvert.DeserializeObject 有异常 未找到预期令牌“}”
- java - 将 Terracotta 用于(分布式)共享 Java 对象
- c# - 尝试使用 HttpClient 读取网页
- javascript - 数据在表 SAP UI5 中不可见
- asp.net-mvc - 如何从控制器将所有用户列表发送到 asp.net core 3 中的视图
- vba - 使用变量调用函数
- java - 根据数组列表 java 8 的值对地图进行排序
- visual-studio - VS 2019 自定义代码片段,文字未正确扩展
- flutter - 如何修复类型'列表
' 不是类型 'String' 的子类型 - java - 具有 RPI 的 BLE,选择了错误的端点 ID