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

really lousy model-building, WIP

This commit is contained in:
Murphy Berzish 2015-09-28 01:56:13 -04:00
parent 0d54e4e4ae
commit 7da3854a8b
2 changed files with 53 additions and 16 deletions

View file

@ -28,7 +28,22 @@ Revision History:
namespace smt {
class str_value_factory : public value_factory {
// TODO
str_util m_util;
public:
str_value_factory(ast_manager & m, family_id fid) :
value_factory(m, fid),
m_util(m) {}
virtual ~str_value_factory() {}
virtual expr * get_some_value(sort * s) {
return m_util.mk_string("some value");
}
virtual bool get_some_values(sort * s, expr_ref & v1, expr_ref & v2) {
v1 = m_util.mk_string("value 1");
v2 = m_util.mk_string("value 2");
return true;
}
virtual expr * get_fresh_value(sort * s) { NOT_IMPLEMENTED_YET(); }
virtual void register_value(expr * n) { /* Ignore */ }
};
class theory_str : public theory {
@ -38,6 +53,8 @@ namespace smt {
arith_util m_autil;
str_util m_strutil;
str_value_factory * m_factory;
ptr_vector<enode> m_basicstr_axiom_todo;
svector<std::pair<enode*,enode*> > m_str_eq_todo;
protected:
@ -83,6 +100,10 @@ namespace smt {
virtual final_check_status final_check_eh();
void attach_new_th_var(enode * n);
virtual void init_model(model_generator & m);
virtual model_value_proc * mk_value(enode * n, model_generator & mg);
virtual void finalize_model(model_generator & mg);
};
};