mirror of
https://github.com/Z3Prover/z3
synced 2025-08-21 02:30:23 +00:00
fix #6792, add scaffolding for type variables
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
f5c069f899
commit
5806869ae4
8 changed files with 96 additions and 14 deletions
|
@ -348,6 +348,26 @@ std::ostream& psort_user_decl::display(std::ostream & out) const {
|
|||
return out << ")";
|
||||
}
|
||||
|
||||
// -------------------
|
||||
// psort_type_var_decl
|
||||
|
||||
psort_type_var_decl::psort_type_var_decl(unsigned id, pdecl_manager & m, symbol const & n):
|
||||
psort_decl(id, 0, m, n) {
|
||||
m_psort_kind = PSORT_TV;
|
||||
}
|
||||
|
||||
void psort_type_var_decl::finalize(pdecl_manager & m) {
|
||||
psort_decl::finalize(m);
|
||||
}
|
||||
|
||||
sort * psort_type_var_decl::instantiate(pdecl_manager & m, unsigned n, sort * const * s) {
|
||||
return m.m().mk_type_var(m_name);
|
||||
}
|
||||
|
||||
std::ostream& psort_type_var_decl::display(std::ostream & out) const {
|
||||
return out << "(declare-type-var " << m_name << ")";
|
||||
}
|
||||
|
||||
// -------------------
|
||||
// psort_dt_decl
|
||||
|
||||
|
@ -969,6 +989,10 @@ psort_decl * pdecl_manager::mk_psort_dt_decl(unsigned num_params, symbol const &
|
|||
return new (a().allocate(sizeof(psort_dt_decl))) psort_dt_decl(m_id_gen.mk(), num_params, *this, n);
|
||||
}
|
||||
|
||||
psort_decl * pdecl_manager::mk_psort_type_var_decl(symbol const & n) {
|
||||
return new (a().allocate(sizeof(psort_type_var_decl))) psort_type_var_decl(m_id_gen.mk(), *this, n);
|
||||
}
|
||||
|
||||
|
||||
psort_decl * pdecl_manager::mk_psort_builtin_decl(symbol const & n, family_id fid, decl_kind k) {
|
||||
return new (a().allocate(sizeof(psort_builtin_decl))) psort_builtin_decl(m_id_gen.mk(), *this, n, fid, k);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue