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):

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

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
;