LaTeX to CAS translator

Jump to navigation Jump to search

This mockup demonstrates the concept of TeX to Computer Algebra System (CAS) conversion.

The demo-application converts LaTeX functions which directly translate to CAS counterparts.

Functions without explicit CAS support are available for translation via a DRMF package (under development).

The following LaTeX input ...

{\displaystyle \begin{align} (z-1) \frac{d}{dz} P_n^{(\alpha,\beta)}(z) &= \frac{1}{2} (z-1)(1+\alpha+\beta+n)P_{n-1}^{(\alpha+1,\beta+1)} \\ &= n P_n^{(\alpha,\beta)} - (\alpha+n) P_{n-1}^{(\alpha,\beta+1)} \\ &=(1+\alpha+\beta+n) \left( P_n^{(\alpha,\beta+1)} - P_{n}^{(\alpha,\beta)} \right) \\ &=(\alpha+n) P_n^{(\alpha-1,\beta+1)} - \alpha P_n^{(\alpha,\beta)} \\ &=\frac{2(n+1) P_{n+1}^{(\alpha,\beta-1)} - \left(z(1+\alpha+\beta+n)+\alpha+1+n-\beta \right) P_n^{(\alpha,\beta)}}{1+z} \\ &=\frac{(2\beta+n+nz) P_n^{(\alpha,\beta)} - 2(\beta+n) P_n^{(\alpha,\beta-1)}}{1+z} \\ &=\frac{1-z}{1+z} \left( \beta P_n^{(\alpha,\beta)} - (\beta+n) P_{n}^{(\alpha+1,\beta-1)} \right) \, . \end{align}}

... is translated to the CAS output ...

Semantic latex: \begin{align}(z - 1) \deriv [1]{ }{z} \JacobipolyP{\alpha}{\beta}{n}@{z} &= \frac{1}{2} (z-1)(1+\alpha+\beta+n)P_{n-1}^{(\alpha+1,\beta+1)} \\ &= n P_n^{(\alpha,\beta)} - (\alpha+n) P_{n-1}^{(\alpha,\beta+1)} \\ &=(1 + \alpha + \beta + n)(P_n^{(\alpha,\beta+1)} - P_{n}^{(\alpha,\beta)}) \\ &=(\alpha+n) P_n^{(\alpha-1,\beta+1)} - \alpha P_n^{(\alpha,\beta)} \\ &= \frac{2(n + 1) P_{n+1}^{(\alpha,\beta-1)} -(z(1 + \alpha + \beta + n) + \alpha + 1 + n - \beta) P_n^{(\alpha,\beta)}}{1+z} \\ &=\frac{(2\beta+n+nz) P_n^{(\alpha,\beta)} - 2(\beta+n) P_n^{(\alpha,\beta-1)}}{1+z} \\ &= \frac{1-z}{1+z}(\beta P_n^{(\alpha,\beta)} -(\beta + n) P_{n}^{(\alpha+1,\beta-1)}) .\end{align}

Confidence: 0.65633676869532

Mathematica

Translation: (z - 1)*D[JacobiP[n, \[Alpha], \[Beta], z], {z, 1}] == Divide[1,2]*(z - 1)*(1 + \[Alpha]+ \[Beta]+ n)*(Subscript[P, n - 1])^(\[Alpha]+ 1 , \[Beta]+ 1) == n*(Subscript[P, n])^(\[Alpha], \[Beta])-(\[Alpha]+ n)*(Subscript[P, n - 1])^(\[Alpha], \[Beta]+ 1) == (1 + \[Alpha]+ \[Beta]+ n)*((Subscript[P, n])^(\[Alpha], \[Beta]+ 1)- (Subscript[P, n])^(\[Alpha], \[Beta])) == (\[Alpha]+ n)*(Subscript[P, n])^(\[Alpha]- 1 , \[Beta]+ 1)- \[Alpha]*(Subscript[P, n])^(\[Alpha], \[Beta]) == Divide[2*(n + 1)*(Subscript[P, n + 1])^(\[Alpha], \[Beta]- 1)-(z*(1 + \[Alpha]+ \[Beta]+ n)+ \[Alpha]+ 1 + n - \[Beta])*(Subscript[P, n])^(\[Alpha], \[Beta]),1 + z] == Divide[(2*\[Beta]+ n + n*z)*(Subscript[P, n])^(\[Alpha], \[Beta])- 2*(\[Beta]+ n)*(Subscript[P, n])^(\[Alpha], \[Beta]- 1),1 + z] == Divide[1 - z,1 + z]*(\[Beta]*(Subscript[P, n])^(\[Alpha], \[Beta])-(\[Beta]+ n)*(Subscript[P, n])^(\[Alpha]+ 1 , \[Beta]- 1))

Information

