Nominal/nominal_dt_rawperm.ML
changeset 2431 331873ebc5cd
parent 2401 7645e18e8b19
child 2476 8f8652a8107f
--- a/Nominal/nominal_dt_rawperm.ML	Sun Aug 22 14:02:49 2010 +0800
+++ b/Nominal/nominal_dt_rawperm.ML	Wed Aug 25 09:02:06 2010 +0800
@@ -9,8 +9,8 @@
 
 signature NOMINAL_DT_RAWPERM =
 sig
-  val define_raw_perms: string list -> typ list -> term list -> thm -> local_theory -> 
-    (term list * thm list * thm list) * local_theory
+  val define_raw_perms: string list -> typ list -> (string * sort) list -> term list -> thm -> 
+    local_theory -> (term list * thm list * thm list) * local_theory
 end
 
 
@@ -90,7 +90,7 @@
 end
 
 
-fun define_raw_perms full_ty_names tys constrs induct_thm lthy =
+fun define_raw_perms full_ty_names tys tvs constrs induct_thm lthy =
 let
   val perm_fn_names = full_ty_names
     |> map Long_Name.base_name
@@ -113,7 +113,7 @@
   val ((perm_funs, perm_eq_thms), lthy') =
     lthy
     |> Local_Theory.exit_global
-    |> Class.instantiation (full_ty_names, [], @{sort pt}) 
+    |> Class.instantiation (full_ty_names, tvs, @{sort pt}) 
     |> Primrec.add_primrec perm_fn_binds perm_eqs
     
   val perm_zero_thms = prove_permute_zero induct_thm perm_eq_thms perm_funs lthy'