equal
deleted
inserted
replaced
1400 |
1400 |
1401 fun fulfill_proof_future _ [] postproc body = |
1401 fun fulfill_proof_future _ [] postproc body = |
1402 if not (Multithreading.enabled ()) then Future.value (postproc (Future.join body)) |
1402 if not (Multithreading.enabled ()) then Future.value (postproc (Future.join body)) |
1403 else Future.map postproc body |
1403 else Future.map postproc body |
1404 | fulfill_proof_future thy promises postproc body = |
1404 | fulfill_proof_future thy promises postproc body = |
1405 singleton |
1405 (singleton o Future.forks) |
1406 (Future.forks {name = "Proofterm.fulfill_proof_future", group = NONE, |
1406 {name = "Proofterm.fulfill_proof_future", group = NONE, |
1407 deps = Future.task_of body :: map (Future.task_of o snd) promises, pri = 0, |
1407 deps = Future.task_of body :: map (Future.task_of o snd) promises, pri = 0, |
1408 interrupts = true}) |
1408 interrupts = true} |
1409 (fn () => |
1409 (fn () => |
1410 postproc (fulfill_norm_proof thy (map (apsnd Future.join) promises) (Future.join body))); |
1410 postproc (fulfill_norm_proof thy (map (apsnd Future.join) promises) (Future.join body))); |
1411 |
1411 |
1412 |
1412 |
1413 (***** abstraction over sort constraints *****) |
1413 (***** abstraction over sort constraints *****) |
1459 fun make_body0 proof0 = PBody {oracles = oracles0, thms = thms0, proof = proof0}; |
1459 fun make_body0 proof0 = PBody {oracles = oracles0, thms = thms0, proof = proof0}; |
1460 val body0 = |
1460 val body0 = |
1461 if not (proofs_enabled ()) then Future.value (make_body0 MinProof) |
1461 if not (proofs_enabled ()) then Future.value (make_body0 MinProof) |
1462 else if not (Multithreading.enabled ()) then Future.value (make_body0 (full_proof0 ())) |
1462 else if not (Multithreading.enabled ()) then Future.value (make_body0 (full_proof0 ())) |
1463 else |
1463 else |
1464 singleton |
1464 (singleton o Future.forks) |
1465 (Future.forks |
1465 {name = "Proofterm.prepare_thm_proof", group = NONE, |
1466 {name = "Proofterm.prepare_thm_proof", group = NONE, deps = [], pri = ~1, |
1466 deps = [], pri = ~1, interrupts = true} |
1467 interrupts = true}) |
|
1468 (make_body0 o full_proof0); |
1467 (make_body0 o full_proof0); |
1469 |
1468 |
1470 fun new_prf () = (serial (), fulfill_proof_future thy promises postproc body0); |
1469 fun new_prf () = (serial (), fulfill_proof_future thy promises postproc body0); |
1471 val (i, body') = |
1470 val (i, body') = |
1472 (*non-deterministic, depends on unknown promises*) |
1471 (*non-deterministic, depends on unknown promises*) |