Sail

How can I reuse SMT solver results across runs?

If your application keeps sending Z3 the same SMT-LIB scripts, run those queries through Sail. When a script and its execution settings match a cached run, Sail returns the stored solver output. A cache hit avoids another Z3 run.

The cache lives on disk, so reuse works across separate processes and application restarts. Results retain any model or unsat core you requested. Use Sail from the CLI or as a shared service, without keeping one solver session open. The SMT runtime guide shows how to submit queries.