# Why does this simple code with Eliminate not give any result?

My goal is to obtain the function $$s$$ defined in the code below as a function of $$\chi_1$$, $$\chi_2$$, $$\chi_3$$. The code runs but never ends, although the problem does not seem too hard to solve for a computer. Any idea what the problem could be? I believe it should be solvable, unless the $$\chi$$'s are not all independent, but I have not been able to use Eliminate for showing that neither.

The code:

{s == (\[Tau][1, 2] \[Tau][3, 4] \[Tau][5, 6])/( \[Tau][1, 6] \[Tau][2, 3] \[Tau][4, 5]), \[Chi]1 == (\[Tau][1, 2] \[Tau][3,4])/(\[Tau][1, 3] \[Tau][2, 4]), \[Chi]2 == (\[Tau][3, 4] \[Tau][5, 6])/(\[Tau][3, 5] \[Tau][4, 6]), \[Chi]3 == (\[Tau][1,2] \[Tau][5, 6])/(\[Tau][1, 6] \[Tau][2, 5])} /. \[Tau][x_,y_] -> \[Tau][x] - \[Tau][y]
Eliminate[%, {\[Tau][1], \[Tau][2], \[Tau][3], \[Tau][4], \[Tau][5], \[Tau][6]}]

• There might not be a solution, since there are four equations and you want to eliminate six variables. Jul 19, 2021 at 18:14
• @DanielLichtblau: It looks like there are only really 5 degrees of freedom in the $\tau$ variables, since we can add the same constant to all of them without affecting the values of $s$, $\chi_1$, $\chi_2$, and $\chi_3$. Still not enough to expect a solution, though. Jul 19, 2021 at 19:04
• Mm I thought I could cook up any cross-ratio with only $3$ variables, but maybe I'm wrong. Using other variables it worked, so maybe the current choice of variables is inadequate for doing so.
– Pxx
Jul 19, 2021 at 19:11

eqns = {s == (\[Tau][1, 2] \[Tau][3, 4] \[Tau][5, 6])/( \[Tau][1, 6] \[Tau][2, 3] \[Tau][4, 5]), \[Chi]1 == (\[Tau][1, 2] \[Tau][3,4])/(\[Tau][1, 3] \[Tau][2, 4]), \[Chi]2 == (\[Tau][3, 4] \[Tau][5, 6])/(\[Tau][3, 5] \[Tau][4, 6]), \[Chi]3 == (\[Tau][1,2] \[Tau][5, 6])/(\[Tau][1, 6] \[Tau][2, 5])} /. \[Tau][x_,y_] -> \[Tau][x] - \[Tau][y]


Note that we can add a constant to all variables $$\tau_i$$ without affecting the variables $$s$$, $$\chi_1$$, $$\chi_2$$, $$\chi_3$$. So let's set $$\tau_6 \to 0$$ (i.e., add $$-\tau_6$$ to all of the $$\tau_i$$):

modeqns = eqns /. {\[Tau][6] -> 0}


We can then get rules for eliminating $$\tau_1$$, $$\tau_3$$, and $$\tau_5$$ via last three equations. (I picked these three because of the symmetry of the equations.)

tausol = Solve[Drop[modeqns, 1], {\[Tau][1], \[Tau][3], \[Tau][5]}];


If we then apply this to the right-hand side of the first equation, we can see if $$\tau_1$$ and $$\tau_5$$ remain:

ssoln = FullSimplify[modeqns[[1, 2]] /. tausol]


We are (somewhat) in luck! If $$\tau_1$$ or $$\tau_5$$ had remained in this expression, we would have concluded that we could not write $$s$$ as a function of the $$\chi_i$$'s alone; but since they do not appear, we can conclude that this is the correct expression for $$s$$. However, we have two possible solutions; this is because the equations for $$\tau_1$$, $$\tau_3$$, and $$\tau_5$$ are quadratic in these variables.

However, this implies that we can find a quadratic polynomial in $$s$$ which the quantities $$s$$, $$\chi_1$$, $$\chi_2$$, and $$\chi_3$$ always satisfy:

poly = Collect[Together[(s - ssoln[[1]]) (s - ssoln[[2]])], s, Simplify]

(* s^2 - (\[Chi]1 \[Chi]2 \[Chi]3)/((-1 + \[Chi]1) (-1 + \[Chi]2))
+ ( s (\[Chi]1 \[Chi]2 (-1 + \[Chi]3) - \[Chi]1 \[Chi]3 - \[Chi]2  \[Chi]3))/((-1 + \[Chi]1) (-1 + \[Chi]2)) *)


So we should always have $$s^2 + \left[\frac{ \chi_1 \chi_2 \chi_3 - \chi_1 \chi_2 - \chi_2 \chi_3 - \chi_1 \chi_3}{(\chi_1 - 1)(\chi_2 - 1)} \right] s - \frac{\chi_1 \chi_2 \chi_3}{(\chi_1 - 1)(\chi_2 - 1)} = 0.$$ Let's check:

rules = eqns /. Equal -> Rule;
FullSimplify[poly /. rules]

(* 0 *)


Notes:

• In a previous version of this answer, I had found a unique answer for $$s$$ in terms of the $$\chi_i$$'s, but I now believe that I (or Mathematica) had been discarding one of the above two roots, and so my expression only held about half the time when I plugged in random values for the $$\tau_i$$ variables.

• It's also not entirely clear to me why the above expression is not symmetric under the exchange of the $$\chi_i$$'s, given the symmetry of the equations. I will think on this further.

You can get the desired function s of chii very fast with GroebnerBasis forcing it to delete the taui.

eqs = {s == (\[Tau][1, 2] \[Tau][3, 4] \[Tau][5, 6])/(\[Tau][1,
6] \[Tau][2, 3] \[Tau][4, 5]), \[Chi]1 == (\[Tau][1,
2] \[Tau][3, 4])/(\[Tau][1, 3] \[Tau][2,
4]), \[Chi]2 == (\[Tau][3, 4] \[Tau][5, 6])/(\[Tau][3,
5] \[Tau][4, 6]), \[Chi]3 == (\[Tau][1, 2] \[Tau][5,
6])/(\[Tau][1, 6] \[Tau][2, 5])} /. \[Tau][x_, y_] -> \[Tau][x] - \[Tau][y];

gb = GroebnerBasis[Subtract @@@ eqs, s, Table[\[Tau][i], {i, 6}]];

gb[[1]]
(*   s^2 - s^2 \[Chi]1 - s^2 \[Chi]2 - s \[Chi]1 \[Chi]2 +
s^2 \[Chi]1 \[Chi]2 - s \[Chi]1 \[Chi]3 -
s \[Chi]2 \[Chi]3 - \[Chi]1 \[Chi]2 \[Chi]3 +
s \[Chi]1 \[Chi]2 \[Chi]3   *)

rules = eqs /. Equal -> Rule

FullSimplify[gb[[1]] /. rules]
(*   0   *)

Solve[gb[[1]] == 0, s]


Solve for s gives the same result than @MichaelSeifert gets with his "poly".

• Nice job. One of these days I'm going to figure out how to use GroebnerBasis correctly; I've played around with it in the past but I've never quite grokked what it does and how to use it. Jul 21, 2021 at 2:31