src/HOL/Tools/Sledgehammer/sledgehammer_atp_reconstruct.ML
changeset 41146 be78f4053bce
parent 41140 9c68004b8c9d
child 41151 d58157bb1ae7
equal deleted inserted replaced
41145:a5ee3b8e5a90 41146:be78f4053bce
   159 fun add_fact fact_names (Inference (name, _, [])) =
   159 fun add_fact fact_names (Inference (name, _, [])) =
   160     append (resolve_fact fact_names name)
   160     append (resolve_fact fact_names name)
   161   | add_fact _ _ = I
   161   | add_fact _ _ = I
   162 
   162 
   163 fun used_facts_in_tstplike_proof fact_names =
   163 fun used_facts_in_tstplike_proof fact_names =
   164   atp_proof_from_tstplike_string #> rpair [] #-> fold (add_fact fact_names)
   164   atp_proof_from_tstplike_string false
       
   165   #> rpair [] #-> fold (add_fact fact_names)
   165 
   166 
   166 val split_used_facts =
   167 val split_used_facts =
   167   List.partition (curry (op =) Chained o snd)
   168   List.partition (curry (op =) Chained o snd)
   168   #> pairself (sort_distinct (string_ord o pairself fst))
   169   #> pairself (sort_distinct (string_ord o pairself fst))
   169 
   170 
   606 fun isar_proof_from_tstplike_proof pool ctxt type_sys tfrees isar_shrink_factor
   607 fun isar_proof_from_tstplike_proof pool ctxt type_sys tfrees isar_shrink_factor
   607         tstplike_proof conjecture_shape fact_names params frees =
   608         tstplike_proof conjecture_shape fact_names params frees =
   608   let
   609   let
   609     val lines =
   610     val lines =
   610       tstplike_proof
   611       tstplike_proof
   611       |> atp_proof_from_tstplike_string
   612       |> atp_proof_from_tstplike_string true
   612       |> nasty_atp_proof pool
   613       |> nasty_atp_proof pool
   613       |> map_term_names_in_atp_proof repair_name
   614       |> map_term_names_in_atp_proof repair_name
   614       |> decode_lines ctxt type_sys tfrees
   615       |> decode_lines ctxt type_sys tfrees
   615       |> rpair [] |-> fold_rev (add_line conjecture_shape fact_names)
   616       |> rpair [] |-> fold_rev (add_line conjecture_shape fact_names)
   616       |> rpair [] |-> fold_rev add_nontrivial_line
   617       |> rpair [] |-> fold_rev add_nontrivial_line