equal
deleted
inserted
replaced
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 |