equal
deleted
inserted
replaced
1 (* Title: HOL/Tools/Sledgehammer/sledgehammer_shrink.ML |
1 (* Title: HOL/Tools/Sledgehammer/sledgehammer_shrink.ML |
2 Author: Jasmin Blanchette, TU Muenchen |
2 Author: Jasmin Blanchette, TU Muenchen |
3 Author: Steffen Juilf Smolka, TU Muenchen |
3 Author: Steffen Juilf Smolka, TU Muenchen |
4 |
4 |
5 Shrinking of isar proofs reconstructed from ATP proofs. |
5 Shrinking and preplaying of reconstructed isar proofs. |
6 *) |
6 *) |
7 |
7 |
8 signature SLEDGEHAMMER_SHRINK = |
8 signature SLEDGEHAMMER_SHRINK = |
9 sig |
9 sig |
10 type isar_step = Sledgehammer_Proof.isar_step |
10 type isar_step = Sledgehammer_Proof.isar_step |
14 end |
14 end |
15 |
15 |
16 structure Sledgehammer_Shrink (* : SLEDGEHAMMER_SHRINK *) = |
16 structure Sledgehammer_Shrink (* : SLEDGEHAMMER_SHRINK *) = |
17 struct |
17 struct |
18 |
18 |
|
19 open Sledgehammer_Util |
19 open Sledgehammer_Proof |
20 open Sledgehammer_Proof |
20 |
21 |
21 (* Parameters *) |
22 (* Parameters *) |
22 val merge_timeout_slack = 1.2 |
23 val merge_timeout_slack = 1.2 |
23 |
24 |
138 (case get j metis_time |> Lazy.force of |
139 (case get j metis_time |> Lazy.force of |
139 NONE => (NONE, metis_time) |
140 NONE => (NONE, metis_time) |
140 | SOME t2 => |
141 | SOME t2 => |
141 let |
142 let |
142 val s12 = merge s1 s2 |
143 val s12 = merge s1 s2 |
143 val timeout = |
144 val timeout = time_mult merge_timeout_slack (t1 + t2) |
144 Time.+ (t1, t2) |> Time.toReal |> curry Real.* merge_timeout_slack |
|
145 |> Time.fromReal |
|
146 in |
145 in |
147 case try_metis timeout s12 () of |
146 case try_metis timeout s12 () of |
148 NONE => (NONE, metis_time) |
147 NONE => (NONE, metis_time) |
149 | some_t12 => |
148 | some_t12 => |
150 (SOME s12, metis_time |
149 (SOME s12, metis_time |