mirror of
https://github.com/Z3Prover/z3
synced 2025-04-24 09:35:32 +00:00
still integrating duality
This commit is contained in:
parent
feb5360999
commit
e939dd2bc5
10 changed files with 66 additions and 24 deletions
|
@ -323,6 +323,8 @@ void iz3interpolate(ast_manager &_m_manager,
|
|||
interpolation_options_struct * options)
|
||||
{
|
||||
iz3interp itp(_m_manager);
|
||||
if(options)
|
||||
options->apply(itp);
|
||||
std::vector<iz3mgr::ast> _cnsts(cnsts.size());
|
||||
std::vector<int> _parents(parents.size());
|
||||
std::vector<iz3mgr::ast> _interps;
|
||||
|
@ -348,6 +350,8 @@ void iz3interpolate(ast_manager &_m_manager,
|
|||
interpolation_options_struct * options)
|
||||
{
|
||||
iz3interp itp(_m_manager);
|
||||
if(options)
|
||||
options->apply(itp);
|
||||
std::vector<iz3mgr::ast> _cnsts(cnsts.size());
|
||||
std::vector<iz3mgr::ast> _interps;
|
||||
for(unsigned i = 0; i < cnsts.size(); i++)
|
||||
|
@ -369,6 +373,8 @@ lbool iz3interpolate(ast_manager &_m_manager,
|
|||
interpolation_options_struct * options)
|
||||
{
|
||||
iz3interp itp(_m_manager);
|
||||
if(options)
|
||||
options->apply(itp);
|
||||
iz3mgr::ast _tree = itp.cook(tree);
|
||||
std::vector<iz3mgr::ast> _cnsts;
|
||||
itp.assert_conjuncts(s,_cnsts,_tree);
|
||||
|
@ -391,6 +397,12 @@ lbool iz3interpolate(ast_manager &_m_manager,
|
|||
return res;
|
||||
}
|
||||
|
||||
void interpolation_options_struct::apply(iz3base &b){
|
||||
for(stl_ext::hash_map<std::string,std::string>::iterator it = map.begin(), en = map.end();
|
||||
it != en;
|
||||
++it)
|
||||
b.set_option((*it).first,(*it).second);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -23,8 +23,15 @@ Revision History:
|
|||
#include "iz3hash.h"
|
||||
#include "solver.h"
|
||||
|
||||
class iz3base;
|
||||
|
||||
struct interpolation_options_struct {
|
||||
stl_ext::hash_map<std::string,std::string> map;
|
||||
public:
|
||||
void set(const std::string &name, const std::string &value){
|
||||
map[name] = value;
|
||||
}
|
||||
void apply(iz3base &b);
|
||||
};
|
||||
|
||||
/** This object is thrown if a tree interpolation problem is mal-formed */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue