# HG changeset patch
# User Chengsong
# Date 1568379054 -3600
# Node ID eb08de92c4dcc1f66120872c46aa4f8b77eefebb
# Parent  744c32aceea65185bbb5f0d0414b9c8fa7669e66
so far so good

diff -r 744c32aceea6 -r eb08de92c4dc thys/BitCoded2CT.thy
--- a/thys/BitCoded2CT.thy	Thu Sep 12 21:12:54 2019 +0100
+++ b/thys/BitCoded2CT.thy	Fri Sep 13 13:50:54 2019 +0100
@@ -3082,7 +3082,9 @@
 
 lemma concat_def:
   shows"[]@lst=lst"
-  
+  apply auto
+  done
+
 lemma derc_alt:
   assumes "bder c (AALTs [] as) >> bs"
   shows "bder c (bsimp(AALTs [] as)) >> bs"
@@ -3094,9 +3096,24 @@
   apply(drule_tac  x="[]" in meta_spec)
   apply(drule_tac x="map (bder c) as" in meta_spec)
   apply(drule_tac x="bs" in meta_spec)
+  
   apply(simp add:List.append.simps(1))
-  apply(rule_tac t="as" and s="list1@[a]@list2" in subst)
-   
+  apply(erule bexE)
+  apply(subgoal_tac "\<exists>list1 list2. as = list1 @ [a] @ list2")
+   prefer 2
+  using split_list_last apply fastforce
+  apply(erule exE)+
+  apply(rule_tac t="as" and  s="list1@[a]@list2" in subst)
+   apply simp
+  (*find_theorems "map _ _ = _"*)
+  apply(subst map_append)+
+  apply(subst k00)+
+  apply(case_tac "flts (map bsimp list1) = Nil")
+  apply(case_tac "flts (map bsimp list2) = Nil")
+  apply simp
+
+
+  (*find_theorems "flts _ = _ "*)
 (*  (*HERE*)
   apply(drule  i_know_it_must_be_a_theorem_but_dunno_its_name)
 *)