src/HOL/TPTP/mash_export.ML
changeset 57306 ff10067b2248
parent 57295 2ccd6820f74e
child 57351 29691e2dde9a
equal deleted inserted replaced
57305:cc2a82032058 57306:ff10067b2248
    88     List.app do_fact facts
    88     List.app do_fact facts
    89   end
    89   end
    90 
    90 
    91 val prover_marker = "$a"
    91 val prover_marker = "$a"
    92 val isar_marker = "$i"
    92 val isar_marker = "$i"
       
    93 val missing_marker = "$m"
    93 val omitted_marker = "$o"
    94 val omitted_marker = "$o"
    94 val unprovable_marker = "$u" (* axiom or definition or characteristic theorem *)
    95 val unprovable_marker = "$u" (* axiom or definition or characteristic theorem *)
    95 val prover_failed_marker = "$x"
    96 val prover_failed_marker = "$x"
    96 
    97 
    97 fun smart_dependencies_of ctxt params_opt facts name_tabs th isar_deps_opt =
    98 fun smart_dependencies_of ctxt params_opt facts name_tabs th isar_deps_opt =
   103         |>> (fn true => prover_marker | false => prover_failed_marker)
   104         |>> (fn true => prover_marker | false => prover_failed_marker)
   104       | NONE =>
   105       | NONE =>
   105         let
   106         let
   106           val deps =
   107           val deps =
   107             (case isar_deps_opt of
   108             (case isar_deps_opt of
   108               SOME deps => deps
   109               NONE => isar_dependencies_of name_tabs th
   109             | NONE => isar_dependencies_of name_tabs th)
   110             | deps => deps)
   110         in (if null deps then unprovable_marker else isar_marker, deps) end)
   111         in
       
   112           ((case deps of
       
   113              NONE => missing_marker
       
   114            | SOME [] => unprovable_marker
       
   115            | SOME deps => isar_marker), [])
       
   116         end)
   111   in
   117   in
   112     (case trim_dependencies deps of
   118     (case trim_dependencies deps of
   113       SOME deps => (marker, deps)
   119       SOME deps => (marker, deps)
   114     | NONE => (omitted_marker, []))
   120     | NONE => (omitted_marker, []))
   115   end
   121   end
   145   generate_isar_or_prover_dependencies ctxt (SOME params)
   151   generate_isar_or_prover_dependencies ctxt (SOME params)
   146 
   152 
   147 fun is_bad_query ctxt ho_atp step j th isar_deps =
   153 fun is_bad_query ctxt ho_atp step j th isar_deps =
   148   j mod step <> 0 orelse
   154   j mod step <> 0 orelse
   149   Thm.legacy_get_kind th = "" orelse
   155   Thm.legacy_get_kind th = "" orelse
   150   null isar_deps orelse
   156   null (the_list isar_deps) orelse
   151   is_blacklisted_or_something ctxt ho_atp (Thm.get_name_hint th)
   157   is_blacklisted_or_something ctxt ho_atp (Thm.get_name_hint th)
   152 
   158 
   153 fun generate_isar_or_prover_commands ctxt prover params_opt (range, step) thys max_suggs file_name =
   159 fun generate_isar_or_prover_commands ctxt prover params_opt (range, step) thys max_suggs file_name =
   154   let
   160   let
   155     val ho_atp = is_ho_atp ctxt prover
   161     val ho_atp = is_ho_atp ctxt prover
   168           val goal_feats =
   174           val goal_feats =
   169             features_of ctxt (theory_of_thm th) (num_old_facts + j) const_tab stature [prop_of th]
   175             features_of ctxt (theory_of_thm th) (num_old_facts + j) const_tab stature [prop_of th]
   170             |> sort_wrt fst
   176             |> sort_wrt fst
   171           val access_facts = filter_accessible_from th new_facts @ old_facts
   177           val access_facts = filter_accessible_from th new_facts @ old_facts
   172           val (marker, deps) =
   178           val (marker, deps) =
   173             smart_dependencies_of ctxt params_opt access_facts name_tabs th (SOME isar_deps)
   179             smart_dependencies_of ctxt params_opt access_facts name_tabs th isar_deps
   174 
   180 
   175           fun extra_features_of (((_, stature), th), weight) =
   181           fun extra_features_of (((_, stature), th), weight) =
   176             [prop_of th]
   182             [prop_of th]
   177             |> features_of ctxt (theory_of_thm th) (num_old_facts + j) const_tab stature
   183             |> features_of ctxt (theory_of_thm th) (num_old_facts + j) const_tab stature
   178             |> map (apsnd (fn r => weight * extra_feature_factor * r))
   184             |> map (apsnd (fn r => weight * extra_feature_factor * r))