More_Regular_Set.thy
changeset 180 b755090d0f3d
parent 174 2b414a8a7132
--- a/More_Regular_Set.thy	Thu Jul 28 14:22:10 2011 +0000
+++ b/More_Regular_Set.thy	Thu Jul 28 17:52:36 2011 +0000
@@ -9,25 +9,6 @@
   conc (infixr "\<cdot>" 100) and
   star ("_\<star>" [101] 102)
 
-lemma conc_add_left:
-  assumes a: "A = B"
-  shows "C \<cdot> A = C \<cdot> B"
-using a by simp
-
-lemma star_cases:
-  shows "A\<star> =  {[]} \<union> A \<cdot> A\<star>"
-proof
-  { fix x
-    have "x \<in> A\<star> \<Longrightarrow> x \<in> {[]} \<union> A \<cdot> A\<star>"
-      unfolding conc_def
-    by (induct rule: star_induct) (auto)
-  }
-  then show "A\<star> \<subseteq> {[]} \<union> A \<cdot> A\<star>" by auto
-next
-  show "{[]} \<union> A \<cdot> A\<star> \<subseteq> A\<star>"
-    unfolding conc_def by auto
-qed
-
 lemma star_decom: 
   assumes a: "x \<in> A\<star>" "x \<noteq> []"
   shows "\<exists>a b. x = a @ b \<and> a \<noteq> [] \<and> a \<in> A \<and> b \<in> A\<star>"
@@ -109,9 +90,9 @@
   assume eq: "X = B \<cdot> A\<star>"
   have "A\<star> = {[]} \<union> A\<star> \<cdot> A" 
     unfolding conc_star_comm[symmetric]
-    by (rule star_cases)
+    by(metis Un_commute star_unfold_left)
   then have "B \<cdot> A\<star> = B \<cdot> ({[]} \<union> A\<star> \<cdot> A)"
-    by (rule conc_add_left)
+    by metis
   also have "\<dots> = B \<union> B \<cdot> (A\<star> \<cdot> A)"
     unfolding conc_Un_distrib by simp
   also have "\<dots> = B \<union> (B \<cdot> A\<star>) \<cdot> A"