证明跳过:"(跳过,s)⇒s"终止于伊莎贝尔

时间:2014-11-23 19:55:23

标签: terminate isabelle

我该如何表现呢?      “(SKIP,s)⇒s”, 这是大步骤语义规则,终止于伊莎贝尔?

Big Step Semantics定义如下“(SKIP,s)⇒s”是一个命令。

  inductive big_step :: "com × state ⇒ state ⇒ bool" where
 Skip: "(SKIP,s) ⇒ s" |
 Assign: "(x ::= a,s) ⇒ s(x := aval a s)" |
 Seq: "⟦ (c⇩1,s⇩1) ⇒ s⇩2;  (c⇩2,s⇩2) ⇒ s⇩3 ⟧ ⟹ (c⇩1;;c⇩2, s⇩1) ⇒ s⇩3" |
 IfTrue: "⟦ bval b s;  (c⇩1,s) ⇒ t ⟧ ⟹ (IF b THEN c⇩1 ELSE c⇩2, s) ⇒ t" |
 IfFalse: "⟦ ¬bval b s;  (c⇩2,s) ⇒ t ⟧ ⟹ (IF b THEN c⇩1 ELSE c⇩2, s) ⇒ t" |

我使用正式定义来表示总体正确性

 ⊫ {P} c {Q} ≡ ∀s. P s ⟶ (∃ t. (c, s) ⇒ t ∧ Q t)

所以我的引理现在有以下形式:

 lemma "skip: {P} skip {Q} ≡ ∀s. P s ⟶ (∃ t. (skip, s) ⇒ t ∧ Q t)"

引理的定义是否正确,以表明它终止了?

0 个答案:

没有答案