thys/abacus.thy
changeset 111 dfc629cd11de
parent 101 06db15939b7c
child 112 fea23f9a9d85
--- a/thys/abacus.thy	Sun Feb 03 12:24:28 2013 +0000
+++ b/thys/abacus.thy	Sun Feb 03 13:31:14 2013 +0000
@@ -3,9 +3,19 @@
 *}
 
 theory abacus
-imports Main turing_basic
+imports uncomputable
 begin
 
+(*
+declare tm_comp.simps [simp add] 
+declare adjust.simps[simp add] 
+declare shift.simps[simp add]
+declare tm_wf.simps[simp add]
+declare step.simps[simp add]
+declare steps.simps[simp add]
+*)
+declare replicate_Suc[simp add]
+
 text {*
   {\em Abacus} instructions:
 *}
@@ -1300,8 +1310,7 @@
    inv_locate_b.simps[simp del]
 
 lemma [intro]: "\<exists>rn. [Bk] = Bk \<up> rn"
-apply(rule_tac x = "Suc 0" in exI, simp)
-done
+by (metis replicate_0 replicate_Suc)
 
 lemma [intro]:  "at_begin_norm (as, am) (q, aaa, []) ires
              \<Longrightarrow> at_begin_norm (as, am) (q, aaa, [Bk]) ires"
@@ -1877,7 +1886,6 @@
      \<Longrightarrow> inv_after_write (as, lm) (y, l, Oc # r) ires"
 apply(auto simp: inv_on_right_moving.simps inv_after_write.simps )
 apply(case_tac mr, auto simp: split: if_splits)
-apply(case_tac [!] mr, simp_all)
 done
       
 lemma [simp]: "inv_on_right_moving (as, lm) (x, l, []) ires\<Longrightarrow>