3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-07 00:11:55 +00:00

A slice solver option for interactive use case

A slice solver prunes the set of active assertions based on symbol occurrences in a goal that is tracked as a @query.
Ground assertions that have symbols intersecting with the query are included in the solver state, and quantifiers that with patterns that intersect with the slice are included. The slice is the fixedpoint of including symbols from all included assertions.
Enable the functionality for command-line use by setting solver.slice=true
This commit is contained in:
Nikolaj Bjorner 2024-10-08 09:22:10 -07:00
parent 0fec7efc7b
commit 8a95dd4d65
4 changed files with 465 additions and 0 deletions

25
src/solver/slice_solver.h Normal file
View file

@ -0,0 +1,25 @@
/*++
Copyright (c) 2023 Microsoft Corporation
Module Name:
slice_solver.h
Abstract:
Implements a solver that slices assertions based on the query.
Author:
Nikolaj Bjorner (nbjorner) 2024-10-07
--*/
#pragma once
#include "util/params.h"
class solver;
class solver_factory;
solver * mk_slice_solver(solver * s);