Constrains k -dimensional boxes to be non-overlapping. For each box i
and dimension j , box_posn [ i , j ] is the base position of the box
in dimension j , and box_size [ i , j ] is the size in that dimension.
Boxes whose size is 0 in any dimension still cannot overlap with any other box.

Constrains k -dimensional boxes to be non-overlapping. For each box i
and dimension j , box_posn [ i , j ] is the base position of the box
in dimension j , and box_size [ i , j ] is the size in that dimension.
Boxes whose size is 0 in at least one dimension can be packed anywhere.

A global non-overlap constraint for k dimensional objects. It enforces that no two objects overlap, and that all objects fit within a global k dimensional bounding box. In addition, it enforces that the bounding box is the smallest one containing all objects, i.e., each of the 2k boundaries is touched by at least by one object.

Requires that a set of tasks given by start times s , durations d , and
resource requirements r , never require more than a global resource bound
b at any one time. Start times are optional variables, so
that absent tasks do not need to be scheduled.

Requires that a set of tasks given by start times s and durations d
do not overlap in time. Tasks with duration 0 can be scheduled at any time,
even in the middle of other tasks. Start times are optional variables, so
that absent tasks do not need to be scheduled.

Requires that a set of tasks given by start times s and durations d
do not overlap in time. Tasks with duration 0 CANNOT be scheduled at any time,
but only when no other task is running. Start times are optional variables, so
that absent tasks do not need to be scheduled.

Constrains the subgraph ns and es of a given directed graph to be a path from s to t of weight K .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
w is the weight of each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph
K is the cost of the path

Constrains the subgraph ns and es of a given directed graph to be a path from s to t of weight K .

from is the leaving node for each edge
to is the entering node for each edge
w is the weight of each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph
K is the cost of the path

Constrains the subgraph ns and es of a given undirected graph to be a path from s to t of weight K .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
w is the weight of each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph
K is the cost of the path

Constrains the subgraph ns and es of a given undirected graph to be a path from s to t of weight K .

from is the leaving node for each edge
to is the entering node for each edge
w is the weight of each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph
K is the cost of the path

Constrains the set of edges es of a given directed graph to be a weighted spanning tree rooted at r of weight W .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
w is the weight of each edge
r is the root node (which may be variable)
es is a Boolean for each edge whether it is in the subgraph
K is the weight of the tree

Constrains the subgraph ns and es of a given directed graph to be a path from s to t .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given directed graph to be a path from s to t .

from is the leaving node for each edge
to is the entering node for each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given directed graph to be reachable from r .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given directed graph to be reachable from r .

from is the leaving node for each edge
to is the entering node for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given directed graph to be a weighted spanning tree rooted at r of weight W .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
w is the weight of each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph
K is the weight of the tree

Constrains the subgraph ns and es of a given directed graph to be a tree rooted at r .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given directed graph to be at tree rooted at r .

from is the leaving node for each edge
to is the entering node for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given undirected graph to be a path from s to t .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given undirected graph to be a path from s to t .

from is the leaving node for each edge
to is the entering node for each edge
s is the source node (which may be variable)
t is the dest node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given undirected graph to be reachable from r .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given undirected graph to be reachable from r .

from is the leaving node for each edge
to is the entering node for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the set of edges es of a given undirected graph to be a weighted spanning tree of weight W .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
w is the weight of each edge
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph
K is the weight of the tree
*

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given undirected graph to be a tree rooted at r .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the subgraph ns and es of a given undirected graph to be at tree rooted at r .

from is the leaving node for each edge
to is the entering node for each edge
r is the root node (which may be variable)
ns is a Boolean for each node whether it is in the subgraph
es is a Boolean for each edge whether it is in the subgraph

Constrains the set of edges es of a given undirected graph to be a weighted spanning tree of weight W .

N is the number of nodes in the given graph
E is the number of edges in the given graph
from is the leaving node 1.. N for each edge
to is the entering node 1.. N for each edge
w is the weight of each edge
es is a Boolean for each edge whether it is in the subgraph
K is the weight of the tree
*

Requires that x defines a path in the cost MDD with total edge weight totalcost .

N is the number of nodes, the root node is node 1
level is the level of each node, the root is level 1, T is level length (x)+1
E is the number of edges
from is the leaving node (1.. N )for each edge
label is the set of value of the x variable for each edge
cost is the cost for each edge
to is the entering node for each edge, where 0 = T node
totalcost is the total cost of the path defined by x

The sequence of values in array x (which must all be in the range 1.. S )
is accepted by the DFA of Q states with input 1.. S and transition
function d (which maps (1.. Q , 1.. S ) -> 0.. Q )) and initial state q0
(which must be in 1.. Q ) and accepting states F (which all must be in
1.. Q ). We reserve state 0 to be an always failing state. Each edge has an associated cost c ,
and C is the sum of costs taken on the accepting path for x .

Requires that x defines a path from root to true node T through the MDD defined by

N is the number of nodes, the root node is node 1
level is the level of each node, the root is level 1, T is level length (x)+1
E is the number of edges
from is the leaving node (1.. N )for each edge
label is the set of values of the x variable for each edge
to is the entering node for each edge, where 0 = T node

The sequence of values in array x (which must all be in the range 1.. S )
is accepted by the DFA of Q states with input 1.. S and transition
function d (which maps (1.. Q , 1.. S ) -> 0.. Q )) and initial state q0
(which must be in 1.. Q ) and accepting states F (which all must be in
1.. Q ). We reserve state 0 to be an always failing state.

The sequence of values in array x (which must all be in the set S )
is accepted by the DFA of Q states with input S and transition
function d (which maps (1.. Q , S ) -> 0.. Q )) and initial state q0
(which must be in 1.. Q ) and accepting states F (which all must be in
1.. Q ). We reserve state 0 to be an always failing state.

The sequence of values in array x (which must all be in the range 1.. S )
is accepted by the NFA of Q states with input 1.. S and transition
function d (which maps (1.. Q , 1.. S ) -> set of 1.. Q )) and initial state q0
(which must be in 1.. Q ) and accepting states F (which all must be in
1.. Q ).

The sequence of values in array x (which must all be in the range S )
is accepted by the NFA of Q states with input S and transition
function d (which maps (1.. Q , S ) -> set of 1.. Q )) and initial state q0
(which must be in 1.. Q ) and accepting states F (which all must be in
1.. Q ).

Constrain the output layer of a neural net to take the value defined by the input layer
The arguments are
inputs: an array of float variables
input_ids: array[int] of NODE
outputs: an array of float variables
output_ids: array[int] of NODE
bias: array[NODE] of float
edge_weight: array[EDGE] of float (dummy one at end!)
edge_parent: array[EDGE] of NEURON (start neuron for edge)
first_edge: array[NODE] of 1..m+1
neuron_type: { RELU, STEP, LINEAR, SOFTPLUS }