Directed walks, unsplittable loads, and Goemans' cost conjecture #
IsWalk tail head x l y: the list of arcs l, read left to right, is a walk from
vertex x to vertex y. Repeated vertices and arcs are permitted.
Equations
- GoemansFlow.IsWalk tail head x✝¹ [] x✝ = (x✝¹ = x✝)
- GoemansFlow.IsWalk tail head x✝¹ (e :: l) x✝ = (tail e = x✝¹ ∧ GoemansFlow.IsWalk tail head (head e) l x✝)
Instances For
Boolean decision procedure for IsWalk (kernel-friendly).
Equations
- GoemansFlow.walkBool tail head x✝¹ [] x✝ = decide (x✝¹ = x✝)
- GoemansFlow.walkBool tail head x✝¹ (e :: l) x✝ = (decide (tail e = x✝¹) && GoemansFlow.walkBool tail head (head e) l x✝)
Instances For
Equations
- GoemansFlow.instDecidableIsWalk tail head x l y = decidable_of_iff (GoemansFlow.walkBool tail head x l y = true) ⋯
Load induced on arc a by routing P with demands d, counting every traversal.
For arc-simple paths this is the sum of demands of commodities whose path contains a.
Equations
- GoemansFlow.unsplittableLoad d P a = ∑ k : K, List.count a (P k) • d k
Instances For
On arc-simple paths, traversal-counting load agrees with the membership formula.
Goemans' cost conjecture (Conjecture 1.3 of arXiv:2308.02651), restricted to simple, loopless, acyclic digraphs, with explicit capacities and strictly positive demands.
A refutation of this restricted form also refutes the conjecture over general digraphs. The conclusion allows arbitrary walks; the counterexample proves that every admissible walk is a simple path. The coefficient ring is generic, with the rational case matching the source's setting.
Equations
- One or more equations did not get rendered due to their size.