@@ -62,7 +62,12 @@ impl<'c> ParallelProofChecker<'c> {
62
62
}
63
63
}
64
64
65
- pub fn check ( & mut self , proof : & Proof , scheduler : & Scheduler ) -> CarcaraResult < bool > {
65
+ pub fn check (
66
+ & mut self ,
67
+ problem : & Problem ,
68
+ proof : & Proof ,
69
+ scheduler : & Scheduler ,
70
+ ) -> CarcaraResult < bool > {
66
71
// Used to estimulate threads to abort prematurely (only happens when a
67
72
// thread already found out an invalid step)
68
73
let premature_abort = Arc :: new ( AtomicBool :: new ( false ) ) ;
@@ -84,6 +89,7 @@ impl<'c> ParallelProofChecker<'c> {
84
89
. stack_size ( self . stack_size )
85
90
. spawn_scoped ( s, move || -> CarcaraResult < ( bool , bool ) > {
86
91
local_self. worker_thread_check (
92
+ problem,
87
93
proof,
88
94
schedule,
89
95
local_pool,
@@ -130,6 +136,7 @@ impl<'c> ParallelProofChecker<'c> {
130
136
131
137
pub fn check_with_stats < CR : CollectResults + Send + Default > (
132
138
& mut self ,
139
+ problem : & Problem ,
133
140
proof : & Proof ,
134
141
scheduler : & Scheduler ,
135
142
stats : & mut CheckerStatistics < CR > ,
@@ -165,6 +172,7 @@ impl<'c> ParallelProofChecker<'c> {
165
172
move || -> CarcaraResult < ( bool , bool , CheckerStatistics < CR > ) > {
166
173
local_self
167
174
. worker_thread_check (
175
+ problem,
168
176
proof,
169
177
schedule,
170
178
local_pool,
@@ -226,6 +234,7 @@ impl<'c> ParallelProofChecker<'c> {
226
234
227
235
fn worker_thread_check < CR : CollectResults + Send + Default > (
228
236
& mut self ,
237
+ problem : & Problem ,
229
238
proof : & Proof ,
230
239
schedule : & Schedule ,
231
240
mut pool : LocalPool ,
@@ -303,7 +312,7 @@ impl<'c> ParallelProofChecker<'c> {
303
312
}
304
313
}
305
314
ProofCommand :: Assume { id, term } => {
306
- if !self . check_assume ( id, term, & proof . premises , & iter, & mut stats) {
315
+ if !self . check_assume ( id, term, & problem . premises , & iter, & mut stats) {
307
316
// Signalize to other threads to stop the proof checking
308
317
should_abort. store ( true , Ordering :: Release ) ;
309
318
return Err ( Error :: Checker {
0 commit comments