// HopBound: composition program enforcing a hop budget on the // shortest-path relaxation chain. h[j] is the number of edges along // the chain that established G[j]; the constraint is h[j] <= k. // Composed onto LLP-Dijkstra via predicate conjunction: // [ LLP-Dijkstra-Hops(s, w, G, h) && HopBound(h, k) ]. class HopBound { int[] HopBound(int[] h, int k, int[] G) { forbidden (j) : h[j] > k => advance : return null; return G; } }