我想了解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
註冊簿中的聲明相同的事實應該提醒我,它已被證明?