isabelle - 如何使 find_theorems 更具体
问题描述
我试图在 Isabelle (2021) 中找到一个定理,效果如下:
lemma "A ⟹ B ⟹ A ∧ B"
到目前为止,我已经尝试使用以下模式:
find_theorems "_ ⟹ _ ⟹ _ ∧ _"
但它显然会返回很多结果,因为模式太抽象了。各种占位符_
可以表示彼此非常不同的事物。
我想知道是否有任何方法可以在搜索中更具体,以表示某些占位符是相同的。例如,下面的假设示例能否在 Isabelle 的搜索工具中实现?
find_theorems "_1 ⟹ _2 ⟹ _1 ∧ _2"
(表示所有_1
s 都是同一个变量,所有_2
s 都是相同的,等等)
解决方案
正如我在评论中提到的,find_theorems
也将模式作为类似于is
. 所以任何形式的'?可以使用后跟字符串(以及可选的数字 [1])。
find_theorems "?A \<Longrightarrow> ?B \<Longrightarrow> ?A \<and> ?B"
(*
"?A ⟹ ?B ⟹ ?A ∧ ?B"
found 1 theorem(s):
• HOL.conjI: ?P ⟹ ?Q ⟹ ?P ∧ ?Q
*)
[1] 通常需要注意的是,“?A0”和“?A”指的是相同的模式。
推荐阅读
- html - 时事通讯的 html 表
- matlab - 在 Matlab 中查找由数据点表示的区域的边界
- javascript - Firefox alt 键 preventDefault 不起作用
- java - Prometheus 计数 API 调用
- django - Django 2.0 升级导致 Wagtail (2.1) 管理员消失。
- agda - 如何对荒谬/不可构造的类型进行模式匹配?
- java - 对范围和变量的误解
- c++ - cpp浅拷贝或深拷贝中的默认构造函数?
- node.js - 如何将 swagger-ui npm 模块与现有的 OpenAPI 规范文件一起使用
- html - 为什么 div 被 jcarousel 剪掉了?未知问题挑战