more aggressive merging
authorblanchet
Sun, 15 Dec 2013 18:01:38 +0100
changeset 56094dad9e5393524
parent 56093 9b93f9117f8b
child 56095 688da3388b2d
more aggressive merging
src/HOL/Tools/Sledgehammer/sledgehammer_compress.ML
     1.1 --- a/src/HOL/Tools/Sledgehammer/sledgehammer_compress.ML	Sun Dec 15 18:01:38 2013 +0100
     1.2 +++ b/src/HOL/Tools/Sledgehammer/sledgehammer_compress.ML	Sun Dec 15 18:01:38 2013 +0100
     1.3 @@ -76,18 +76,15 @@
     1.4      | _ => raise Fail "Sledgehammer_Compress: update_steps")
     1.5    end
     1.6  
     1.7 -(* tries merging the first step into the second step *)
     1.8 -fun try_merge (Prove (_, [], lbl1, _, [], ((lfs1, gfs1), meth1)))
     1.9 +(* Tries merging the first step into the second step. Arbitrarily picks the second step's method. *)
    1.10 +fun try_merge (Prove (_, [], lbl1, _, [], ((lfs1, gfs1), _)))
    1.11        (Prove (qs2, fix, lbl2, t, subproofs, ((lfs2, gfs2), meth2))) =
    1.12 -    if meth1 = meth2 then
    1.13 -      let
    1.14 -        val lfs = remove (op =) lbl1 lfs2 |> union (op =) lfs1
    1.15 -        val gfs = union (op =) gfs1 gfs2
    1.16 -      in
    1.17 -        SOME (Prove (qs2, fix, lbl2, t, subproofs, ((lfs, gfs), meth1)))
    1.18 -      end
    1.19 -    else
    1.20 -      NONE
    1.21 +    let
    1.22 +      val lfs = remove (op =) lbl1 lfs2 |> union (op =) lfs1
    1.23 +      val gfs = union (op =) gfs1 gfs2
    1.24 +    in
    1.25 +      SOME (Prove (qs2, fix, lbl2, t, subproofs, ((lfs, gfs), meth2)))
    1.26 +    end
    1.27    | try_merge _ _ = NONE
    1.28  
    1.29  val compress_degree = 2