mirror of
https://github.com/Z3Prover/z3
synced 2026-02-10 02:50:55 +00:00
26 lines
813 B
C++
26 lines
813 B
C++
#pragma once
|
|
#include "nlsat_types.h"
|
|
|
|
namespace nlsat {
|
|
|
|
class assignment; // forward declared in nlsat_types.h
|
|
|
|
// Levelwise driver (PIMPL). Orchestrates property-based projection/proof.
|
|
class levelwise {
|
|
struct impl;
|
|
impl* m_impl;
|
|
public:
|
|
// Construct with polynomials ps, maximal variable max_x, and current sample s (assignment of vars < max_x)
|
|
levelwise(polynomial_ref_vector const& ps, var max_x, assignment const& s);
|
|
~levelwise();
|
|
|
|
levelwise(levelwise const&) = delete;
|
|
levelwise& operator=(levelwise const&) = delete;
|
|
levelwise(levelwise&&) noexcept;
|
|
levelwise& operator=(levelwise&&) noexcept;
|
|
};
|
|
|
|
// Convenience free-function driver prototype
|
|
polynomial_ref_vector levelwise_project(polynomial_ref_vector& ps, var max_x, assignment const& s);
|
|
|
|
} // namespace nlsat
|