theorem-proving - 用 HOL 中的假设证明目标
问题描述
我在 HOL4 中陈述了以下目标:
set_goal([``A:bool``,``B:bool``], ``B:bool``);
导致证明状态
val it =
Proof manager status: 1 proof.
1. Incomplete goalstack:
Initial goal:
B
------------------------------------
0. B
1. A
: proofs
我试图找到使用这些假设的适当策略。我想出了ASM_MESON_TAC
:
e (mesonLib.ASM_MESON_TAC [])
它证明了目标:
OK..
Meson search level: ..
val it =
Initial goal proved.
[..] ⊢ B: proof
这是在这种情况下的标准策略吗?或者,有没有更简单的?
解决方案
e (FIRST_ASSUM ACCEPT_TAC)
可以。
FIRST_ASSUM
将论证定理策略应用于假设,直到成功。
ACCEPT_TAC
如果我们提供相同的定理,它只是证明了一个目标。
ACCEPT_TAC: thm -> tactic
FIRST_ASSUM: (thm -> tactic) -> tactic
(感谢#hol上的某人)
推荐阅读
- vue.js - 为什么 v-model 没有在文本中更新
- java - 保持用户登录 Fireauth
- postgresql - 在 Docker 容器内运行的 Postgres 上安装和使用 pg_cron 扩展
- java - 检测耳机点击并在android上打开一个活动
- html - 用css使整个图像填充背景
- c++ - 如何将“this”指针分配为“temp”?
- pandas - 两个 DataFrame 的 LabelEncoder
- php - 有没有办法计算音频按钮被单击的次数并使用 ajax 调用将其保存到数据库中?
- paypal - 我可以在 paypal api 的帮助下向我的 paypal 帐户付款吗
- android - 如何从解析服务器获取应用程序 ID?我找不到文件“Server.js”