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 []; |