src/HOL/Tools/Sledgehammer/sledgehammer_isar_compress.ML
changeset 67560 0fa87bd86566
parent 62826 eb94e570c1a4
child 72582 b69a3a7655f2
equal deleted inserted replaced
67559:833d154ab189 67560:0fa87bd86566
   197           val cand_ord =
   197           val cand_ord =
   198             prod_ord int_ord (prod_ord (int_ord o swap) (int_ord o swap)) o apply2 cand_key
   198             prod_ord int_ord (prod_ord (int_ord o swap) (int_ord o swap)) o apply2 cand_key
   199 
   199 
   200           fun pop_next_candidate [] = (NONE, [])
   200           fun pop_next_candidate [] = (NONE, [])
   201             | pop_next_candidate (cands as (cand :: cands')) =
   201             | pop_next_candidate (cands as (cand :: cands')) =
   202               fold (fn x => fn y => if cand_ord (x, y) = LESS then x else y) cands' cand
   202               fold (fn x => fn y => if is_less (cand_ord (x, y)) then x else y) cands' cand
   203               |> (fn best => (SOME best, remove (op =) best cands))
   203               |> (fn best => (SOME best, remove (op =) best cands))
   204 
   204 
   205           fun try_eliminate i l labels steps =
   205           fun try_eliminate i l labels steps =
   206             let
   206             let
   207               val (steps_before, (cand as Prove (_, _, _, _, _, (lfs, _), _, _)) :: steps_after) =
   207               val (steps_before, (cand as Prove (_, _, _, _, _, (lfs, _), _, _)) :: steps_after) =