Sub Equations

  • (z - 1)*D[JacobiP[n, \[Alpha], \[Beta], z], {z, 1}] = Divide[1,2]*(z - 1)*(1 + \[Alpha]+ \[Beta]+ n)*(Subscript[P, n - 1])^(\[Alpha]+ 1 , \[Beta]+ 1)
  • Divide[1,2]*(z - 1)*(1 + \[Alpha]+ \[Beta]+ n)*(Subscript[P, n - 1])^(\[Alpha]+ 1 , \[Beta]+ 1) = n*(Subscript[P, n])^(\[Alpha], \[Beta])-(\[Alpha]+ n)*(Subscript[P, n - 1])^(\[Alpha], \[Beta]+ 1)
  • n*(Subscript[P, n])^(\[Alpha], \[Beta])-(\[Alpha]+ n)*(Subscript[P, n - 1])^(\[Alpha], \[Beta]+ 1) = (1 + \[Alpha]+ \[Beta]+ n)*((Subscript[P, n])^(\[Alpha], \[Beta]+ 1)- (Subscript[P, n])^(\[Alpha], \[Beta]))
  • (1 + \[Alpha]+ \[Beta]+ n)*((Subscript[P, n])^(\[Alpha], \[Beta]+ 1)- (Subscript[P, n])^(\[Alpha], \[Beta])) = (\[Alpha]+ n)*(Subscript[P, n])^(\[Alpha]- 1 , \[Beta]+ 1)- \[Alpha]*(Subscript[P, n])^(\[Alpha], \[Beta])
  • (\[Alpha]+ n)*(Subscript[P, n])^(\[Alpha]- 1 , \[Beta]+ 1)- \[Alpha]*(Subscript[P, n])^(\[Alpha], \[Beta]) = Divide[2*(n + 1)*(Subscript[P, n + 1])^(\[Alpha], \[Beta]- 1)-(z*(1 + \[Alpha]+ \[Beta]+ n)+ \[Alpha]+ 1 + n - \[Beta])*(Subscript[P, n])^(\[Alpha], \[Beta]),1 + z]
  • Divide[2*(n + 1)*(Subscript[P, n + 1])^(\[Alpha], \[Beta]- 1)-(z*(1 + \[Alpha]+ \[Beta]+ n)+ \[Alpha]+ 1 + n - \[Beta])*(Subscript[P, n])^(\[Alpha], \[Beta]),1 + z] = Divide[(2*\[Beta]+ n + n*z)*(Subscript[P, n])^(\[Alpha], \[Beta])- 2*(\[Beta]+ n)*(Subscript[P, n])^(\[Alpha], \[Beta]- 1),1 + z]
  • Divide[(2*\[Beta]+ n + n*z)*(Subscript[P, n])^(\[Alpha], \[Beta])- 2*(\[Beta]+ n)*(Subscript[P, n])^(\[Alpha], \[Beta]- 1),1 + z] = Divide[1 - z,1 + z]*(\[Beta]*(Subscript[P, n])^(\[Alpha], \[Beta])-(\[Beta]+ n)*(Subscript[P, n])^(\[Alpha]+ 1 , \[Beta]- 1))

Free variables

  • Subscript[P, n + 1]
  • Subscript[P, n - 1]
  • Subscript[P, n]
  • \[Alpha]
  • \[Beta]
  • n
  • z

Symbol info

  • Jacobi polynomial; Example: \JacobipolyP{\alpha}{\beta}{n}@{x}

Will be translated to: JacobiP[$2, $0, $1, $3] Relevant links to definitions: DLMF: http://dlmf.nist.gov/18.3#T1.t1.r2 Mathematica: https://reference.wolfram.com/language/ref/JacobiP.html?q=JacobiP

  • Could be the second Feigenbaum constant.

But this system doesn't know how to translate it as a constant. It was translated as a general letter.

  • Derivative; Example: \deriv[n]{f}{x}

Will be translated to: D[$1, {$2, $0}] Relevant links to definitions: DLMF: http://dlmf.nist.gov/1.4#E4 Mathematica: https://reference.wolfram.com/language/ref/D.html

Tests

Symbolic
Numeric

SymPy

