This is a continuation of 2026-07-02. Everything is on the same complex.


After writing code to do an exhaustive search of weights and -values, I appear to have found a counter example:

Testing weight=10, lambda=1e-05
c = 1*[3,6] + -1*[0,4] + 1*[0,3] + 1*[0,1] + 1*[6,7] + 1*[2,4] + 1*[1,2] + 1*[7,8] + -1*[2,8] + 1*[3,8] + 1*[2,3] + -1*[0,8]; lambda=1e-05
   z*=3.00009:  xp[2]=0.5 xp[8]=0.5 xp[14]=0.5 xp[16]=0.5 xp[23]=0.5 xm[25]=0.5 yp[0]=0.5 yp[1]=1 ym[2]=0.5 ym[4]=0.5 ym[5]=0.5 ym[7]=1 yp[9]=0.5 ym[10]=1 ym[11]=0.5 yp[13]=0.5 ym[16]=0.5 ym[17]=0.5 ym[20]=0.5 ym[22]=0.5 ym[23]=0.5
  x = 0.5*[3,4] + 0.5*[0,1] + 0.5*[1,2] + 0.5*[4,5] + 0.5*[2,3] + -0.5*[0,5]
  y = 0.5*[3,4,6] + 1*[0,4,6] + -0.5*[0,3,6] + -0.5*[1,4,6] + -0.5*[0,1,6] + -1*[4,6,7] + 0.5*[1,4,7] + -1*[2,4,7] + -0.5*[1,2,7] + 0.5*[4,5,7] + -0.5*[5,7,8] + -0.5*[2,7,8] + -0.5*[2,3,8] + -0.5*[0,5,8] + -0.5*[0,3,8]

The weight value corresponds to the original Mobius strip triangles. All other simplices had their weight set to 1.

The input vector is the one I found before:

but with . Visually is the given below (blue arrows):

center

The optimal solution was:

The 1-chain just wraps around the Mobius strip but with weights :

center

Or visually (where and ):

Or just the fractional components:

Testing the chains in Python shows that

but

So we can’t make it a valid homologous chain by simply doubling the chain coefficients! Rounding doesn’t work either!

Gurobi confirms the result given by my solver:

ampl: model counterexample.mod;
ampl: option solver gurobi;
ampl: solve;
Gurobi 12.0.1: optimal solution; objective 3.00009
28 simplex iterations
ampl: display Obj;
Obj = 3.00009

ampl: display xp;
xp [*] :=
 0 0      3 0      6 0      9 0     12 0     15 0     18 0     21 0     24 0
 1 0      4 0      7 0     10 0     13 0     16 0.5   19 0     22 0     25 0
 2 0.5    5 0      8 0.5   11 0     14 0.5   17 0     20 0     23 0.5   26 0
;

ampl: display xm;
xm [*] :=
 0 0      3 0      6 0      9 0     12 0     15 0     18 0     21 0     24 0
 1 0      4 0      7 0     10 0     13 0     16 0     19 0     22 0     25 0.5
 2 0      5 0      8 0     11 0     14 0     17 0     20 0     23 0     26 0
;

ampl: display yp;
yp [*] :=
 0 0.5    3 0      6 0      9 0     12 0     15 0     18 0     21 0     24 0
 1 1      4 0      7 0     10 0     13 0.5   16 0     19 0     22 0     25 0
 2 0      5 0      8 0.5   11 0     14 0     17 0     20 0     23 0     26 0
;

ampl: display ym;
ym [*] :=
 0 0      3 0      6 0      9 0     12 0     15 0     18 0     21 0     24 0
 1 0      4 0      7 1.5   10 1     13 0     16 0.5   19 0     22 0.5   25 0
 2 0.5    5 0.5    8 0     11 0.5   14 0     17 0.5   20 0.5   23 0.5   26 0
;