code equation observes default sort constraints for types
authorhaftmann
Sun, 21 Jun 2009 21:46:07 +0200
changeset 31746 75fe3304015c
parent 31744 dc3c2d52b642
child 31747 8361d7a517b4
code equation observes default sort constraints for types
src/HOL/Code_Eval.thy
--- a/src/HOL/Code_Eval.thy	Sun Jun 21 21:37:24 2009 +0200
+++ b/src/HOL/Code_Eval.thy	Sun Jun 21 21:46:07 2009 +0200
@@ -85,7 +85,9 @@
     end;
   fun add_term_of_code tyco raw_vs raw_cs thy =
     let
-      val vs = map (fn (v, _) => (v, @{sort typerep})) raw_vs;
+      val algebra = Sign.classes_of thy;
+      val vs = map (fn (v, sort) =>
+        (v, curry (Sorts.inter_sort algebra) @{sort typerep} sort)) raw_vs;
       val ty = Type (tyco, map TFree vs);
       val cs = (map o apsnd o map o map_atyps)
         (fn TFree (v, _) => TFree (v, (the o AList.lookup (op =) vs) v)) raw_cs;