Translation: (z - 1)*diff(jacobi(n, Symbol('alpha'), Symbol('beta'), z), z, 1) == (1)/(2)*(z - 1)*(1 + Symbol('alpha')+ Symbol('beta')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha')+ 1 , Symbol('beta')+ 1) == n*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('alpha')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha'), Symbol('beta')+ 1) == (1 + Symbol('alpha')+ Symbol('beta')+ n)*((Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')+ 1)- (Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))) == (Symbol('alpha')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')- 1 , Symbol('beta')+ 1)- Symbol('alpha')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')) == (2*(n + 1)*(Symbol('{P}_{n + 1}'))**(Symbol('alpha'), Symbol('beta')- 1)-(z*(1 + Symbol('alpha')+ Symbol('beta')+ n)+ Symbol('alpha')+ 1 + n - Symbol('beta'))*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))/(1 + z) == ((2*Symbol('beta')+ n + n*z)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))- 2*(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')- 1))/(1 + z) == (1 - z)/(1 + z)*(Symbol('beta')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')+ 1 , Symbol('beta')- 1))

Information

Sub Equations

  • (z - 1)*diff(jacobi(n, Symbol('alpha'), Symbol('beta'), z), z, 1) = (1)/(2)*(z - 1)*(1 + Symbol('alpha')+ Symbol('beta')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha')+ 1 , Symbol('beta')+ 1)
  • (1)/(2)*(z - 1)*(1 + Symbol('alpha')+ Symbol('beta')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha')+ 1 , Symbol('beta')+ 1) = n*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('alpha')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha'), Symbol('beta')+ 1)
  • n*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('alpha')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha'), Symbol('beta')+ 1) = (1 + Symbol('alpha')+ Symbol('beta')+ n)*((Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')+ 1)- (Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))
  • (1 + Symbol('alpha')+ Symbol('beta')+ n)*((Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')+ 1)- (Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))) = (Symbol('alpha')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')- 1 , Symbol('beta')+ 1)- Symbol('alpha')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))
  • (Symbol('alpha')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')- 1 , Symbol('beta')+ 1)- Symbol('alpha')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')) = (2*(n + 1)*(Symbol('{P}_{n + 1}'))**(Symbol('alpha'), Symbol('beta')- 1)-(z*(1 + Symbol('alpha')+ Symbol('beta')+ n)+ Symbol('alpha')+ 1 + n - Symbol('beta'))*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))/(1 + z)
  • (2*(n + 1)*(Symbol('{P}_{n + 1}'))**(Symbol('alpha'), Symbol('beta')- 1)-(z*(1 + Symbol('alpha')+ Symbol('beta')+ n)+ Symbol('alpha')+ 1 + n - Symbol('beta'))*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))/(1 + z) = ((2*Symbol('beta')+ n + n*z)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))- 2*(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')- 1))/(1 + z)
  • ((2*Symbol('beta')+ n + n*z)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))- 2*(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')- 1))/(1 + z) = (1 - z)/(1 + z)*(Symbol('beta')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')+ 1 , Symbol('beta')- 1))

Free variables

  • Symbol('alpha')
  • Symbol('beta')
  • Symbol('{P}_{n + 1}')
  • Symbol('{P}_{n - 1}')
  • Symbol('{P}_{n}')
  • n
  • z

Symbol info

  • Jacobi polynomial; Example: \JacobipolyP{\alpha}{\beta}{n}@{x}

Will be translated to: jacobi($2, $0, $1, $3) Relevant links to definitions: DLMF: http://dlmf.nist.gov/18.3#T1.t1.r2 SymPy: https://docs.sympy.org/latest/modules/functions/special.html#jacobi-polynomials

  • Could be the second Feigenbaum constant.

But this system doesn't know how to translate it as a constant. It was translated as a general letter.

  • Derivative; Example: \deriv[n]{f}{x}

Will be translated to: diff($1, $2, $0) Relevant links to definitions: DLMF: http://dlmf.nist.gov/1.4#E4 SymPy: https://docs.sympy.org/latest/tutorial/calculus.html#derivatives

Tests

Symbolic
Numeric

Maple

Translation: (z - 1)*diff(JacobiP(n, alpha, beta, z), [z$(1)]) = (1)/(2)*(z - 1)*(1 + alpha + beta + n)*(P[n - 1])^(alpha + 1 , beta + 1) = n*(P[n])^(alpha , beta)-(alpha + n)*(P[n - 1])^(alpha , beta + 1) = (1 + alpha + beta + n)*((P[n])^(alpha , beta + 1)- (P[n])^(alpha , beta)) = (alpha + n)*(P[n])^(alpha - 1 , beta + 1)- alpha*(P[n])^(alpha , beta) = (2*(n + 1)*(P[n + 1])^(alpha , beta - 1)-(z*(1 + alpha + beta + n)+ alpha + 1 + n - beta)*(P[n])^(alpha , beta))/(1 + z) = ((2*beta + n + n*z)*(P[n])^(alpha , beta)- 2*(beta + n)*(P[n])^(alpha , beta - 1))/(1 + z) = (1 - z)/(1 + z)*(beta*(P[n])^(alpha , beta)-(beta + n)*(P[n])^(alpha + 1 , beta - 1))

Information

