home / skills / a5c-ai / babysitter / smt-solver-interface
This skill helps you reason about SMT solvers for automated verification and synthesis, generating queries, selecting theories, and extracting models.
npx playbooks add skill a5c-ai/babysitter --skill smt-solver-interfaceReview the files below or copy the command above to add this skill to your agents.
---
name: smt-solver-interface
description: Interface with SMT solvers for verification and synthesis
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
metadata:
specialization: computer-science
domain: science
category: formal-verification
phase: 6
---
# SMT Solver Interface
## Purpose
Provides expert guidance on using SMT solvers for automated reasoning, verification, and program synthesis.
## Capabilities
- Z3 query generation
- CVC5 interface
- Theory selection guidance
- Model extraction
- Unsat core analysis
- Incremental solving
## Usage Guidelines
1. **Encoding**: Encode problem in SMT-LIB format
2. **Theory Selection**: Choose appropriate theories
3. **Solving**: Run SMT solver
4. **Model Extraction**: Extract satisfying assignments
5. **Debugging**: Analyze unsat cores for debugging
## Tools/Libraries
- Z3
- CVC5
- Boolector
- Yices
This skill provides a practical interface to SMT solvers for verification, automated reasoning, and program synthesis workflows. It exposes capabilities for generating solver queries, selecting theories, running incremental checks, extracting models, and retrieving unsat cores. The goal is to make SMT tools like Z3 and CVC5 accessible as deterministic, resumable steps inside larger agentic workflows.
The skill encodes problems into SMT-LIB or solver-native queries, chooses appropriate background theories (bitvectors, arithmetic, arrays, etc.), and dispatches queries to Z3, CVC5 or other supported backends. It supports incremental solving, model extraction for satisfying instances, and unsat core analysis for debugging infeasible constraints. The interface returns structured solver responses that can be consumed by orchestration logic for verification or synthesis tasks.
Which solvers are supported?
The interface targets Z3 and CVC5 primarily, with compatibility layers for other solvers such as Boolector and Yices when needed.
How do I get useful debugging information for failing checks?
Enable unsat core generation and proof logging where supported, and use incremental solving to isolate the smallest conflicting subset of constraints.