diff -r 51b8e6dd72d5 -r 0511e879a687 Nominal/Fv.thy --- a/Nominal/Fv.thy Wed Mar 10 09:36:07 2010 +0100 +++ b/Nominal/Fv.thy Wed Mar 10 09:45:38 2010 +0100 @@ -201,9 +201,20 @@ val alpha_bn_name = "alpha_" ^ (Long_Name.base_name (fst (dest_Const bn))); val alpha_bn_type = @{typ perm} --> nth_dtyp ith_dtyp --> nth_dtyp ith_dtyp --> @{typ bool} val alpha_bn_free = Free(alpha_bn_name, alpha_bn_type); -(*... *) + fun alpha_bn_constr (cname, dts) args_in_bn = + let + val Ts = map (typ_of_dtyp descr sorts) dts; + val names = Name.variant_list ["pi"] (Datatype_Prop.make_tnames Ts); + val names2 = Name.variant_list ("pi" :: names) (Datatype_Prop.make_tnames Ts); + val args = map Free (names ~~ Ts); + val args2 = map Free (names2 ~~ Ts); + val c = Const (cname, Ts ---> (nth_dtyp ith_dtyp)); + (*...*) + in + [] + end val (_, (_, _, constrs)) = nth descr ith_dtyp; - val eqs = [] (*map2i alpha_bn_constr constrs args_in_bns*) + val eqs = map2i alpha_bn_constr constrs args_in_bns in ((bn, alpha_bn_name), (alpha_bn_free, eqs)) end