3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-08-20 10:10:21 +00:00
z3/src/smt/smt_parallel.h
Nikolaj Bjorner d190c83984 snapshot
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2025-08-04 09:50:53 -07:00

50 lines
861 B
C++

/*++
Copyright (c) 2020 Microsoft Corporation
Module Name:
smt_parallel.h
Abstract:
Parallel SMT, portfolio loop specialized to SMT core.
Author:
nbjorner 2020-01-31
Revision History:
--*/
#pragma once
#include "smt/smt_context.h"
namespace smt {
class parallel {
context& ctx;
class worker {
ast_manager m;
context ctx;
expr_ref_vector asms;
public:
worker(context& ctx, expr_ref_vector const& asms);
void run();
void cancel();
};
std::mutex mux;
void set_unsat();
void set_sat(ast_translation& tr, model& m);
void get_cubes(ast_translation& tr, expr_ref_vector& cubes);
public:
parallel(context& ctx): ctx(ctx) {}
lbool operator()(expr_ref_vector const& asms);
};
}