313 in map (case_UU_tac rews 1) (nonlazy args) @ [ |
313 in map (case_UU_tac rews 1) (nonlazy args) @ [ |
314 asm_simp_tac (HOLCF_ss addsimps rews) 1] end)) |
314 asm_simp_tac (HOLCF_ss addsimps rews) 1] end)) |
315 (filter (fn (_,args)=>exists is_nonlazy_rec args) cons); |
315 (filter (fn (_,args)=>exists is_nonlazy_rec args) cons); |
316 val copy_rews = copy_strict::copy_apps @ copy_stricts; |
316 val copy_rews = copy_strict::copy_apps @ copy_stricts; |
317 in thy |> Theory.add_path (Sign.base_name dname) |
317 in thy |> Theory.add_path (Sign.base_name dname) |
318 |> (PureThy.add_thmss o map Thm.no_attributes) [ |
318 |> (#1 o (PureThy.add_thmss (map Thm.no_attributes [ |
319 ("iso_rews" , iso_rews ), |
319 ("iso_rews" , iso_rews ), |
320 ("exhaust" , [exhaust] ), |
320 ("exhaust" , [exhaust] ), |
321 ("casedist" , [casedist]), |
321 ("casedist" , [casedist]), |
322 ("when_rews", when_rews ), |
322 ("when_rews", when_rews ), |
323 ("con_rews", con_rews), |
323 ("con_rews", con_rews), |
325 ("dis_rews", dis_rews), |
325 ("dis_rews", dis_rews), |
326 ("dist_les", dist_les), |
326 ("dist_les", dist_les), |
327 ("dist_eqs", dist_eqs), |
327 ("dist_eqs", dist_eqs), |
328 ("inverts" , inverts ), |
328 ("inverts" , inverts ), |
329 ("injects" , injects ), |
329 ("injects" , injects ), |
330 ("copy_rews", copy_rews)] |
330 ("copy_rews", copy_rews)]))) |
331 |> Theory.parent_path |
331 |> Theory.parent_path |
332 end; (* let *) |
332 end; (* let *) |
333 |
333 |
334 fun comp_theorems (comp_dnam, eqs: eq list) thy = |
334 fun comp_theorems (comp_dnam, eqs: eq list) thy = |
335 let |
335 let |
588 take_lemmas)); |
588 take_lemmas)); |
589 end; (* local *) |
589 end; (* local *) |
590 |
590 |
591 |
591 |
592 in thy |> Theory.add_path comp_dnam |
592 in thy |> Theory.add_path comp_dnam |
593 |> (PureThy.add_thmss o map Thm.no_attributes) [ |
593 |> (#1 o (PureThy.add_thmss (map Thm.no_attributes [ |
594 ("take_rews" , take_rews ), |
594 ("take_rews" , take_rews ), |
595 ("take_lemmas", take_lemmas), |
595 ("take_lemmas", take_lemmas), |
596 ("finites" , finites ), |
596 ("finites" , finites ), |
597 ("finite_ind", [finite_ind]), |
597 ("finite_ind", [finite_ind]), |
598 ("ind" , [ind ]), |
598 ("ind" , [ind ]), |
599 ("coind" , [coind ])] |
599 ("coind" , [coind ])]))) |
600 |> Theory.parent_path |
600 |> Theory.parent_path |
601 end; (* let *) |
601 end; (* let *) |
602 end; (* local *) |
602 end; (* local *) |
603 end; (* struct *) |
603 end; (* struct *) |