src/HOL/Tools/res_axioms.ML
changeset 18680 677e2bdd75f0
parent 18629 bdf01da93ed4
child 18708 4b3dadb4fe33
equal deleted inserted replaced
18679:cf9f1584431a 18680:677e2bdd75f0
   347 fun rules_of_claset cs =
   347 fun rules_of_claset cs =
   348   let val {safeIs,safeEs,hazIs,hazEs,...} = rep_cs cs
   348   let val {safeIs,safeEs,hazIs,hazEs,...} = rep_cs cs
   349       val intros = safeIs @ hazIs
   349       val intros = safeIs @ hazIs
   350       val elims  = map Classical.classical_rule (safeEs @ hazEs)
   350       val elims  = map Classical.classical_rule (safeEs @ hazEs)
   351   in
   351   in
   352      debug ("rules_of_claset intros: " ^ Int.toString(length intros) ^ 
   352      Output.debug ("rules_of_claset intros: " ^ Int.toString(length intros) ^ 
   353             " elims: " ^ Int.toString(length elims));
   353             " elims: " ^ Int.toString(length elims));
   354      if tagging_enabled 
   354      if tagging_enabled 
   355      then map pairname (map tag_intro intros @ map tag_elim elims)
   355      then map pairname (map tag_intro intros @ map tag_elim elims)
   356      else map pairname (intros @ elims)
   356      else map pairname (intros @ elims)
   357   end;
   357   end;
   358 
   358 
   359 fun rules_of_simpset ss =
   359 fun rules_of_simpset ss =
   360   let val ({rules,...}, _) = rep_ss ss
   360   let val ({rules,...}, _) = rep_ss ss
   361       val simps = Net.entries rules
   361       val simps = Net.entries rules
   362   in 
   362   in 
   363       debug ("rules_of_simpset: " ^ Int.toString(length simps));
   363       Output.debug ("rules_of_simpset: " ^ Int.toString(length simps));
   364       map (fn r => (#name r, #thm r)) simps
   364       map (fn r => (#name r, #thm r)) simps
   365   end;
   365   end;
   366 
   366 
   367 fun claset_rules_of_thy thy = rules_of_claset (claset_of thy);
   367 fun claset_rules_of_thy thy = rules_of_claset (claset_of thy);
   368 fun simpset_rules_of_thy thy = rules_of_simpset (simpset_of thy);
   368 fun simpset_rules_of_thy thy = rules_of_simpset (simpset_of thy);
   419 
   419 
   420 fun clausify_rules_pairs_aux result [] = result
   420 fun clausify_rules_pairs_aux result [] = result
   421   | clausify_rules_pairs_aux result ((name,th)::ths) =
   421   | clausify_rules_pairs_aux result ((name,th)::ths) =
   422       clausify_rules_pairs_aux (clausify_axiom_pairs (name,th) :: result) ths
   422       clausify_rules_pairs_aux (clausify_axiom_pairs (name,th) :: result) ths
   423       handle THM (msg,_,_) =>  
   423       handle THM (msg,_,_) =>  
   424 	      (debug ("Cannot clausify " ^ name ^ ": " ^ msg); 
   424 	      (Output.debug ("Cannot clausify " ^ name ^ ": " ^ msg); 
   425 	       clausify_rules_pairs_aux result ths)
   425 	       clausify_rules_pairs_aux result ths)
   426 	 |  ResClause.CLAUSE (msg,t) => 
   426 	 |  ResClause.CLAUSE (msg,t) => 
   427 	      (debug ("Cannot clausify " ^ name ^ ": " ^ msg ^
   427 	      (Output.debug ("Cannot clausify " ^ name ^ ": " ^ msg ^
   428 		      ": " ^ TermLib.string_of_term t); 
   428 		      ": " ^ TermLib.string_of_term t); 
   429 	       clausify_rules_pairs_aux result ths)
   429 	       clausify_rules_pairs_aux result ths)
   430 
   430 
   431 
   431 
   432 fun clausify_rules_pairs_auxH result [] = result
   432 fun clausify_rules_pairs_auxH result [] = result
   433   | clausify_rules_pairs_auxH result ((name,th)::ths) =
   433   | clausify_rules_pairs_auxH result ((name,th)::ths) =
   434       clausify_rules_pairs_auxH (clausify_axiom_pairsH (name,th) :: result) ths
   434       clausify_rules_pairs_auxH (clausify_axiom_pairsH (name,th) :: result) ths
   435       handle THM (msg,_,_) =>  
   435       handle THM (msg,_,_) =>  
   436 	      (debug ("Cannot clausify " ^ name ^ ": " ^ msg); 
   436 	      (Output.debug ("Cannot clausify " ^ name ^ ": " ^ msg); 
   437 	       clausify_rules_pairs_auxH result ths)
   437 	       clausify_rules_pairs_auxH result ths)
   438 	 |  ResHolClause.LAM2COMB (t) => 
   438 	 |  ResHolClause.LAM2COMB (t) => 
   439 	      (debug ("Cannot clausify "  ^ TermLib.string_of_term t); 
   439 	      (Output.debug ("Cannot clausify "  ^ TermLib.string_of_term t); 
   440 	       clausify_rules_pairs_auxH result ths)
   440 	       clausify_rules_pairs_auxH result ths)
   441 
   441 
   442 
   442 
   443 
   443 
   444 val clausify_rules_pairs = clausify_rules_pairs_aux [];
   444 val clausify_rules_pairs = clausify_rules_pairs_aux [];