mirror of
https://github.com/Z3Prover/z3
synced 2026-07-15 03:25:43 +00:00
The TPTP frontend was not forcing `pi.avoid_skolems=false`, so TPTP
problems could be solved with the default pattern-inference behavior
instead of the intended frontend-specific setting. This change applies
the override directly to the solver used by TPTP runs.
- **What changed**
- After constructing the TPTP solver, the frontend now sets
`pi.avoid_skolems=false` via solver parameters before `check_sat`.
- The override is scoped to the TPTP solver instance instead of mutating
process-global parameter state.
- **Why this shape**
- Keeps the TPTP behavior explicit at the point where the solver is
created.
- Avoids leaking the parameter change into unrelated solver contexts.
- **Code sketch**
```c++
ctx.set_solver_factory(mk_smt_strategic_solver_factory());
params_ref solver_params;
solver_params.set_bool("pi.avoid_skolems", false);
ctx.get_solver()->updt_params(solver_params);
```
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
|
||
|---|---|---|
| .. | ||
| extra_cmds | ||
| basic_cmds.cpp | ||
| basic_cmds.h | ||
| CMakeLists.txt | ||
| cmd_context.cpp | ||
| cmd_context.h | ||
| cmd_context_to_goal.cpp | ||
| cmd_context_to_goal.h | ||
| cmd_util.cpp | ||
| cmd_util.h | ||
| echo_tactic.cpp | ||
| echo_tactic.h | ||
| eval_cmd.cpp | ||
| eval_cmd.h | ||
| parametric_cmd.cpp | ||
| parametric_cmd.h | ||
| pdecl.cpp | ||
| pdecl.h | ||
| README | ||
| simplifier_cmds.cpp | ||
| simplifier_cmds.h | ||
| simplify_cmd.cpp | ||
| simplify_cmd.h | ||
| tactic_cmds.cpp | ||
| tactic_cmds.h | ||
| tactic_manager.cpp | ||
| tactic_manager.h | ||
| tptp_frontend.cpp | ||
| tptp_frontend.h | ||
Command context provides the infrastructure for executing commands in front-ends such as SMT-LIB 2.0. It is also provides the solver abstraction to plugin solvers in this kind of front-end.