Sub Equations

  • (z - 1)*diff(JacobiP(n, alpha, beta, z), [z$(1)]) = (1)/(2)*(z - 1)*(1 + alpha + beta + n)*(P[n - 1])^(alpha + 1 , beta + 1)
  • (1)/(2)*(z - 1)*(1 + alpha + beta + n)*(P[n - 1])^(alpha + 1 , beta + 1) = n*(P[n])^(alpha , beta)-(alpha + n)*(P[n - 1])^(alpha , beta + 1)
  • n*(P[n])^(alpha , beta)-(alpha + n)*(P[n - 1])^(alpha , beta + 1) = (1 + alpha + beta + n)*((P[n])^(alpha , beta + 1)- (P[n])^(alpha , beta))
  • (1 + alpha + beta + n)*((P[n])^(alpha , beta + 1)- (P[n])^(alpha , beta)) = (alpha + n)*(P[n])^(alpha - 1 , beta + 1)- alpha*(P[n])^(alpha , beta)
  • (alpha + n)*(P[n])^(alpha - 1 , beta + 1)- alpha*(P[n])^(alpha , beta) = (2*(n + 1)*(P[n + 1])^(alpha , beta - 1)-(z*(1 + alpha + beta + n)+ alpha + 1 + n - beta)*(P[n])^(alpha , beta))/(1 + z)
  • (2*(n + 1)*(P[n + 1])^(alpha , beta - 1)-(z*(1 + alpha + beta + n)+ alpha + 1 + n - beta)*(P[n])^(alpha , beta))/(1 + z) = ((2*beta + n + n*z)*(P[n])^(alpha , beta)- 2*(beta + n)*(P[n])^(alpha , beta - 1))/(1 + z)
  • ((2*beta + n + n*z)*(P[n])^(alpha , beta)- 2*(beta + n)*(P[n])^(alpha , beta - 1))/(1 + z) = (1 - z)/(1 + z)*(beta*(P[n])^(alpha , beta)-(beta + n)*(P[n])^(alpha + 1 , beta - 1))

Free variables

  • P[n + 1]
  • P[n - 1]
  • P[n]
  • alpha
  • beta
  • n
  • z

Symbol info

  • Jacobi polynomial; Example: \JacobipolyP{\alpha}{\beta}{n}@{x}

Will be translated to: JacobiP($2, $0, $1, $3) Relevant links to definitions: DLMF: http://dlmf.nist.gov/18.3#T1.t1.r2 Maple: https://www.maplesoft.com/support/help/maple/view.aspx?path=JacobiP

  • Could be the second Feigenbaum constant.

But this system doesn't know how to translate it as a constant. It was translated as a general letter.

  • Derivative; Example: \deriv[n]{f}{x}

Will be translated to: diff($1, [$2$($0)]) Relevant links to definitions: DLMF: http://dlmf.nist.gov/1.4#E4 Maple: https://www.maplesoft.com/support/help/Maple/view.aspx?path=diff

Tests

Symbolic
Numeric

Dependency Graph Information

Includes

Is part of

Complete translation information:

