mirror of
https://github.com/Z3Prover/z3
synced 2025-08-15 15:25:26 +00:00
working on duality
This commit is contained in:
parent
a93f8b04e5
commit
a3462ba6aa
11 changed files with 415 additions and 121 deletions
|
@ -393,6 +393,7 @@ namespace Duality {
|
|||
sort array_range() const;
|
||||
};
|
||||
|
||||
|
||||
class func_decl : public ast {
|
||||
public:
|
||||
func_decl() : ast() {}
|
||||
|
@ -593,6 +594,36 @@ namespace Duality {
|
|||
};
|
||||
|
||||
|
||||
typedef ::decl_kind pfrule;
|
||||
|
||||
class proof : public ast {
|
||||
public:
|
||||
proof(context & c):ast(c) {}
|
||||
proof(context & c, ::proof *s):ast(c, s) {}
|
||||
proof(proof const & s):ast(s) {}
|
||||
operator ::proof*() const { return to_app(raw()); }
|
||||
proof & operator=(proof const & s) { return static_cast<proof&>(ast::operator=(s)); }
|
||||
|
||||
pfrule rule() const {
|
||||
::func_decl *d = to_app(raw())->get_decl();
|
||||
return d->get_decl_kind();
|
||||
}
|
||||
|
||||
unsigned num_prems() const {
|
||||
return to_app(raw())->get_num_args() - 1;
|
||||
}
|
||||
|
||||
expr conc() const {
|
||||
return ctx().cook(to_app(raw())->get_arg(num_prems()));
|
||||
}
|
||||
|
||||
proof prem(unsigned i) const {
|
||||
return proof(ctx(),to_app(to_app(raw())->get_arg(i)));
|
||||
}
|
||||
|
||||
void get_assumptions(std::vector<expr> &assumps);
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
||||
#if Z3_MAJOR_VERSION > 4 || Z3_MAJOR_VERSION == 4 && Z3_MINOR_VERSION >= 3
|
||||
|
@ -870,6 +901,12 @@ namespace Duality {
|
|||
|
||||
unsigned get_scope_level(){return m_solver->get_scope_level();}
|
||||
|
||||
void show();
|
||||
|
||||
proof get_proof(){
|
||||
return proof(ctx(),m_solver->get_proof());
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#if 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue