- Function dec in Trancl_Tac must eta-contract relation before calling
authorberghofe
Wed, 07 May 2008 10:56:49 +0200
changeset 26801 244184661a09
parent 26800 dcf1dfc915a7
child 26802 9eede540a5e8
- Function dec in Trancl_Tac must eta-contract relation before calling decr, since it is now a function and could therefore be in eta-expanded form - The trancl prover now does more eta-contraction itself, so eta-contraction is no longer necessary in Tranclp_tac.
src/HOL/Transitive_Closure.thy
--- a/src/HOL/Transitive_Closure.thy	Wed May 07 10:56:43 2008 +0200
+++ b/src/HOL/Transitive_Closure.thy	Wed May 07 10:56:49 2008 +0200
@@ -636,7 +636,7 @@
         let fun decr (Const ("Transitive_Closure.rtrancl", _ ) $ r) = (r,"r*")
               | decr (Const ("Transitive_Closure.trancl", _ ) $ r)  = (r,"r+")
               | decr r = (r,"r");
-            val (rel,r) = decr rel;
+            val (rel,r) = decr (Envir.beta_eta_contract rel);
         in SOME (a,b,rel,r) end
       | dec _ =  NONE
     in dec t end;
@@ -660,7 +660,7 @@
               | decr (Const ("Transitive_Closure.tranclp", _ ) $ r)  = (r,"r+")
               | decr r = (r,"r");
             val (rel,r) = decr rel;
-        in SOME (a, b, Envir.beta_eta_contract rel, r) end
+        in SOME (a, b, rel, r) end
       | dec _ =  NONE
     in dec t end;