In model checking, a field of computer science, a difference bound matrix (DBM) is a data structure used to represent some convex polytopes called zones. This structure can be used to efficiently implement some geometrical operations over zones, such as testing emptyness, inclusion, equality, and computing the intersection and the sum of two zones. It is, for example, used in the Uppaal model checker; where it is also distributed as an independent library.[1]
More precisely, there is a notion of canonical DBM; there is a one-to-one relation between canonical DBMs and zones and from each DBM a canonical equivalent DBM can be efficiently computed. Thus, equality of zone can be tested by checking for equality of canonical DBMs.
A difference bound matrix is used to represents some kind of convex polytopes. Those polytopes are called zone. They are now defined. Formally, a zone is defined by equations of the form x ≤ c {\displaystyle x\leq c} , x ≥ c {\displaystyle x\geq c} , x 1 ≤ x 2 + c {\displaystyle x_{1}\leq x_{2}+c} and x 1 ≥ x 2 + c {\displaystyle x_{1}\geq x_{2}+c} , with x 1 {\displaystyle x_{1}} and x 2 {\displaystyle x_{2}} some variables, and c {\displaystyle c} a constant.
Zones have originally be called region,[2] but nowadays this name usually denote region, a special kind of zone. Intuitively, a region can be considered as a minimal non-empty zones, in which the constants used in constraint are bounded.
Given n {\displaystyle n} variables, there are exactly n ( n + 1 ) {\displaystyle n(n+1)} different non-redundant constraints possible, n {\displaystyle n} constraints which use a single variable and an upper bound, n {\displaystyle n} constraints which uses a single variable and a lower bound, and for each of the n 2 {\displaystyle n^{2}} ordered pairs of variable ( x , y ) {\displaystyle (x,y)} , an upper bound on x − y {\displaystyle x-y} . However, an arbitrary convex polytope in R n {\displaystyle \mathbb {R} ^{n}} may require an arbitrarily great number of constraints. Even when n = 2 {\displaystyle n=2} , there can be an arbitrary great number of non-redundant constraints ( x < i y + c i ) i ∈ N {\displaystyle (x<iy+c_{i})_{i\in \mathbb {N} }} , for c i {\displaystyle c_{i}} some constants. This is the reason why DBMs can not be extended from zones to convex polytopes.
As stated in the introduction, we consider a zone defined by a set of statements of the form x 1 ≤ c {\displaystyle x_{1}\leq c} , x 1 ≥ c {\displaystyle x_{1}\geq c} , x 1 ≤ x 2 + c {\displaystyle x_{1}\leq x_{2}+c} and x 1 ≥ x 2 + c {\displaystyle x_{1}\geq x_{2}+c} , with x 1 {\displaystyle x_{1}} and x 2 {\displaystyle x_{2}} some variables, and c {\displaystyle c} a constant. However some of those constraints are either contradictory or redundant. We now give such examples.
We also give example showing how to generate new constraints from existing constraints. For each pair of clocks x 1 {\displaystyle x_{1}} and x 2 {\displaystyle x_{2}} , the DBM has a constraint of the form x 1 ≺ x 2 + c {\displaystyle x_{1}\prec x_{2}+c} , where ≺ {\displaystyle \prec } is either < or ≤. If no such constraint can be found, the constraint x 1 ≺ x 2 + ∞ {\displaystyle x_{1}\prec x_{2}+\infty } can be added to the zone definition without loss of generality. But in some case, a more precise constraint can be found. Such an example is now going to be given.
Actually, the two first cases above are particular cases of the third cases. Indeed, x 1 ≤ 3 {\displaystyle x_{1}\leq 3} and x 2 ≥ − 3 {\displaystyle x_{2}\geq -3} can be rewritten as x 1 ≤ 0 + 3 {\displaystyle x_{1}\leq 0+3} and 0 ≤ x 2 + 3 {\displaystyle 0\leq x_{2}+3} respectively. And thus, the constraint x 1 ≤ x 2 + 6 {\displaystyle x_{1}\leq x_{2}+6} added in the first example is similar to the constraint added in the third example.
We now fix a monoid ( M , 0 , + ) {\displaystyle (M,0,+)} which is a subset of the real line. This monoid is traditionally the set of integers, rationals, reals, or their subset of non-negative numbers.
In order to define the data structure difference bound matrix, it is first required to give a data structure to encode atomic constraints. Furthermore, we introduce an algebra for atomic constraints. This algebra is similar to the tropical semiring, with two modifications:
The set of satisfiable constraints is defined as the set of pairs of the form:
The set of constraint contains all satisfiable constraints and contains also the following unsatisfiable constraint:
The subset { q ∈ Q ∣ q ≤ 2 } {\displaystyle \{q\in \mathbb {Q} \mid q\leq {\sqrt {2}}\}} can not be defined using this kind of constraints. More generally, some convex polytopes can not be defined when the ordered monoid does not have the least-upper-bound property, even if each of the constraints in its definition uses at most two variables.
In order to generate a single constraint from a pair of constraints applied to the same (pair of) variable, we formalize the notion of intersection of constraints and of order over constraints. Similarly, in order to define a new constraints from existing constraints, a notion of sum of constraint must also be defined.
We now define an order relation over constraints. This order symbolize the inclusion relation.
First, the set { < , ≤ } {\displaystyle \{<,\leq \}} is considered as an ordered set, with < being inferior to ≤. Intuitively, this order is chosen because the set defined by x < c {\displaystyle x<c} is strictly included in the set defined by x ≤ c {\displaystyle x\leq c} . We then state that the constraint ( ≺ 1 , m 1 ) {\displaystyle (\prec _{1},m_{1})} is smaller than ( ≺ 2 , m 2 ) {\displaystyle (\prec _{2},m_{2})} if either m 1 < m 2 {\displaystyle m_{1}<m_{2}} or ( m 1 = m 2 {\displaystyle m_{1}=m_{2}} and ≺ 1 {\displaystyle \prec _{1}} is less than ≺ 2 {\displaystyle \prec _{2}} ). That is, the order on constraints is the lexicographical order applied from right to left. Note that this order is a total order. If M {\displaystyle M} has the least-upper-bound property (or greatest-lower-bound property) then the set of constraints also have it.
The intersection of two constraints, denoted as ( ≺ 1 , m 1 ) ⊓ ( ≺ 2 , m 2 ) {\displaystyle (\prec _{1},m_{1})\sqcap (\prec _{2},m_{2})} , is then simply defined as the minimum of those two constraints. If M {\displaystyle M} has the greatest-lower bound property then the intersection of an infinite number of constraints is also defined.
Given two variables x 1 {\displaystyle x_{1}} and x 2 {\displaystyle x_{2}} to which are applied constraints ( ≺ 1 , m 1 ) {\displaystyle (\prec _{1},m_{1})} and ( ≺ 2 , m 2 ) {\displaystyle (\prec _{2},m_{2})} , we now explain how to generate the constraint satisfied by x 1 + x 2 {\displaystyle x_{1}+x_{2}} . This constraint is called the sum of the two above-mentioned constraint, is denoted as ( ≺ 1 , m 1 ) + ( ≺ 2 , m 2 ) {\displaystyle (\prec _{1},m_{1})+(\prec _{2},m_{2})} and is defined as ( min ( ≺ 1 , ≺ 2 ) , m 1 + m 2 ) {\displaystyle (\min(\prec _{1},\prec _{2}),m_{1}+m_{2})} .
Here is a list of algebraic properties satisfied by the set of constraints.
Furthermore, the following algebraic properties holds over satisfiable constraints:
Over non-satisfiable constraints both operations have the same zero, which is ( < , − ∞ ) {\displaystyle (<,-\infty )} . Thus, the set of constraints does not even form a semiring, because the identity of the intersection is distinct from the zero of the sum.
Given a set of n {\displaystyle n} variables, x 1 , … , x n {\displaystyle x_{1},\dots ,x_{n}} , a DBM is a matrix with column and rows indexed by 0 , x 1 , … , x n {\displaystyle 0,x_{1},\dots ,x_{n}} and the entries are constraints. Intuitively, for a column C {\displaystyle C} and a row R {\displaystyle R} , the value m {\displaystyle m} at position ( C , R ) {\displaystyle (C,R)} represents C ≺ R + m {\displaystyle C\prec R+m} . Thus, the zone defined by a matrix D ( ( ≺ C , R , m C , R ) ) C , R ∈ { 0 , x 1 , … , x n } {\displaystyle D((\prec _{C,R},m_{C,R}))_{C,R\in \{0,x_{1},\dots ,x_{n}}\}} , denoted by R ( D ) {\displaystyle {\mathcal {R}}(D)} , is { ( x 1 , … , x n ) ∈ R ∣ ⋀ C , R ∈ { 0 , x 1 , … , x n } C ≺ C , R R + m C , R } {\displaystyle \{(x_{1},\dots ,x_{n})\in \mathbb {R} \mid \bigwedge _{C,R\in \{0,x_{1},\dots ,x_{n}\}}C\prec _{C,R}R+m_{C,R}\}} .
Note that C ≺ R + m {\displaystyle C\prec R+m} is equivalent to C − R ≺ m {\displaystyle C-R\prec m} , thus the entry ( ≺ , m ) {\displaystyle (\prec ,m)} is still essentially an upper bound. Note however that, since we consider a monoid M {\displaystyle M} , for some values of C {\displaystyle C} and R {\displaystyle R} the real C − R {\displaystyle C-R} does not actually belong to the monoid.
Before introducing the definition of a canonical DBM, we need to define and discuss an order relation on those matrices.
A matrix D {\displaystyle D} is considered to be smaller than a matrix D ′ {\displaystyle D'} if each of its entries are smaller. Note that this order is not total. Given two DBMs D {\displaystyle D} and D ′ {\displaystyle D'} , if D {\displaystyle D} is smaller than or equal to D ′ {\displaystyle D'} , then R ( D ) ⊆ R ( D ′ ) {\displaystyle {\mathcal {R}}(D)\subseteq {\mathcal {R}}(D')} .
The greatest-lower-bound of two matrices D {\displaystyle D} and D ′ {\displaystyle D'} , denoted by D ⊓ D ′ {\displaystyle D\sqcap D'} , has as its ( a , b ) {\displaystyle (a,b)} entry the value ( ≺ a , b , m a , b ) ⊓ ( ≺ a , b ′ , m a , b ′ ) {\displaystyle (\prec _{a,b},m_{a,b})\sqcap (\prec '_{a,b},m'_{a,b})} . Note that since ⊓ {\displaystyle \sqcap } is the «sum» operation of the semiring of constraints, the operation ⊓ {\displaystyle \sqcap } is the «sum» of two DBMs where the set of DBMs is considered as a module.
Similarly to the case of constraints, considered in section "Operation on constraints" above, the greatest-lower-bound of an infinite number of matrices is correctly defined as soon as M {\displaystyle M} satisfies the greatest-lower-bound property.
The intersection of matrices/zones is defined. The union operation is not defined, and indeed, a union of zone is not a zone in general.
For an arbitrary set D {\displaystyle {\mathcal {D}}} of matrices which all defines the same zone Z {\displaystyle Z} , ⊓ D ∈ D D {\displaystyle \sqcap _{D\in {\mathcal {D}}}D} also defines Z {\displaystyle Z} . It thus follow that, as long as M {\displaystyle M} has the greatest-lower-bound property, each zone which is defined by at least a matrix has a unique minimal matrix defining it. This matrix is called the canonical DBM of Z {\displaystyle Z} .
We restate the definition of a canonical difference bound matrix. It is a DBM such that no smaller matrix defines the same set. It is explained below how to check whether a matrix is a DBM, and otherwise how to compute a DBM from an arbitrary matrix such that both matrices represents the same set. But first, we give some examples.
We first consider the case where there is a single clock x 1 {\displaystyle x_{1}} .
We first give the canonical DBM for R {\displaystyle \mathbb {R} } . We then introduce another DBM which encode the set R {\displaystyle \mathbb {R} } . This allow to find constraints which must be satisfied by any DBM.
The canonical DBM of the set of real is ( ( ≤ , 0 ) ( < , ∞ ) ( < , ∞ ) ( ≤ , 0 ) ) {\displaystyle \left({\begin{array}{ll}(\leq ,0)&(<,\infty )\\(<,\infty )&(\leq ,0)\end{array}}\right)} . It represents the constraints 0 ≤ 0 + 0 {\displaystyle 0\leq 0+0} , x 1 ≤ 0 + ∞ {\displaystyle x_{1}\leq 0+\infty } , 0 ≤ x 1 + ∞ {\displaystyle 0\leq x_{1}+\infty } and 0 ≤ 0 + 0 {\displaystyle 0\leq 0+0} . All of those constraints are satisfied independently of the value assigned to x 1 {\displaystyle x_{1}} . In the remaining of the discussion, we will not explicitly describe constraints due to entries of the form ( < , ∞ ) {\displaystyle (<,\infty )} , since those constraints are systematically satisfied.
The DBM ( ( < , ∞ ) ( < , ∞ ) ( < , ∞ ) ( < , ∞ ) ) {\displaystyle \left({\begin{array}{ll}(<,\infty )&(<,\infty )\\(<,\infty )&(<,\infty )\end{array}}\right)} also encodes the set of real. It contains the constraints 0 < 0 + ∞ {\displaystyle 0<0+\infty } and x 1 < x 1 + ∞ {\displaystyle x_{1}<x_{1}+\infty } which are satisfied independently on the value of x 1 {\displaystyle x_{1}} . This show that in a canonical DBM D {\displaystyle D} , a diagonal entry is never greater than ( ≤ , 0 ) {\displaystyle (\leq ,0)} , because the matrix obtained from D {\displaystyle D} by replacing the diagonal entry by ( ≤ , 0 ) {\displaystyle (\leq ,0)} defines the same set and is smaller than D {\displaystyle D} .
We now consider many matrices which all encodes the empty set. We first give the canonical DBM for the empty set. We then explain why each of the DBM encodes the empty set. This allow to find constraints which must be satisfied by any DBM.
The canonical DBM of the empty set, over one variable, is ( ( < , − ∞ ) ( < , − ∞ ) ( < , − ∞ ) ( < , − ∞ ) ) {\displaystyle \left({\begin{array}{ll}(<,-\infty )&(<,-\infty )\\(<,-\infty )&(<,-\infty )\end{array}}\right)} . Indeed, it represents the set satisfying the constraint 0 < 0 − ∞ {\displaystyle 0<0-\infty } , 0 < x 1 − ∞ {\displaystyle 0<x_{1}-\infty } , x 1 < 0 − ∞ {\displaystyle x_{1}<0-\infty } and x 1 < x 1 − ∞ {\displaystyle x_{1}<x_{1}-\infty } . Those constraints are unsatisfiable.
The DBM ( ( < , ∞ ) ( < , − ∞ ) ( < , ∞ ) ( < , ∞ ) ) {\displaystyle \left({\begin{array}{ll}(<,\infty )&(<,-\infty )\\(<,\infty )&(<,\infty )\end{array}}\right)} also encodes the empty set. Indeed, it contains the constraint x 1 < 0 − ∞ {\displaystyle x_{1}<0-\infty } which is unsatisfiable. More generally, this show that no entry can be ( < , − ∞ ) {\displaystyle (<,-\infty )} unless all entries are ( < , − ∞ ) {\displaystyle (<,-\infty )} .
The DBM ( ( < , ∞ ) ( < , ∞ ) ( < , ∞ ) ( < , − 1 ) ) {\displaystyle \left({\begin{array}{ll}(<,\infty )&(<,\infty )\\(<,\infty )&(<,-1)\end{array}}\right)} also encodes the empty set. Indeed, it contains the constraint x 1 < x 1 − 1 {\displaystyle x_{1}<x_{1}-1} which is unsatisfiable. More generally, this show that the entry in the diagonal line can not be smaller than ( ≤ , 0 ) {\displaystyle (\leq ,0)} unless it is ( < , − ∞ ) {\displaystyle (<,-\infty )} .
The DBM ( ( < , ∞ ) ( < , 1 ) ( ≤ , − 1 ) ( < , ∞ ) ) {\displaystyle \left({\begin{array}{ll}(<,\infty )&(<,1)\\(\leq ,-1)&(<,\infty )\end{array}}\right)} also encodes the empty set. Indeed, it contains the constraints 0 < x 1 + 1 {\displaystyle 0<x_{1}+1} and x 1 ≤ − 1 {\displaystyle x_{1}\leq -1} which are contradictory. More generally, this show that, for each C , R ∈ { 0 , x 1 , … , x n } {\displaystyle C,R\in \{0,x_{1},\dots ,x_{n}\}} , if m C , R = − m R , C {\displaystyle m_{C,R}=-m_{R,C}} , then ≺ R , C {\displaystyle \prec _{R,C}} and ≺ C , R {\displaystyle \prec _{C,R}} are both equal to ≤.
The DBM ( ( < , ∞ ) ( ≤ , 1 ) ( ≤ , − 2 ) ( < , ∞ ) ) {\displaystyle \left({\begin{array}{ll}(<,\infty )&(\leq ,1)\\(\leq ,-2)&(<,\infty )\end{array}}\right)} also encodes the empty set. Indeed, it contains the constraints 0 ≤ x 1 + 1 {\displaystyle 0\leq x_{1}+1} and x 1 ≤ − 2 {\displaystyle x_{1}\leq -2} which are contradictory. More generally, this show that for each C , R ∈ { 0 , x 1 , … , x n } {\displaystyle C,R\in \{0,x_{1},\dots ,x_{n}\}} , − m C , R ≤ m R , C {\displaystyle -m_{C,R}\leq m_{R,C}} , unless m C , R {\displaystyle m_{C,R}} is − ∞ {\displaystyle -\infty } .
The examples given in this section are similar to the examples given in the Example section above. This time, they are given as DBM.
The DBM ( ( ≤ , 0 ) ( < , ∞ ) ( < , ∞ ) ( < , ∞ ) ( ≤ , 0 ) ( ≤ , 3 ) ( ≤ , 3 ) ( < , ∞ ) ( ≤ , 0 ) ) {\displaystyle \left({\begin{array}{lll}(\leq ,0)&(<,\infty )&(<,\infty )\\(<,\infty )&(\leq ,0)&(\leq ,3)\\(\leq ,3)&(<,\infty )&(\leq ,0)\end{array}}\right)} represents the set satisfying the constraints x 2 ≤ 3 {\displaystyle x_{2}\leq 3} and x 1 ≤ x 2 + 3 {\displaystyle x_{1}\leq x_{2}+3} . As mentioned in the Example section, both of those constraints implies that x 1 ≤ 6 {\displaystyle x_{1}\leq 6} . It means that the DBM ( ( ≤ , 0 ) ( ≤ , 6 ) ( < , ∞ ) ( < , ∞ ) ( ≤ , 0 ) ( ≤ , 3 ) ( ≤ , 3 ) ( < , ∞ ) ( ≤ , 0 ) ) {\displaystyle \left({\begin{array}{lll}(\leq ,0)&(\leq ,6)&(<,\infty )\\(<,\infty )&(\leq ,0)&(\leq ,3)\\(\leq ,3)&(<,\infty )&(\leq ,0)\end{array}}\right)} encodes the same zone. Actually, it is the DBM of this zone. This shows that in any DBM ( ( ≺ C , R , m C , R ) ) c , r ∈ { 0 , x 1 , … , x n } {\displaystyle ((\prec _{C,R},m_{C,R}))_{c,r\in \{0,x_{1},\dots ,x_{n}\}}} , for each 1 ≤ i , j ≤ n {\displaystyle 1\leq i,j\leq n} , the constraint ( ≺ x i , 0 , m x i , 0 ) {\displaystyle (\prec _{x_{i},0},m_{x_{i},0})} is smaller than the constraint ( ≺ x j , 0 , m x j , 0 ) + ( ≺ x i , x j , m x i , x j ) {\displaystyle (\prec _{x_{j},0},m_{x_{j},0})+(\prec _{x_{i},x_{j}},m_{x_{i},x_{j}})} .
As explained in the Example section, the constant 0 can be considered as any variable, which leads to the more general rule: in any DBM ( ( ≺ C , R , m C , R ) ) c , r ∈ { 0 , x 1 , … , x n } {\displaystyle ((\prec _{C,R},m_{C,R}))_{c,r\in \{0,x_{1},\dots ,x_{n}\}}} , for each a , b , c ∈ { 0 , x 1 , … , x n } {\displaystyle a,b,c\in \{0,x_{1},\dots ,x_{n}\}} , the constraint ( ≺ a , b , m a , b ) {\displaystyle (\prec _{a,b},m_{a,b})} is smaller than the constraint ( ≺ c , b , m c , b ) + ( ≺ a , c , m a , c ) {\displaystyle (\prec _{c,b},m_{c,b})+(\prec _{a,c},m_{a,c})} .
As explained in the introduction of the section Difference Bound Matrix, a canonical DBM is a DBM whose rows and columns are indexed by ( 0 , x 1 , … , x n ) {\displaystyle (0,x_{1},\dots ,x_{n})} , whose entries are constraints. Furthermore, it follows one of the following equivalent properties.
The last definition can be directly used to compute the canonical DBM associated to a DBM. It suffices to apply the Floyd–Warshall algorithm to the graph and associates to each entry ( a , b ) {\displaystyle (a,b)} the shortest path from a {\displaystyle a} to b {\displaystyle b} in the graph. If this algorithm detects a cycle of negative length, this means that the constraints are not satisfiable, and thus that the zone is empty.
As stated in the introduction, the main interest of DBMs is that they allow to easily and efficiently implements operations on zones.
We first recall operations which were considered above:
We now describe operations which were not considered above. The first operations described below have clear geometrical meaning. The last ones become corresponds to operations which are more natural for clock valuations.
The Minkowski sum of two zones, defined by two DBMs D {\displaystyle D} and D ′ {\displaystyle D'} , is defined by the DBM D + D ′ {\displaystyle D+D'} whose ( a , b ) {\displaystyle (a,b)} entry is D a , b + D a , b ′ {\displaystyle D_{a,b}+D'_{a,b}} . Note that since + {\displaystyle +} is the «product» operation of the semiring of constraints, the operation + {\displaystyle +} over DBMs is not actually an operation of the module of DBM.
In particular, it follows that, in order to translate a zone Z {\displaystyle Z} by a direction v {\displaystyle v} , it suffices to add the DBM of { v } {\displaystyle \{v\}} to the DBM of Z {\displaystyle Z} .
Let d ∈ M {\displaystyle d\in M} a constant.
Given a vector x → = ( x 1 , … , x n ) {\displaystyle {\vec {x}}=(x_{1},\dots ,x_{n})} , and an index 1 ≤ i ≤ n {\displaystyle 1\leq i\leq n} , the projection of the i {\displaystyle i} -th component of x → {\displaystyle {\vec {x}}} to d {\displaystyle d} is the vector ( x 1 , … , x i − 1 , d , x i + 1 , … , x n ) {\displaystyle (x_{1},\dots ,x_{i-1},d,x_{i+1},\dots ,x_{n})} . In the language of clock, for d = 0 {\displaystyle d=0} , this corresponds to resetting the i {\displaystyle i} -th clock.
Projecting the i {\displaystyle i} -th component of a zone Z {\displaystyle Z} to d {\displaystyle d} consists simply in the set of vectors of Z {\displaystyle Z} with their i {\displaystyle i} -th component to d {\displaystyle d} . This is implemented on DBM by setting the components ( x i , a ) {\displaystyle (x_{i},a)} to ( ≤ , d ) + D ( 0 , a ) {\displaystyle (\leq ,d)+D(0,a)} and the components ( a , x i ) {\displaystyle (a,x_{i})} to ( ≤ , − d ) + D ( 0 , a ) {\displaystyle (\leq ,-d)+D(0,a)}
Let us call the future the zone F = { ( t , … , t ) ∣ t ∈ R ≥ 0 } {\displaystyle F=\{(t,\dots ,t)\mid t\in \mathbb {R} _{\geq 0}\}} and the past the zone P = { ( − t , … , − t ) ∣ t ∈ R ≥ 0 } {\displaystyle P=\{(-t,\dots ,-t)\mid t\in \mathbb {R} _{\geq 0}\}} . Given a point x → = ( x 1 , … , x n ) ∈ R n {\displaystyle {\vec {x}}=(x_{1},\dots ,x_{n})\in \mathbb {R} ^{n}} , the future of x → {\displaystyle {\vec {x}}} is defined as { ( x 1 + t , … , x n + t ) ∣ t ∈ R ≥ 0 } = F + { x → } {\displaystyle \{(x_{1}+t,\dots ,x_{n}+t)\mid t\in \mathbb {R} _{\geq 0}\}=F+\{{\vec {x}}\}} , and the past of x → {\displaystyle {\vec {x}}} is defined as P + { x → } {\displaystyle P+\{{\vec {x}}\}} .
The names future and past comes from the notion of clock. If a set of n {\displaystyle n} clocks are assigned to the values x 1 {\displaystyle x_{1}} , x 2 {\displaystyle x_{2}} , etc. then in their future, the set of assignment they'll have is the future of x → {\displaystyle {\vec {x}}} .
Given a zone Z {\displaystyle Z} , the future of Z {\displaystyle Z} are the union of the future of each points of the zone. The definition of the past of a zone is similar. The future of a zone can thus be defined as F + Z {\displaystyle F+Z} , and hence can easily be implemented as a sum of DBMs. However, there is even a simpler algorithm to apply to DBM. It suffices to change every entries ( x i , 0 ) {\displaystyle (x_{i},0)} to ( < , ∞ ) {\displaystyle (<,\infty )} . Similarly, the past of a zone can be computed by setting every entries ( 0 , x i ) {\displaystyle (0,x_{i})} to ( < , ∞ ) {\displaystyle (<,\infty )} .