equal
deleted
inserted
replaced
21 val protect: thm -> thm |
21 val protect: thm -> thm |
22 val conclude: thm -> thm |
22 val conclude: thm -> thm |
23 val check_finished: Proof.context -> thm -> unit |
23 val check_finished: Proof.context -> thm -> unit |
24 val finish: Proof.context -> thm -> thm |
24 val finish: Proof.context -> thm -> thm |
25 val norm_result: thm -> thm |
25 val norm_result: thm -> thm |
|
26 val fork_name: string -> (unit -> 'a) -> 'a future |
26 val fork: (unit -> 'a) -> 'a future |
27 val fork: (unit -> 'a) -> 'a future |
27 val future_enabled: unit -> bool |
28 val future_enabled: unit -> bool |
28 val local_future_enabled: unit -> bool |
29 val local_future_enabled: unit -> bool |
29 val future_result: Proof.context -> thm future -> term -> thm |
30 val future_result: Proof.context -> thm future -> term -> thm |
30 val prove_internal: cterm list -> cterm -> (thm list -> tactic) -> thm |
31 val prove_internal: cterm list -> cterm -> (thm list -> tactic) -> thm |
104 #> Drule.zero_var_indexes; |
105 #> Drule.zero_var_indexes; |
105 |
106 |
106 |
107 |
107 (* parallel proofs *) |
108 (* parallel proofs *) |
108 |
109 |
109 fun fork e = |
110 fun fork_name name e = |
110 singleton (Future.forks {name = "Goal.fork", group = NONE, deps = [], pri = ~1}) |
111 singleton (Future.forks {name = name, group = NONE, deps = [], pri = ~1}) |
111 (fn () => Future.status e); |
112 (fn () => Future.status e); |
|
113 |
|
114 fun fork e = fork_name "Goal.fork" e; |
|
115 |
112 |
116 |
113 val parallel_proofs = Unsynchronized.ref 1; |
117 val parallel_proofs = Unsynchronized.ref 1; |
114 |
118 |
115 fun future_enabled () = |
119 fun future_enabled () = |
116 Multithreading.enabled () andalso Future.is_worker () andalso ! parallel_proofs >= 1; |
120 Multithreading.enabled () andalso Future.is_worker () andalso ! parallel_proofs >= 1; |