enough to be handled by users.
To deal with these issues, we introduce in the fol-
lowing a generalization of the notion of MUS to both
satisfiable and unsatisfiable formulæ. A soft core is a
subset of constraints which is both small and highly
constrained, meaning it has a limited number of mod-
els. Identifying a soft core is clearly a bi-criteria op-
timization problem, where both the size of the soft
core and its number of models matter. Depending on
the context, it may be more important to reduce the
size of the soft core, even if we obtain more models.
Alternatively, in other cases, reducing the number of
models will be the main objective, even if this gives
larger soft cores.
Soft cores can be proven useful in different appli-
cation scenarios. They pinpoint the most constrained
parts of the formula, and determinate which con-
straints prevent expected solutions from being pos-
sible. For example, they can be used in scheduling
problems to find which part needs to be relaxed, or in
the analysis of mathematical conjectures (Heule et al.,
2016). Indeed, for such case, once the parameters of a
conjecture (e.g. a number of colors) are instantiated,
the problem can often be encoded by constraints. Ex-
cept for small values of the parameters, the resulting
formula is hard to be solved. Besides, if the formula
is unsatisfiable, a MUS is expected to be quite large,
since conjectures generally use a minimum number
of hypotheses. Thus, soft cores may provide informa-
tion and can become the start of mathematical proof
if the models admitted have specific characteristics or
are not numerous.
Soft cores can also be used in debugging tools, as
in (Dodaro et al., 2018), whose purpose is to help the
user to model problems. Generally, problems are not
modeled directly into SAT, but first in higher level
modeling languages and then transformed into SAT
instances. When encoded as CNF formulæ, problems
loose a lot of structural information, and a simple nat-
ural constraint (for example, ”we want at least par-
ticipate in three sessions among the five available”,
as s
1
+ s
2
+ s
3
+ s
4
+ s
5
> 3) might become a large
set of clauses, whose decision variables are not dis-
tinguishable from auxiliary ones, and which, if not
gathered into groups, can be lost among other clauses.
Then, using a Group CNF (GCNF) formula instead of
a CNF formula can be preferred to keep structural in-
formation, and to treat together clauses issued from a
former higher-level constraint.
We propose using soft cores to determine, when
modeling a problem into SAT, which parts of the
formula would be hard to explore, in order to either
change modeling or use the information when solving
the generated instance.
The paper is organized as follows. First, we
formally define soft cores, and show that the de-
cision problem related to soft cores is an NP
PP
-
hard problem by printing out a reduction from E-
MAJSAT (Pipatsrisawat and Darwiche, 2009). Af-
terwards, we demonstrate how to turn instances of
the soft cores problem into instances of MAX#SAT,
an NP
PP
-complete problem (Fremont et al., 2017).
Finally, from a practical side, we present an exact
MAX#SAT solver. We show how to leverage it for
computing soft cores and we compare it to the approx-
imate MAX#SAT solver Maxcount, (Fremont et al.,
2017), the only available tool for solving MAX#SAT
instances up to now.
2 PRELIMINARIES
Boolean Logic. We consider standard Boolean
logic. Let L
P
be a language of formulæ over an
alphabet P of Boolean variables also called atoms,
denoted by a, b, c, . . . The symbols ∧, ∨, ¬, ⇒ and
⇔ represent the standard conjunctive, disjunctive,
negation, material implication and equivalence
connectives, respectively. Propositional formulæ are
built in the usual way from variables, connectives
and parentheses. They are denoted by greek letters
as α, β, Γ, ∆, . . . We denote by Var(Γ) the set of
variables appearing in a formula Γ. For convenience
we sometimes write Γ(X) to represent that Γ is
assumed to be defined on variables X. A literal is a
variable or its negation. A term is a conjunction of
literals (`
1
∧ . .. ∧ `
s
) while a clause is a disjunction
of literals (`
1
∨ . .. ∨ `
s
). A unit clause is formed of
one literal.
Interpretation and Model. An interpretation
(or an assignment) ω to P is a mapping from P
to {true, false}. ω is complete when all variables
are assigned, otherwise it is partial. A variable
not assigned is said to be free. The set of all
interpretations is denoted by Ω. An interpretation
ω is a model of a formula Γ ∈ L
P
if and only if
it makes it true in the usual truth functional way.
On the contrary, an interpretation is a counter-
model if it does not satisfy the formula. The set
of models admitted by Γ is denoted Mod(Γ), with
Mod(Γ) = {ω ∈ Ω | ω is a model of Γ}. |= and ≡
denote respectively logical entailment and logical
equivalence. Let Γ and ∆ be two distinct propositional
formulæ, Γ |= ∆ if and only if Mod(Γ) ⊆ Mod(∆)
and Γ ≡ ∆ if and only if Mod(Γ) = Mod(∆).
Identifying Soft Cores in Propositional Formulæ
487