Z3 SMT solver
Hacker ApprovedThe most recommended of 6 optimization solvers
Free, mature SMT solver that people find convenient and well optimized for constraint problems, though it is slow on some boolean problems and struggles with larger ones.
Free, mature SMT solver that people find convenient and well optimized for constraint problems, though it is slow on some boolean problems and struggles with larger ones.
26 people gave an opinion
- recommend it
- 24
- criticize it
- 2
- approval share
- 92%
Recommended in 9 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: not recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: not recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: not recommended
- November 2026: not recommended (month in progress)
Why it carries the badge
- 24 people recommend itNeeds 10 or more, met.
- 12 recommenders for every criticNeeds 2 to 1 or better, met.
- Recommended in 9 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Mature, well-tested, heavily optimized engine
“z3 is also just so thoroughly optimized that even if your formulation of the constraints is inefficient it is faster.”
Comment from 4 Sep 2026 in “Solving the Jane Street reverse engineering challenge” “using an existing robust, well-tested suite of algorithms where lots of research effort is concentrated”
Comment from 17 Nov 2025 in “Z3 API in Python: From Sudoku to N-Queens in Under 20 Lines (2015)” “Z3 is very mature and the Rust bindings are pretty good”
Comment from 18 Apr 2026 in “A Dumb Introduction to Z3” Convenient API and language bindings
“Z3 is very mature and the Rust bindings are pretty good”
Comment from 18 Apr 2026 in “A Dumb Introduction to Z3” “I really like Z3, and I like the convenience of Z3”
Comment from 21 Nov 2025 in “Solving the Whole Year Puzzle with Z3” “There's a C++ wrapper that works pretty well.”
Comment from 18 Apr 2026 in “A Dumb Introduction to Z3” - Comment from 4 Sep 2026 in “Solving the Jane Street reverse engineering challenge”
Handy for puzzles and invariants
“comes in very handy in at least one challenge every year in Advent of Code”
Comment from 5 Sep 2026 in “Solving the Jane Street reverse engineering challenge” “the loop invariant Z3 can't infer on its own”
Comment from 2 Jul 2026 in “Salt v1.0.0 – a systems language with Z3 theorem proving in the compiler”
What people warn about
Each mark is one comment
Slow on boolean and some formulations
“Z3 is capable (it’s an SMT solver, not just SAT), but it’s not very fast at boolean satifiability”
Comment from 19 Mar 2026 in “Autoresearch for SAT Solvers” “If they blend the two and throw the whole thing into Z3 it'll work but it'll be needlessly slow.”
Comment from 30 Apr 2026 in “Vera: a programming language designed for machines to write” “pretty slow compared to just checking if a test case passes”
Comment from 7 Apr 2026 in “DeiMOS – A Superoptimizer for the MOS 6502”
Other optimization solvers people recommend
The four most recommended other optimization solvers, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Z3 SMT solverThis page | 24 | 2 | 92% | 9 | — | Approved |
| MiniZinc | 6 | 1 | 86% | 5 | — | — |
| Google OR-Tools | 6 | 4 | 60% | 3 | — | — |
| OR-Tools CP-SAT | 6 | 1 | 86% | 3 | — | — |
| Gurobi | 6 | 0 | 100% | 2 | — | — |
What people said
21 of the 28 comments that mention it, newest first. Each links to the original comment.
“I think it's criminally underappreciated and underused.”
“comes in very handy in at least one challenge every year in Advent of Code”
“Z3 is just used for it's convenient API.”
“z3 is also just so thoroughly optimized that even if your formulation of the constraints is inefficient it is faster.”
“It’s kind of magical? Every time it finds a solution I get a surge of joy.”
“the Z3 setup I had was already acting as a super-powered simulator anyway”
“the loop invariant Z3 can't infer on its own”
“The 100ms timeout means it's not sound, but it's useful.”
“A native first-order logic solver like Z3 might be something to try.”
“If they blend the two and throw the whole thing into Z3 it'll work but it'll be needlessly slow.”
“There's a C++ wrapper that works pretty well.”
“Z3 is consistently but noticeably better than CVC5 at the kinds of problems we generate”
“Z3 struggles with larger problems.”
“Z3 is very mature and the Rust bindings are pretty good”
“z3 so far has worked best”
“pretty slow compared to just checking if a test case passes”
“Z3 is capable (it’s an SMT solver, not just SAT), but it’s not very fast at boolean satifiability”
“combined with the z3 SMT solver”
“I really like Z3, and I like the convenience of Z3”
“using an existing robust, well-tested suite of algorithms where lots of research effort is concentrated”
“you'd want to do `pip install z3-solver` rather than use `Z3Py`”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.