src/HOL/Tools/inductive_package.ML
changeset 11036 3c30f7b97a50
parent 11005 86f662ba3c3f
child 11358 416ea5c009f5
equal deleted inserted replaced
11035:bad7568e76e0 11036:3c30f7b97a50
   290   error (cat_lines ["Ill-formed premise", Sign.string_of_term sg p,
   290   error (cat_lines ["Ill-formed premise", Sign.string_of_term sg p,
   291     "in introduction rule " ^ quote name, Sign.string_of_term sg t, msg]);
   291     "in introduction rule " ^ quote name, Sign.string_of_term sg t, msg]);
   292 
   292 
   293 val bad_concl = "Conclusion of introduction rule must have form \"t : S_i\"";
   293 val bad_concl = "Conclusion of introduction rule must have form \"t : S_i\"";
   294 
   294 
   295 val atomize_cterm = InductMethod.rewrite_cterm inductive_atomize;
   295 val atomize_cterm = hol_rewrite_cterm inductive_atomize;
   296 fun full_simplify rews = Simplifier.full_simplify (HOL_basic_ss addsimps rews);
       
   297 
   296 
   298 in
   297 in
   299 
   298 
   300 fun check_rule sg cs ((name, rule), att) =
   299 fun check_rule sg cs ((name, rule), att) =
   301   let
   300   let
   319     ((name, arule), att)
   318     ((name, arule), att)
   320   end;
   319   end;
   321 
   320 
   322 val rulify =
   321 val rulify =
   323   standard o Tactic.norm_hhf o
   322   standard o Tactic.norm_hhf o
   324   full_simplify inductive_rulify2 o full_simplify inductive_rulify1 o
   323   hol_simplify inductive_rulify2 o hol_simplify inductive_rulify1 o
   325   full_simplify inductive_conj;
   324   hol_simplify inductive_conj;
   326 
   325 
   327 end;
   326 end;
   328 
   327 
   329 
   328 
   330 
   329