src/HOL/Tools/res_atp.ML
changeset 18986 5060ca625e02
parent 18863 a113b6839df1
child 19194 7681c04d8bff
equal deleted inserted replaced
18985:bc23b1d1ddea 18986:5060ca625e02
    98     Watcher.callResProvers(childout,atp_list);
    98     Watcher.callResProvers(childout,atp_list);
    99     Output.debug "Sent commands to watcher!"
    99     Output.debug "Sent commands to watcher!"
   100   end
   100   end
   101 
   101 
   102 (*We write out problem files for each subgoal. Argument pf generates filenames,
   102 (*We write out problem files for each subgoal. Argument pf generates filenames,
   103   and allows the suppression of the suffix "_1" in problem-generation mode.*)
   103   and allows the suppression of the suffix "_1" in problem-generation mode.
       
   104   FIXME: does not cope with &&, and it isn't easy because one could have multiple
       
   105   subgoals, each involving &&.*)
   104 fun write_problem_files pf (ctxt,th)  =
   106 fun write_problem_files pf (ctxt,th)  =
   105   let val goals = Thm.prems_of th
   107   let val goals = Thm.prems_of th
       
   108       val _ = Output.debug ("number of subgoals = " ^ Int.toString (length goals));
   106       val (clause_arr, axclauses) = ResClasimp.get_clasimp_lemmas ctxt goals 
   109       val (clause_arr, axclauses) = ResClasimp.get_clasimp_lemmas ctxt goals 
   107       val _ = Output.debug ("claset and simprules total clauses = " ^ 
   110       val _ = Output.debug ("claset and simprules total clauses = " ^ 
   108                      Int.toString (Array.length clause_arr))
   111                      Int.toString (Array.length clause_arr))
   109       val thy = ProofContext.theory_of ctxt
   112       val thy = ProofContext.theory_of ctxt
   110       val classrel_clauses = if !ResClause.keep_types then ResClause.classrel_clauses_thy thy else []
   113       val classrel_clauses = 
       
   114           if !ResClause.keep_types then ResClause.classrel_clauses_thy thy else []
   111       val _ = Output.debug ("classrel clauses = " ^ Int.toString (length classrel_clauses))
   115       val _ = Output.debug ("classrel clauses = " ^ Int.toString (length classrel_clauses))
   112       val arity_clauses = if !ResClause.keep_types then ResClause.arity_clause_thy thy else []
   116       val arity_clauses = 
       
   117           if !ResClause.keep_types then ResClause.arity_clause_thy thy else []
   113       val _ = Output.debug ("arity clauses = " ^ Int.toString (length arity_clauses))
   118       val _ = Output.debug ("arity clauses = " ^ Int.toString (length arity_clauses))
   114       val write = if !prover = "spass" then ResClause.dfg_write_file 
   119       val write = if !prover = "spass" then ResClause.dfg_write_file 
   115                                        else ResClause.tptp_write_file
   120                                        else ResClause.tptp_write_file
   116       fun writenext n =
   121       fun writenext n =
   117 	if n=0 then []
   122 	if n=0 then []
   172     val thy = ProofContext.theory_of ctxt;
   177     val thy = ProofContext.theory_of ctxt;
   173   in
   178   in
   174     Output.debug ("subgoals in isar_atp:\n" ^ 
   179     Output.debug ("subgoals in isar_atp:\n" ^ 
   175            Pretty.string_of (ProofContext.pretty_term ctxt
   180            Pretty.string_of (ProofContext.pretty_term ctxt
   176              (Logic.mk_conjunction_list (Thm.prems_of goal))));
   181              (Logic.mk_conjunction_list (Thm.prems_of goal))));
   177     Output.debug ("number of subgoals in isar_atp: " ^ Int.toString (Thm.nprems_of goal));
       
   178     Output.debug ("current theory: " ^ Context.theory_name thy);
   182     Output.debug ("current theory: " ^ Context.theory_name thy);
   179     hook_count := !hook_count +1;
   183     hook_count := !hook_count +1;
   180     Output.debug ("in hook for time: " ^ Int.toString (!hook_count));
   184     Output.debug ("in hook for time: " ^ Int.toString (!hook_count));
   181     ResClause.init thy;
   185     ResClause.init thy;
   182     if !destdir = "" andalso !time_limit > 0 then isar_atp (ctxt, goal)
   186     if !destdir = "" andalso !time_limit > 0 then isar_atp (ctxt, goal)