<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>SMT</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>A Proposal for an OMT Extension to SMT-LIB</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Nestan Tsiskaridze</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andrew Reynolds</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Cesare Tinelli</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Clark Barrett</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Stanford University</institution>
          ,
          <addr-line>Stanford</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>The University of Iowa</institution>
          ,
          <addr-line>Iowa City</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <volume>23</volume>
      <fpage>10</fpage>
      <lpage>11</lpage>
      <abstract>
        <p>Optimization Modulo Theories (OMT) has emerged as a prominent extension of the Satisfiability Modulo Theories (SMT) paradigm, bringing optimization objectives into first-order logic constraint solving. Unlike SMT, which focuses solely on satisfiability with respect to a given theory, OMT additionally seeks to optimize a specified objective function. Several state-of-the-art SMT solvers have integrated OMT capabilities. However, no oficial SMT-LIB extension has yet been adopted for OMT. As a result, OMT benchmarks lack standardization, which hinders broader adoption and progress in the field. In this paper, we propose an extension to SMT-LIB that supports all of the diferent flavors of OMT found in the literature. Our goal is to foster the development of OMT solvers and applications, to enable more robust, reusable, and comparable OMT solutions, and to promote the creation of standardized OMT benchmarks in SMT-LIB format for systematic and meaningful evaluation.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;SMT-LIB syntax</kwd>
        <kwd>Optimization Modulo Theories</kwd>
        <kwd>OMT</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Optimization Modulo Theories (OMT) builds on the highly successful Satisfiability Modulo Theories
(SMT) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] paradigm: but while SMT focuses on finding a model for a first-order formula, OMT extends
this by introducing an objective term that must be optimized according to some order on the term’s
domain.
      </p>
      <p>
        This added expressiveness has established OMT as a powerful tool fueling progress across a wide
range of applications. These include formal verification and model checking [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ], program analysis [
        <xref ref-type="bibr" rid="ref4 ref5 ref6 ref7 ref8">4,
5, 6, 7, 8</xref>
        ], security analysis [
        <xref ref-type="bibr" rid="ref10 ref11 ref12 ref9">9, 10, 11, 12</xref>
        ], resource-constrained scheduling and planning [
        <xref ref-type="bibr" rid="ref13 ref14 ref15 ref16 ref17 ref18 ref19 ref20 ref21 ref22">13, 14, 15, 16,
17, 18, 19, 20, 21, 22</xref>
        ], requirements engineering and specification synthesis [
        <xref ref-type="bibr" rid="ref23 ref24 ref25 ref26">23, 24, 25, 26</xref>
        ], system design
and configuration [
        <xref ref-type="bibr" rid="ref27 ref28 ref29 ref30 ref31 ref32 ref33 ref34">27, 28, 29, 30, 31, 32, 33, 34</xref>
        ], as well as applications in machine learning [
        <xref ref-type="bibr" rid="ref35 ref36">35, 36</xref>
        ] and
quantum annealing [
        <xref ref-type="bibr" rid="ref37">37</xref>
        ].
      </p>
      <p>
        To address the wide range of optimization goals and underlying theories encountered in practice,
the OMT community has developed specialized procedures for various theories, such as arithmetic
and bitvectors, diferent types of optimization—including single- and multi-objective optimization, and
specific search strategies including linear, binary, and hybrid approaches. The result is a fragmented
landscape of theory-specific solutions, each tailored to particular combinations of goals and theories.
Our goal in this work is to start a discussion with the aim of eventually achieving consensus in the
community around an SMT-LIB standard extension that provides a uniform interface for representing a
large class of OMT problems. We draw inspiration from extensive previous work on OMT and OMT
extensions to SMT-LIB (e.g., [
        <xref ref-type="bibr" rid="ref38 ref39">38, 39</xref>
        ]). Our specific goal of unifying previous approaches draws on a
recent efort on Generalized Optimization Modulo Theories (GOMT) [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ], which provides an abstract
formalization. Specific OMT approaches can then be seen as specific instances of GOMT.
      </p>
      <p>The rest of the paper is organized as follows. After an overview of related work, below, we introduce
the necessary formal preliminaries in Section 2 followed by our proposed SMT-LIB extension in Section 3.
We provide an extensive set of examples in Section 4 and conclude in Section 5.
Related Work Domain-specific OMT solving techniques have been developed based on the SMT-LIB
theories and objective types of optimization problems involved.</p>
      <p>
        The OMT problem was first introduced in [
        <xref ref-type="bibr" rid="ref41">41</xref>
        ]. Various specialized techniques have since been
proposed to handle both theory-specific and objective-specific variants of the OMT problem.
      </p>
      <p>
        Theory-specific OMT techniques address objectives involving linear real arithmetic [
        <xref ref-type="bibr" rid="ref42 ref43">42, 43</xref>
        ], linear
integer arithmetic[
        <xref ref-type="bibr" rid="ref42 ref44 ref45">42, 44, 45</xref>
        ] pseudo-Booleans [
        <xref ref-type="bibr" rid="ref43 ref46 ref47 ref48">46, 43, 47, 48</xref>
        ], bitvectors [
        <xref ref-type="bibr" rid="ref49 ref50">49, 50</xref>
        ], bitvectors combined
with floating-point arithmetic [
        <xref ref-type="bibr" rid="ref50">50</xref>
        ], and nonlinear real and integer arithmetic [
        <xref ref-type="bibr" rid="ref51">51</xref>
        ].
      </p>
      <p>
        Objective-specific techniques were developed for lexicographic optimization [
        <xref ref-type="bibr" rid="ref42 ref45">42, 45</xref>
        ], Pareto
optimization [
        <xref ref-type="bibr" rid="ref42 ref52">52, 42</xref>
        ], Box [
        <xref ref-type="bibr" rid="ref42 ref45 ref53">53, 42, 45</xref>
        ], MinMax [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ], MaxSMT [
        <xref ref-type="bibr" rid="ref41 ref54">41, 54</xref>
        ], and All-OMT [
        <xref ref-type="bibr" rid="ref55">55</xref>
        ]. For more details
of theory-specific and objective-specific OMT approaches, we refer the reader to [
        <xref ref-type="bibr" rid="ref55">55</xref>
        ].
      </p>
      <p>
        A recent orthogonal approach [
        <xref ref-type="bibr" rid="ref40">40</xref>
        ] unifies all the above OMT problems into a Generalized OMT
(GOMT) framework and proposes an abstract, theory- and objective-agnostic calculus for solving them.
Like SMT-LIB itself, GOMT supports arbitrary combinations of theories. It also supports objectives of
any sort with at least a partial order defined on it (including user-defined orders).
      </p>
      <p>
        On the SMT-LIB syntax side, several SMT solvers have extended the SMT-LIB language to support
OMT, although no oficial standard has yet been adopted. Notably, OptiMathSAT [
        <xref ref-type="bibr" rid="ref38">38</xref>
        ] has introduced
commands to encode optimization objectives and soft constraints within SMT-LIB v2, with details
available in its documentation. Likewise, Z3 ofers optimization functionality through its  Z [
        <xref ref-type="bibr" rid="ref39">39</xref>
        ]
extension, which adopts a similar syntax.
      </p>
      <p>
        Eforts have been made to integrate modeling languages with OMT to bridge the gap between
highlevel problem formulations and advanced solver capabilities. Notably, [
        <xref ref-type="bibr" rid="ref56">56</xref>
        ] investigates the integration
between MiniZinc [
        <xref ref-type="bibr" rid="ref57">57</xref>
        ]—a solver-independent, high-level modeling language for constraint satisfaction
and optimization problems—with OMT. To enable OMT solving from MiniZinc models, the authors
extended OptiMathSAT solver with a FlatZinc interface and developed a tool to translate SMT and OMT
problems into MiniZinc format. FlatZinc [
        <xref ref-type="bibr" rid="ref58">58</xref>
        ], MiniZinc’s low-level, solver-agnostic target language,
enables communication with constraint and optimization solvers. OptiMathSAT includes experimental
support for a subset of the FlatZinc 1.6 language, allowing users to solve MiniZinc-defined optimization
problems with OMT techniques. Further supporting solver interoperability, the open-source tool
fzn2omt [
        <xref ref-type="bibr" rid="ref59">59</xref>
        ] translates FlatZinc models into SMT-LIB format, making them compatible with solvers
such as OptiMathSAT, Barcelogic [
        <xref ref-type="bibr" rid="ref60">60</xref>
        ], Z3 [
        <xref ref-type="bibr" rid="ref61">61</xref>
        ], and CVC5 [
        <xref ref-type="bibr" rid="ref62">62</xref>
        ].
      </p>
      <p>These eforts seek to provide interfaces for formulating and solving optimization problems with
