mirror of
https://github.com/Z3Prover/z3
synced 2025-11-28 08:19:50 +00:00
Revert "Add finite_set_value_factory for creating finite set values in model …" (#7985)
This reverts commit 05ffc0a77b.
This commit is contained in:
parent
c8e849b063
commit
454a8c3406
3 changed files with 3 additions and 88 deletions
|
|
@ -1,58 +0,0 @@
|
||||||
/*++
|
|
||||||
Copyright (c) 2025 Microsoft Corporation
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
finite_set_value_factory.cpp
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Factory for creating finite set values
|
|
||||||
|
|
||||||
--*/
|
|
||||||
#include "model/finite_set_value_factory.h"
|
|
||||||
#include "model/model_core.h"
|
|
||||||
|
|
||||||
finite_set_value_factory::finite_set_value_factory(ast_manager & m, family_id fid, model_core & md):
|
|
||||||
struct_factory(m, fid, md),
|
|
||||||
u(m) {
|
|
||||||
}
|
|
||||||
|
|
||||||
expr * finite_set_value_factory::get_some_value(sort * s) {
|
|
||||||
// Check if we already have a value for this sort
|
|
||||||
value_set * set = nullptr;
|
|
||||||
SASSERT(u.is_finite_set(s));
|
|
||||||
#if 0
|
|
||||||
if (m_sort2value_set.find(s, set) && !set->empty())
|
|
||||||
return *(set->begin());
|
|
||||||
#endif
|
|
||||||
return u.mk_empty(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
expr * finite_set_value_factory::get_fresh_value(sort * s) {
|
|
||||||
sort* elem_sort = nullptr;
|
|
||||||
VERIFY(u.is_finite_set(s, elem_sort));
|
|
||||||
// Get a fresh value for a finite set sort
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
#if 0
|
|
||||||
value_set * set = get_value_set(s);
|
|
||||||
|
|
||||||
// If no values have been generated yet, use get_some_value
|
|
||||||
if (set->empty()) {
|
|
||||||
auto r = u.mk_empty(s);
|
|
||||||
register_value(r);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
auto e = md.get_fresh_value(elem_sort);
|
|
||||||
if (e) {
|
|
||||||
auto r = u.mk_singleton(e);
|
|
||||||
register_value(r);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
// For finite domains, we may not be able to generate fresh values
|
|
||||||
// if all values have been exhausted
|
|
||||||
return nullptr;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
@ -1,30 +0,0 @@
|
||||||
/*++
|
|
||||||
Copyright (c) 2025 Microsoft Corporation
|
|
||||||
|
|
||||||
Module Name:
|
|
||||||
|
|
||||||
finite_set_value_factory.h
|
|
||||||
|
|
||||||
Abstract:
|
|
||||||
|
|
||||||
Factory for creating finite set values
|
|
||||||
|
|
||||||
--*/
|
|
||||||
#pragma once
|
|
||||||
|
|
||||||
#include "model/struct_factory.h"
|
|
||||||
#include "ast/finite_set_decl_plugin.h"
|
|
||||||
|
|
||||||
/**
|
|
||||||
\brief Factory for finite set values.
|
|
||||||
*/
|
|
||||||
class finite_set_value_factory : public struct_factory {
|
|
||||||
finite_set_util u;
|
|
||||||
public:
|
|
||||||
finite_set_value_factory(ast_manager & m, family_id fid, model_core & md);
|
|
||||||
|
|
||||||
expr * get_some_value(sort * s) override;
|
|
||||||
|
|
||||||
expr * get_fresh_value(sort * s) override;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
@ -111,11 +111,14 @@ value_factory* model::get_factory(sort* s) {
|
||||||
m_factories.register_plugin(alloc(arith_factory, m));
|
m_factories.register_plugin(alloc(arith_factory, m));
|
||||||
m_factories.register_plugin(alloc(seq_factory, m, su.get_family_id(), *this));
|
m_factories.register_plugin(alloc(seq_factory, m, su.get_family_id(), *this));
|
||||||
m_factories.register_plugin(alloc(fpa_value_factory, m, fu.get_family_id()));
|
m_factories.register_plugin(alloc(fpa_value_factory, m, fu.get_family_id()));
|
||||||
|
<<<<<<< HEAD
|
||||||
<<<<<<< HEAD
|
<<<<<<< HEAD
|
||||||
m_factories.register_plugin(alloc(finite_set_factory, m, m.get_family_id("finite_set"), *this));
|
m_factories.register_plugin(alloc(finite_set_factory, m, m.get_family_id("finite_set"), *this));
|
||||||
=======
|
=======
|
||||||
m_factories.register_plugin(alloc(finite_set_value_factory, m, m.mk_family_id("finite_set"), *this));
|
m_factories.register_plugin(alloc(finite_set_value_factory, m, m.mk_family_id("finite_set"), *this));
|
||||||
>>>>>>> 05ffc0a77 (Add finite_set_value_factory for creating finite set values in model generation (#7981))
|
>>>>>>> 05ffc0a77 (Add finite_set_value_factory for creating finite set values in model generation (#7981))
|
||||||
|
=======
|
||||||
|
>>>>>>> 62ee7ccf6 (Revert "Add finite_set_value_factory for creating finite set values in model …" (#7985))
|
||||||
//m_factories.register_plugin(alloc(char_factory, m, char_decl_plugin(m).get_family_id());
|
//m_factories.register_plugin(alloc(char_factory, m, char_decl_plugin(m).get_family_id());
|
||||||
}
|
}
|
||||||
family_id fid = s->get_family_id();
|
family_id fid = s->get_family_id();
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue