Microsoft Z3 Dot Net API, Cloning Solver
<p>I want to run my z3 code on multiple threads parallelly. In my program structure, I initialize my Z3 solver first with all assertions and then ask for satisfiable solution.</p>

<p>Is there any way to clone Z3 solver, so that I can create multiple clones and pass the clone to multiple threads?</p>

<p>My idea is...</p>

<pre><code>Solver slvr1;
//initialize and add all assertions on solver 1.
//then create N number of clone solvers.
//Finally run each solver clone on each thread.
</code></pre>

<p>I can offcourse create the clone myself my creating an array of solver and assert in each of them during the assertion process, but I don't want to do that, as that may not be efficient.</p>

<p>I am using dot net API. So if anyone can answer me in dot net api context, it would be more helpful.</p>