src/ZF/Tools/inductive_package.ML
changeset 6093 87bf8c03b169
parent 6092 d9db67970c73
child 6141 a6922171b396
equal deleted inserted replaced
6092:d9db67970c73 6093:87bf8c03b169
   139   val big_rec_name = Sign.intern_const sign big_rec_base_name;
   139   val big_rec_name = Sign.intern_const sign big_rec_base_name;
   140 
   140 
   141   
   141   
   142   val dummy =
   142   val dummy =
   143       if verbose then
   143       if verbose then
   144 	  writeln ((if #1 (dest_Const Fp.oper) = "lfp" then "Inductive" 
   144 	  writeln ((if #1 (dest_Const Fp.oper) = "Fixedpt.lfp" then "Inductive" 
   145 		    else "Coinductive") ^ " definition " ^ big_rec_name)
   145 		    else "Coinductive") ^ " definition " ^ big_rec_name)
   146       else ();
   146       else ();
   147 
   147 
   148   (*Forbid the inductive definition structure from clashing with a theory
   148   (*Forbid the inductive definition structure from clashing with a theory
   149     name.  This restriction may become obsolete as ML is de-emphasized.*)
   149     name.  This restriction may become obsolete as ML is de-emphasized.*)
   526     end;  (*of induction_rules*)
   526     end;  (*of induction_rules*)
   527 
   527 
   528   val raw_induct = standard ([big_rec_def, bnd_mono] MRS Fp.induct)
   528   val raw_induct = standard ([big_rec_def, bnd_mono] MRS Fp.induct)
   529 
   529 
   530   val (thy2, induct, mutual_induct) = 
   530   val (thy2, induct, mutual_induct) = 
   531       if #1 (dest_Const Fp.oper) = "lfp" then induction_rules raw_induct thy1
   531       if #1 (dest_Const Fp.oper) = "Fixedpt.lfp" then induction_rules raw_induct thy1
   532       else (thy1, raw_induct, TrueI)
   532       else (thy1, raw_induct, TrueI)
   533   and defs = big_rec_def :: part_rec_defs
   533   and defs = big_rec_def :: part_rec_defs
   534 
   534 
   535  in
   535  in
   536    (thy2
   536    (thy2