minor performance tuning: proper Same.operation;
authorwenzelm
Sun, 31 Dec 2023 12:22:23 +0100
changeset 79402 6bcb7131142d
parent 79401 6e6f76c5dd96
child 79403 254b062ec54d
minor performance tuning: proper Same.operation;
src/Pure/thm.ML
--- a/src/Pure/thm.ML	Sun Dec 31 11:50:05 2023 +0100
+++ b/src/Pure/thm.ML	Sun Dec 31 12:22:23 2023 +0100
@@ -1088,12 +1088,13 @@
 
         val types = present @ witnessed @ map (`Logic.dummy_tfree) extra';
         fun get_type S = types |> get_first (fn (T', S') => if le (S', S) then SOME T' else NONE);
-        fun map_atyp T =
-          if Types.defined present_set T then raise Same.SAME
-          else
-            (case get_type (Type.sort_of_atyp T) of
-              SOME T' => T'
-            | NONE => raise Fail "strip_shyps: bad type variable in proof term");
+        val map_atyp =
+          Same.function_eq (op =) (fn T =>
+            if Types.defined present_set T then raise Same.SAME
+            else
+              (case get_type (Type.sort_of_atyp T) of
+                SOME T' => T'
+              | NONE => raise Fail "strip_shyps: bad type variable in proof term"));
         val map_ztyp =
           ZTypes.unsynchronized_cache
             (ZTerm.subst_type_same (ZTerm.ztyp_of o map_atyp o ZTerm.typ_of o ZTVar));