src/HOLCF/domain/theorems.ML
changeset 8438 b8389b4fca9c
parent 8149 941afb897532
child 10230 5eb935d6cc69
equal deleted inserted replaced
8437:258281c43dea 8438:b8389b4fca9c
   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 *)