equal
deleted
inserted
replaced
501 |
501 |
502 (* convert theorems to set notation *) |
502 (* convert theorems to set notation *) |
503 val rec_name = |
503 val rec_name = |
504 if Binding.is_empty alt_name then Binding.conglomerate (map #1 cnames_syn) else alt_name; |
504 if Binding.is_empty alt_name then Binding.conglomerate (map #1 cnames_syn) else alt_name; |
505 val cnames = map (Local_Theory.full_name lthy3 o #1) cnames_syn; (* FIXME *) |
505 val cnames = map (Local_Theory.full_name lthy3 o #1) cnames_syn; (* FIXME *) |
506 val spec_name = Local_Theory.full_name lthy3 (Binding.conglomerate (map #1 cnames_syn)); |
506 val spec_name = Binding.conglomerate (map #1 cnames_syn); |
507 val (intr_names, intr_atts) = split_list (map fst intros); |
507 val (intr_names, intr_atts) = split_list (map fst intros); |
508 val raw_induct' = to_set [] (Context.Proof lthy3) raw_induct; |
508 val raw_induct' = to_set [] (Context.Proof lthy3) raw_induct; |
509 val (intrs', elims', eqs', induct, inducts, lthy4) = |
509 val (intrs', elims', eqs', induct, inducts, lthy4) = |
510 Inductive.declare_rules rec_name coind no_ind spec_name cnames (map fst defs) |
510 Inductive.declare_rules rec_name coind no_ind spec_name cnames (map fst defs) |
511 (map (to_set [] (Context.Proof lthy3)) intrs) intr_names intr_atts |
511 (map (to_set [] (Context.Proof lthy3)) intrs) intr_names intr_atts |