3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00
Commit graph

1433 commits

Author SHA1 Message Date
Bruce Mitchener
7bc283b84e Avoid unnecessary copies in for-range loops. 2018-10-02 10:38:41 +07:00
Bruce Mitchener
cdfc19a885 Use nullptr. 2018-10-02 09:11:19 +07:00
Christoph M. Wintersteiger
48ec7c1175
Follow-up fix for fpa2bv_converter. 2018-10-01 17:25:02 +01:00
Christoph M. Wintersteiger
2a92de0aee
Fixed side conditions for UFs translated from FP to BV. Fixes #1825. 2018-10-01 15:20:00 +01:00
Nikolaj Bjorner
e818b7bd27 fix #1812
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-09-10 15:15:00 -07:00
Murphy Berzish
b09035565a canonicalize encoding of string constants/symbols 2018-09-05 19:04:11 -04:00
Nikolaj Bjorner
85e7b18451 fix name to divisible, guard under smtlib2_compliant as sugguested in #1757
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-09-01 18:22:10 -07:00
Nikolaj Bjorner
2b2f193f2b remove dependency on ARRAYSIZE for issue #1616
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-15 22:26:14 -07:00
Nikolaj Bjorner
fed977b492 fix #1782
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-02 10:08:16 -07:00
Nikolaj Bjorner
8b08821112 fix #1784, fix #1783
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-08-01 17:31:14 -07:00
Nikolaj Bjorner
42d30e3edd remove availability of divides as it clashes with user-defined functions in benchmarks
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-31 08:20:14 -07:00
Nikolaj Bjorner
13390e2c3a fix #681, unsound propagation of binary equalities. Clean up memory leaks on exit
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-29 12:08:59 -07:00
Nikolaj Bjorner
5509bf248a coallesce lambda/quant tracing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-29 08:02:56 -07:00
Nikolaj Bjorner
1cb3f7c792 fixing #1520
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-28 18:03:13 -07:00
Nikolaj Bjorner
60bb02b709 updates
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-26 15:31:49 +01:00
Nuno Lopes
dfa8c4432f add parameter(rational&&) 2018-07-14 20:50:49 +01:00
Nikolaj Bjorner
774fa33bfe fix parameter lookup
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-13 08:49:46 -07:00
Nikolaj Bjorner
ca12a8482f fix to closure
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-12 22:50:24 -07:00
Nikolaj Bjorner
4915fb080b fix #1749 by rejecting non-well-founded use of datatype in array
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-12 22:45:52 -07:00
Nuno Lopes
b7ea90c12b bv_decl_plugin: remove some mem allocs of parameters 2018-07-12 18:36:09 +01:00
Nikolaj Bjorner
b59fa3ebd7 fix #1746
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-10 09:05:24 -07:00
Nikolaj Bjorner
de454db58c guard expensive ite rewrites under configuration
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-09 14:17:39 -07:00
Nikolaj Bjorner
efe440839e Merge branch 'master' of https://github.com/z3prover/z3 2018-07-09 09:19:37 -07:00
Nikolaj Bjorner
605dcc40a3 fix #1741
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-09 09:19:13 -07:00
Nuno Lopes
a85a4f41c7 ast_exception: remove str copies 2018-07-08 15:32:01 +01:00
Arie Gurfinkel
1de0f8fe5e Fix bug in proof checking 2018-07-07 19:10:16 +03:00
Nikolaj Bjorner
ecb5c45d6f Merge branch 'master' of https://github.com/z3prover/z3 2018-07-06 21:33:58 -07:00
Nikolaj Bjorner
c4e4139ab6 fix clause check in goal2dimacs, redo rewriting of mod to avoid deeply nested mod
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-06 21:33:53 -07:00
Nikolaj Bjorner
3ae0ea8246 add circuit and unate encoding besides sorting option
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-06 21:09:13 -07:00
Nikolaj Bjorner
f96133f4d9 fix #1729
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-05 07:17:08 -07:00
Nikolaj Bjorner
c7e1d59b19 Merge branch 'master' of https://github.com/z3prover/z3 into lev 2018-07-03 13:42:50 -07:00
Nikolaj Bjorner
4359d518a9 thanks Nuno
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-03 09:28:22 -07:00
Nikolaj Bjorner
026265f9a3 fix memory leak in proof production in theory_pb
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-03 08:55:26 -07:00
Nikolaj Bjorner
6981918c33 Merge branch 'master' of https://github.com/z3prover/z3 into lev 2018-07-03 06:51:08 -07:00
Arie Gurfinkel
27fc564d09 Remove bad assertion 2018-07-02 23:23:58 -04:00
Arie Gurfinkel
8502f1fe36 Fix in proof_util:elim_aux_assertions
Replace assertions/hypotheses of aux variables with PR_TRUE.
Rebuild unit resolution as needed.
This makes the transformation stable against new proof rules.
2018-07-02 21:37:30 -04:00
Nikolaj Bjorner
03ed33ac02 merge with master
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-02 15:31:26 -07:00
Nikolaj Bjorner
5e3303ae85 let HORN solver know about cardinality constraints
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-07-02 11:46:03 -07:00
Nuno Lopes
a73d030321 invertible_tactic: add partial support for shifts 2018-07-02 18:29:34 +01:00
Nikolaj Bjorner
5a2a8d7d5c
Merge pull request #1715 from levnach/master
merge lar_solver/int_solver
2018-07-01 12:20:02 -07:00
Nikolaj Bjorner
080bf79fe6
Merge pull request #1705 from trinhmt/master
created pull from Trinh's seq solver
2018-06-30 04:53:14 -07:00
Nikolaj Bjorner
f1d27cd487 workaround non-deterministic behavior of is_irrational_numeral test
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-29 18:16:32 -07:00
Nuno Lopes
bc8cd7ff55 remove a few random mem allocs 2018-06-29 18:34:17 +01:00
Nikolaj Bjorner
cbc5aaad2c strengthen simplification of to_int such that #1608 is handled during pre-processing
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-29 09:44:54 -07:00
Lev Nachmanson
2087ee3fb0 restore some code that was removed during the rebase
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2018-06-28 11:59:01 -07:00
Nuno Lopes
5de6628a5d remove spurious copies and inc_refs around ref_vector 2018-06-28 10:31:38 +01:00
Nikolaj Bjorner
eabe91cdef Merge branch 'master' of https://github.com/z3prover/z3 2018-06-27 17:05:52 -07:00
Nikolaj Bjorner
7844476a7d fixes to term-graph, add proof-checker routines for PR_BIND, remove orphaned file
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2018-06-27 17:04:47 -07:00
Lev Nachmanson
6202b2f2e4 add cancellations
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