OMT solvers. However, the lack of a general SMT-LIB standard for OMT continues to limit the broader
adoption and seamless integration of OMT across tools and solvers in the community. This lack of
standardization hampers collaboration, makes it dificult to share benchmarks and tools, and is an
obstacle to building a comprehensive OMT benchmark library.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Formal Preliminaries</title>
      <p>We work within the standard many-sorted first-order logic setting for SMT, with the usual notions
of signatures, terms, and interpretations. A formula is a term of sort Bool. We write ℐ |=  to mean
that formula  holds in or is satisfied by an interpretation ℐ. A theory is a pair  = (Σ , I), where Σ
is a signature and I is a class of Σ -interpretations. We call the elements of I  -interpretations. We
write Γ |  , where Γ is a formula (or a set of formulas), to mean that Γ  -entails , i.e., every
=
 -interpretation that satisfies (each formula in) Γ satisfies  as well. A Σ -formula  is satisfiable (resp.,
unsatisfiable ) in  if it is satisfied by some (resp., no)  -interpretation. For convenience, for the rest of
the paper, we assume an arbitrary but fixed background theory  with equality and with signature Σ . We
also fix an infinite set  of sorted variables with sorts from Σ and assume ≺  is some total order on  .
We assume all terms and formulas are Σ -terms and Σ -formulas with free variables from  . Since  is
ifxed, we will often abbreviate |  as |= and consider only interpretations that are  -interpretations
=
assigning a value to every variable in  .</p>
      <p>Let  be a Σ -term. We denote by ℐ the value of  in an interpretation ℐ, defined as usual by
recursively determining the values of sub-terms. We denote by FV () the set of all variables occurring
in . Similarly, we write FV () to denote the set of all the free variables occurring in a formula . If
FV () = {1, . . . , }, where for each  ∈ [1, ),  ≺  +1, then the relation defined by  (in  )
is {(1ℐ , . . . , ℐ ) | ℐ |=  for some  -interpretation ℐ}. A relation is definable in  if there is some
formula that defines it.</p>
      <p>We adopt the standard notion of strict partial order ≺ on a set , that is, a relation in  ×  that is
irreflexive, asymmetric, and transitive. The relation ≺ is a strict total order if, in addition, 1 ≺ 2 or
2 ≺ 1 for every pair 1, 2 of distinct elements of . As usual, we call ≺ well-founded over a subset
′ of  if ′ contains no infinite descending chains. An element  ∈  is minimal (with respect to ≺ )
if there is no  ∈  such that  ≺ . If  has a unique minimal element, it is called a minimum.</p>
      <sec id="sec-2-1">
        <title>2.1. Generalized Optimization Modulo Theories</title>
        <p>
          We rely on the Generalized Optimization Modulo Theories framework, which conveniently unifies many
OMT variants under a single umbrella. The definition and explanation below are taken from [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ].
Definition 1 (Generalized Optimization Modulo Theories (GOMT)). A Generalized Optimization Modulo
Theories problem is a tuple  := ⟨, ≺ , ⟩, where:
• , a Σ -term of some sort  , is an objective term to optimize;
• ≺ is a strict partial order definable in  , whose defining formula has two free variables, each of sort
 ; and
•  is a Σ -formula.
        </p>
        <p>For any GOMT problem  and  -interpretations ℐ and ℐ′, we say that:
• ℐ is -consistent if ℐ |= ;
• ℐ -dominates ℐ′, denoted by ℐ &lt; ℐ′, if ℐ and ℐ′ are -consistent and ℐ ≺ ℐ′ ; and
• ℐ is a -solution if ℐ is -consistent and no  -interpretation -dominates ℐ.
Informally, the term  represents the objective function, whose value we want to optimize. The order ≺
is used to compare values of , with a value  being considered better than a value ′ if  ≺ ′. Finally,
the formula  imposes constraints on the values that  can take. It is easy to see that the value of ℐ
assigned by a -solution ℐ is always minimal. As a special case, if ≺ is a total order, then ℐ is also
unique (i.e., it is a minimum). Once we have fixed a GOMT problem , we will informally refer to a
-consistent interpretation as a solution (of ) and to a -solution as an optimal solution.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. An OMT Extension for SMT-LIB</title>
      <p>
        This section introduces an extension to SMT-LIB v2.7 [
        <xref ref-type="bibr" rid="ref63">63</xref>
        ] that provides options, commands, and
attributes for expressing the general class of OMT problems captured by the GOMT formalization. This
extension is informed and inspired by previous work on OMT extensions in OptiMathSAT and Z3.
      </p>
      <p>We also provide special syntax for specific OMT subproblems, for convenience. For example, though
it can be encoded using GOMT, we include specific commands for the MaxSMT problem. Namely,
following previous work, we provide commands for asserting soft constraints with assigned weights,
the goal being to satisfy all hard (i.e., non-soft) constraints while maximizing the total weight of the
satisfied soft ones.</p>
      <p>
        Figure 1 shows the proposed extensions to the grammar of SMT-LIBv2.7. It should be understood in
the context of the grammar in the SMT-LIB v2.7 reference document [
        <xref ref-type="bibr" rid="ref63">63</xref>
        ], i.e., although some pieces of
the grammar listed there are repeated here for convenience, the extension is built on the full standard,
and thus a complete understanding requires understanding that document.
      </p>
      <p>We first note that in our proposal, OMT capabilities are not enabled by default. To enable them, the
:enable-omt option must be set to true. In other words, the SMT-LIB script must include the line:
(set-option :enable-omt true). We now explain the remainder of Figure 1. We focus on the new
commands, explaining the other pieces as they become relevant for understanding the commands.</p>
      <sec id="sec-3-1">
        <title>Tokens</title>
        <p>Command names:</p>
      </sec>
      <sec id="sec-3-2">
        <title>Identifiers</title>
        <p>⟨objective-kind⟩
⟨m-objective-kind⟩
⟨strategy⟩
Attributes
⟨strategy_attribute⟩
⟨order _attribute⟩
⟨bound_attribute⟩
⟨assumption_attribute⟩
⟨objective_attribute⟩
⟨assert_attribute⟩</p>
      </sec>
      <sec id="sec-3-3">
        <title>Info flags</title>
        <p>⟨info_flag⟩</p>
      </sec>
      <sec id="sec-3-4">
        <title>Command options</title>
        <p>⟨option⟩
Commands
⟨command⟩
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
::=
|
|
|
|
|
|
|
|
define-objective define-multi-objective define-maxsmt-objective
assert-soft optimize-sat optimize-sat-next
OBJECTIVE_MIN | OBJECTIVE_MAX
OBJECTIVE_LEX | OBJECTIVE_PARETO | OBJECTIVE_BOX |
OBJECTIVE_MINMAX | OBJECTIVE_MAXMIN
STRATEGY_LINEAR | STRATEGY_BINARY
:strategy ⟨strategy⟩ | ⟨attribute⟩
:order ⟨symbol⟩
:lower ⟨term⟩ | :upper ⟨term⟩
:assumption ⟨term⟩
⟨strategy_attribute⟩ | ⟨order _attribute⟩ |
⟨bound_attribute⟩ | ⟨assumption_attribute⟩
:objective ⟨symbol⟩ | :weight ⟨term⟩
::=
:limit-optimal | :unbounded
:enable-omt ⟨b_value⟩
( define-objective ⟨symbol⟩ ⟨objective-kind⟩ ⟨term⟩ ⟨objective_attribute⟩* )
( define-multi-objective ⟨symbol⟩ ⟨m-objective-kind⟩ ⟨symbol⟩+ ⟨attribute⟩* )
( define-maxsmt-objective ⟨symbol⟩ ⟨strategy_attribute⟩* )
( assert-soft ⟨term⟩ ⟨assert_attribute⟩+ )
( optimize-sat ⟨symbol⟩ ⟨assumption_attribute⟩* ⟨attribute⟩* )
( optimize-sat-next )
( get-value ( ⟨symbol⟩+ ) )
( get-model )
( get-info ⟨symbol⟩? ⟨info_flag⟩ )
optimal | limit-optimal | non-optimal | unbounded | unsat | unknown
⟨optimize_sat_response⟩
( ⟨info_response⟩+ )
:limit-optimal ⟨term⟩ | :unbounded ⟨term⟩</p>
      </sec>
      <sec id="sec-3-5">
        <title>Command responses</title>
        <p>⟨optimize_sat_response⟩ ::=
⟨optimize_sat_next_response⟩ ::=
⟨get_info_response⟩ ::=
⟨info_response⟩ ::=</p>
      </sec>
      <sec id="sec-3-6">
        <title>3.1. Defining Objectives</title>
        <p>We start by describing two commands, define-objective and define-multi-objective, which
