我想了解Isar虚拟机的状态机。认识到子目标被证明
Page 48 of Markus Wenzel's doctoral thesis给出了一个很好的概述,但没有在“输出”面板中详细说明它的消息。这可能是该系统的后续附录。
我有一个简单的伊萨尔证明:
theory Propositional
imports Main
begin
lemma nj2: assumes p: P and q: Q shows "P ∧ (Q ∧ P)"
proof -
from q p have qp: "Q ∧ P" by (rule conjI)
from p qp show "P ∧ (Q ∧ P)" by (rule conjI)
qed
第二by (rule conjI)
输出面板后说
show (P::bool) /\ (Q::bool) /\ P
Successful attempt to solve goal by exported rule:
(P::bool) /\ (Q::bool) /\ P
proof (state): depth 0
this:
(P::bool) /\ (Q::bool) /\ P
goal:
No subgoals!
variables:
P, Q :: bool
所以它明确地认识到目标的解决方案。然而,在第一by (rule conjI)
它说
have qp: (Q::bool) /\ (P::bool)
proof (state): depth 0
this:
(Q::bool) /\ (P::bool)
goal (1 subgoal):
1. P /\ Q /\ P
variables:
P, Q :: bool
我看不出有任何迹象表明次级目标已被证明。或者,have
声明与this
注册簿中的声明相同的事实应该提醒我,它已被证明?