src/HOL/Tools/ATP_Manager/atp_wrapper.ML
changeset 32869 159309603edc
parent 32864 a226f29d4bdc
child 32936 9491bec20595
--- a/src/HOL/Tools/ATP_Manager/atp_wrapper.ML	Sun Oct 04 11:45:41 2009 +0200
+++ b/src/HOL/Tools/ATP_Manager/atp_wrapper.ML	Sun Oct 04 12:59:22 2009 +0200
@@ -263,8 +263,32 @@
   insert_theory_const = insert_theory_const,
   emit_structured_proof = false }
 
-val spass = tptp_prover ("spass", spass_config spass_insert_theory_const)
-val spass_no_tc = tptp_prover ("spass_no_tc", spass_config false)
+fun gen_dfg_prover (name, prover_config) problem timeout =
+  let
+    val Prover_Config {max_new_clauses, insert_theory_const,
+      emit_structured_proof, command, arguments} = prover_config
+    val ATP_Problem {with_full_types, subgoal, goal, axiom_clauses,
+      filtered_clauses} = problem
+  in
+    external_prover
+      (ResAtp.get_relevant max_new_clauses insert_theory_const)
+      (ResAtp.prepare_clauses true)
+      (ResHolClause.dfg_write_file with_full_types)
+      command
+      (arguments timeout)
+      ResReconstruct.find_failure
+      (ResReconstruct.lemma_list true)
+      axiom_clauses
+      filtered_clauses
+      name
+      subgoal
+      goal
+  end
+
+fun dfg_prover (name, config) = (name, gen_dfg_prover (name, config))
+
+val spass = dfg_prover ("spass", spass_config spass_insert_theory_const)
+val spass_no_tc = dfg_prover ("spass_no_tc", spass_config false)
 
 
 (* remote prover invocation via SystemOnTPTP *)