mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 13:28:47 +00:00
Merge branch 'master' of https://github.com/Z3Prover/z3
This commit is contained in:
commit
596f07e548
|
@ -3076,6 +3076,11 @@ def mk_vs_proj_property_groups(f, name, target_ext, type):
|
|||
f.write(' <CharacterSet>Unicode</CharacterSet>\n')
|
||||
f.write(' <UseOfMfc>false</UseOfMfc>\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(' <ImportGroup Label="ExtensionSettings" />\n')
|
||||
f.write(' <ImportGroup Label="PropertySheets">\n')
|
||||
|
|
|
@ -1291,7 +1291,9 @@ namespace smt {
|
|||
|
||||
IF_VERBOSE(1, verbose_stream()
|
||||
<< "(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.
|
||||
// we have to recompile the circuit after back-tracking.
|
||||
|
|
|
@ -294,6 +294,10 @@ private:
|
|||
for (unsigned i = 0; i < m_assertions.size(); ++i) {
|
||||
sub(m_assertions[i].get(), fml1);
|
||||
m_rewriter(fml1, fml2, proof);
|
||||
if (m.canceled()) {
|
||||
m_rewriter.reset();
|
||||
return;
|
||||
}
|
||||
m_solver->assert_expr(fml2);
|
||||
TRACE("int2bv", tout << fml2 << "\n";);
|
||||
}
|
||||
|
|
|
@ -102,9 +102,20 @@ public:
|
|||
|
||||
datatype_util dt(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.
|
||||
expr_ref_vector bvars(m), conseq(m);
|
||||
for (unsigned i = 0; i < vars.size(); ++i) {
|
||||
func_decl* f;
|
||||
if (is_app(vars[i]) && is_uninterp_const(vars[i]) && m_rewriter.enum2bv().find(to_app(vars[i])->get_decl(), f)) {
|
||||
|
|
Loading…
Reference in a new issue