mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 05:18:44 +00:00
* rewriter: fix unused variable warnings * cmake: make missing non-virtual dtors error * treewide: add missing virtual destructors * cmake: add a few more checks * api: add missing virtual destructor to user_propagator_base * examples: compile cpp example with compiler warnings * model: fix unused variable warnings * rewriter: fix logical-op-parentheses warnings * sat: fix unused variable warnings * smt: fix unused variable warnings
41 lines
836 B
C++
41 lines
836 B
C++
/*++
|
|
Copyright (c) 2013 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
theory_opt.h
|
|
|
|
Abstract:
|
|
|
|
Interface utilities used by optimization providing
|
|
theory solvers.
|
|
|
|
Author:
|
|
|
|
Nikolaj Bjorner (nbjorner) 2013-10-18
|
|
|
|
Notes:
|
|
|
|
--*/
|
|
|
|
#include "util/inf_rational.h"
|
|
#include "util/inf_eps_rational.h"
|
|
#include "ast/arith_decl_plugin.h"
|
|
|
|
#pragma once
|
|
|
|
class generic_model_converter;
|
|
namespace smt {
|
|
class theory_opt {
|
|
public:
|
|
typedef inf_eps_rational<inf_rational> inf_eps;
|
|
virtual ~theory_opt() = default;
|
|
virtual inf_eps value(theory_var) = 0;
|
|
virtual inf_eps maximize(theory_var v, expr_ref& blocker, bool& has_shared) = 0;
|
|
virtual theory_var add_objective(app* term) = 0;
|
|
bool is_linear(ast_manager& m, expr* term);
|
|
bool is_numeral(arith_util& a, expr* term);
|
|
};
|
|
}
|
|
|