tuned set_replicate lemmas
authornipkow
Fri, 18 Jun 2010 20:22:06 +0200
changeset 374310a1cc2675958
parent 37430 059ee3176686
child 37440 fcc2c36b3770
child 37441 87bf104920f2
tuned set_replicate lemmas
src/HOL/Imperative_HOL/ex/SatChecker.thy
src/HOL/List.thy
src/HOL/MicroJava/Comp/CorrCompTp.thy
src/HOL/ex/Recdefs.thy
     1.1 --- a/src/HOL/Imperative_HOL/ex/SatChecker.thy	Fri Jun 18 14:14:42 2010 +0200
     1.2 +++ b/src/HOL/Imperative_HOL/ex/SatChecker.thy	Fri Jun 18 20:22:06 2010 +0200
     1.3 @@ -555,7 +555,6 @@
     1.4  apply auto
     1.5  apply (drule fold_steps_correct)
     1.6  apply (simp add: correctArray_def array_ran_def)
     1.7 -apply (cases "n = 0", auto)
     1.8  apply (rule implies_empty_inconsistent)
     1.9  apply (simp add:correctArray_def)
    1.10  apply (drule bspec)
     2.1 --- a/src/HOL/List.thy	Fri Jun 18 14:14:42 2010 +0200
     2.2 +++ b/src/HOL/List.thy	Fri Jun 18 20:22:06 2010 +0200
     2.3 @@ -3190,6 +3190,9 @@
     2.4  lemma set_replicate_conv_if: "set (replicate n x) = (if n = 0 then {} else {x})"
     2.5  by auto
     2.6  
     2.7 +lemma in_set_replicate[simp]: "(x : set (replicate n y)) = (x = y & n \<noteq> 0)"
     2.8 +by (simp add: set_replicate_conv_if)
     2.9 +
    2.10  lemma Ball_set_replicate[simp]:
    2.11    "(ALL x : set(replicate n a). P x) = (P a | n=0)"
    2.12  by(simp add: set_replicate_conv_if)
    2.13 @@ -3198,9 +3201,6 @@
    2.14    "(EX x : set(replicate n a). P x) = (P a & n\<noteq>0)"
    2.15  by(simp add: set_replicate_conv_if)
    2.16  
    2.17 -lemma in_set_replicateD: "x : set (replicate n y) ==> x = y"
    2.18 -by (simp add: set_replicate_conv_if split: split_if_asm)
    2.19 -
    2.20  lemma replicate_append_same:
    2.21    "replicate i x @ [x] = x # replicate i x"
    2.22    by (induct i) simp_all
     3.1 --- a/src/HOL/MicroJava/Comp/CorrCompTp.thy	Fri Jun 18 14:14:42 2010 +0200
     3.2 +++ b/src/HOL/MicroJava/Comp/CorrCompTp.thy	Fri Jun 18 20:22:06 2010 +0200
     3.3 @@ -2372,9 +2372,6 @@
     3.4  apply (simp add: check_type_simps)
     3.5  apply (simp only: list_def)
     3.6  apply (auto simp: err_def)
     3.7 -apply (subgoal_tac "set (replicate mxl Err) \<subseteq>  {Err}")
     3.8 -apply blast
     3.9 -apply (rule subset_replicate)
    3.10  done
    3.11  
    3.12  
     4.1 --- a/src/HOL/ex/Recdefs.thy	Fri Jun 18 14:14:42 2010 +0200
     4.2 +++ b/src/HOL/ex/Recdefs.thy	Fri Jun 18 20:22:06 2010 +0200
     4.3 @@ -120,11 +120,13 @@
     4.4  *}
     4.5  
     4.6  consts mapf :: "nat => nat list"
     4.7 -recdef (permissive) mapf  "measure (\<lambda>m. m)"
     4.8 +recdef mapf  "measure (\<lambda>m. m)"
     4.9    "mapf 0 = []"
    4.10    "mapf (Suc n) = concat (map (\<lambda>x. mapf x) (replicate n n))"
    4.11    (hints cong: map_cong)
    4.12  
    4.13 +(* This used to be an example where recdef_tc etc is needed,
    4.14 +   but now termination is proved outright
    4.15  recdef_tc mapf_tc: mapf
    4.16    apply (rule allI)
    4.17    apply (case_tac "n = 0")
    4.18 @@ -138,5 +140,6 @@
    4.19    done
    4.20  
    4.21  lemmas mapf_induct = mapf.induct [OF mapf_tc]
    4.22 +*)
    4.23  
    4.24  end