Skip to main content

solve

Check satisfiability of SMT-LIB2 formulas using Z3. Returns sat/unsat with models or unsat cores. Logs every invocation to z3agent.db for auditability.

معلومات المصدر

المستودع
Z3Prover/z3
آخر نشاط في المصدر
١١ مارس ٢٠٢٦ في ٢١:٥٣
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٢٬٩٠٢
التفرعات
١٬٧٢٥

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

مستكشف الملفات
2 ملفات

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
solve
description
Check satisfiability of SMT-LIB2 formulas using Z3. Returns sat/unsat with models or unsat cores. Logs every invocation to z3agent.db for auditability.
Given an SMT-LIB2 formula (or a set of constraints described in natural language), determine whether the formula is satisfiable. If sat, extract a satisfying assignment. If unsat and tracking labels are present, extract the unsat core. # Step 1: Prepare the formula Action: Convert the input to valid SMT-LIB2. If the input is natural language, use the **encode** skill first. Expectation: A syntactically valid SMT-LIB2 formula ending with `(check-sat)` and either `(get-model)` or `(get-unsat-core)` as appropriate. Result: If valid SMT-LIB2 is ready, proceed to Step 2. If encoding is needed, run **encode** first and return here. # Step 2: Run Z3 Action: Invoke solve.py with the formula string or file path. Expectation: The script pipes the formula to `z3 -in`, logs the run to `.z3-agent/z3agent.db`, and prints the result. Result: Output is one of `sat`, `unsat`, `unknown`, or `timeout`. Proceed to Step 3 to interpret. ```bash python3 scripts/solve.py --formula "(declare-const x Int)(assert (> x 0))(check-sat)(get-model)" ``` For file input: ```bash python3 scripts/solve.py --file problem.smt2 ``` With debug tracing: ```bash python3 scripts/solve.py --file problem.smt2 --debug ``` # Step 3: Interpret the output Action: Parse the Z3 output to determine satisfiability and extract any model or unsat core. Expectation: `sat` with a model, `unsat` optionally with a core, `unknown`, or `timeout`. Result: On `sat`: report the model to the user. On `unsat`: report the core if available. On `unknown`/`timeout`: try **simplify** or increase the timeout. # Parameters | Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | formula | string | no | | SMT-LIB2 formula as a string | | file | path | no | | path to an .smt2 file | | timeout | int | no | 30 | seconds before killing z3 | | z3 | path | no | auto | explicit path to z3 binary | | debug | flag | no | off | print z3 command, stdin, stdout, stderr, timing | | db | path | no | .z3-agent/z3agent.db | path to the logging database | Either `formula` or `file` must be provided.
عرض على GitHub