src/HOL/Tools/res_atp.ML
changeset 26928 ca87aff1ad2d
parent 26691 520c99e0b9a0
child 27178 c8ddb3000743
equal deleted inserted replaced
26927:8684b5240f11 26928:ca87aff1ad2d
   496       app (fn th => ignore (Polyhash.peekInsert ht (th,()))) (ResBlacklist.get ctxt);
   496       app (fn th => ignore (Polyhash.peekInsert ht (th,()))) (ResBlacklist.get ctxt);
   497       filter (not o blacklisted o #2)
   497       filter (not o blacklisted o #2)
   498         (foldl add_single_names (foldl add_multi_names [] mults) singles)
   498         (foldl add_single_names (foldl add_multi_names [] mults) singles)
   499   end;
   499   end;
   500 
   500 
   501 fun check_named ("",th) = (warning ("No name for theorem " ^ string_of_thm th); false)
   501 fun check_named ("",th) = (warning ("No name for theorem " ^ Display.string_of_thm th); false)
   502   | check_named (_,th) = true;
   502   | check_named (_,th) = true;
   503 
   503 
   504 fun display_thm (name,th) = Output.debug (fn () => name ^ ": " ^ string_of_thm th);
   504 fun display_thm (name,th) = Output.debug (fn () => name ^ ": " ^ Display.string_of_thm th);
   505 
   505 
   506 (* get lemmas from claset, simpset, atpset and extra supplied rules *)
   506 (* get lemmas from claset, simpset, atpset and extra supplied rules *)
   507 fun get_clasimp_atp_lemmas ctxt user_thms =
   507 fun get_clasimp_atp_lemmas ctxt user_thms =
   508   let val included_thms =
   508   let val included_thms =
   509         if !include_all
   509         if !include_all
   743         | write_all (ccls::ccls_list) (axcls::axcls_list) k =
   743         | write_all (ccls::ccls_list) (axcls::axcls_list) k =
   744             let val fname = probfile k
   744             let val fname = probfile k
   745                 val _ = Output.debug (fn () => "About to write file " ^ fname)
   745                 val _ = Output.debug (fn () => "About to write file " ^ fname)
   746                 val axcls = make_unique axcls
   746                 val axcls = make_unique axcls
   747                 val _ = Output.debug (fn () => "Conjecture Clauses (before duplicate removal)")
   747                 val _ = Output.debug (fn () => "Conjecture Clauses (before duplicate removal)")
   748                 val _ = app (fn th => Output.debug (fn _ => string_of_thm th)) ccls
   748                 val _ = app (fn th => Output.debug (fn _ => Display.string_of_thm th)) ccls
   749                 val ccls = subtract_cls ccls axcls
   749                 val ccls = subtract_cls ccls axcls
   750                 val _ = Output.debug (fn () => "Conjecture Clauses (AFTER duplicate removal)")
   750                 val _ = Output.debug (fn () => "Conjecture Clauses (AFTER duplicate removal)")
   751                 val _ = app (fn th => Output.debug (fn _ => string_of_thm th)) ccls
   751                 val _ = app (fn th => Output.debug (fn _ => Display.string_of_thm th)) ccls
   752                 val ccltms = map prop_of ccls
   752                 val ccltms = map prop_of ccls
   753                 and axtms = map (prop_of o #1) axcls
   753                 and axtms = map (prop_of o #1) axcls
   754                 val subs = tfree_classes_of_terms ccltms
   754                 val subs = tfree_classes_of_terms ccltms
   755                 and supers = tvar_classes_of_terms axtms
   755                 and supers = tvar_classes_of_terms axtms
   756                 and tycons = type_consts_of_terms thy (ccltms@axtms)
   756                 and tycons = type_consts_of_terms thy (ccltms@axtms)
   823     if exists_type ResAxioms.type_has_empty_sort (prop_of goal)  
   823     if exists_type ResAxioms.type_has_empty_sort (prop_of goal)  
   824     then error "Proof state contains the empty sort" else ();
   824     then error "Proof state contains the empty sort" else ();
   825     Output.debug (fn () => "subgoals in isar_atp:\n" ^
   825     Output.debug (fn () => "subgoals in isar_atp:\n" ^
   826                   Syntax.string_of_term ctxt (Logic.mk_conjunction_list (Thm.prems_of goal)));
   826                   Syntax.string_of_term ctxt (Logic.mk_conjunction_list (Thm.prems_of goal)));
   827     Output.debug (fn () => "current theory: " ^ Context.theory_name thy);
   827     Output.debug (fn () => "current theory: " ^ Context.theory_name thy);
   828     app (fn th => Output.debug (fn _ => "chained: " ^ string_of_thm th)) chain_ths;
   828     app (fn th => Output.debug (fn _ => "chained: " ^ Display.string_of_thm th)) chain_ths;
   829     if !time_limit > 0 then isar_atp (ctxt, chain_ths, goal)
   829     if !time_limit > 0 then isar_atp (ctxt, chain_ths, goal)
   830     else (warning ("Writing problem file only: " ^ !problem_name);
   830     else (warning ("Writing problem file only: " ^ !problem_name);
   831           isar_atp_writeonly (ctxt, chain_ths, goal))
   831           isar_atp_writeonly (ctxt, chain_ths, goal))
   832   end;
   832   end;
   833 
   833