enable the definition of single- and multi-objective optimization problems, respectively.
Single Objective The define-objective command defines a single objective by specifying a name
for the objective, the kind of the objective, either OBJECTIVE_MIN or OBJECTIVE_MAX, the objective term
to be optimized, and one or more optional instances of objective_attribute. The objective_attribute
list can include at most one :strategy attribute, any number of arbitrary attributes, at most one of
each of the :order, :lower, and :upper attributes, and zero or more :assumption attributes.</p>
        <p>Lower and upper bounds for the objective can be specified using the :lower and :upper attributes.
The provided term must have the same sort as the objective term, and it must denote a value for that
sort. Bounds are inclusive and are used to inform certain strategies (see below). The :assumption
attribute can be followed by any arbitrary formula. Bounds and assumptions are required to be satisfied
by any solution found for the objective. As with check-sat-assuming, assumptions are local to queries
involving their accompanying objective (i.e., they are pushed into the context when optimizing the
corresponding objective and popped once that optimization completes). This mechanism is particularly
useful when working with multiple objectives, each with their own relevant assumptions.</p>
        <p>If an order _attribute is given, it must be a function symbol  that takes two arguments of sort  and
returns Bool, where  is the sort of the objective term. The function  should either be a built-in symbol
or have been defined using define-fun, and the term (  ), for variables  and  of sort  , must
define a strict partial order. If the :order attribute is omitted, then for the following sorts, a default
is used. The standard arithmetic less-than operator &lt; is the default for Int or Real sorts, the bvult
operator for bitvector sorts, fp.lt for floating-point sorts, and str.&lt; for string sorts. For other sorts, if
no order is provided, solvers may either use a solver-specific default or respond with unsupported.</p>
        <p>Finally, a strategy _attribute can be specified. Strategies include STRATEGY_LINEAR and
STRATEGY_BINARY. The first instructs the solver to use a linear strategy, meaning that it repeatedly
tries to improve the value of the objective term simply by adding a constraint that it be better than the
previous value. The binary strategy uses a binary search, which can be more eficient than linear search
in some cases. If upper and lower bounds are not provided, the solver can use any method to establish a
starting point for the search. Solver-specific strategy attributes are also allowed.</p>
        <p>This command defines a GOMT problem ⟨, ≺ , ⟩, where  is the given objective term, ≺ is the given
or default order, if the kind is OBJECTIVE_MIN, and the converse of the given or default order, if the
kind is OBJECTIVE_MAX. The constraint  is the conjunction of all bounds and assumptions..
Example 1. Suppose we want to find the maximum value that an unsigned 8-bit bitvector can take,
subject to the constraint that its value must be even—that is, its least significant bit must be 0—and its most
significant bit must be 1.</p>
        <p>We present three solutions. The first version includes the evenness constraint as part of the objective,
uses a define-fun command to define the order, and specifies that a binary search should be used. It
enforces that the most significant bit must be 1 by specifying lower and upper bounds for the search.
(declare-const bv_var (_ BitVec 8))
(define-fun ord ((x (_ BitVec 8)) (y (_ BitVec 8))) Bool</p>
        <p>
          (bvult x y))
