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) |