src/HOL/Tools/Sledgehammer/sledgehammer_reconstruct.ML
changeset 51258 28b60ee75ef8
parent 51215 9ee38fc0bc81
child 51741 3fc8eb5c0915
equal deleted inserted replaced
51257:93ccf48a46b7 51258:28b60ee75ef8
   372     | (pre, (name', _, _, _, _) :: post) =>
   372     | (pre, (name', _, _, _, _) :: post) =>
   373       line :: pre @ map (replace_dependencies_in_line (name', [name])) post
   373       line :: pre @ map (replace_dependencies_in_line (name', [name])) post
   374 
   374 
   375 val waldmeister_conjecture_num = "1.0.0.0"
   375 val waldmeister_conjecture_num = "1.0.0.0"
   376 
   376 
   377 val repair_waldmeister_endgame =
   377 fun repair_waldmeister_endgame arg =
   378   let
   378   let
   379     fun do_tail (name, _, t, rule, deps) =
   379     fun do_tail (name, _, t, rule, deps) =
   380       (name, Negated_Conjecture, s_not t, rule, deps)
   380       (name, Negated_Conjecture, s_not t, rule, deps)
   381     fun do_body [] = []
   381     fun do_body [] = []
   382       | do_body ((line as ((num, _), _, _, _, _)) :: lines) =
   382       | do_body ((line as ((num, _), _, _, _, _)) :: lines) =
   383         if num = waldmeister_conjecture_num then map do_tail (line :: lines)
   383         if num = waldmeister_conjecture_num then map do_tail (line :: lines)
   384         else line :: do_body lines
   384         else line :: do_body lines
   385   in do_body end
   385   in do_body arg end
   386 
   386 
   387 (* Recursively delete empty lines (type information) from the proof. *)
   387 (* Recursively delete empty lines (type information) from the proof. *)
   388 fun add_nontrivial_line (line as (name, _, t, _, [])) lines =
   388 fun add_nontrivial_line (line as (name, _, t, _, [])) lines =
   389     if is_only_type_information t then delete_dependency name lines
   389     if is_only_type_information t then delete_dependency name lines
   390     else line :: lines
   390     else line :: lines