Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Suppose we have an expression of the form:


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:


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:


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:


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



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

share|improve this question
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. –  Daniel Lichtblau Aug 19 '12 at 15:09
No problem. I've added the first of the $j$ from the linked list at the bottom. –  Jimeree Aug 19 '12 at 15:16
I've also added some data for the first part of the question. –  Jimeree Aug 19 '12 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). –  Guess who it is. Aug 19 '12 at 16:05

1 Answer 1

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[402]= -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];


(* Out[427]= 3 *)

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


(* Out[428]= -1 *)

Second one is not too bad to work with.


(* Out[429]= 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[[2]], D[ff[[2]], z1], z1]

(* Out[430]= \
-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.

share|improve this answer
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! –  Jimeree Aug 20 '12 at 8:37
@DanielLichtblau There should be ff = Factor[diff][[1]]; otherwise one should call ff[[1,1]] and ff[[1,2]] instead of ff[[1]] and ff[[2]], +1. –  Artes Aug 20 '12 at 8:53
@Artes Right. I had earlier removed the List[] wrappers, and forgot to mention that in my response. –  Daniel Lichtblau Aug 20 '12 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. –  Daniel Lichtblau Aug 20 '12 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. –  Jimeree Aug 20 '12 at 17:57

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.