我定義了一個嚴格的順序語言環境如下:如何使用證明現場演繹的目標來證明其餘的
locale strict_order =
fixes ls::"'a set ⇒ 'a set ⇒ bool"
assumes
irrefl:"¬ ls a a" and
trans:"ls a c ∧ ls c g ⟹ ls a g" and
asym:"ls a c ⟹ ¬ ls c a"
然後,我宣佈一個類型strict_order
interpretation nest:strict_order "op ≪"
proof
fix a
show "¬ a ≪ a"
proof (rule contra, auto)
....
qed
next
fix a c g
assume a:"a ≪ c ∧ c ≪ g"
show " a ≪ g"
proof -
(* uses the fact that ¬ a<<a *)
的解釋類型嵌套的證明「trans」屬性需要在解釋塊內部已經成功證明的某個「irrefl」屬性。我如何標籤和使用它?或者沒有辦法,只能將它移到解釋塊之外?
謝謝。
安德烈亞斯ninja'd我,但這裏是我有兩個其他備註:1.'LS是C∧LS C G⟹LS一g'表達得更慣用爲'LS是C⟹LS C G⟹LS一個g'。這兩個語句在邏輯上是等價的,但是如果你做Isar證明或者想用OF來實例化這個定理,那麼第二個語句在Isabelle中更容易使用。 –
2.我在'show'語句的''a __「''中得到了'引入的固定類型變量:''b'的警告,所以你可能也會這樣做。發生這種情況時,爲固定變量提供顯式類型是一個好主意。要做到這一點,你可以在解釋中用'op«::'一套⇒_'替換你的'op«',然後用'fix a ::''set'替換你的'fix a'''等等 –
你說得對,需要固定變量的類型。謝謝。 – Faddou