3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 01:25:31 +00:00
z3/src/opt/mus.h
Nikolaj Bjorner c928f776da working on mss/mus v2
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
2014-08-29 08:39:31 -07:00

57 lines
1.1 KiB
C++

/*++
Copyright (c) 2014 Microsoft Corporation
Module Name:
mus.h
Abstract:
Basic MUS extraction
Author:
Nikolaj Bjorner (nbjorner) 2014-20-7
Notes:
--*/
#ifndef _MUS_H_
#define _MUS_H_
namespace opt {
class mus {
struct imp;
imp * m_imp;
public:
mus(solver& s, ast_manager& m);
~mus();
/**
Add soft constraint.
Assume that the solver context enforces that
cls is equivalent to a disjunction of args.
Assume also that cls is a literal.
*/
unsigned add_soft(expr* cls);
lbool get_mus(unsigned_vector& mus);
void reset();
void set_cancel(bool f);
/**
Instrument MUS extraction to also provide the minimal
penalty model, if any is found.
The minimal penalty model has the least weight for the
supplied soft constraints.
*/
void set_soft(unsigned sz, expr* const* soft, rational const* weights);
rational get_best_model(model_ref& mdl);
};
};
#endif