src/HOL/Metis_Examples/Binary_Tree.thy
changeset 45705 a25ff4283352
parent 45502 6246bef495ff
child 49962 a8cc904a6820
--- a/src/HOL/Metis_Examples/Binary_Tree.thy	Thu Dec 01 13:34:12 2011 +0100
+++ b/src/HOL/Metis_Examples/Binary_Tree.thy	Thu Dec 01 13:34:12 2011 +0100
@@ -55,8 +55,6 @@
 
 text {* \medskip BT simplification *}
 
-declare [[ sledgehammer_problem_prefix = "BT__n_leaves_reflect" ]]
-
 lemma n_leaves_reflect: "n_leaves (reflect t) = n_leaves t"
 proof (induct t)
   case Lf thus ?case
@@ -71,8 +69,6 @@
     by (metis n_leaves.simps(2) nat_add_commute reflect.simps(2))
 qed
 
-declare [[ sledgehammer_problem_prefix = "BT__n_nodes_reflect" ]]
-
 lemma n_nodes_reflect: "n_nodes (reflect t) = n_nodes t"
 proof (induct t)
   case Lf thus ?case by (metis reflect.simps(1))
@@ -81,8 +77,6 @@
     by (metis add_commute n_nodes.simps(2) reflect.simps(2))
 qed
 
-declare [[ sledgehammer_problem_prefix = "BT__depth_reflect" ]]
-
 lemma depth_reflect: "depth (reflect t) = depth t"
 apply (induct t)
  apply (metis depth.simps(1) reflect.simps(1))
@@ -92,15 +86,11 @@
 The famous relationship between the numbers of leaves and nodes.
 *}
 
-declare [[ sledgehammer_problem_prefix = "BT__n_leaves_nodes" ]]
-
 lemma n_leaves_nodes: "n_leaves t = Suc (n_nodes t)"
 apply (induct t)
  apply (metis n_leaves.simps(1) n_nodes.simps(1))
 by auto
 
-declare [[ sledgehammer_problem_prefix = "BT__reflect_reflect_ident" ]]
-
 lemma reflect_reflect_ident: "reflect (reflect t) = t"
 apply (induct t)
  apply (metis reflect.simps(1))
@@ -117,44 +107,32 @@
   thus "reflect (reflect (Br a t1 t2)) = Br a t1 t2" by blast
 qed
 
-declare [[ sledgehammer_problem_prefix = "BT__bt_map_ident" ]]
-
 lemma bt_map_ident: "bt_map (%x. x) = (%y. y)"
 apply (rule ext)
 apply (induct_tac y)
  apply (metis bt_map.simps(1))
 by (metis bt_map.simps(2))
 
-declare [[ sledgehammer_problem_prefix = "BT__bt_map_append" ]]
-
 lemma bt_map_append: "bt_map f (append t u) = append (bt_map f t) (bt_map f u)"
 apply (induct t)
  apply (metis append.simps(1) bt_map.simps(1))
 by (metis append.simps(2) bt_map.simps(2))
 
-declare [[ sledgehammer_problem_prefix = "BT__bt_map_compose" ]]
-
 lemma bt_map_compose: "bt_map (f o g) t = bt_map f (bt_map g t)"
 apply (induct t)
  apply (metis bt_map.simps(1))
 by (metis bt_map.simps(2) o_eq_dest_lhs)
 
-declare [[ sledgehammer_problem_prefix = "BT__bt_map_reflect" ]]
-
 lemma bt_map_reflect: "bt_map f (reflect t) = reflect (bt_map f t)"
 apply (induct t)
  apply (metis bt_map.simps(1) reflect.simps(1))
 by (metis bt_map.simps(2) reflect.simps(2))
 
-declare [[ sledgehammer_problem_prefix = "BT__preorder_bt_map" ]]
-
 lemma preorder_bt_map: "preorder (bt_map f t) = map f (preorder t)"
 apply (induct t)
  apply (metis bt_map.simps(1) map.simps(1) preorder.simps(1))
 by simp
 
