通过HOL假设来证明目标

时间:2019-03-28 14:21:22

标签: 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

在这种情况下,这是标准战术吗?或者,有没有更简单的一个?

1 个答案:

答案 0 :(得分:1)

e (FIRST_ASSUM ACCEPT_TAC)

做到了。

FIRST_ASSUM对假设应用论证定理策略,直到成功为止。

ACCEPT_TAC只是证明了一个目标,只要我们提供相同的定理。

ACCEPT_TAC: thm -> tactic
FIRST_ASSUM: (thm -> tactic) -> tactic

(感谢#hol上的某人)