Skip to content
STIMSMITH

Bound Refinement

Concept WIKI v1 · 7/7/2026

In hardware-accelerated constrained random test generation, bound refinement is the step within the GenerateSolution algorithm that, after assigning a value to one variable, updates the feasible interval (and associated strip set / total weight) of every still-unassigned variable. It is carried out by the RefineBound procedure, which uses the overlapping constraint set (OCS) of the strip selected for the assigned variable to shrink the bounds of the remaining variables and to re-derive their total weights.

Bound Refinement

Definition

In the context of hardware-accelerated constrained random test generation, bound refinement is the per-iteration operation that, after a value has been chosen for one variable $x_i$, recomputes the feasible interval $B_{x_j}$ of every still-unassigned variable $x_j$ (with $j > i$). The refinement uses the overlapping constraint set (OCS) of the strip that was selected for $x_i$ to eliminate from each remaining variable's range those values that cannot be combined with the just-assigned value while still satisfying the joint constraints.

The conceptual picture given in the methodology is that each variable's initial range is the union of strips — contiguous intervals in the variable's projection of the feasible polygon — and choosing a particular strip for $x_i$ restricts the other variables to the intersection of the polygon with the plane $x_i = \bar{x}i$. The new interval $B'{x_j}$ therefore satisfies $B'{x_j} \subseteq B{x_j}$, and the strip set for $x_j$ shrinks accordingly (for example, choosing a value $x_0$ for variable $x$ may reduce variable $y$'s boundary to strips $S_{y_1}, S_{y_2}, S_{y_3}$).

Where it is invoked

Bound refinement is invoked from the main generation loop GenerateSolution(CT, VT):

3.7: For each variables x_j in NGV (j > i) do
    3.7.1: RefineBound(X_i, OCS(S_{x_i}^k), x_i^linear, x_i^NGV).
    3.7.2: Update TWt_{x_j} by ReCompToW(x_i^linear, x_i^NGV, SetOfStrip(x_j), TWt_{x_j}).

After RefineBound narrows a variable's interval, ReCompToW recomputes the variable's total strip weight $TWt_{x_j}$ over the new (smaller) strip set, so that subsequent strip selection for $x_j$ is correctly weighted.

Purpose and correctness role

Bound refinement is what makes the sequential variable-by-variable procedure sound: as soon as a value is fixed for one variable, the intervals of the others are tightened to the cross-section of the feasible polygon at that value, so that no infeasible point is ever generated. Two complementary properties are established about the algorithm that relies on bound refinement:

  • Soundness (Theorem 4.1): if a valid valuation is chosen for the $k$-th variable, then a satisfying assignment for the $(k+1)$-th variable still exists, because the refined bound $B'{x{k+1}}$ is non-empty and is a subset of the previously feasible $B_{x_{k+1}}$.
  • Completeness (Theorem 4.2): every valid $n$-tuple $\bar{x} = (\bar{x}0, \ldots, \bar{x}{n-1})$ is generated with non-zero probability. The argument shows that fixing $\bar{x}k$ for variable $k$ cannot exclude $\bar{x}{k+1}$ from the refined bound $B_{x_{k+1}}$, since $\bar{x}$ itself satisfies all the constraints $a_{i1}x_k + a_{i2}x_{k+1} , \theta , a_{i3}$ in the $X_k X_{k+1}$-plane (including the OCS constraints $C_p, C_q$ of the strip containing $\bar{x}_k$).

Relation to other building blocks

Bound refinement sits between three other hardware/synthesis blocks of the methodology:

  1. Strip and OCS pre-processing (software phase) — supplies, for every variable, the list of strips and the overlapping constraint set of each strip.
  2. GenRandNum — generates a uniform random integer inside a given bound $[x^{\min}, x^{\max}]$ using a $k$-bit LFSR and a bit-flip fallback when the raw random number exceeds the interval width.
  3. ReCompToW — recomputes the total strip weight $TWt_x$ after refinement, so that the next GenRandNum call correctly picks a strip in proportion to its weight.

Without bound refinement, the random strip selection and random value selection in steps 1 and 2 of the inner loop would pick values outside the feasible region; with it, every candidate $n$-tuple is automatically constraint-satisfying.

See also

  • Hardware accelerated constrained random test generation — the overall paper/methodology in which bound refinement appears.
  • RefineBound procedure — the concrete routine that implements the bound-refinement step.
  • GenerateSolution — the top-level algorithm whose loop body contains the refinement call.
  • Overlapping constraint set (OCS) — the per-strip constraint list consumed by RefineBound.
  • Total strip weight ($TWt_x$) — the per-variable weight that must be re-derived after refinement.

CITATIONS

7 sources
7 citations
[1] Bound refinement updates the interval of every still-unassigned variable x_j after x_i is assigned, using the OCS of the chosen strip. Hardware accelerated constrained random test generation
[2] After refinement, the new boundary of variable y contains only certain strips (e.g. S_{y_1}, S_{y_2}, S_{y_3}) when x is assigned value x_0. Hardware accelerated constrained random test generation
[3] GenerateSolution invokes RefineBound(X_i, OCS(S_{x_i}^k), x_i^linear, x_i^NGV) and then ReCompToW to update TWt_{x_j} for each remaining variable x_j with j > i. Hardware accelerated constrained random test generation
[4] Theorem 4.1 establishes soundness: the refined bound B'_{x_{k+1}} is non-empty and is a subset of the previously feasible B_{x_{k+1}} whenever x_k is chosen validly. Hardware accelerated constrained random test generation
[5] Theorem 4.2 establishes completeness: every valid tuple is generated with non-zero probability because fixing x_k cannot exclude x_{k+1} from the refined bound, since x itself satisfies all OCS constraints C_p, C_q of the strip. Hardware accelerated constrained random test generation
[6] Initial lower and upper bounds of a variable x are defined as the min and max of the first/second coordinates of all its strips. Hardware accelerated constrained random test generation
[7] After refinement, the variable's total strip weight TWt_x must be recomputed so that subsequent strip selection remains correctly weighted. Hardware accelerated constrained random test generation