mirror of
https://github.com/Z3Prover/z3
synced 2025-07-19 19:02:02 +00:00
Merge branch 'master' of https://github.com/Z3Prover/z3
This commit is contained in:
commit
596f07e548
5 changed files with 41 additions and 19 deletions
|
@ -3076,6 +3076,11 @@ def mk_vs_proj_property_groups(f, name, target_ext, type):
|
||||||
f.write(' <CharacterSet>Unicode</CharacterSet>\n')
|
f.write(' <CharacterSet>Unicode</CharacterSet>\n')
|
||||||
f.write(' <UseOfMfc>false</UseOfMfc>\n')
|
f.write(' <UseOfMfc>false</UseOfMfc>\n')
|
||||||
f.write(' </PropertyGroup>\n')
|
f.write(' </PropertyGroup>\n')
|
||||||
|
f.write(' <PropertyGroup Condition="\'$(Configuration)|$(Platform)\'==\'Release|Win32\'" Label="Configuration">\n')
|
||||||
|
f.write(' <ConfigurationType>%s</ConfigurationType>\n' % type)
|
||||||
|
f.write(' <CharacterSet>Unicode</CharacterSet>\n')
|
||||||
|
f.write(' <UseOfMfc>false</UseOfMfc>\n')
|
||||||
|
f.write(' </PropertyGroup>\n')
|
||||||
f.write(' <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\n')
|
f.write(' <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\n')
|
||||||
f.write(' <ImportGroup Label="ExtensionSettings" />\n')
|
f.write(' <ImportGroup Label="ExtensionSettings" />\n')
|
||||||
f.write(' <ImportGroup Label="PropertySheets">\n')
|
f.write(' <ImportGroup Label="PropertySheets">\n')
|
||||||
|
|
|
@ -1291,7 +1291,9 @@ namespace smt {
|
||||||
|
|
||||||
IF_VERBOSE(1, verbose_stream()
|
IF_VERBOSE(1, verbose_stream()
|
||||||
<< "(smt.pb compile sorting network bound: "
|
<< "(smt.pb compile sorting network bound: "
|
||||||
<< k << " literals: " << in.size() << ")\n";);
|
<< k << " literals: " << in.size()
|
||||||
|
<< " clauses: " << sortnw.m_stats.m_num_compiled_clauses
|
||||||
|
<< " vars: " << sortnw.m_stats.m_num_compiled_vars << ")\n";);
|
||||||
|
|
||||||
// auxiliary clauses get removed when popping scopes.
|
// auxiliary clauses get removed when popping scopes.
|
||||||
// we have to recompile the circuit after back-tracking.
|
// we have to recompile the circuit after back-tracking.
|
||||||
|
|
|
@ -294,6 +294,10 @@ private:
|
||||||
for (unsigned i = 0; i < m_assertions.size(); ++i) {
|
for (unsigned i = 0; i < m_assertions.size(); ++i) {
|
||||||
sub(m_assertions[i].get(), fml1);
|
sub(m_assertions[i].get(), fml1);
|
||||||
m_rewriter(fml1, fml2, proof);
|
m_rewriter(fml1, fml2, proof);
|
||||||
|
if (m.canceled()) {
|
||||||
|
m_rewriter.reset();
|
||||||
|
return;
|
||||||
|
}
|
||||||
m_solver->assert_expr(fml2);
|
m_solver->assert_expr(fml2);
|
||||||
TRACE("int2bv", tout << fml2 << "\n";);
|
TRACE("int2bv", tout << fml2 << "\n";);
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,9 +102,20 @@ public:
|
||||||
|
|
||||||
datatype_util dt(m);
|
datatype_util dt(m);
|
||||||
bv_util bv(m);
|
bv_util bv(m);
|
||||||
|
expr_ref_vector bvars(m), conseq(m), bounds(m);
|
||||||
|
|
||||||
|
// ensure that enumeration variables that
|
||||||
|
// don't occur in the constraints
|
||||||
|
// are also internalized.
|
||||||
|
for (unsigned i = 0; i < vars.size(); ++i) {
|
||||||
|
expr_ref tmp(m.mk_eq(vars[i], vars[i]), m);
|
||||||
|
proof_ref proof(m);
|
||||||
|
m_rewriter(tmp, tmp, proof);
|
||||||
|
}
|
||||||
|
m_rewriter.flush_side_constraints(bounds);
|
||||||
|
m_solver->assert_expr(bounds);
|
||||||
|
|
||||||
// translate enumeration constants to bit-vectors.
|
// translate enumeration constants to bit-vectors.
|
||||||
expr_ref_vector bvars(m), conseq(m);
|
|
||||||
for (unsigned i = 0; i < vars.size(); ++i) {
|
for (unsigned i = 0; i < vars.size(); ++i) {
|
||||||
func_decl* f;
|
func_decl* f;
|
||||||
if (is_app(vars[i]) && is_uninterp_const(vars[i]) && m_rewriter.enum2bv().find(to_app(vars[i])->get_decl(), f)) {
|
if (is_app(vars[i]) && is_uninterp_const(vars[i]) && m_rewriter.enum2bv().find(to_app(vars[i])->get_decl(), f)) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue