methods "relation" and "lexicographic_order" do not insist on applying the "f.termination" rule of a function.
authorkrauss
Wed, 05 Dec 2007 14:36:58 +0100
changeset 25545 21cd20c1ce98
parent 25544 437251bbc5ce
child 25546 4f8d7ac83c0b
methods "relation" and "lexicographic_order" do not insist on applying the "f.termination" rule of a function.
src/HOL/Tools/function_package/auto_term.ML
src/HOL/Tools/function_package/lexicographic_order.ML
--- a/src/HOL/Tools/function_package/auto_term.ML	Wed Dec 05 14:32:17 2007 +0100
+++ b/src/HOL/Tools/function_package/auto_term.ML	Wed Dec 05 14:36:58 2007 +0100
@@ -26,7 +26,7 @@
     end
 
 fun relation_tac ctxt rel i = 
-    FundefCommon.apply_termination_rule ctxt i 
+    TRY (FundefCommon.apply_termination_rule ctxt i)
     THEN PRIMITIVE (inst_thm ctxt rel)
 
 val setup = Method.add_methods
--- a/src/HOL/Tools/function_package/lexicographic_order.ML	Wed Dec 05 14:32:17 2007 +0100
+++ b/src/HOL/Tools/function_package/lexicographic_order.ML	Wed Dec 05 14:36:58 2007 +0100
@@ -323,8 +323,9 @@
               THEN EVERY (map prove_row clean_table))
     end
 
-fun lexicographic_order thms ctxt = Method.SIMPLE_METHOD (FundefCommon.apply_termination_rule ctxt 1
-                                                         THEN lexicographic_order_tac ctxt (auto_tac (local_clasimpset_of ctxt)))
+fun lexicographic_order thms ctxt = 
+    Method.SIMPLE_METHOD (TRY (FundefCommon.apply_termination_rule ctxt 1)
+                          THEN lexicographic_order_tac ctxt (auto_tac (local_clasimpset_of ctxt)))
 
 val setup = Method.add_methods [("lexicographic_order", Method.bang_sectioned_args clasimp_modifiers lexicographic_order,
                                  "termination prover for lexicographic orderings")]