-declare [[ sledgehammer_problem_prefix = "BT__inorder_bt_map" ]]
-
 lemma inorder_bt_map: "inorder (bt_map f t) = map f (inorder t)"
 proof (induct t)
   case Lf thus ?case
@@ -168,22 +146,16 @@
   case (Br a t1 t2) thus ?case by simp
 qed
 
-declare [[ sledgehammer_problem_prefix = "BT__postorder_bt_map" ]]
-
 lemma postorder_bt_map: "postorder (bt_map f t) = map f (postorder t)"
 apply (induct t)
  apply (metis Nil_is_map_conv bt_map.simps(1) postorder.simps(1))
 by simp
 
-declare [[ sledgehammer_problem_prefix = "BT__depth_bt_map" ]]
-
 lemma depth_bt_map [simp]: "depth (bt_map f t) = depth t"
 apply (induct t)
  apply (metis bt_map.simps(1) depth.simps(1))
 by simp
 
-declare [[ sledgehammer_problem_prefix = "BT__n_leaves_bt_map" ]]
-
 lemma n_leaves_bt_map [simp]: "n_leaves (bt_map f t) = n_leaves t"
 apply (induct t)
  apply (metis bt_map.simps(1) n_leaves.simps(1))
@@ -203,8 +175,6 @@
     using F1 by metis
 qed
 
-declare [[ sledgehammer_problem_prefix = "BT__preorder_reflect" ]]
-
 lemma preorder_reflect: "preorder (reflect t) = rev (postorder t)"
 apply (induct t)
  apply (metis Nil_is_rev_conv postorder.simps(1) preorder.simps(1)
@@ -212,8 +182,6 @@
 apply simp
 done
 
-declare [[ sledgehammer_problem_prefix = "BT__inorder_reflect" ]]
-
 lemma inorder_reflect: "inorder (reflect t) = rev (inorder t)"
 apply (induct t)
  apply (metis Nil_is_rev_conv inorder.simps(1) reflect.simps(1))
@@ -223,8 +191,6 @@
           reflect.simps(2) rev.simps(2) rev_append)
 *)
 
-declare [[ sledgehammer_problem_prefix = "BT__postorder_reflect" ]]
-
 lemma postorder_reflect: "postorder (reflect t) = rev (preorder t)"
 apply (induct t)
  apply (metis Nil_is_rev_conv postorder.simps(1) preorder.simps(1)
@@ -235,15 +201,11 @@
 Analogues of the standard properties of the append function for lists.
 *}
 
-declare [[ sledgehammer_problem_prefix = "BT__append_assoc" ]]
-
 lemma append_assoc [simp]: "append (append t1 t2) t3 = append t1 (append t2 t3)"
 apply (induct t1)
  apply (metis append.simps(1))
 by (metis append.simps(2))
 
-declare [[ sledgehammer_problem_prefix = "BT__append_Lf2" ]]
-
 lemma append_Lf2 [simp]: "append t Lf = t"
 apply (induct t)
  apply (metis append.simps(1))
@@ -251,15 +213,11 @@
 
 declare max_add_distrib_left [simp]
 
-declare [[ sledgehammer_problem_prefix = "BT__depth_append" ]]
-
 lemma depth_append [simp]: "depth (append t1 t2) = depth t1 + depth t2"
 apply (induct t1)
  apply (metis append.simps(1) depth.simps(1) plus_nat.simps(1))
 by simp
 
-declare [[ sledgehammer_problem_prefix = "BT__n_leaves_append" ]]
-
 lemma n_leaves_append [simp]:
      "n_leaves (append t1 t2) = n_leaves t1 * n_leaves t2"
 apply (induct t1)
@@ -267,8 +225,6 @@
               Suc_eq_plus1)
 by (simp add: left_distrib)
 
-declare [[ sledgehammer_problem_prefix = "BT__bt_map_append" ]]
-
 lemma (*bt_map_append:*)
      "bt_map f (append t1 t2) = append (bt_map f t1) (bt_map f t2)"
 apply (induct t1)