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$.

  • 1
    $\begingroup$ 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. $\endgroup$ Aug 19, 2012 at 15:09
  • $\begingroup$ No problem. I've added the first of the $j$ from the linked list at the bottom. $\endgroup$
    – Jimeree
    Aug 19, 2012 at 15:16
  • $\begingroup$ I've also added some data for the first part of the question. $\endgroup$
    – Jimeree
    Aug 19, 2012 at 15:35
  • $\begingroup$ 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). $\endgroup$ Aug 19, 2012 at 16:05
  • $\begingroup$ would translating the expression into s-expressions make this task easier? $\endgroup$
    – X10D
    May 7, 2020 at 12:57

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.

  • $\begingroup$ 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! $\endgroup$
    – Jimeree
    Aug 20, 2012 at 8:37
  • $\begingroup$ @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. $\endgroup$
    – Artes
    Aug 20, 2012 at 8:53
  • $\begingroup$ @Artes Right. I had earlier removed the List[] wrappers, and forgot to mention that in my response. $\endgroup$ Aug 20, 2012 at 14:19
  • $\begingroup$ 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. $\endgroup$ Aug 20, 2012 at 14:25
  • $\begingroup$ 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. $\endgroup$
    – Jimeree
    Aug 20, 2012 at 17:57

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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