syntax errors

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

use std::vector instead of vector in cut_solver temporarily

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix in is_upper_bound, is_lower_bound

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add bound() for polynomial, needs more testing

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on resolve

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

implement resolve()

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>

implement improves()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

replace low_bound by lower_bound

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

better printing in cut_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add value vector to cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on bound propagaion for cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

bound propagation for integer inequalites

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

bound propagation for integer inequalites

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

bound propagattions on integers

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

adding m_explanation field to cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify bound propagation in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

calculate conflict explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

change m_explanation type to a set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

making cut_solver a member of int_solver, missing push/pop support

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

Nikolaj's comments

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

Nikolaj's comments

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

return explanations from cut_solver and hook up push/pop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

hook up push/pop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

using resize of std::vector

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

it is a big squashed commit

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

rename hpp to cpp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixes in push/pop of cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

return simple inequalities a part of a conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on propagation and the main loop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add file

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

init m_v[j], the var values only when j is fixed

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

handle decide in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

start on resolve_conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

start on resolve_conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove cut_solver_def.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

in the middle

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

change signature of resolve

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix the domain of the decided var

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tightening of ineqs

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tight ineqs

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tightening

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on tightening

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

resolve conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix in usage of resolve()

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on conflict resolution

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cut_solver is not a template

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

represent var_info as a class, not a struct

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

make literal a class

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

better resolve_conflict scheme, and switch to *constraints in literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug conflict resolution in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

switch to vector

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove nondetermenistic behavior from cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug resolve conflict

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix backjump

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

dumb explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

get rid of a parameter

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add lemmas origins

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use lemma_origins to provide correct explanations

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use lemma_origins to provide correct explanations

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

store lemmas in a separate vector

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use std::unordered_set for m_dependent_constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use std::unordered_set for m_dependent_constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix bugs with lemmas

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

finding conflicting cores

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

switch from changed variables to active_set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

less active constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

work on cut_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

propagate simple constraing immediately

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

propagate simple constraints immediately

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixing bugs with active set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove const_cast

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

towards unbounded variables

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

toward unbounded variables

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

toward unbounded variables

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

make lemmas_origins a set

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use correct hash and equal in m_lemma_origins

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add testing code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add testing code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug unlimited vars

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

take in Nikolaj's comments and improvements

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

address the comments

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

handle unlimited vars in check_inconsistent

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

debug

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

detect trivial polynomials in resolve

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

Nikolaj's changes

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify handling of m_global_bound_var

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

decide on m_global_bound_var if it is not fixed

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify m_global_bound_var

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

remove m_global_bound_var, simplify the indexing of var_infos of cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

do not run cut_solver with vars without any bound

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

small changes

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add cancellation in cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

do not pop lemmas during a cut_solver run

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

treating cut_solver as an heurisitic

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

prepare for cut_solver returning undef

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify work with active_set in cut_solver, add stats

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify var_info literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in fill_conflict_explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in the conflict explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add timeout to validate_* in theory_lra.cpp

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify cut_solver, no special treatment for simple constraints

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cleanup the cancel story

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

cleanup cancelling

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in push/pop of cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

extract a method in int_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

some progress with the new scheme

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

add testing code

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixes in test and in literal creation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in bound propagation in cut_solver.h

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

simplify cut_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

provide valid conflict explanation

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use a lazy push in stacked_map

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use a lazy push in stacked_map

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

optimize stack operations on var_info's domains

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fix a bug in tightening

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

use the standard tactics from qflia_tactic

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

spread the var domain stack over literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

spread the var domain stack over literals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

avoid cycling in cut_solver.h and fixes in push/pop

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>

fixes after rebase

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
2018-06-27 11:35:11 -07:00
Nikolaj Bjorner
91ef84b8c9 Merge branch 'master' of https://github.com/z3prover/z3 2018-06-27 11:25:04 -07:00