diff -r add799cf0817 -r 82e37a4595c7 Nominal/Nominal2.thy --- a/Nominal/Nominal2.thy Wed Nov 10 13:46:21 2010 +0000 +++ b/Nominal/Nominal2.thy Fri Nov 12 01:20:53 2010 +0000 @@ -169,6 +169,7 @@ in (dt_index, (bn_fun, (cnstr_head, rhs_elements))) end + fun order dts i ts = let val dt = nth dts i @@ -190,7 +191,6 @@ ordered' end - fun define_raw_bns dt_names dts raw_bn_funs raw_bn_eqs constr_thms size_thms lthy = if null raw_bn_funs then ([], [], [], [], lthy) @@ -210,6 +210,7 @@ in (fs, raw_bn_eqs, raw_bn_info, raw_bn_induct, lthy2) end + *} ML {* @@ -298,33 +299,40 @@ (* definitions of raw permutations by primitive recursion *) val _ = warning "Definition of raw permutations"; val ((raw_perm_funs, raw_perm_simps, raw_perm_laws), lthy2a) = - if get_STEPS lthy0 > 1 + if get_STEPS lthy0 > 0 then define_raw_perms raw_full_ty_names raw_tys tvs raw_constrs raw_induct_thm lthy0 else raise TEST lthy0 (* noting the raw permutations as eqvt theorems *) val (_, lthy3) = Local_Theory.note ((Binding.empty, [eqvt_attr]), raw_perm_simps) lthy2a - (* definition of raw fv_functions *) - val _ = warning "Definition of raw fv-functions"; + (* definition of raw fv and bn functions *) + val _ = warning "Definition of raw fv- and bn-functions"; val (raw_bns, raw_bn_defs, raw_bn_info, raw_bn_induct, lthy3a) = - if get_STEPS lthy3 > 2 + if get_STEPS lthy3 > 1 then define_raw_bns raw_full_ty_names raw_dts raw_bn_funs raw_bn_eqs (raw_inject_thms @ raw_distinct_thms) raw_size_thms lthy3 else raise TEST lthy3 - val (raw_fvs, raw_fv_bns, raw_fv_defs, raw_fv_bns_induct, lthy3b) = - if get_STEPS lthy3a > 3 - then define_raw_fvs raw_full_ty_names raw_tys raw_cns_info raw_bn_info raw_bclauses + (* defining the permute_bn functions *) + val (_, _, lthy3b) = + if get_STEPS lthy3a > 2 + then define_raw_bn_perms raw_tys raw_bn_info raw_cns_info (raw_inject_thms @ raw_distinct_thms) raw_size_thms lthy3a else raise TEST lthy3a + val (raw_fvs, raw_fv_bns, raw_fv_defs, raw_fv_bns_induct, lthy3c) = + if get_STEPS lthy3b > 3 + then define_raw_fvs raw_full_ty_names raw_tys raw_cns_info raw_bn_info raw_bclauses + (raw_inject_thms @ raw_distinct_thms) raw_size_thms lthy3b + else raise TEST lthy3b + (* definition of raw alphas *) val _ = warning "Definition of alphas"; val (alpha_trms, alpha_bn_trms, alpha_intros, alpha_cases, alpha_induct, lthy4) = - if get_STEPS lthy3b > 4 - then define_raw_alpha raw_full_ty_names raw_tys raw_cns_info raw_bn_info raw_bclauses raw_fvs lthy3b - else raise TEST lthy3b + if get_STEPS lthy3c > 4 + then define_raw_alpha raw_full_ty_names raw_tys raw_cns_info raw_bn_info raw_bclauses raw_fvs lthy3c + else raise TEST lthy3c val alpha_tys = map (domain_type o fastype_of) alpha_trms (* definition of alpha-distinct lemmas *)