{
  "id" : "FORMULA_2dc151f82e794578627cf5c59766bd42",
  "formula" : "\\begin{align}\n(z-1) \\frac{d}{dz} P_n^{(\\alpha,\\beta)}(z) &= \\frac{1}{2} (z-1)(1+\\alpha+\\beta+n)P_{n-1}^{(\\alpha+1,\\beta+1)} \\\\\n&= n P_n^{(\\alpha,\\beta)} - (\\alpha+n) P_{n-1}^{(\\alpha,\\beta+1)} \\\\\n&=(1+\\alpha+\\beta+n) \\left( P_n^{(\\alpha,\\beta+1)} - P_{n}^{(\\alpha,\\beta)} \\right) \\\\\n&=(\\alpha+n) P_n^{(\\alpha-1,\\beta+1)} - \\alpha P_n^{(\\alpha,\\beta)} \\\\\n&=\\frac{2(n+1) P_{n+1}^{(\\alpha,\\beta-1)} - \\left(z(1+\\alpha+\\beta+n)+\\alpha+1+n-\\beta \\right) P_n^{(\\alpha,\\beta)}}{1+z} \\\\\n&=\\frac{(2\\beta+n+nz) P_n^{(\\alpha,\\beta)} - 2(\\beta+n) P_n^{(\\alpha,\\beta-1)}}{1+z} \\\\\n&=\\frac{1-z}{1+z} \\left( \\beta P_n^{(\\alpha,\\beta)} - (\\beta+n) P_{n}^{(\\alpha+1,\\beta-1)} \\right)  .\n\\end{align}",
  "semanticFormula" : "\\begin{align}(z - 1) \\deriv [1]{ }{z} \\JacobipolyP{\\alpha}{\\beta}{n}@{z} &= \\frac{1}{2} (z-1)(1+\\alpha+\\beta+n)P_{n-1}^{(\\alpha+1,\\beta+1)} \\\\ &= n P_n^{(\\alpha,\\beta)} - (\\alpha+n) P_{n-1}^{(\\alpha,\\beta+1)} \\\\ &=(1 + \\alpha + \\beta + n)(P_n^{(\\alpha,\\beta+1)} - P_{n}^{(\\alpha,\\beta)}) \\\\ &=(\\alpha+n) P_n^{(\\alpha-1,\\beta+1)} - \\alpha P_n^{(\\alpha,\\beta)} \\\\ &= \\frac{2(n + 1) P_{n+1}^{(\\alpha,\\beta-1)} -(z(1 + \\alpha + \\beta + n) + \\alpha + 1 + n - \\beta) P_n^{(\\alpha,\\beta)}}{1+z} \\\\ &=\\frac{(2\\beta+n+nz) P_n^{(\\alpha,\\beta)} - 2(\\beta+n) P_n^{(\\alpha,\\beta-1)}}{1+z} \\\\ &= \\frac{1-z}{1+z}(\\beta P_n^{(\\alpha,\\beta)} -(\\beta + n) P_{n}^{(\\alpha+1,\\beta-1)}) .\\end{align}",
  "confidence" : 0.6563367686953199,
  "translations" : {
    "Mathematica" : {
      "translation" : "(z - 1)*D[JacobiP[n, \\[Alpha], \\[Beta], z], {z, 1}] == Divide[1,2]*(z - 1)*(1 + \\[Alpha]+ \\[Beta]+ n)*(Subscript[P, n - 1])^(\\[Alpha]+ 1 , \\[Beta]+ 1) == n*(Subscript[P, n])^(\\[Alpha], \\[Beta])-(\\[Alpha]+ n)*(Subscript[P, n - 1])^(\\[Alpha], \\[Beta]+ 1) == (1 + \\[Alpha]+ \\[Beta]+ n)*((Subscript[P, n])^(\\[Alpha], \\[Beta]+ 1)- (Subscript[P, n])^(\\[Alpha], \\[Beta])) == (\\[Alpha]+ n)*(Subscript[P, n])^(\\[Alpha]- 1 , \\[Beta]+ 1)- \\[Alpha]*(Subscript[P, n])^(\\[Alpha], \\[Beta]) == Divide[2*(n + 1)*(Subscript[P, n + 1])^(\\[Alpha], \\[Beta]- 1)-(z*(1 + \\[Alpha]+ \\[Beta]+ n)+ \\[Alpha]+ 1 + n - \\[Beta])*(Subscript[P, n])^(\\[Alpha], \\[Beta]),1 + z] == Divide[(2*\\[Beta]+ n + n*z)*(Subscript[P, n])^(\\[Alpha], \\[Beta])- 2*(\\[Beta]+ n)*(Subscript[P, n])^(\\[Alpha], \\[Beta]- 1),1 + z] == Divide[1 - z,1 + z]*(\\[Beta]*(Subscript[P, n])^(\\[Alpha], \\[Beta])-(\\[Beta]+ n)*(Subscript[P, n])^(\\[Alpha]+ 1 , \\[Beta]- 1))",
      "translationInformation" : {
        "subEquations" : [ "(z - 1)*D[JacobiP[n, \\[Alpha], \\[Beta], z], {z, 1}] = Divide[1,2]*(z - 1)*(1 + \\[Alpha]+ \\[Beta]+ n)*(Subscript[P, n - 1])^(\\[Alpha]+ 1 , \\[Beta]+ 1)", "Divide[1,2]*(z - 1)*(1 + \\[Alpha]+ \\[Beta]+ n)*(Subscript[P, n - 1])^(\\[Alpha]+ 1 , \\[Beta]+ 1) = n*(Subscript[P, n])^(\\[Alpha], \\[Beta])-(\\[Alpha]+ n)*(Subscript[P, n - 1])^(\\[Alpha], \\[Beta]+ 1)", "n*(Subscript[P, n])^(\\[Alpha], \\[Beta])-(\\[Alpha]+ n)*(Subscript[P, n - 1])^(\\[Alpha], \\[Beta]+ 1) = (1 + \\[Alpha]+ \\[Beta]+ n)*((Subscript[P, n])^(\\[Alpha], \\[Beta]+ 1)- (Subscript[P, n])^(\\[Alpha], \\[Beta]))", "(1 + \\[Alpha]+ \\[Beta]+ n)*((Subscript[P, n])^(\\[Alpha], \\[Beta]+ 1)- (Subscript[P, n])^(\\[Alpha], \\[Beta])) = (\\[Alpha]+ n)*(Subscript[P, n])^(\\[Alpha]- 1 , \\[Beta]+ 1)- \\[Alpha]*(Subscript[P, n])^(\\[Alpha], \\[Beta])", "(\\[Alpha]+ n)*(Subscript[P, n])^(\\[Alpha]- 1 , \\[Beta]+ 1)- \\[Alpha]*(Subscript[P, n])^(\\[Alpha], \\[Beta]) = Divide[2*(n + 1)*(Subscript[P, n + 1])^(\\[Alpha], \\[Beta]- 1)-(z*(1 + \\[Alpha]+ \\[Beta]+ n)+ \\[Alpha]+ 1 + n - \\[Beta])*(Subscript[P, n])^(\\[Alpha], \\[Beta]),1 + z]", "Divide[2*(n + 1)*(Subscript[P, n + 1])^(\\[Alpha], \\[Beta]- 1)-(z*(1 + \\[Alpha]+ \\[Beta]+ n)+ \\[Alpha]+ 1 + n - \\[Beta])*(Subscript[P, n])^(\\[Alpha], \\[Beta]),1 + z] = Divide[(2*\\[Beta]+ n + n*z)*(Subscript[P, n])^(\\[Alpha], \\[Beta])- 2*(\\[Beta]+ n)*(Subscript[P, n])^(\\[Alpha], \\[Beta]- 1),1 + z]", "Divide[(2*\\[Beta]+ n + n*z)*(Subscript[P, n])^(\\[Alpha], \\[Beta])- 2*(\\[Beta]+ n)*(Subscript[P, n])^(\\[Alpha], \\[Beta]- 1),1 + z] = Divide[1 - z,1 + z]*(\\[Beta]*(Subscript[P, n])^(\\[Alpha], \\[Beta])-(\\[Beta]+ n)*(Subscript[P, n])^(\\[Alpha]+ 1 , \\[Beta]- 1))" ],
        "freeVariables" : [ "Subscript[P, n + 1]", "Subscript[P, n - 1]", "Subscript[P, n]", "\\[Alpha]", "\\[Beta]", "n", "z" ],
        "tokenTranslations" : {
          "\\JacobipolyP" : "Jacobi polynomial; Example: \\JacobipolyP{\\alpha}{\\beta}{n}@{x}\nWill be translated to: JacobiP[$2, $0, $1, $3]\nRelevant links to definitions:\nDLMF:         http://dlmf.nist.gov/18.3#T1.t1.r2\nMathematica:  https://reference.wolfram.com/language/ref/JacobiP.html?q=JacobiP",
          "\\alpha" : "Could be the second Feigenbaum constant.\nBut this system doesn't know how to translate it as a constant. It was translated as a general letter.\n",
          "\\deriv1" : "Derivative; Example: \\deriv[n]{f}{x}\nWill be translated to: D[$1, {$2, $0}]\nRelevant links to definitions:\nDLMF:         http://dlmf.nist.gov/1.4#E4\nMathematica:  https://reference.wolfram.com/language/ref/D.html"
        }
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    },
    "SymPy" : {
      "translation" : "(z - 1)*diff(jacobi(n, Symbol('alpha'), Symbol('beta'), z), z, 1) == (1)/(2)*(z - 1)*(1 + Symbol('alpha')+ Symbol('beta')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha')+ 1 , Symbol('beta')+ 1) == n*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('alpha')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha'), Symbol('beta')+ 1) == (1 + Symbol('alpha')+ Symbol('beta')+ n)*((Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')+ 1)- (Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))) == (Symbol('alpha')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')- 1 , Symbol('beta')+ 1)- Symbol('alpha')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')) == (2*(n + 1)*(Symbol('{P}_{n + 1}'))**(Symbol('alpha'), Symbol('beta')- 1)-(z*(1 + Symbol('alpha')+ Symbol('beta')+ n)+ Symbol('alpha')+ 1 + n - Symbol('beta'))*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))/(1 + z) == ((2*Symbol('beta')+ n + n*z)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))- 2*(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')- 1))/(1 + z) == (1 - z)/(1 + z)*(Symbol('beta')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')+ 1 , Symbol('beta')- 1))",
      "translationInformation" : {
        "subEquations" : [ "(z - 1)*diff(jacobi(n, Symbol('alpha'), Symbol('beta'), z), z, 1) = (1)/(2)*(z - 1)*(1 + Symbol('alpha')+ Symbol('beta')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha')+ 1 , Symbol('beta')+ 1)", "(1)/(2)*(z - 1)*(1 + Symbol('alpha')+ Symbol('beta')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha')+ 1 , Symbol('beta')+ 1) = n*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('alpha')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha'), Symbol('beta')+ 1)", "n*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('alpha')+ n)*(Symbol('{P}_{n - 1}'))**(Symbol('alpha'), Symbol('beta')+ 1) = (1 + Symbol('alpha')+ Symbol('beta')+ n)*((Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')+ 1)- (Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))", "(1 + Symbol('alpha')+ Symbol('beta')+ n)*((Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')+ 1)- (Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))) = (Symbol('alpha')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')- 1 , Symbol('beta')+ 1)- Symbol('alpha')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))", "(Symbol('alpha')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')- 1 , Symbol('beta')+ 1)- Symbol('alpha')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')) = (2*(n + 1)*(Symbol('{P}_{n + 1}'))**(Symbol('alpha'), Symbol('beta')- 1)-(z*(1 + Symbol('alpha')+ Symbol('beta')+ n)+ Symbol('alpha')+ 1 + n - Symbol('beta'))*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))/(1 + z)", "(2*(n + 1)*(Symbol('{P}_{n + 1}'))**(Symbol('alpha'), Symbol('beta')- 1)-(z*(1 + Symbol('alpha')+ Symbol('beta')+ n)+ Symbol('alpha')+ 1 + n - Symbol('beta'))*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')))/(1 + z) = ((2*Symbol('beta')+ n + n*z)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))- 2*(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')- 1))/(1 + z)", "((2*Symbol('beta')+ n + n*z)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))- 2*(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta')- 1))/(1 + z) = (1 - z)/(1 + z)*(Symbol('beta')*(Symbol('{P}_{n}'))**(Symbol('alpha'), Symbol('beta'))-(Symbol('beta')+ n)*(Symbol('{P}_{n}'))**(Symbol('alpha')+ 1 , Symbol('beta')- 1))" ],
        "freeVariables" : [ "Symbol('alpha')", "Symbol('beta')", "Symbol('{P}_{n + 1}')", "Symbol('{P}_{n - 1}')", "Symbol('{P}_{n}')", "n", "z" ],
        "tokenTranslations" : {
          "\\JacobipolyP" : "Jacobi polynomial; Example: \\JacobipolyP{\\alpha}{\\beta}{n}@{x}\nWill be translated to: jacobi($2, $0, $1, $3)\nRelevant links to definitions:\nDLMF:  http://dlmf.nist.gov/18.3#T1.t1.r2\nSymPy: https://docs.sympy.org/latest/modules/functions/special.html#jacobi-polynomials",
          "\\alpha" : "Could be the second Feigenbaum constant.\nBut this system doesn't know how to translate it as a constant. It was translated as a general letter.\n",
          "\\deriv1" : "Derivative; Example: \\deriv[n]{f}{x}\nWill be translated to: diff($1, $2, $0)\nRelevant links to definitions:\nDLMF:  http://dlmf.nist.gov/1.4#E4\nSymPy: https://docs.sympy.org/latest/tutorial/calculus.html#derivatives"
        }
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    },
    "Maple" : {
      "translation" : "(z - 1)*diff(JacobiP(n, alpha, beta, z), [z$(1)]) = (1)/(2)*(z - 1)*(1 + alpha + beta + n)*(P[n - 1])^(alpha + 1 , beta + 1) = n*(P[n])^(alpha , beta)-(alpha + n)*(P[n - 1])^(alpha , beta + 1) = (1 + alpha + beta + n)*((P[n])^(alpha , beta + 1)- (P[n])^(alpha , beta)) = (alpha + n)*(P[n])^(alpha - 1 , beta + 1)- alpha*(P[n])^(alpha , beta) = (2*(n + 1)*(P[n + 1])^(alpha , beta - 1)-(z*(1 + alpha + beta + n)+ alpha + 1 + n - beta)*(P[n])^(alpha , beta))/(1 + z) = ((2*beta + n + n*z)*(P[n])^(alpha , beta)- 2*(beta + n)*(P[n])^(alpha , beta - 1))/(1 + z) = (1 - z)/(1 + z)*(beta*(P[n])^(alpha , beta)-(beta + n)*(P[n])^(alpha + 1 , beta - 1))",
      "translationInformation" : {
        "subEquations" : [ "(z - 1)*diff(JacobiP(n, alpha, beta, z), [z$(1)]) = (1)/(2)*(z - 1)*(1 + alpha + beta + n)*(P[n - 1])^(alpha + 1 , beta + 1)", "(1)/(2)*(z - 1)*(1 + alpha + beta + n)*(P[n - 1])^(alpha + 1 , beta + 1) = n*(P[n])^(alpha , beta)-(alpha + n)*(P[n - 1])^(alpha , beta + 1)", "n*(P[n])^(alpha , beta)-(alpha + n)*(P[n - 1])^(alpha , beta + 1) = (1 + alpha + beta + n)*((P[n])^(alpha , beta + 1)- (P[n])^(alpha , beta))", "(1 + alpha + beta + n)*((P[n])^(alpha , beta + 1)- (P[n])^(alpha , beta)) = (alpha + n)*(P[n])^(alpha - 1 , beta + 1)- alpha*(P[n])^(alpha , beta)", "(alpha + n)*(P[n])^(alpha - 1 , beta + 1)- alpha*(P[n])^(alpha , beta) = (2*(n + 1)*(P[n + 1])^(alpha , beta - 1)-(z*(1 + alpha + beta + n)+ alpha + 1 + n - beta)*(P[n])^(alpha , beta))/(1 + z)", "(2*(n + 1)*(P[n + 1])^(alpha , beta - 1)-(z*(1 + alpha + beta + n)+ alpha + 1 + n - beta)*(P[n])^(alpha , beta))/(1 + z) = ((2*beta + n + n*z)*(P[n])^(alpha , beta)- 2*(beta + n)*(P[n])^(alpha , beta - 1))/(1 + z)", "((2*beta + n + n*z)*(P[n])^(alpha , beta)- 2*(beta + n)*(P[n])^(alpha , beta - 1))/(1 + z) = (1 - z)/(1 + z)*(beta*(P[n])^(alpha , beta)-(beta + n)*(P[n])^(alpha + 1 , beta - 1))" ],
        "freeVariables" : [ "P[n + 1]", "P[n - 1]", "P[n]", "alpha", "beta", "n", "z" ],
        "tokenTranslations" : {
          "\\JacobipolyP" : "Jacobi polynomial; Example: \\JacobipolyP{\\alpha}{\\beta}{n}@{x}\nWill be translated to: JacobiP($2, $0, $1, $3)\nRelevant links to definitions:\nDLMF:  http://dlmf.nist.gov/18.3#T1.t1.r2\nMaple: https://www.maplesoft.com/support/help/maple/view.aspx?path=JacobiP",
          "\\alpha" : "Could be the second Feigenbaum constant.\nBut this system doesn't know how to translate it as a constant. It was translated as a general letter.\n",
          "\\deriv1" : "Derivative; Example: \\deriv[n]{f}{x}\nWill be translated to: diff($1, [$2$($0)])\nRelevant links to definitions:\nDLMF:  http://dlmf.nist.gov/1.4#E4\nMaple: https://www.maplesoft.com/support/help/Maple/view.aspx?path=diff"
        }
      },
      "numericResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "wasAborted" : false,
        "crashed" : false,
        "testCalculationsGroups" : [ ]
      },
      "symbolicResults" : {
        "overallResult" : "SKIPPED",
        "numberOfTests" : 0,
        "numberOfFailedTests" : 0,
        "numberOfSuccessfulTests" : 0,
        "numberOfSkippedTests" : 0,
        "numberOfErrorTests" : 0,
        "crashed" : false,
        "testCalculationsGroup" : [ ]
      }
    }
  },
  "positions" : [ ],
  "includes" : [ "z", "n + \\alpha + \\beta", "\\alpha,\\beta", "n", "P_{n}^{(\\alpha, \\beta)}", "\\begin{align}(z-1) \\frac{d}{dz} P_n^{(\\alpha,\\beta)}(z) &= \\frac{1}{2} (z-1)(1+\\alpha+\\beta+n)P_{n-1}^{(\\alpha+1,\\beta+1)} \\\\&= n P_n^{(\\alpha,\\beta)} - (\\alpha+n) P_{n-1}^{(\\alpha,\\beta+1)} \\\\&=(1+\\alpha+\\beta+n) \\left( P_n^{(\\alpha,\\beta+1)} - P_{n}^{(\\alpha,\\beta)} \\right) \\\\&=(\\alpha+n) P_n^{(\\alpha-1,\\beta+1)} - \\alpha P_n^{(\\alpha,\\beta)} \\\\&=\\frac{2(n+1) P_{n+1}^{(\\alpha,\\beta-1)} - \\left(z(1+\\alpha+\\beta+n)+\\alpha+1+n-\\beta \\right) P_n^{(\\alpha,\\beta)}}{1+z} \\\\&=\\frac{(2\\beta+n+nz) P_n^{(\\alpha,\\beta)} - 2(\\beta+n) P_n^{(\\alpha,\\beta-1)}}{1+z} \\\\&=\\frac{1-z}{1+z} \\left( \\beta P_n^{(\\alpha,\\beta)} - (\\beta+n) P_{n}^{(\\alpha+1,\\beta-1)} \\right) \\, .\\end{align}", "P_{n}^{(\\alpha, \\beta)}(x)" ],
  "isPartOf" : [ "\\begin{align}(z-1) \\frac{d}{dz} P_n^{(\\alpha,\\beta)}(z) &= \\frac{1}{2} (z-1)(1+\\alpha+\\beta+n)P_{n-1}^{(\\alpha+1,\\beta+1)} \\\\&= n P_n^{(\\alpha,\\beta)} - (\\alpha+n) P_{n-1}^{(\\alpha,\\beta+1)} \\\\&=(1+\\alpha+\\beta+n) \\left( P_n^{(\\alpha,\\beta+1)} - P_{n}^{(\\alpha,\\beta)} \\right) \\\\&=(\\alpha+n) P_n^{(\\alpha-1,\\beta+1)} - \\alpha P_n^{(\\alpha,\\beta)} \\\\&=\\frac{2(n+1) P_{n+1}^{(\\alpha,\\beta-1)} - \\left(z(1+\\alpha+\\beta+n)+\\alpha+1+n-\\beta \\right) P_n^{(\\alpha,\\beta)}}{1+z} \\\\&=\\frac{(2\\beta+n+nz) P_n^{(\\alpha,\\beta)} - 2(\\beta+n) P_n^{(\\alpha,\\beta-1)}}{1+z} \\\\&=\\frac{1-z}{1+z} \\left( \\beta P_n^{(\\alpha,\\beta)} - (\\beta+n) P_{n}^{(\\alpha+1,\\beta-1)} \\right) \\, .\\end{align}" ],
  "definiens" : [ ]
}

Specify your own input