(define-objective obj1a OBJECTIVE_MAX bv_var
:order ord
:assumption (= (bvand bv_var #b00000001) #b00000000)
:strategy STRATEGY_BINARY
:lower #b10000000
:upper #b11111111)
The second version uses a linear strategy, specifically specifies that
and moves all constraints to background assertions.
(define-objective obj1b OBJECTIVE_MAX bv_var
:order bvult
:strategy STRATEGY_LINEAR)
bvult is to be used for the order,
The final version is the same as the previous one, except that we don’t specify the order at all. The
solver uses bvult for the order since that is the default for bitvector sorts.
Example 2. Consider a single-objective optimization problem using linear real arithmetic: given the line
3 + 5 + 1 = 0 and an interval constraint  ∈ [
          <xref ref-type="bibr" rid="ref3">− 3, 3</xref>
          ], find the smallest possible value of  such that the
point (, ) lies on the line and satisfies the interval constraint on .
        </p>
        <p>We can encode the example as follows. Again, no order is specified, so the solver uses the arithmetic
less-than operator. We also do not specify a strategy, so the solver will use its default strategy.
(declare-const x () Real)
(declare-const y () Real)
(assert (= (+ (* 3 x) (* 5 y) 1) 0))
(assert (and (&gt;= x (- 3)) (&lt;= x 3)))
(define-objective obj2 OBJECTIVE_MIN y)
Multi-Objective The define-multi-objective command defines a multi-objective optimization
problem. The arguments are: a name for the objective, a multi-objective kind, and a sequence of
previously declared objectives. Solver-specific attributes can also be optionally supplied as arguments.</p>
        <p>
          This command also defines a GOMT problem ⟨, ≺ , ⟩, formed by composing the objectives provided
according to the multi-objective kind. A full description of how this is done is given in [
          <xref ref-type="bibr" rid="ref40">40</xref>
          ], but we
provide an informal overview here. The objective  is typically a tuple of the individual objectives, the
constraint  is the conjunction of the constraints from the individual objectives, and the order ≺ is
determined by the multi-objective kind. If the kind is OBJECTIVE_LEX, then ≺ is the lexicographic tuple-order
induced by the orders in the provided objectives. If the kind is OBJECTIVE_PARETO, then ≺ is defined as:
at least one value in the tuple is better while none gets worse. If the kind is OBJECTIVE_MINMAX, then
≺ is defined as reducing the maximum value ( OBJECTIVE_MAXMIN is similarly defined as increasing the
minimum value). Finally, OBJECTIVE_BOX simply optimizes each of the objectives individually and can
be seen as a special case of OBJECTIVE_PARETO.
        </p>
        <p>Example 3. Let obj3str and obj3lia be two single objectives over the theories of strings and linear integer
arithmetic, respectively. The objective obj3str maximizes the string s according to the lexicographic order
using the linear search strategy, while the objective obj3lia minimizes the integer int_ub_len_s using
the binary search strategy with an upper bound of 3. We also wish for the integer variable int_ub_len_s to
serve as an upper bound on the length of the string s. For simplicity, assume that strings are over characters
ranging only from ’a’ to ’z’.</p>
        <p>We can encode the problem of finding a Pareto-optimal value for the two objectives as follows.
(declare-const s String)
(declare-const int_ub_len_s Int)
Note that we provide an upper bound for the first objective but no lower bound. In such cases, the solver
can either infer a lower bound (in this case, a lower bound of 1 can be inferred from the first assertion),
use heuristics to attempt to guess and check a lower bound, or use a diferent search strategy. There are
three Pareto-optimal solutions to this problem: {int_ub_len_s → 1, s → ""}, {int_ub_len_s → 2, s
→ "z"}, and {int_ub_len_s → 3, s → "zz"}.</p>
        <p>We next encode the problem of finding a lexicographically minimal solution.
The order in which we provide the objectives in the define-multi-objective command determines
the lexicographic order used when optimizing. The unique solution to this problem is {s → "",
int_ub_len_s → 1}.</p>
        <p>Box optimization can be used to solve obj3lia and obj3str independently as follows.
(declare-const s String)
(declare-const int_ub_len_s Int)
(assert (&lt; (str.len s) int_ub_len_s))
Here, obj3str is unbounded, meaning that for every string , there is a larger string satisfying all
constraints. This is possible because the upper bound constraint :upper 3 applies only to obj3lia,
meaning it does not have to be satisfied when optimizing obj3str, since with box optimization, each
objective is optimized completely independently. On the other hand, obj3lia has a unique optimal
solution: {int_ub_len_s → 1, s → ""}.</p>
        <p>Example 4. Given two lines  +  + 1 = 0 and  −  + 2 = 0 and a circle 2 + 2 = 1, find a point
(, ) on the circle that is as far as possible from the closer of the two lines.</p>
        <p>We can encode this as a MaxMin problem as follows. To simplify the objective terms, we use the squared
distance from the point (, ) to each line as the optimization objective.
(declare-const x Real)
(declare-const y Real)
(define-objective obj4a OBJECTIVE_MIN (/ (* (+ x y 1) (+ x y 1)) 2))
(define-multi-objective obj4 OBJECTIVE_MAXMIN obj4a obj4b)
The exact optimal solution to this problem is at the point (, ) = (√3/2, 1/2). The value of obj4 at
this point is 1/2+3√3/4. Since these are irrational values, they cannot be exactly represented using
rational constants. However, an approximation can be computed and returned—this is discussed further
in Section 4, which covers examples of various OMT command responses.</p>
        <p>Note that define-multi-objective does not permit the inclusion of an objective_attribute.
Strategies and assumptions can only be provided at the single objective level. However, solver-specific
extensions can provide additional attributes at the multi-objective definition stage.</p>
        <p>MaxSMT The define-maxsmt-objective command initiates the definition of a MaxSMT objective
by assigning it a name. The semantics is that a hidden GOMT objective ⟨, ≺ , ⟩ is created, where ≺ is
arithmetic greater-than, &gt;, and  is True. Initially,  is set to 0.0. However, it changes every time an
assert-soft command is issued.</p>
        <p>
          We adopt the assert-soft command from the OptiMathSAT OMT syntax extension [
          <xref ref-type="bibr" rid="ref38">38</xref>
          ]. The
assert-soft command takes a formula, exactly one assert _attribute of the form :objective, which
specifies the name of the MaxSMT objective to associate this formula with, and an optional weight,
specified using :weight. The weight is 1.0 by default if not provided explicitly. The semantics of
(assert-soft a :objective obj :weight w) is that the objective term  for the MaxSMT objective
obj is updated to  + ite(, , 0.0). Note that incremental MaxSMT can be supported by using push
and pop and/or by adding soft constraints between queries.
        </p>
        <p>It is important to note that the objective term in a MaxSMT objective is not explicitly shown but is
implicitly associated with obj and internally constructed by the solver. A MaxSMT definition may also
include strategy attributes, which are applied as usual, but to the hidden GOMT objective.
Example 5. Consider a MaxSMT example with  ≥ 0 and  ≥ 0 as hard constraints and 4 +  − 4 ≥ 0
and 2 + 3 − 6 ≥ 0 as soft constraints, with the weights 2.0 and 1.0, respectively.</p>
        <p>Recall that the goal is to satisfy all hard constraints and as many soft constraints as possible. The
problem can be encoded as follows.
(declare-const x Int)
(declare-const y Int)
(assert (&gt;= x 0)
(assert (&gt;= y 0)
(define-maxsmt-objective obj5)
(assert-soft (&gt;= (- (+ (* 4 x) y) 4) 0) :objective obj5 :weight 2.0)
(assert-soft (&gt;= (- (+ (* 2 x) (* 3 y)) 6) 0) :objective obj5)
A solution to this problem is the point (, ) = (1, 2), which satisfies both soft constraints. The hidden
objective thus has the maximum possible value of 3. There are infinitely many solutions which achieve
this optimal value.</p>
        <p>The dual of MaxSMT is MinSMT, in which we want to satisfy as few soft assertions as possible. We
do not explicitly support MinSMT objectives. However, a MinSMT problem can easily be converted
into a MaxSMT problem simply by negating all of the soft assertions.</p>
      </sec>
      <sec id="sec-3-7">
        <title>3.2. Optimization Commands and Solver Responses</title>
        <p>The optimize-sat command takes as an argument the name of an objective and instructs the solver to
ifnd an optimal solution for that objective. Zero or more instances of assumption_attribute provide
additional assumptions that must be satisfied by any solution. Additional solver-specific attributes
may also be provided. The solver should aim to compute an optimal solution for the GOMT problem
associated with the objective name that also satisfies all assertions currently in the context as well as
any bounds and assumptions associated with the objective or assumptions provided as arguments to the
optimize-sat command. If one or more search strategies is associated with the objective, the solver
should follow those strategies during its search for an optimal solution if possible.</p>
        <p>There are several possible responses to an optimize-sat command:
• optimal indicates that the solver has found an optimal solution to the GOMT problem for the
specified objective.
• limit-optimal indicates that the solver has found a solution to the GOMT problem. The solution
found is not optimal, but () no optimal solution exists; and () the amount that the found solution
can be improved is bounded.
• unbounded indicates that the solver has found a solution and also determined that for every
solution to the given problem, a solution exists that is better by more than any bounded amount.
• non-optimal indicates that the solver found a solution but not an optimal solution, and the
solver was not able to determine the problem to be in either the limit-optimal or unbounded
categories.
• unsat indicates that the constraints of the problem alone (without considering optimization) are
unsatisfiable
• unknown indicates that the solver is unable to find a solution, is unable to determine that the
problem is unsat, and is unable to further categorize the problem.</p>
        <p>If the most recent optimized objective is of kind OBJECTIVE_BOX, then instead of returning a single
response, the solver returns a list of responses, one for each boxed objective.</p>
        <p>The optimize-sat-next command is available immediately after a successful (response of optimal)
call to optimize-sat or optimize-sat-next. It instructs the solver to attempt to find an optimal
solution to the same problem it just solved (with the same constraints) that is diferent from those
computed so far, if any. If there are no additional optimal solutions, it returns unsat. Otherwise, the set
of possible responses are the same as above.</p>
        <p>Anytime Optimization The optimize-sat command can, optionally, respect SMT-LIB’s resource
limiting options, such as :reproducible-resource-limit. If the solver’s optimization routine
supports this option, setting it to 0 disables it. Setting it to a non-zero numeral , causes the optimize-sat
command to terminate within a bounded amount of time dependent on . As in SMT solving, the
internal implementation of the :reproducible-resource-limit option and its relation to run time or
other concrete resources can be solver-specific. However, if the solver cannot find an optimal solution
within the resource limit and cannot determine whether the problem is unsatisfiable, unbounded, or
limit-optimal, then optimize-sat must return either unknown or non-optimal. It returns unknown
if no solution (even a non-optimal one) has been found, and returns non-optimal if some solution
has been found. In the latter case, the best solution found so far can be retrieved upon request. This
behavior is in line with both standard SMT solving with resource limits and MaxSAT anytime solving.</p>
      </sec>
      <sec id="sec-3-8">
        <title>3.3. Interpreting Results</title>
        <p>We propose adding or modifying the three get commands described below.</p>
        <p>The get-value command is overloaded to take as an argument a list of objective names. This version
of get-value is available after a call to optimize-sat or optimize-sat-next that returns anything
other than unsat or unknown. It returns a list of pairs, each of which contains an objective name as the
ifrst element of the pair and the corresponding value of that objective’s objective term in the computed
solution as the second element of the pair.</p>
        <p>The get-model command is similarly available whenever the most recent invocation of
optimize-sat or optimize-sat-next returns something other than unsat or unknown. It returns
a representation of the computed model that is a solution to the optimization problem, using the same
format as is used in the SMT-LIB 2.7 standard. There is one exception to this. If the most recent
optimized objective is of kind OBJECTIVE_BOX, then get-model instead returns a list of pairs. The first
element of each pair is the name of one of the boxed objectives, and the second element is the model
for that objective.</p>
        <p>The get-info command can be used to query the solver for additional information about the most
recent optimization attempt if that attempt returned either :limit-optimal or :unbounded. In addition,
if that attempt was for an objective of kind OBJECTIVE_BOX, then the first argument of get-info is
the name of the sub-objective (within the set of boxed objectives) for which information is requested.
Otherwise, that argument is omitted. In either case, it always takes an argument specifying the value
returned, indicating that more information is desired about that value. There are two possible values:
:limit-optimal and :unbounded.</p>
        <p>In the first case, issuing the command get-info :limit-optimal returns an explanation of what
the solver knows about the limit-optimality, such as some value that is approached in the limit by
the objective. In the second case, issuing the command get-info :unbounded provides details on the
cause of unboundedness, such as whether the solver can determine if the objective term tends toward
positive or negative infinity. In both cases, the solver should return a term, and the specific format of
the term is solver-specific (i.e., it could be a string literal or it could have a richer term structure).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Examples</title>
      <p>In this section, we show several full examples illustrating diferent commands and responses. We first
revisit Example 1.
(set-logic QF_BV)
(set-option :produce-models true)
(set-option :enable_omt true)
(declare-const bv_var (_ BitVec 8))
(assert (= (bvand bv_var #b00000001) #b00000000))
(assert (= ((_ extract 7 7) bv_var) #b1))</p>
      <sec id="sec-4-1">
        <title>The output of a successful run is shown below.</title>
        <p>optimal
((obj1c #b11111110))
(
(define-fun bv_var () (_ BitVec 8) #b11111110)
)
The initial response is optimal. The result of the call to get-value shows that the objective term of
obj1c has the value #b11111110 in the optimal solution. And the call to get-model simply returns the
definition of the objective term, since it is the only user-declared symbol.</p>
        <p>We next consider an example that tries to minimize the value of 1/.
(set-logic QF_LRA)
(set-option :produce-models true)
(set-option :enable_omt true)
(declare-const x Real)
(assert (&gt; x 0))
(define-objective obj6 OBJECTIVE_MIN (/ 1 x))
(optimize-sat obj6)
(get-value (obj6))
(get-model)
(get-info :limit-optimal)
A possible output from a solver is shown below.
limit-optimal
((obj6 0.0001))
(
(define-fun x () Real) 10000.0)
)
(:limit-optimal "As x approaches infinity, the objective term approaches 0.")
Since the objective approaches but never reaches 0, the call to optimize-sat returns limit-optimal.
In this case, the solver finds a model that is within 10− 4 of the limit value. The request for more
information returns a string explaining the limit.</p>
        <p>We next revisit Example 4 with additional commands below.
(set-logic QF_NRA)
(set-option :produce-models true)
(set-option :enable_omt true)
(declare-const x Real)
(declare-const y Real)
(define-objective obj4b OBJECTIVE_MIN (/ (* (+ x (* -1 y) 2) (+ x (* -1 y) 2)) 2))
(define-multi-objective obj4 OBJECTIVE_MAXMIN obj4a obj4b)
(optimize-sat obj4)
(get-value (obj4))
(get-model)
Recall that the exact optimal solution is when (, ) = (√3/2, 1/2). However, since the value of 
is an irrational, we cannot represent it precisely. The value of obj4 at this point is also irrational
(1/2+3√3/4). This is another example where a response of limit-optimal would be appropriate.
However, a solver that is unable to figure this out might instead return non-optimal and then return a
decimal approximation for x, y, and the objective term. One possible solver output is shown below.
non-optimal
((obj4 (800/289, 1681/578)))
(
(define-fun x () Real (/ 15 17))
(define-fun y () Real (/ 8 17))
)
(set-logic QF_LRA)
(set-option :produce-models true)
(set-option :enable_omt true)
(declare-const x Real)
(assert (&gt; x 0))
(define-objective obj7 OBJECTIVE_MAX x)
(optimize-sat obj7)
(get value (obj7))
(get-model)
(get-info :unbounded)</p>
      </sec>
      <sec id="sec-4-2">
        <title>A possible output is given below.</title>
        <p>Here, , , and the objective term are approximated with rational constants.</p>
        <p>We next show an example with an unbounded objective.
unbounded
((obj7 100000.0))
(
(define-fun x () Real) 100000.0)
)
(:unbounded "The objective term approaches positive infinity as x approaches positive infinity.")</p>
        <p>The final example illustrates the use of the optimize-sat-next command with Example 3. It outputs
all three Pareto-optimal solutions, each preceded by the optimal response.
(set-logic QF_SLIA)
(set-option :produce-models true)
(set-option :enable_omt true)
(declare-const s String)
(declare-const int_ub_len_s Int)
A possible output may be like the one below.
optimal
((obj3par (1, "")))
(
(define-fun int_ub_len_s () Int 1)
(define-fun s () String "")
)
optimal
((obj3par (2, "z")))
(
(define-fun int_ub_len_s () Int 2)
(define-fun s () String "z")
)
optimal
((obj3par (3, "zz")))
(
(define-fun int_ub_len_s () Int 3)
(define-fun s () String "zz")
)
unsat</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>The lack of a standardized SMT-LIB syntax for OMT remains a significant obstacle to the broad adoption
and interoperability of OMT tools. To address this, we have proposed a concrete extension of the
SMT-LIB v2.7 standard that can express all of the optimization modulo theories problems from the
OMT literature. These extensions enhance both expressiveness and flexibility, making it possible to
encode more complex optimization constructs, such as optimization with respect to any definable partial
order, as well as arbitrary combinations of single- and multi-objective problems found in the literature,
including MaxSMT and MinSMT. Future work will focus on refining the syntax through community
feedback and assembling a representative suite of OMT benchmarks. Ultimately, this efort aims to
enable more robust, reusable, and comparable OMT solutions, supporting the growing demand for
optimization in formal methods, automated reasoning, and among end users.</p>
      <p>Acknowledgments This work was supported in part by the Stanford Agile Hardware Center, the
Stanford Center for Automated Reasoning, and by the National Science Foundation (grant 2006407).
Declaration on Generative AI The authors used ChatGPT and Overleaf for spell check and
targeted edits. After using these tools, the authors reviewed and edited content as needed and take full
responsibility for the publication’s content.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Seshia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <article-title>Satisfiability modulo theories</article-title>
          ,
          <source>in: Handbook of Satisfiability</source>
          , volume
          <volume>185</volume>
          <source>of Frontiers in Artificial Intelligence and Applications</source>
          , IOS Press,
          <year>2009</year>
          , pp.
          <fpage>825</fpage>
          -
          <lpage>885</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. S.</given-names>
            <surname>Tyszberowicz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Beckert</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Taghdiri</surname>
          </string-name>
          ,
          <article-title>Computing exact loop bounds for bounded program verification</article-title>
          , in: K. G. Larsen,
          <string-name>
            <given-names>O.</given-names>
            <surname>Sokolsky</surname>
          </string-name>
          , J. Wang (Eds.), Dependable Software Engineering. Theories, Tools, and Applications - Third
          <source>International Symposium, SETTA</source>
          <year>2017</year>
          , Changsha, China,
          <source>October 23-25</source>
          ,
          <year>2017</year>
          , Proceedings, volume
          <volume>10606</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2017</year>
          , pp.
          <fpage>147</fpage>
          -
          <lpage>163</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Ratschan</surname>
          </string-name>
          ,
          <article-title>Simulation based computation of certificates for safety of dynamical systems</article-title>
          ,
          <source>arXiv preprint arXiv:1707.00879</source>
          (
          <year>2017</year>
          ). arXiv:
          <volume>1707</volume>
          .
          <fpage>00879</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>L.</given-names>
            <surname>Candeago</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Larraz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Oliveras</surname>
          </string-name>
          , E. Rodríguez-Carbonell, A. Rubio,
          <article-title>Speeding up the constraintbased method in diference logic</article-title>
          , in: N.
          <string-name>
            <surname>Creignou</surname>
          </string-name>
          , D. Le Berre (Eds.),
          <source>Theory and Applications of Satisfiability Testing - SAT 2016</source>
          , Springer International Publishing, Cham,
          <year>2016</year>
          , pp.
          <fpage>284</fpage>
          -
          <lpage>301</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>J.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <article-title>Block-wise abstract interpretation by combining abstract domains with SMT</article-title>
          , in: A.
          <string-name>
            <surname>Bouajjani</surname>
            , D. Monniaux (Eds.), Verification,
            <given-names>Model</given-names>
          </string-name>
          <string-name>
            <surname>Checking</surname>
          </string-name>
          , and
          <string-name>
            <surname>Abstract</surname>
          </string-name>
          Interpretation - 18th
          <source>International Conference, VMCAI 2017</source>
          , Paris, France,
          <source>January 15-17</source>
          ,
          <year>2017</year>
          , Proceedings, volume
          <volume>10145</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2017</year>
          , pp.
          <fpage>310</fpage>
          -
          <lpage>329</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G. E.</given-names>
            <surname>Karpenkov</surname>
          </string-name>
          ,
          <article-title>Finding inductive invariants using satisfiability modulo theories and convex optimization</article-title>
          , Theses, Université Grenoble Alpes,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Yao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Shi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Huang</surname>
          </string-name>
          ,
          <string-name>
            <surname>C. Zhang,</surname>
          </string-name>
          <article-title>Program analysis via eficient symbolic abstraction</article-title>
          ,
          <source>Proceedings of the ACM on Programming Languages</source>
          <volume>5</volume>
          (
          <year>2021</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Henry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Asavoae</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Monniaux</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Maïza</surname>
          </string-name>
          ,
          <article-title>How to compute worst-case execution time by optimization modulo theory and a clever encoding of program semantics</article-title>
          ,
          <source>SIGPLAN Not</source>
          .
          <volume>49</volume>
          (
          <year>2014</year>
          )
          <fpage>43</fpage>
          -
          <lpage>52</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>C.</given-names>
            <surname>Bertolissi</surname>
          </string-name>
          ,
          <string-name>
            <surname>D. R.</surname>
          </string-name>
          dos Santos, S. Ranise,
          <article-title>Solving multi-objective workflow satisfiability problems with optimization modulo theories techniques</article-title>
          , in: E.
          <string-name>
            <surname>Bertino</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Lin</surname>
            ,
            <given-names>J</given-names>
          </string-name>
          . Lobo (Eds.),
          <source>Proceedings of the 23nd ACM on Symposium on Access Control Models and Technologies</source>
          ,
          <string-name>
            <surname>SACMAT</surname>
          </string-name>
          <year>2018</year>
          ,
          <article-title>Indianapolis</article-title>
          , IN, USA, June 13-15,
          <year>2018</year>
          , ACM,
          <year>2018</year>
          , pp.
          <fpage>117</fpage>
          -
          <lpage>128</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N.</given-names>
            <surname>Paoletti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Islam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Abbas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Mangharam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Gruber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. A.</given-names>
            <surname>Smolka</surname>
          </string-name>
          ,
          <article-title>Synthesizing stealthy reprogramming attacks on cardiac devices</article-title>
          ,
          <source>in: Proceedings of the 10th ACM/IEEE International Conference on Cyber-Physical Systems, ICCPS '19</source>
          ,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2019</year>
          , p.
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T.</given-names>
            <surname>Tarrach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ebrahimi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>König</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Schmittner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bloem</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Nickovic</surname>
          </string-name>
          ,
          <article-title>Threat repair with optimization modulo theories</article-title>
          ,
          <year>2022</year>
          . arXiv:
          <volume>2210</volume>
          .
          <fpage>03207</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>F.</given-names>
            <surname>Erata</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Piskac</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Mateu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Szefer</surname>
          </string-name>
          ,
          <article-title>Towards automated detection of single-trace side-channel vulnerabilities in constant-time cryptographic code</article-title>
          ,
          <source>arXiv preprint arXiv:2304.02102</source>
          (
          <year>2023</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S. S.</given-names>
            <surname>Craciunas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. S.</given-names>
            <surname>Oliver</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chmelík</surname>
          </string-name>
          , W. Steiner,
          <article-title>Scheduling real-time communication in ieee 802.1qbv time sensitive networks</article-title>
          ,
          <source>in: Proceedings of the 24th International Conference on Real-Time Networks and Systems</source>
          , RTNS '16,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2016</year>
          , p.
          <fpage>183</fpage>
          -
          <lpage>192</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>G.</given-names>
            <surname>Kovásznai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Biró</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Erdélyi</surname>
          </string-name>
          ,
          <article-title>Puli - a problem-specific omt solver</article-title>
          ,
          <source>EasyChair Preprints</source>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>F.</given-names>
            <surname>Leofante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Giunchiglia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Ábrahám</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tacchella</surname>
          </string-name>
          ,
          <article-title>Optimal planning modulo theories</article-title>
          ,
          <source>in: Proceedings of the Twenty-Ninth International Conference on International Joint Conferences on Artificial Intelligence</source>
          ,
          <year>2021</year>
          , pp.
          <fpage>4128</fpage>
          -
          <lpage>4134</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>A.</given-names>
            <surname>Bit-Monnot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leofante</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Pulina</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Ábrahám</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tacchella</surname>
          </string-name>
          ,
          <article-title>Smartplan: a task planner for smart factories</article-title>
          , arXiv preprint arXiv:
          <year>1806</year>
          .
          <volume>07135</volume>
          (
          <year>2018</year>
          ). arXiv:
          <year>1806</year>
          .07135.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>M.</given-names>
            <surname>Eraşcu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Micota</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Zaharie</surname>
          </string-name>
          ,
          <article-title>Applying optimization modulo theory, mathematical programming and symmetry breaking for automatic deployment in the cloud of component-based applications extended abstract</article-title>
          ,
          <source>in: 4th Women in Logic Workshop</source>
          ,
          <year>2020</year>
          , p.
          <fpage>6</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Feng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , C. Yi,
          <article-title>Reliability-aware comprehensive routing and scheduling in time-sensitive networking</article-title>
          , in: Wireless Algorithms, Systems, and Applications: 17th International Conference, WASA 2022, Dalian, China,
          <source>November 24-26</source>
          ,
          <year>2022</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , Springer,
          <year>2022</year>
          , pp.
          <fpage>243</fpage>
          -
          <lpage>254</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>X.</given-names>
            <surname>Jin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Xia</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Guan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Zeng</surname>
          </string-name>
          ,
          <article-title>Joint algorithm of message fragmentation and no-wait scheduling for time-sensitive networks</article-title>
          ,
          <source>IEEE/CAA Journal of Automatica Sinica</source>
          <volume>8</volume>
          (
          <year>2021</year>
          )
          <fpage>478</fpage>
          -
          <lpage>490</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>G.</given-names>
            <surname>Marchetto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sisto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Valenza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Yusupov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ksentini</surname>
          </string-name>
          ,
          <article-title>A formal approach to verify connectivity and optimize vnf placement in industrial networks</article-title>
          ,
          <source>IEEE Transactions on Industrial Informatics</source>
          <volume>17</volume>
          (
          <year>2021</year>
          )
          <fpage>1515</fpage>
          -
          <lpage>1525</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>G.</given-names>
            <surname>Patti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. L.</given-names>
            <surname>Bello</surname>
          </string-name>
          , L. Leonardi,
          <article-title>Deadline-aware online scheduling of tsn flows for automotive applications</article-title>
          ,
          <source>IEEE Transactions on Industrial Informatics</source>
          (
          <year>2022</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>D.</given-names>
            <surname>Shen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Zhang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Deng</surname>
          </string-name>
          , S. Han,
          <string-name>
            <given-names>X. S.</given-names>
            <surname>Hu</surname>
          </string-name>
          ,
          <article-title>Qos guaranteed resource allocation for coexisting embb and urllc trafic in 5g industrial networks</article-title>
          ,
          <source>in: 2022 IEEE 28th International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA)</source>
          , IEEE,
          <year>2022</year>
          , pp.
          <fpage>81</fpage>
          -
          <lpage>90</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>C. M. Nguyen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          ,
          <article-title>Requirements evolution and evolution requirements with constrained goal models</article-title>
          ,
          <source>in: International Conference on Conceptual Modeling</source>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <surname>C. M. Nguyen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          ,
          <article-title>Modeling and reasoning on requirements evolution with constrained goal models</article-title>
          , in: A.
          <string-name>
            <surname>Cimatti</surname>
          </string-name>
          , M. Sirjani (Eds.),
          <source>Software Engineering and Formal Methods - 15th International Conference, SEFM</source>
          <year>2017</year>
          , Trento, Italy, September 4-
          <issue>8</issue>
          ,
          <year>2017</year>
          , Proceedings, volume
          <volume>10469</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2017</year>
          , pp.
          <fpage>70</fpage>
          -
          <lpage>86</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <surname>C. M. Nguyen</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Sebastiani</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Giorgini</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Mylopoulos, Multi object reasoning with constrained goal model</article-title>
          ,
          <source>Requirements Engineering</source>
          <volume>23</volume>
          (
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>I.</given-names>
            <surname>Gavran</surname>
          </string-name>
          , E. Darulova,
          <string-name>
            <given-names>R.</given-names>
            <surname>Majumdar</surname>
          </string-name>
          ,
          <article-title>Interactive synthesis of temporal specifications from examples and natural language</article-title>
          ,
          <source>Proceedings of the ACM on Programming Languages</source>
          <volume>4</volume>
          (
          <year>2020</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>S.</given-names>
            <surname>Demarchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Menapace</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tacchella</surname>
          </string-name>
          ,
          <article-title>Automating elevator design with satisfiability modulo theories</article-title>
          ,
          <source>in: 2019 IEEE 31st International Conference on Tools with Artificial Intelligence (ICTAI)</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>26</fpage>
          -
          <lpage>33</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>S.</given-names>
            <surname>Demarchi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tacchella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Menapace</surname>
          </string-name>
          ,
          <article-title>Automated design of complex systems with constraint programming techniques</article-title>
          .,
          <source>in: CPS Summer School</source>
          ,
          <source>PhD Workshop</source>
          ,
          <year>2019</year>
          , pp.
          <fpage>51</fpage>
          -
          <lpage>59</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>N.</given-names>
            <surname>Tsiskaridze</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Strange</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Sreedhar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Liu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Horowitz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <article-title>Automating system configuration</article-title>
          , in: Formal Methods in Computer Aided Design,
          <string-name>
            <surname>FMCAD</surname>
          </string-name>
          <year>2021</year>
          ,
          <article-title>New Haven, CT</article-title>
          , USA, October
          <volume>19</volume>
          -
          <issue>22</issue>
          ,
          <year>2021</year>
          , IEEE,
          <year>2021</year>
          , pp.
          <fpage>102</fpage>
          -
          <lpage>111</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>A.</given-names>
            <surname>Tierno</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Turri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Passerone</surname>
          </string-name>
          ,
          <article-title>Symbolic encoding of reliability for the design of redundant architectures</article-title>
          ,
          <source>in: 2022 IEEE 5th International Conference on Industrial Cyber-Physical Systems (ICPS)</source>
          ,
          <year>2022</year>
          , pp.
          <fpage>01</fpage>
          -
          <lpage>06</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>A.</given-names>
            <surname>Rybalchenko</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Vuppalapati</surname>
          </string-name>
          ,
          <article-title>Supercharging plant configurations using z3, in: Integration of Constraint Programming</article-title>
          ,
          <source>Artificial Intelligence, and Operations Research: 18th International Conference, CPAIOR 2021</source>
          , Vienna, Austria,
          <source>July 5-8</source>
          ,
          <year>2021</year>
          , Proceedings, volume
          <volume>12735</volume>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>Nature</given-names>
          </string-name>
          ,
          <year>2021</year>
          , p.
          <fpage>1</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref32">
        <mixed-citation>
          [32]
          <string-name>
            <given-names>D.</given-names>
            <surname>Park</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            <surname>Kang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lin</surname>
          </string-name>
          , C.
          <article-title>-</article-title>
          K. Cheng, Sp&amp;r:
          <article-title>Simultaneous placement and routing framework for standard cell synthesis in sub-7nm, in: 2020 25th Asia</article-title>
          and
          <string-name>
            <given-names>South</given-names>
            <surname>Pacific Design Automation Conference (ASP-DAC)</surname>
          </string-name>
          ,
          <year>2020</year>
          , pp.
          <fpage>345</fpage>
          -
          <lpage>350</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref33">
        <mixed-citation>
          [33]
          <string-name>
            <given-names>D.</given-names>
            <surname>Lee</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Park</surname>
          </string-name>
          , C.-T. Ho, I. Kang,
          <string-name>
            <given-names>H.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Gao</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Lin</surname>
          </string-name>
          , C.
          <article-title>-</article-title>
          K. Cheng, Sp&amp;r:
          <article-title>Smt-based simultaneous place-and-route for standard cell synthesis of advanced nodes</article-title>
          ,
          <source>IEEE Transactions on ComputerAided Design of Integrated Circuits and Systems</source>
          <volume>40</volume>
          (
          <year>2020</year>
          )
          <fpage>2142</fpage>
          -
          <lpage>2155</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref34">
        <mixed-citation>
          [34]
          <string-name>
            <given-names>M.</given-names>
            <surname>Knüsel</surname>
          </string-name>
          , Optimizing Declarative Power Sequencing,
          <source>Master thesis</source>
          , ETH Zurich, Zurich,
          <fpage>2021</fpage>
          -
          <lpage>09</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref35">
        <mixed-citation>
          [35]
          <string-name>
            <given-names>S.</given-names>
            <surname>Teso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Passerini</surname>
          </string-name>
          ,
          <article-title>Structured learning modulo theories</article-title>
          ,
          <source>Artificial Intelligence</source>
          <volume>244</volume>
          (
          <year>2017</year>
          )
          <fpage>166</fpage>
          -
          <lpage>187</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref36">
        <mixed-citation>
          [36]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sivaraman</surname>
          </string-name>
          , G. Farnadi,
          <string-name>
            <given-names>T.</given-names>
            <surname>Millstein</surname>
          </string-name>
          , G. Van den Broeck,
          <article-title>Counterexample-guided learning of monotonic neural networks</article-title>
          ,
          <source>Advances in Neural Information Processing Systems</source>
          <volume>33</volume>
          (
          <year>2020</year>
          )
          <fpage>11936</fpage>
          -
          <lpage>11948</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref37">
        <mixed-citation>
          [37]
          <string-name>
            <given-names>Z.</given-names>
            <surname>Bian</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. A.</given-names>
            <surname>Chudak</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W. G.</given-names>
            <surname>Macready</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Roy</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Varotti</surname>
          </string-name>
          ,
          <article-title>Solving sat and maxsat with a quantum annealer: Foundations and a preliminary report</article-title>
          ,
          <source>in: International Symposium on Frontiers of Combining Systems</source>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref38">
        <mixed-citation>
          [38]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <article-title>Optimathsat: A tool for optimization modulo theories</article-title>
          ,
          <source>Journal of Automated Reasoning</source>
          (
          <year>2015</year>
          )
          <fpage>1</fpage>
          -
          <lpage>38</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref39">
        <mixed-citation>
          [39]
          <string-name>
            <given-names>N. S.</given-names>
            <surname>Bjørner</surname>
          </string-name>
          , A.-D. Phan,
          <article-title>z - maximal satisfaction with z3</article-title>
          ,
          <source>in: International Symposium on Symbolic Computation in Software Science</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref40">
        <mixed-citation>
          [40]
          <string-name>
            <given-names>N.</given-names>
            <surname>Tsiskaridze</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <article-title>Generalized optimization modulo theories</article-title>
          , in: C.
          <string-name>
            <surname>Benzmüller</surname>
            ,
            <given-names>M. J. H.</given-names>
          </string-name>
          <string-name>
            <surname>Heule</surname>
            ,
            <given-names>R. A</given-names>
          </string-name>
          .
          <string-name>
            <surname>Schmidt</surname>
          </string-name>
          (Eds.),
          <source>Automated Reasoning - 12th International Joint Conference, IJCAR</source>
          <year>2024</year>
          , Nancy, France,
          <source>July 3-6</source>
          ,
          <year>2024</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , volume
          <volume>14739</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2024</year>
          , pp.
          <fpage>458</fpage>
          -
          <lpage>479</lpage>
          . URL: https://doi.org/10.1007/ 978-3-
          <fpage>031</fpage>
          -63498-7_
          <fpage>27</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -63498-7\_
          <fpage>27</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref41">
        <mixed-citation>
          [41]
          <string-name>
            <given-names>R.</given-names>
            <surname>Nieuwenhuis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Oliveras</surname>
          </string-name>
          ,
          <article-title>On SAT Modulo Theories and Optimization Problems</article-title>
          , in: A.
          <string-name>
            <surname>Biere</surname>
            ,
            <given-names>C. P.</given-names>
          </string-name>
          Gomes (Eds.),
          <source>Theory and Applications of Satisfiability Testing - SAT 2006</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2006</year>
          , pp.
          <fpage>156</fpage>
          -
          <lpage>169</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref42">
        <mixed-citation>
          [42]
          <string-name>
            <given-names>N.</given-names>
            <surname>Bjørner</surname>
          </string-name>
          ,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Phan,
          <article-title>Z - Maximal Satisfaction with Z3</article-title>
          ,
          <source>in: 6th International Symposium on Symbolic Computation in Software Science, SCSS</source>
          <year>2014</year>
          , Gammarth, La Marsa, Tunisia, December 7-
          <issue>8</issue>
          ,
          <year>2014</year>
          ,
          <year>2014</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref43">
        <mixed-citation>
          [43]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tomasi</surname>
          </string-name>
          ,
          <article-title>Optimization Modulo Theories with Linear Rational Costs</article-title>
          ,
          <source>ACM Trans. Comput. Logic</source>
          <volume>16</volume>
          (
          <year>2015</year>
          )
          <volume>12</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          :
          <fpage>43</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref44">
        <mixed-citation>
          [44]
          <string-name>
            <given-names>O. V.</given-names>
            <surname>Roc</surname>
          </string-name>
          , Optimization Modulo Theories,
          <source>Master's thesis</source>
          , Polytechnic University of Catalonia, https://upcommons.upc.edu/handle/
          <year>2099</year>
          .1/14204,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref45">
        <mixed-citation>
          [45]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <article-title>Pushing the envelope of optimization modulo theories with lineararithmetic cost functions</article-title>
          , in: C.
          <string-name>
            <surname>Baier</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          Tinelli (Eds.),
          <source>Tools and Algorithms for the Construction and Analysis of Systems</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2015</year>
          , pp.
          <fpage>335</fpage>
          -
          <lpage>349</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref46">
        <mixed-citation>
          [46]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Tomasi</surname>
          </string-name>
          ,
          <article-title>Optimization in smt with ℒ(Q) cost functions</article-title>
          , in: B.
          <string-name>
            <surname>Gramlich</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Miller</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          Sattler (Eds.),
          <source>Automated Reasoning</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2012</year>
          , pp.
          <fpage>484</fpage>
          -
          <lpage>498</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref47">
        <mixed-citation>
          [47]
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <article-title>On optimization modulo theories, maxsmt and sorting networks</article-title>
          , in: A.
          <string-name>
            <surname>Legay</surname>
          </string-name>
          , T. Margaria (Eds.),
          <source>Tools and Algorithms for the Construction and Analysis of Systems</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2017</year>
          , pp.
          <fpage>231</fpage>
          -
          <lpage>248</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref48">
        <mixed-citation>
          [48]
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Franzén</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Stenico</surname>
          </string-name>
          ,
          <article-title>Satisfiability Modulo the Theory of Costs: Foundations and Applications</article-title>
          , in: J.
          <string-name>
            <surname>Esparza</surname>
          </string-name>
          , R. Majumdar (Eds.),
          <source>Tools and Algorithms for the Construction and Analysis of Systems</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2010</year>
          , pp.
          <fpage>99</fpage>
          -
          <lpage>113</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref49">
        <mixed-citation>
          [49]
          <string-name>
            <given-names>A.</given-names>
            <surname>Nadel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Ryvchin</surname>
          </string-name>
          ,
          <string-name>
            <surname>Bit-Vector</surname>
            <given-names>Optimization</given-names>
          </string-name>
          , in: TACAS,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref50">
        <mixed-citation>
          [50]
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <article-title>Optimization modulo the theories of signed bit-vectors and floating-point numbers</article-title>
          ,
          <source>J. Autom. Reason</source>
          .
          <volume>65</volume>
          (
          <year>2021</year>
          )
          <fpage>1071</fpage>
          -
          <lpage>1096</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref51">
        <mixed-citation>
          [51]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bigarella</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cimatti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Griggio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Irfan</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Jonás</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Roveri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <article-title>Optimization modulo non-linear arithmetic via incremental linearization</article-title>
          , in: B.
          <string-name>
            <surname>Konev</surname>
          </string-name>
          , G. Reger (Eds.),
          <source>Frontiers of Combining Systems - 13th International Symposium, FroCoS</source>
          <year>2021</year>
          , Birmingham, UK, September 8-
          <issue>10</issue>
          ,
          <year>2021</year>
          , Proceedings, volume
          <volume>12941</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2021</year>
          , pp.
          <fpage>213</fpage>
          -
          <lpage>231</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref52">
        <mixed-citation>
          [52]
          <string-name>
            <given-names>D.</given-names>
            <surname>Jackson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.-C.</given-names>
            <surname>Estler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Rayside</surname>
          </string-name>
          ,
          <article-title>The Guided Improvement Algorithm for Exact, GeneralPurpose, Many-Objective Combinatorial Optimization (</article-title>
          <year>2009</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref53">
        <mixed-citation>
          [53]
          <string-name>
            <given-names>Y.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Albarghouthi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z.</given-names>
            <surname>Kincaid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Gurfinkel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Chechik</surname>
          </string-name>
          ,
          <article-title>Symbolic optimization with SMT solvers</article-title>
          , in: POPL,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref54">
        <mixed-citation>
          [54]
          <string-name>
            <given-names>K.</given-names>
            <surname>Fazekas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bacchus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Biere</surname>
          </string-name>
          ,
          <article-title>Implicit hitting set algorithms for maximum satisfiability modulo theories</article-title>
          , in: D.
          <string-name>
            <surname>Galmiche</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Schulz</surname>
          </string-name>
          , R. Sebastiani (Eds.),
          <source>Automated Reasoning - 9th International Joint Conference, IJCAR</source>
          <year>2018</year>
          ,
          <article-title>Held as Part of the Federated Logic Conference</article-title>
          ,
          <source>FloC 2018</source>
          , Oxford, UK,
          <source>July 14-17</source>
          ,
          <year>2018</year>
          , Proceedings, volume
          <volume>10900</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2018</year>
          , pp.
          <fpage>134</fpage>
          -
          <lpage>151</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref55">
        <mixed-citation>
          [55]
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <article-title>Optimization Modulo Theories with OptiMathSAT</article-title>
          ,
          <source>Ph.D. thesis</source>
          , University of Trento,
          <year>2019</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref56">
        <mixed-citation>
          [56]
          <string-name>
            <given-names>F.</given-names>
            <surname>Contaldo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Sebastiani</surname>
          </string-name>
          ,
          <article-title>From minizinc to optimization modulo theories, and back, in: Integration of Constraint Programming</article-title>
          ,
          <source>Artificial Intelligence, and Operations Research (CPAIOR</source>
          <year>2020</year>
          ), volume
          <volume>12296</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2020</year>
          , pp.
          <fpage>148</fpage>
          -
          <lpage>166</lpage>
          . URL: https://arxiv.org/abs/
          <year>1912</year>
          .01476. doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>030</fpage>
          -58942-4_
          <fpage>10</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref57">
        <mixed-citation>
          [57]
          <string-name>
            <given-names>N.</given-names>
            <surname>Nethercote</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. J.</given-names>
            <surname>Stuckey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Becket</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Brand</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. J.</given-names>
            <surname>Duck</surname>
          </string-name>
          , G. Tack, Minizinc:
          <article-title>Towards a standard cp modelling language</article-title>
          , in: C.
          <string-name>
            <surname>Bessière</surname>
          </string-name>
          (Ed.),
          <source>Principles and Practice of Constraint Programming - CP 2007</source>
          , Springer Berlin Heidelberg, Berlin, Heidelberg,
          <year>2007</year>
          , pp.
          <fpage>529</fpage>
          -
          <lpage>543</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref58">
        <mixed-citation>
          [58]
          <string-name>
            <given-names>MiniZinc</given-names>
            <surname>Team</surname>
          </string-name>
          , Interfacing Solvers to FlatZinc, MiniZinc,
          <year>2025</year>
          . Available at https://docs.minizinc. dev/en/stable/fzn-spec.html.
        </mixed-citation>
      </ref>
      <ref id="ref59">
        <mixed-citation>
          [59]
          <string-name>
            <given-names>P.</given-names>
            <surname>Trentin</surname>
          </string-name>
          , fzn2omt:
          <article-title>Tools/scripts to convert minizinc/flatzinc to optimization modulo theories (omt) for bclt, optimathsat, or z3 and satisfiability modulo theories (smt) for cvc4</article-title>
          ,
          <year>2025</year>
          . URL: https://github.com/PatrickTrentin88/fzn2omt, accessed:
          <fpage>2025</fpage>
          -05-08.
        </mixed-citation>
      </ref>
      <ref id="ref60">
        <mixed-citation>
          [60]
          <string-name>
            <given-names>M.</given-names>
            <surname>Bofill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Nieuwenhuis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Oliveras</surname>
          </string-name>
          , E. Rodríguez-Carbonell, A. Rubio,
          <article-title>The barcelogic smt solver</article-title>
          , in: Computer Aided Verification (CAV
          <year>2008</year>
          ), volume
          <volume>5123</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2008</year>
          , pp.
          <fpage>294</fpage>
          -
          <lpage>298</lpage>
          . URL: https://link.springer.com/chapter/10.1007/978-3-
          <fpage>540</fpage>
          -70545-1_
          <fpage>27</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -70545-1\_
          <fpage>27</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref61">
        <mixed-citation>
          [61]
          <string-name>
            <surname>L. de Moura</surname>
          </string-name>
          , N. Bjørner,
          <article-title>Z3: An eficient smt solver, in: Tools and Algorithms for the Construction and Analysis of Systems (TACAS</article-title>
          <year>2008</year>
          ), volume
          <volume>4963</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2008</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          . URL: https://doi.org/10.1007/978-3-
          <fpage>540</fpage>
          -78800-3_
          <fpage>24</fpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>540</fpage>
          -78800-3_
          <fpage>24</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref62">
        <mixed-citation>
          [62]
          <string-name>
            <given-names>H.</given-names>
            <surname>Barbosa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. W.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Brain</surname>
          </string-name>
          , G. Kremer,
          <string-name>
            <given-names>H.</given-names>
            <surname>Lachnitt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mohamed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Niemetz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Nötzli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Ozdemir</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Preiner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Sheng</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <string-name>
            <surname>Y. Zohar,</surname>
          </string-name>
          <article-title>cvc5: A versatile and industrial-strength SMT solver</article-title>
          , in: D.
          <string-name>
            <surname>Fisman</surname>
          </string-name>
          , G. Rosu (Eds.),
          <article-title>Tools and Algorithms for the Construction and Analysis of Systems -</article-title>
          28th International Conference, TACAS 2022,
          <article-title>Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2022</article-title>
          , Munich, Germany, April 2-
          <issue>7</issue>
          ,
          <year>2022</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , volume
          <volume>13243</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>415</fpage>
          -
          <lpage>442</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref63">
        <mixed-citation>
          [63]
          <string-name>
            <given-names>C.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Fontaine</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          ,
          <source>The SMT-LIB Standard: Version 2</source>
          .7,
          <string-name>
            <surname>Technical</surname>
            <given-names>Report</given-names>
          </string-name>
          , Department of Computer Science, The University of Iowa,
          <year>2025</year>
          . Available at www.
          <source>SMT-LIB.org.</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>