312 val shifted_twice = shift shifted_once |
312 val shifted_twice = shift shifted_once |
313 in |
313 in |
314 original @ shifted_once @ shifted_twice |
314 original @ shifted_once @ shifted_twice |
315 end |
315 end |
316 |
316 |
317 fun adjust_extra (format0, type_enc0, lam_trans0, uncurried_aliases0, extra_extra0) = |
317 fun adjust_extra (ATP_Slice (format0, type_enc0, lam_trans0, uncurried_aliases0, |
318 (format0, the_default type_enc0 type_enc, the_default lam_trans0 lam_trans, |
318 extra_extra0)) = |
319 the_default uncurried_aliases0 uncurried_aliases, extra_extra0) |
319 ATP_Slice (format0, the_default type_enc0 type_enc, the_default lam_trans0 lam_trans, |
|
320 the_default uncurried_aliases0 uncurried_aliases, extra_extra0) |
|
321 | adjust_extra (extra as SMT_Slice _) = extra |
320 |
322 |
321 fun adjust_slice ((num_facts0, fact_filter0), extra) = |
323 fun adjust_slice ((num_facts0, fact_filter0), extra) = |
322 let |
324 let |
323 val fact_filter = fact_filter |> the_default fact_filter0 |
325 val fact_filter = fact_filter |> the_default fact_filter0 |
324 val max_facts = max_facts |> the_default num_facts0 |
326 val max_facts = max_facts |> the_default num_facts0 |
325 val num_facts = Int.min (max_facts, length (facts_of_filter fact_filter factss)) |
327 val num_facts = Int.min (max_facts, length (facts_of_filter fact_filter factss)) |
326 in |
328 in |
327 ((num_facts, fact_filter), Option.map adjust_extra extra) |
329 ((num_facts, fact_filter), adjust_extra extra) |
328 end |
330 end |
329 |
331 |
330 val provers = distinct (op =) schedule |
332 val provers = distinct (op =) schedule |
331 val prover_slices = |
333 val prover_slices = |
332 map (fn prover => (prover, |
334 map (fn prover => (prover, |