Before we describe the mixed-integer linear programming (MILP) certificate file format, we introduce some jargon and conventions used in this document.
Variables of the MILP problem are indexed from
We refer to two kinds of numbers: indices and values. Indices are integers. Values are rational numbers expressed as finite decimals or fractions.
The certificate file includes two kinds of constraints: the constraints of the MILP problem and derived constraints. Constraints have unique constraint names and are assigned indices starting from
Each constraint is of the form sense
is
Bound constraints such as
Suppose that the constraint sense
is
We use a restricted form of constraint domination. A constraint that is
The constraint
Similarly, the constraint
Finally, the constraint
For a constraint named
For example, for the constraint
Specifying a constraint E
when sense
is L
when sense
is G
when sense
is
-
$p$ $i_1$ $a_{i_1}$ $\cdots$ $i_p$ $a_{i_p}$ ; - or the keyword
OBJ
for indicating that$a_{i_1}X_{i_1}+⋯+a_{i_p}X_{i_p}$ is the same as the objective function.
For example, the constraint C3
specified in constraint format is
C3 L 3 2 1 -1 2 6
If the objective function specified in the certificate file is equal to
C3 L 3 OBJ
Every constraint in the DER section specified below is associated with a reason
.
A reason
associated with a constraint with constraint index idx
must have one of the following forms:
- { asm }
- { lin
$p$ $i_1$ $\lambda_1$ $\cdots$ $i_p$ $\lambda_p$ } where$p$ is a nonnegative integer,$i_1,\dots,i_p$ are distinct indices at least$0$ and less thanidx
, and$\lambda_1,\dots,\lambda_p$ are rational values such that$\lambda_1\cdot C_{i_1}+\dots+\lambda_p\cdot C_{i_p}$ is a suitable linear combination that dominates the associated constraint; here$C_{i_j}$ denotes the constraint with index$i_j$ for$j=1,\dots,p.$ - { rnd
$p$ $i_1$ $\lambda_1$ $\cdots$ $i_p$ $\lambda_p$ } where$p$ is a nonnegative integer,$i_1,\dots,i_p$ are distinct indices at least$0$ and less thanidx
, and$\lambda_1,\dots,\lambda_p$ are rational values such that$\lambda_1\cdot C_{i_1}+⋯+\lambda_p\cdot C_{i_p}$ , is a suitable linear combination that can be rounded and the rounded constraint dominates the associated constraint; again$C_{i_j}$ denotes the constraint with index$i_j$ for$j=1,…,p.$ - { uns
$i_1$ $l_1$ $i_2$ $l_2$ } where$i_1, l_1, i_2, l_2$ are indices at least$0$ and less thanidx
such that the constraints indexed by$i_1$ and$i_2$ both dominate the associated constraint and the constraints indexed by$l_1$ and$l_2$ are, perhaps after reordering,$a_{i_1}X_{i_1}+\cdots a_{i_p}X_{i_p}\leq\beta$ and$a_{i_1}X_{i_1}+\cdots a_{i_p}X_{i_p}\geq\beta +1$ such that$\beta$ is an integer and for$j=1,…,p, a_{i_j}$ is an integer and$X_{i_j}$ is an integer variable. - { sol }
- { lin weak {$n$
$t_1$ $j_1$ $\nu_1$ $\cdots$ $t_n$ $j_n$ $\nu_n$ }$p$ $i_1$ $\lambda_1$ $\cdots$ $i_p$ $\lambda_p$ } where$p, \lambda, i$ are the same as forlin
, except that the linear compbination only weakly dominates the associated constraint. The additional inner brackets describe a set of local bounds to be used during completion of this constraint.$t_1,\cdots,t_n$ are either$U$ (upper bound) or$L$ (lower bound).$j_1,\cdots,j_n$ are variable indices, and$\nu_1,\cdots,\nu_n$ are the certificate line indices for the corresponding bound constraints. Alternatively, the inner brackets can be { 0 } to use global bounds. - { lin incomplete
$i_1, \cdots i_n$ } where$i_1, \cdots i_n$ are constraint indices that are active, such that an exact linear program should be solved using the model constraints as well as these additional constraint to find correct multipliers to prove validity of the associated constraint.
Examples of the usage of these incomplete keywords can be found in the files paper_eg3_weak.vipr and paper_eg3_incomplete.vipr. These are incomplete toy versions of paper_eg3.vipr.
The initial lines of the file may be comment lines. Each comment line must begin with the character "%". The first line, after the comment lines, must be
VER 1.1
indicating that the certificate file conforms to version 1.1 of the certificate file format.
The remaining content is divided into seven sections and must appear in the following order:
VAR
for the variables,INT
for integer variables,OBJ
for the objective function,CON
for the constraints,RTP
for the relation to prove,SOL
for the solutions to check,DER
for the derivations.
These sections have to be formatted as shown below.
The section begins with
VAR n
where x
and y
:
VAR 2
x y
The section begins with
INT i
where x
and y
as integer variables:
INT 2
0 1
The section begins with
OBJ objsense
where objsense
is the keyword min
for minimization or max
for maximization, then followed by an integer
For example, the OBJ
section for the problem
$$
\begin{array}{ll}
\text{min} & x+y \
\text{s.t.} & C_1:4x+y\geq 1 \
& C_2:4x-y\leq 2\
\end{array}
$$
could look like the following
OBJ min
2 0 1 1 1
The section begins with
CON m b
where
The constraints in this section are assigned indices from
For example, the CON
section for the problem
$$\begin{array}{ll}
\text{min} & x+y \
\text{s.t.} & C_1:4x+y\geq 1 \
& C_2:4x-y\leq 2\
\end{array} $$
could look like the following
CON 2 0
C1 G 1 2 0 4 1 1
C2 L 2 2 0 4 1 -1
Here, there are no bound constraints but any program that outputs a certificate is free to choose arbitrary names for the bound constraints.
The section is either
RTP infeas
for indicating infeasibity, or
RTP range lb ub
where lb
specifies the lower bound on the optimal value to be verified and ub
specifies the upper bound on the optimal value to be verified. The specified lower bound can be -inf
if no actual lower bound is to be verified and the specified upper bound can be inf
if no actual upper bound is to be verified.
For example, if the RTP
section is
RTP range 1 inf
only a lower bound of RTP
section looks like this:
RTP range 1 1
The section begins with
SOL s
where s is the number of solutions to be verified for feasibility, and then followed by
name
is the solution name, 0
and 1
, the SOL
section could look like this:
SOL 2
feas 2 0 1 1 2
opt 1 1 1
The section begins with
DER d
where d
is the number of derived constraints to be verified, and then followed by
constraint reason index
where constraint
is the constraint to be verified in constraint format, reason
is the reason associated with the constraint in reason format, and index
is
- If
reason
is { asm }, then the set of assumptions contains simply the index of the constraint. - If
reason
is { lin$p\ i_1\ \lambda_1\ \cdots \ i_p\ \lambda_p$ } or { rnd$p\ i_1\ \lambda_1\ \cdots\ i_p\ \lambda_p$ }, then the set of assumptions is the union of the sets of assumptions of the constraints indexed by$i_1,…,i_p.$ - If
reason
is { uns$i_1\ l_1\ i_2\ l_2$ }, then the set of assumptions is the union of the sets of assumptions of the constraint indexed by$i_1$ without$l_1$ and of the constraint indexed by$i_2$ without$l_2.$
If the RTP
section is RTP infeas
, then the last constraint in this section should be an absurdity with an empty set of assumptions.
If the RTP
section is RTP range lb ub
, then the last constraint in this section should be a constraint with an empty set of assumptions that dominates OBJ
denotes the objective function.
Remark. The reason for specifying index
is to allow a verifier to discard the corresponding constraint from memory once the verifier has completed verifying constraint with index index
.
For example, the DER
section for the problem above could look like this:
C3 G -1/2 1 1 1 { lin 2 0 1/2 1 -1/2 } 3
C4 G 0 1 1 1 { rnd 1 2 1 } 4
C5 G 1/4 OBJ { lin 2 0 1/4 3 3/4 } 5
C6 G 1 OBJ { rnd 1 4 1 } 0
For a small example, we refer to the file paper_eg3.vipr.