thys/turing_hoare.thy
changeset 94 aeaf1374dc67
parent 93 f2bda6ba4952
child 99 fe7a257bdff4
equal deleted inserted replaced
93:f2bda6ba4952 94:aeaf1374dc67
    34   "{P} p {Q} \<equiv> \<forall>tp. P tp \<longrightarrow> (\<exists>n. is_final (steps0 (1, tp) p n) \<and> Q holds_for (steps0 (1, tp) p n))"
    34   "{P} p {Q} \<equiv> \<forall>tp. P tp \<longrightarrow> (\<exists>n. is_final (steps0 (1, tp) p n) \<and> Q holds_for (steps0 (1, tp) p n))"
    35 
    35 
    36 
    36 
    37 (* not halting case *)
    37 (* not halting case *)
    38 definition
    38 definition
    39   Hoare_unhalt :: "assert \<Rightarrow> tprog0 \<Rightarrow> bool" ("({(1_)}/ (_)) \<up>" [50, 49] 50)
    39   Hoare_unhalt :: "assert \<Rightarrow> tprog0 \<Rightarrow> bool" ("({(1_)}/ (_)) \<up>" 50)
    40 where
    40 where
    41   "{P} p \<up> \<equiv> \<forall>tp. P tp \<longrightarrow> (\<forall> n . \<not> (is_final (steps0 (1, tp) p n)))"
    41   "{P} p \<up> \<equiv> \<forall>tp. P tp \<longrightarrow> (\<forall> n . \<not> (is_final (steps0 (1, tp) p n)))"
    42 
    42 
    43 
    43 
    44 lemma Hoare_haltI:
    44 lemma Hoare_haltI: