# Finding mappings between expressions

Suppose we have an expression of the form:

$j=\frac{A\left(t\right)}{B\left(t\right)}=\frac{C\left(s\right)}{D\left(s\right)}$

That is, $j$ can be expressed either as a function of $t$, or as a function of $s$. Is it possible to use Mathematica to find the substitution $t\rightarrow h\left(s\right)$ which takes us from the first of these forms for $j$ to the second, assuming both are known?

Actually, my own problem is slightly more complicated than this. Suppose again that we have:

$j=\frac{A\left(t\right)}{B\left(t\right)}$

And that we know this form of $j$ exactly (specifically, I am looking at the Index 36 $j$-invariants on page 5 here: http://mysite.science.uottawa.ca/asebbar/publi/mcse.pdf). This time, we want to find a substitution $t\rightarrow h\left(z_{1},z_{2}\right)$ which puts $j$ into the form:

$j=\frac{4f\left(z_{1},z_{2}\right)^{3}}{4f\left(z_{1},z_{2}\right)^{3}-27g\left(z_{1},z_{2}\right)^{2}}$

Where $f$ is a homogenous polynomial of degree 8 in each of the $z_i$, and $g$ is a homogenous polynomial of degree 12 in each of the $z_i$. Is it possible to write a Mathematica script to identify these kinds of substitutions?

Many thanks!

Edit: Here is the first $j$ from the linked document, in Mathematica input form:

j1:={(t^3+4)^3(t^3+6t^2+4)^3(t^6-6t^5+36t^4+8t^3-24t^2+16)^3}/
{t^6(t+1)^3(t^2-t+1)^3(t-2)^6(t^2+2t+4)^6}


Edit 2: Here are some explicit $j$ for the first part of my question:

j2s:={16(1+14s^4+s^8)^3}/{s^4(s^4-1)^4}

j2t:={(t^4-4t^3+8t^2+16t+16)^3(t^4+4t^3+8t^2-16t+16)^3}/
{t^4(t-2)^4(t+2)^4(t^2+4)^4}


According to page 21 here, the subsitution in this case is $s\rightarrow t/2$.

• It would be helpful if you could provide cut-and=pastgable Mathematica input for one such example of an A(t)/B(t). That said, this appears to be a nontrivial problem and there is no guarantee of a reward for the extra typing I am asking you to do. Aug 19, 2012 at 15:09
• No problem. I've added the first of the $j$ from the linked list at the bottom. Aug 19, 2012 at 15:16
• I've also added some data for the first part of the question. Aug 19, 2012 at 15:35
• Have you seen the docs for KleinInvariantJ[]? You might also be interested in what Trott does here (except he's using the RRCF instead of the Klein $j$-invariant). Aug 19, 2012 at 16:05
• would translating the expression into s-expressions make this task easier?
– X10D
May 7, 2020 at 12:57

I don't think the second problem can be done. Here is what I tried.

Since we can normalize a coefficient to be 1 in the substitution, and given the stated degree restrictions, the substitution will be of the form t->z1+a*z2.

num = Numerator[j1 /. {t -> z1 + a*z2}];
den = Denominator[j1 /. {t -> z1 + a*z2}];


The form of g is -27*(denominator-numerator).

diff = den - num;


One think to notice is we cannot make this homogeneous. A check of the degree 33 coefficient in z1 shows that we have a term other than in z2^3.

Expand[Coefficient[diff, z1, 33]]

(* Out= -695 - 7140*a^3*z2^3 *)


Anyway, we try to see if we can formulate this as a square (upon appropriate substitution for 'a'). We start by factoring it; we can work separately with each factor.

ff = Factor[diff];

Length[ff]

(* Out= 3 *)


First one is just a constant so nothing to do there.

ff[]

(* Out= -1 *)


Second one is not too bad to work with.

ff[]

(* Out= 256 - 64*z1^2 + 256*z1^3 - 48*z1^5 + 960*z1^6 + 15*z1^8 +
232*z1^9 - z1^11 + z1^12 -
128*a*z1*z2 + 768*a*z1^2*z2 - 240*a*z1^4*z2 + 5760*a*z1^5*z2 +
120*a*z1^7*z2 +
2088*a*z1^8*z2 - 11*a*z1^10*z2 + 12*a*z1^11*z2 - 64*a^2*z2^2 +
768*a^2*z1*z2^2 -
480*a^2*z1^3*z2^2 + 14400*a^2*z1^4*z2^2 + 420*a^2*z1^6*z2^2 +
8352*a^2*z1^7*z2^2 -
55*a^2*z1^9*z2^2 + 66*a^2*z1^10*z2^2 + 256*a^3*z2^3 -
480*a^3*z1^2*z2^3 +
19200*a^3*z1^3*z2^3 + 840*a^3*z1^5*z2^3 + 19488*a^3*z1^6*z2^3 -
165*a^3*z1^8*z2^3 + 220*a^3*z1^9*z2^3 - 240*a^4*z1*z2^4 +
14400*a^4*z1^2*z2^4 +
1050*a^4*z1^4*z2^4 + 29232*a^4*z1^5*z2^4 - 330*a^4*z1^7*z2^4 +
495*a^4*z1^8*z2^4 -
48*a^5*z2^5 + 5760*a^5*z1*z2^5 + 840*a^5*z1^3*z2^5 +
29232*a^5*z1^4*z2^5 -
462*a^5*z1^6*z2^5 + 792*a^5*z1^7*z2^5 + 960*a^6*z2^6 +
420*a^6*z1^2*z2^6 +
19488*a^6*z1^3*z2^6 - 462*a^6*z1^5*z2^6 + 924*a^6*z1^6*z2^6 +
120*a^7*z1*z2^7 +
8352*a^7*z1^2*z2^7 - 330*a^7*z1^4*z2^7 + 792*a^7*z1^5*z2^7 +
15*a^8*z2^8 +
2088*a^8*z1*z2^8 - 165*a^8*z1^3*z2^8 + 495*a^8*z1^4*z2^8 +
232*a^9*z2^9 -
55*a^9*z1^2*z2^9 + 220*a^9*z1^3*z2^9 - 11*a^10*z1*z2^10 +
66*a^10*z1^2*z2^10 -
a^11*z2^11 + 12*a^11*z1*z2^11 + a^12*z2^12 *)


Here we take the resultant of this factor with its derivative with respect to z1. If there is a nontrivial square (for some value(s) of 'a') then that will manifest as a resultant polynomial in {z2,a} (or so he said).

rr = Resultant[ff[], D[ff[], z1], z1]

(* Out= \
-1445873207846766167649299735454865070627269701494463352799232 *)


It's constant, so no hope for proceeding further. That said, I may have misunderstood the question or made a misstep somewhere in the analysis.

• You might be right. Still, I'm not sure the substitution $t\rightarrow z_{1}+az_{2}$ is appropriate. This is because the numerator of the $j\left(f,g\right)$ is degree 24 in each of the $z_i$, as is the denominator. However, the numerator of the $j\left(t\right)$ is degree 30 in $t$, but the denominator is degree 33 in $t$. Given this, I think the transformation should probably be some quotient $t\rightarrow P\left(z_{1},z_{2}\right)/Q\left(z_{1},z_{2}\right)$, maybe $\left(z_{1}+az_{2}\right)^{n}/\left(z_{1}+bz_{2}\right)^{m}$? I'm not sure though. Thanks for the help so far at any rate! Aug 20, 2012 at 8:37
• @DanielLichtblau There should be ff = Factor[diff][]; otherwise one should call ff[[1,1]] and ff[[1,2]] instead of ff[] and ff[], +1. Aug 20, 2012 at 8:53
• @Artes Right. I had earlier removed the List[] wrappers, and forgot to mention that in my response. Aug 20, 2012 at 14:19
• Good point about the possibility of substituting a rational function rather than a polynomial. But I still do not see how to get the degrees to work out in the numerator. The denominator is less of an issue because it is explicitly a difference and thus can (perhaps) get the correct degrees from cancellation of highest order terms. Aug 20, 2012 at 14:25
• Can't we just choose $n$ and $m$ such that the highest powers of the $z_i$ on the numerator are 24? ($n$ and $m$ need not be integers.) Of course this will be horrible for this particular substitution, but maybe it would be easier for another. Sorry if I'm missing something obvious! But yes, I admit that the second part of my question might be a huge ask. Aug 20, 2012 at 17:57