* take coefficient into account
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* take coefficient into account
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
change in settings + random in adding terms to hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
add terms in hnf from the beginning
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
adjusting settings
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove non used determinant()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixex in maximize_term
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
prepare for LIRA (#76)
* merge
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* simple mixed integer example
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Nikolaj's fixes in theory_lra.cpp
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixes in maximize_term, disable find_cube for mixed case
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix cube heuristic for the mixed case
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix the build
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix in find cube delta's calculation
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove a printout
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove a blank line
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
test credentials
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
avoid double checks to add terms in hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
fixes in add terms to hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove a variable used for debug only
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove a field
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove a warning and hide m_A_orig under debug
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
use var_register to deal with mapping between external and local variables
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
tighten the loop in explain_implied_bound
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixes in theory_lra and relaxing debug checks in pop(), for the case when push() has been done from not fully initialized state
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
suppress hnf cutter when the numbers become too large
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove some debug code
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
adjusting hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
exit earlier on a large matrix in hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
call hnf only for the boundary points
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix a bug in hnf_cutter initialization
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
initialize has_bounds in lar_solver::get_equality_for_term_on_corrent_x
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
initialize has_bounds in lar_solver::get_equality_for_term_on_corrent_x
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
initialize has_bounds in lar_solver::get_equality_for_term_on_corrent_x
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
initialize has_bounds in lar_solver::get_equality_for_term_on_corrent_x
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixes in determinant_of_rectangular_matrix calculations
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
changes in debug code
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
init m_hnf_cut_period from globals settings
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix some warnings
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Lev2 (#66)
* log quantifiers only if present
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* merge and fix some warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
remove a comment
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
simplify gomory cut return's logic
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
simplify uniformly int_solver::check()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
making new arith solver default for LIA (#67)
* log quantifiers only if present
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* merge and fix some warnings
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
* set new arith as default for LIA
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
remove chase_cut_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove integer_domain
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
restore call for find_cube()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove a method
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove some debug code
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fill the matrix A in hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fill the matrix A in hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
first steps of hnf cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
handle generated cases in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
call hnf only for a full rank matrix
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
get (H reversed) * b
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
finding the cut row randomly, exiting if is not there
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
produce first cuts with hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
produce first cuts with hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
define by lp_settings if to avoid calling hnf_cutter when the solution is not on the boundary
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
revert to the previous version
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
prepare calculate U in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
naive algorithm for HNF and m <= n
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
naive algorithm for HNF
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
introduces reverse matrix into Hermite Normal Form calculation
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on more efficient hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
use smarter templates in lu.h
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
the new lu scheme compiles
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
simple test passes with the modified lu
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix the build on windows
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
playing with the example from cutting the mix
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf, add extended_gcd_minimal_uv()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on extended_gcd_minimal_uv
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf, add extended_gcd_minimal_uv()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
more tests and bug fixes in hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf modulo version
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf modulo version, more tests pass
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
a rough version of hnf passed the tests
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix build in release
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixes in determinant calculations
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on hnf
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
create a stub for hnf_cuts
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
create a stub for hnf_cuts
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
create a stub for hnf_cuts
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
general_matrix etc.
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
general_matrix etc.
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
rename cut_solver to chase_cut_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
rename cut_solver to chase_cut_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
hnf_cutter
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
use special bounds inf find_cube for x+y, x-y
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
bug fixes in column patching, add stats to patching, restructure int_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
comment out m_old_values from int_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
avoid calling pivot_fixed_vars_from_basis() in int_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix the return value from path_nbasic_columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix the return value from path_nbasic_columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work in patch_columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on int_solver check()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
exit from find_free_interval() when l >= u
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
experiment with branching on nbasic columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove m_old_values
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
add rounding to patch_columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
qflia
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
patch all columns, round non-patched, branch or basic columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
refactor int_solver::check()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
restore move_non_basic_columns_to_bounds() after a failure in find_cube()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
optimize gomory cuts search
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
produce gomory cuts without moving columns to bounds
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
call find_feasible_solution() after moving columns
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
alway move colums to bounds before gomory cut
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
merge from best branch
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
correction in the sign of gomory_cut
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix in the gomory cut sign
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
try using lemmas of cut_solver as cuts
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
add find_cube() proposed by Nikolaj
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
restore m_int_branch_cut_solver to 8
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
accept empty lar_terms in theory_lra and also do not create empty lar_terms/lemmas
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
qflia_tactic
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
call find_feasible solution to recover for a failure in find_cube
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
do not tighten unused terms
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
get rid of inf_int_set
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix a bug with an accidental solution in cube
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
get rid of inf_int_set
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
bug fix with has_int_var() for lar_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix in find_inf_int_base_column
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
detect slow propagations
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fiddle with the stop conditions
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
get rid of constraint->m_predecessors, fix a bug in push/pop with lemmas
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
clean detection of stale lemmas in pop
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
add constraints lazily to cut_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
refactor some of cut_solver classes into include files
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
prepare to index constraint from 0 to to n - 1, where n is the number of constraints
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
prepare for constraint priority
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
use priorities in active_set
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove unnecesessary parameters
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
speedup bound propagations
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
restore tactics
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
speedup bound propagation by avoiding some calls to propagate_constraint_only_one_unlim
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixes by Nikolaj
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix print lp_core_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on gomory test, subs terms indices correctly
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
correct const_iterator for lar_term
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
improve static_matrix with iterators
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
make row_strip a struct
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
move row_strip outside of static_matrix
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
add const_iterator to row_strip
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
remove the hierarchy of iterators - use std::iterators
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
adding gcd_test stats and taking care of for iterators
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
restore qflia_tactic.cpp
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
run gcd_test according to settings()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
experiment with picking a narrow or random branch
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
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>
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
add a diagnostic method
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
white space change
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
cleanup in int_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
some cleanup
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
remove m_became_zeros
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
start cut_solver, work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
start cut_solver, work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
workin on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
working on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
working on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
working on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix bugs in disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix bugs in gisjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix bugs in gisjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix bugs in disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix bugs in disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix bugs is disjoint intervals
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
bug fixes in disjoint_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
disjoint_intervals passes the test
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
test disjoint_intervals push(), pop()
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
cut_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
work on cut_solver
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
handle integer vars in random_update
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
call the assert in gomory_cut and branching to a correct place
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
fixes in goromy cut
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
disable x values tracking in random_update
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
more fixes in gomory cut
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
change in mk_bound by Nikolaj
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fixes in gomory cut and setup
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
fixes in int_solver
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
change a printout
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
fix by Nikolaj in treating terms returned by int_solver
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
fix syntax
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
fix a free coefficient bug in bound propagaion and simplify gomory cut
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
avoid tracking pivoted rows during int_solver::check()
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
progress in gomory cut
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
the first version of Gomory cut, probably broken
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
rename a function
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
gomory cut worked on a toy example
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
track the set of integer variables that are not set to integer values
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>