Adapted to changes in Accessible_Part and Wellfounded_Recursion theories.
authorberghofe
Wed, 07 Feb 2007 18:03:18 +0100
changeset 22279 b0d482a9443f
parent 22278 70a7cd02fec1
child 22280 a20a203c8f41
Adapted to changes in Accessible_Part and Wellfounded_Recursion theories.
src/HOL/Tools/function_package/fundef_common.ML
src/HOL/Tools/function_package/fundef_core.ML
--- a/src/HOL/Tools/function_package/fundef_common.ML	Wed Feb 07 18:01:40 2007 +0100
+++ b/src/HOL/Tools/function_package/fundef_common.ML	Wed Feb 07 18:03:18 2007 +0100
@@ -10,7 +10,7 @@
 struct
 
 (* Theory Dependencies *)
-val acc_const_name = "FunDef.accP"
+val acc_const_name = "Accessible_Part.acc"
 
 val profile = ref false;
 
--- a/src/HOL/Tools/function_package/fundef_core.ML	Wed Feb 07 18:01:40 2007 +0100
+++ b/src/HOL/Tools/function_package/fundef_core.ML	Wed Feb 07 18:03:18 2007 +0100
@@ -95,17 +95,17 @@
 (* Theory dependencies. *)
 val Pair_inject = thm "Product_Type.Pair_inject";
 
-val acc_induct_rule = thm "FunDef.accP_induct_rule"
+val acc_induct_rule = thm "Accessible_Part.acc_induct_rule"
 
 val ex1_implies_ex = thm "FunDef.fundef_ex1_existence"
 val ex1_implies_un = thm "FunDef.fundef_ex1_uniqueness"
 val ex1_implies_iff = thm "FunDef.fundef_ex1_iff"
 
-val acc_downward = thm "FunDef.accP_downward"
-val accI = thm "FunDef.accPI"
+val acc_downward = thm "Accessible_Part.acc_downward"
+val accI = thm "Accessible_Part.accI"
 val case_split = thm "HOL.case_split_thm"
 val fundef_default_value = thm "FunDef.fundef_default_value"
-val not_accP_down = thm "FunDef.not_accP_down"
+val not_acc_down = thm "Accessible_Part.not_acc_down"
 
 
 
@@ -572,7 +572,8 @@
 (** Induction rule **)
 
 
-val acc_subset_induct = thm "FunDef.accP_subset_induct"
+val acc_subset_induct = thm "FixedPoint.predicate1I" RS
+  thm "Accessible_Part.acc_subset_induct"
 
 fun mk_partial_induct_rule thy globals R complete_thm clauses =
     let
@@ -702,9 +703,9 @@
 
 (** Termination rule **)
 
-val wf_induct_rule = thm "FunDef.wfP_induct_rule";
-val wf_in_rel = thm "FunDef.wf_in_rel";
-val in_rel_def = thm "FunDef.in_rel_def";
+val wf_induct_rule = thm "Wellfounded_Recursion.wfP_induct_rule";
+val wf_in_rel = thm "Wellfounded_Recursion.wf_implies_wfP";
+val in_rel_def = thm "Predicate.member2_eq";
 
 fun mk_nest_term_case thy globals R' ihyp clause =
     let
@@ -767,9 +768,9 @@
       val R' = Free ("R", fastype_of R)
                
       val Rrel = Free ("R", mk_relT (domT, domT))
-      val inrel_R = Const ("FunDef.in_rel", mk_relT (domT, domT) --> fastype_of R) $ Rrel
+      val inrel_R = Const ("Predicate.member2", mk_relT (domT, domT) --> fastype_of R) $ Rrel
                     
-      val wfR' = cterm_of thy (Trueprop (Const ("FunDef.wfP", (domT --> domT --> boolT) --> boolT) $ R')) (* "wf R'" *)
+      val wfR' = cterm_of thy (Trueprop (Const ("Wellfounded_Recursion.wfP", (domT --> domT --> boolT) --> boolT) $ R')) (* "wf R'" *)
                           
       (* Inductive Hypothesis: !!z. (z,x):R' ==> z : acc R *)
       val ihyp = all domT $ Abs ("z", domT, 
@@ -845,7 +846,7 @@
                            rtac (instantiate' [] [SOME (cterm_of thy lhs_acc)] case_split) 1
                                 THEN (rtac (forall_elim_vars 0 psimp) THEN_ALL_NEW assume_tac) 1
                                 THEN (SIMPSET (fn ss => asm_full_simp_tac (ss addsimps [default_thm]) 1))
-                                THEN (etac not_accP_down 1)
+                                THEN (etac not_acc_down 1)
                                 THEN ((etac R_cases) THEN_ALL_NEW (SIMPSET' (fn ss => asm_full_simp_tac (ss addsimps [default_thm])))) 1)
               |> fold_rev forall_intr_rename (map fst oqs ~~ cqs)
           end