merged
authorAndreas Lochbihler
Fri, 18 Mar 2016 12:54:20 +0100
changeset 62653 d3a5b127eb81
parent 62651 66568c9b8216 (diff)
parent 62652 7248d106c607 (current diff)
child 62670 006c057814f1
merged
--- a/src/HOL/Data_Structures/Tree2.thy	Fri Mar 18 08:01:49 2016 +0100
+++ b/src/HOL/Data_Structures/Tree2.thy	Fri Mar 18 12:54:20 2016 +0100
@@ -14,4 +14,15 @@
 "height Leaf = 0" |
 "height (Node _ l a r) = max (height l) (height r) + 1"
 
+definition size1 :: "('a,'b) tree \<Rightarrow> nat" where
+"size1 t = size t + 1"
+
+lemma size1_simps[simp]:
+  "size1 \<langle>\<rangle> = 1"
+  "size1 \<langle>u, l, x, r\<rangle> = size1 l + size1 r"
+by (simp_all add: size1_def)
+
+lemma size1_ge0[simp]: "0 < size1 t"
+by (simp add: size1_def)
+
 end
--- a/src/HOL/Library/Multiset.thy	Fri Mar 18 08:01:49 2016 +0100
+++ b/src/HOL/Library/Multiset.thy	Fri Mar 18 12:54:20 2016 +0100
@@ -2062,7 +2062,7 @@
 done
 
 lemma one_step_implies_mult:
-  "trans r \<Longrightarrow> J \<noteq> {#} \<Longrightarrow> \<forall>k \<in> set_mset K. \<exists>j \<in> set_mset J. (k, j) \<in> r
+  "J \<noteq> {#} \<Longrightarrow> \<forall>k \<in> set_mset K. \<exists>j \<in> set_mset J. (k, j) \<in> r
     \<Longrightarrow> (I + K, I + J) \<in> mult r"
 using one_step_implies_mult_aux by blast
 
--- a/src/HOL/Library/Tree.thy	Fri Mar 18 08:01:49 2016 +0100
+++ b/src/HOL/Library/Tree.thy	Fri Mar 18 12:54:20 2016 +0100
@@ -24,6 +24,9 @@
   "size1 \<langle>l, x, r\<rangle> = size1 l + size1 r"
 by (simp_all add: size1_def)
 
+lemma size1_ge0[simp]: "0 < size1 t"
+by (simp add: size1_def)
+
 lemma size_0_iff_Leaf: "size t = 0 \<longleftrightarrow> t = Leaf"
 by(cases t) auto
 
--- a/src/HOL/Tools/BNF/bnf_fp_n2m.ML	Fri Mar 18 08:01:49 2016 +0100
+++ b/src/HOL/Tools/BNF/bnf_fp_n2m.ML	Fri Mar 18 12:54:20 2016 +0100
@@ -165,7 +165,7 @@
 
     val rel_unfolds = maps (no_refl o single o rel_def_of_bnf) pre_bnfs;
     val rel_xtor_co_inducts = of_fp_res (split_conj_thm o #xtor_rel_co_induct)
-      |> map (unfold_thms lthy (id_apply :: rel_unfolds));
+      |> map (zero_var_indexes o unfold_thms lthy (id_apply :: rel_unfolds));
 
     val rel_defs = map rel_def_of_bnf bnfs;
     val rel_monos = map rel_mono_of_bnf bnfs;
--- a/src/HOL/ZF/LProd.thy	Fri Mar 18 08:01:49 2016 +0100
+++ b/src/HOL/ZF/LProd.thy	Fri Mar 18 12:54:20 2016 +0100
@@ -59,7 +59,7 @@
   proof (cases "a = b")
     case True    
     have "((I + {#b#}) + K, (I + {#b#}) + J) \<in> mult R"
-      apply (rule one_step_implies_mult[OF transR])
+      apply (rule one_step_implies_mult)
       apply (auto simp add: decomposed)
       done
     then show ?thesis
@@ -71,7 +71,7 @@
     case False
     from False lprod_list have False: "(a, b) \<in> R" by blast
     have "(I + (K + {#a#}), I + (J + {#b#})) \<in> mult R"
-      apply (rule one_step_implies_mult[OF transR])
+      apply (rule one_step_implies_mult)
       apply (auto simp add: False decomposed)
       done
     then show ?thesis