Overview
The Tactics API provides a framework for building custom solvers through composable transformations. Tactics transform goals (sets of formulas) into simpler subgoals.Types
Z3_tactic
Basic building block for creating custom solvers for specific problem domains.Z3_probe
Function/predicate used to inspect a goal and collect information for deciding which tactic to use.Z3_goal
Set of formulas that can be solved or transformed using tactics.Z3_apply_result
Collection of subgoals resulting from applying a tactic to a goal.Tactic Creation
Z3_mk_tactic
Z3_tactic
Tactic object
"simplify"- Apply simplification rules"solve-eqs"- Solve for variables"smt"- Apply SMT solver"qe"- Quantifier elimination"sat"- SAT solver"ctx-solver-simplify"- Contextual simplification"purify-arith"- Purify arithmetic expressions"split-clause"- Split clauses
Z3_tactic_inc_ref
Z3_tactic_dec_ref
Tactic Combinators
Z3_tactic_and_then
Z3_tactic
Sequential composition tactic
Z3_tactic_or_else
Z3_tactic
Or-else combinator
Z3_tactic_par_or
Z3_tactic
Parallel-or combinator
Z3_tactic_par_and_then
Z3_tactic
Parallel composition
Z3_tactic_try_for
Z3_tactic
Tactic with timeout
Z3_tactic_repeat
Z3_tactic
Repeat combinator
Z3_tactic_when
Z3_tactic
Conditional tactic
Z3_tactic_cond
Z3_tactic
If-then-else tactic
Probes
Z3_mk_probe
Z3_probe
Probe object
"is-qflia"- Linear integer arithmetic"is-qfbv"- Bit-vectors"is-propositional"- Pure Boolean"num-consts"- Number of constants"size"- Goal size"depth"- Expression depth
Z3_probe_inc_ref
Z3_probe_dec_ref
Goals
Z3_mk_goal
Z3_goal
Goal object
Z3_goal_assert
Z3_tactic_apply
Z3_apply_result
Result containing subgoals
Z3_apply_result_get_num_subgoals
unsigned
Number of subgoals
Z3_apply_result_get_subgoal
Z3_goal
Subgoal
