Logician
Type-safe SMT solver driver for Rustβno C++ toolchain needed
Logician β Type-safe SMT solver driver for Rust without C++ toolchain
Summary: Logician enables Rust developers to use SMT solvers like Z3 and CVC5 via a type-safe Rust API without compiling C++ bindings. It manages solver subprocesses through stdin/stdout, provides immediate type error detection, and handles solver timeouts and hangs automatically.
What it does
Logician drives SMT solvers as subprocesses, enforcing type safety by panicking on sort mismatches. It tries Z3 first, falls back to CVC5 on failure, and kills hung solver processes to prevent orphans.
Who it's for
Rust developers working on constraint solving, formal verification, or SAT/SMT problems who want to avoid FFI and C++ toolchain complexity.
Why it matters
It eliminates the need for C++ bindings and fragile string-based APIs, simplifying SMT solver integration with type safety and robust process management.