src/HOL/Tools/Old_Datatype/old_datatype_aux.ML
changeset 58114 4e5a43b0e7dd
parent 58112 8081087096ad
child 58211 c1f3fa32d322
equal deleted inserted replaced
58113:ab6220d6cf70 58114:4e5a43b0e7dd
    28     case_rewrites : thm list,
    28     case_rewrites : thm list,
    29     case_cong : thm,
    29     case_cong : thm,
    30     case_cong_weak : thm,
    30     case_cong_weak : thm,
    31     split : thm,
    31     split : thm,
    32     split_asm: thm}
    32     split_asm: thm}
       
    33   type spec = (binding * (string * sort) list * mixfix) * (binding * typ list * mixfix) list
    33 end
    34 end
    34 
    35 
    35 signature OLD_DATATYPE_AUX =
    36 signature OLD_DATATYPE_AUX =
    36 sig
    37 sig
    37   include OLD_DATATYPE_COMMON
    38   include OLD_DATATYPE_COMMON
   197    case_cong : thm,
   198    case_cong : thm,
   198    case_cong_weak : thm,
   199    case_cong_weak : thm,
   199    split : thm,
   200    split : thm,
   200    split_asm: thm};
   201    split_asm: thm};
   201 
   202 
       
   203 type spec = (binding * (string * sort) list * mixfix) * (binding * typ list * mixfix) list;
       
   204 
   202 fun mk_Free s T i = Free (s ^ string_of_int i, T);
   205 fun mk_Free s T i = Free (s ^ string_of_int i, T);
   203 
   206 
   204 fun subst_DtTFree _ substs (T as DtTFree a) = the_default T (AList.lookup (op =) substs a)
   207 fun subst_DtTFree _ substs (T as DtTFree a) = the_default T (AList.lookup (op =) substs a)
   205   | subst_DtTFree i substs (DtType (name, ts)) = DtType (name, map (subst_DtTFree i substs) ts)
   208   | subst_DtTFree i substs (DtType (name, ts)) = DtType (name, map (subst_DtTFree i substs) ts)
   206   | subst_DtTFree i _ (DtRec j) = DtRec (i + j);
   209   | subst_DtTFree i _ (DtRec j) = DtRec (i + j);