mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 05:18:44 +00:00
Merge branch 'unstable' of https://github.com/Z3Prover/z3 into unstable
This commit is contained in:
commit
8f3b133882
|
@ -553,7 +553,7 @@ def display_help(exit_code):
|
|||
if IS_WINDOWS:
|
||||
print(" -n, --nodotnet do not generate Microsoft.Z3.dll make rules.")
|
||||
if IS_WINDOWS:
|
||||
print(" --optimize generate optimized code during linking.")
|
||||
print(" --optimize generate optimized code during linking.")
|
||||
print(" -j, --java generate Java bindings.")
|
||||
print(" --ml generate OCaml bindings.")
|
||||
print(" --staticlib build Z3 static library.")
|
||||
|
@ -621,8 +621,8 @@ def parse_options():
|
|||
DOTNET_ENABLED = False
|
||||
elif opt in ('--staticlib'):
|
||||
STATIC_LIB = True
|
||||
elif opt in ('--optimize'):
|
||||
OPTIMIZE = True
|
||||
elif opt in ('--optimize'):
|
||||
OPTIMIZE = True
|
||||
elif not IS_WINDOWS and opt in ('-p', '--prefix'):
|
||||
PREFIX = arg
|
||||
PYTHON_PACKAGE_DIR = os.path.join(PREFIX, 'lib', 'python%s' % distutils.sysconfig.get_python_version(), 'dist-packages')
|
||||
|
@ -1786,8 +1786,8 @@ def mk_config():
|
|||
'SLINK_EXTRA_FLAGS=/link /DEBUG /MACHINE:X64 /SUBSYSTEM:WINDOWS /INCREMENTAL:NO /STACK:8388608 /OPT:REF /OPT:ICF /TLBID:1 /DYNAMICBASE:NO\n')
|
||||
else:
|
||||
# Windows Release mode
|
||||
if OPTIMIZE:
|
||||
config.write('AR_FLAGS=/nologo /LTCG\n')
|
||||
if OPTIMIZE:
|
||||
config.write('AR_FLAGS=/nologo /LTCG\n')
|
||||
config.write(
|
||||
'LINK_FLAGS=/nologo /MD\n'
|
||||
'SLINK_FLAGS=/nologo /LD\n')
|
||||
|
|
|
@ -210,18 +210,18 @@ def prove(claim,assume=None,verbose=0):
|
|||
|
||||
|
||||
if verbose >= 2:
|
||||
print 'assume: '
|
||||
print assume
|
||||
print 'claim: '
|
||||
print claim
|
||||
print 'to_prove: '
|
||||
print to_prove
|
||||
print('assume: ')
|
||||
print(assume)
|
||||
print('claim: ')
|
||||
print(claim)
|
||||
print('to_prove: ')
|
||||
print(to_prove)
|
||||
|
||||
f = Not(to_prove)
|
||||
|
||||
models = get_models(f,k=1)
|
||||
if models is None: #unknown
|
||||
print 'E: cannot solve !'
|
||||
print('E: cannot solve !')
|
||||
return None, None
|
||||
elif models == False: #unsat
|
||||
return True,None
|
||||
|
@ -458,7 +458,7 @@ def model_str(m,as_str=True):
|
|||
|
||||
if m :
|
||||
vs = [(v,m[v]) for v in m]
|
||||
vs = sorted(vs,key=lambda (a,_): str(a))
|
||||
vs = sorted(vs,key=lambda a,_: str(a))
|
||||
if as_str:
|
||||
return '\n'.join(['{} = {}'.format(k,v) for (k,v) in vs])
|
||||
else:
|
||||
|
|
|
@ -594,7 +594,10 @@ typedef enum
|
|||
}
|
||||
This proof object has one antecedent: a hypothetical proof for false.
|
||||
It converts the proof in a proof for (or (not l_1) ... (not l_n)),
|
||||
when T1 contains the hypotheses: l_1, ..., l_n.
|
||||
when T1 contains the open hypotheses: l_1, ..., l_n.
|
||||
The hypotheses are closed after an application of a lemma.
|
||||
Furthermore, there are no other open hypotheses in the subtree covered by
|
||||
the lemma.
|
||||
|
||||
- Z3_OP_PR_UNIT_RESOLUTION:
|
||||
\nicebox{
|
||||
|
|
|
@ -55,9 +55,8 @@ void theory_wmaxsat::get_assignment(svector<bool>& result) {
|
|||
}
|
||||
else {
|
||||
std::sort(m_cost_save.begin(), m_cost_save.end());
|
||||
unsigned j = 0;
|
||||
for (theory_var i = 0; i < m_vars.size(); ++i) {
|
||||
if (j < m_cost_save.size() && m_cost_save[j] == i) {
|
||||
for (unsigned i = 0,j = 0; i < m_vars.size(); ++i) {
|
||||
if (j < m_cost_save.size() && m_cost_save[j] == static_cast<theory_var>(i)) {
|
||||
result.push_back(false);
|
||||
++j;
|
||||
}
|
||||
|
|
|
@ -47,10 +47,15 @@ struct test_model_search {
|
|||
void add_tree(model_node* parent, bool force_goal) {
|
||||
unsigned level = parent->level();
|
||||
search.add_leaf(*parent);
|
||||
expr_ref state(m);
|
||||
if (level > 0 && (force_goal || parent->is_goal())) {
|
||||
search.remove_goal(*parent);
|
||||
add_tree(alloc(model_node, parent, mk_state(states, rand), pt, level-1), false);
|
||||
add_tree(alloc(model_node, parent, mk_state(states, rand), pt, level-1), false);
|
||||
|
||||
state = mk_state(states, rand);
|
||||
add_tree(alloc(model_node, parent, state, pt, level-1), false);
|
||||
|
||||
state = mk_state(states, rand);
|
||||
add_tree(alloc(model_node, parent, state, pt, level-1), false);
|
||||
parent->check_pre_closed();
|
||||
}
|
||||
}
|
||||
|
@ -91,7 +96,8 @@ struct test_model_search {
|
|||
state = states[0].get();
|
||||
unsigned level = 4;
|
||||
for(unsigned n = 0; n < 100; ++n) {
|
||||
model_node* root = alloc(model_node, 0, mk_state(states, rand), pt, level);
|
||||
state = mk_state(states, rand);
|
||||
model_node* root = alloc(model_node, 0, state, pt, level);
|
||||
search.set_root(root);
|
||||
add_tree(root, false);
|
||||
search.display(std::cout);
|
||||
|
|
Loading…
Reference in a new issue