src/ZF/add_ind_def.ML
changeset 4970 8b65444edbb0
parent 4860 3692eb8a6cdb
equal deleted inserted replaced
4969:61fd5c1d733f 4970:8b65444edbb0
    70 
    70 
    71 (*internal version*)
    71 (*internal version*)
    72 fun add_fp_def_i (rec_tms, dom_sum, intr_tms) thy = 
    72 fun add_fp_def_i (rec_tms, dom_sum, intr_tms) thy = 
    73   let
    73   let
    74     val dummy = (*has essential ancestors?*)
    74     val dummy = (*has essential ancestors?*)
    75 	Theory.require thy "Inductive" "(co)inductive definitions" 
    75 	Theory.requires thy "Inductive" "(co)inductive definitions" 
    76 
    76 
    77     val sign = sign_of thy;
    77     val sign = sign_of thy;
    78 
    78 
    79     (*recT and rec_params should agree for all mutually recursive components*)
    79     (*recT and rec_params should agree for all mutually recursive components*)
    80     val rec_hds = map head_of rec_tms;
    80     val rec_hds = map head_of rec_tms;
   176 (*Expects the recursive sets to have been defined already.
   176 (*Expects the recursive sets to have been defined already.
   177   con_ty_lists specifies the constructors in the form (name,prems,mixfix) *)
   177   con_ty_lists specifies the constructors in the form (name,prems,mixfix) *)
   178 fun add_constructs_def (rec_base_names, con_ty_lists) thy = 
   178 fun add_constructs_def (rec_base_names, con_ty_lists) thy = 
   179   let
   179   let
   180     val dummy = (*has essential ancestors?*)
   180     val dummy = (*has essential ancestors?*)
   181       Theory.require thy "Datatype" "(co)datatype definitions";
   181       Theory.requires thy "Datatype" "(co)datatype definitions";
   182 
   182 
   183     val sign = sign_of thy;
   183     val sign = sign_of thy;
   184     val full_name = Sign.full_name sign;
   184     val full_name = Sign.full_name sign;
   185 
   185 
   186     val dummy = writeln"  Defining the constructor functions...";
   186     val dummy = writeln"  Defining the constructor functions...";