src/HOL/Tools/inductive_package.ML
changeset 10186 499637e8f2c6
parent 10065 ddb3a014f721
child 10202 9e8b4bebc940
equal deleted inserted replaced
10185:c452fea3ce74 10186:499637e8f2c6
   414 fun prove_intrs coind mono fp_def intr_ts con_defs rec_sets_defs thy =
   414 fun prove_intrs coind mono fp_def intr_ts con_defs rec_sets_defs thy =
   415   let
   415   let
   416     val _ = message "  Proving the introduction rules ...";
   416     val _ = message "  Proving the introduction rules ...";
   417 
   417 
   418     val unfold = standard (mono RS (fp_def RS
   418     val unfold = standard (mono RS (fp_def RS
   419       (if coind then def_gfp_Tarski else def_lfp_Tarski)));
   419       (if coind then def_gfp_unfold else def_lfp_unfold)));
   420 
   420 
   421     fun select_disj 1 1 = []
   421     fun select_disj 1 1 = []
   422       | select_disj _ 1 = [rtac disjI1]
   422       | select_disj _ 1 = [rtac disjI1]
   423       | select_disj n i = (rtac disjI2)::(select_disj (n - 1) (i - 1));
   423       | select_disj n i = (rtac disjI2)::(select_disj (n - 1) (i - 1));
   424 
   424