Merge remote-tracking branch 'origin/contrib' into unstable
initial opt commands

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Merge branch 'opt' of https://git01.codeplex.com/z3 into opt
Create callbacks for min_maximize_cmd

Enable VS_PROJ = true for temporary use
Fu&Malik v1

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
fill in details on max sat

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Complete Fu & Malik MAXSAT implementation

Mistakes:
(1) ast_manager shouldn't be replicated.
(2) assumptions should be used to compare with unsat cores
Create placeholders to optimization methods
add opt_solver layer

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
cleanup macro usage

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
A rudimentary version of MathSAT optimization

Remarks:
(1) The core procedure accepts maximization only
(2) Add lazy initialization to min_maximize_cmd
(3) The procedure isn't working with composite objective yet.
Replace the use of optional<rational> by inf_eps_rational<rational>

Also handle composite objectives correctly.
tidy & todo notes

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
more updates

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
A few changes based on previous reviews

Tested the optimization procedure with:
- unbounded objectives
- bounded with rational solutions
- bounded with irrational solutions
fixing optimizer for multi-objectives and epsilon

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Sketch a skeleton of Difference Logic optimizer
fixing bug with optimization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
fixing bug with optimization

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
Add objective functions to difference logic solver