MathJSON Standard Library

The MathJSON standard library defines the vocabulary used by a MathJSON expression.

This library defines the meaning of the identifiers used in a MathJSON expression. It is independent of the syntax used to parse/serialize from another language such as LaTeX.

It includes definitions such as:

  • Pi is a transcendental number whose value is approximately 3.14159265…
  • The Add function is associative, commutative, pure, idempotent and can be applied to arbitrary number of Real or Complex numbers”.


The MathJSON Standard Library is organized by topics, each topic is a separate page in the documentation.

Arithmetic Add Multiply Power Exp Log ExponentialE ImaginaryUnit
Calculus D Derivative Integrate
Collections List Reverse Filter
Complex Real Conjugate, ComplexRoots
Control Structures If Block Loop
Core Declare, Assign, Error LatexString
Domains Anything Nothing Numbers Integers
Functions Function Apply Return
Logic And Or Not True False Maybe
Sets Union Intersection EmptySet
Special Functions Gamma Factorial
Statistics StandardDeviation Mean Erf
Styling Delimiter Style
Trigonometry Pi Cos Sin Tan

Extending the MathJSON Standard Library

The MathJSON Standard Library can be extended by defining new functions:

// Declare that the identifier "f" is a function, 
// but without giving it a definition
ce.declare("f", "Function");

// Define a new function `double` that returns twice its input
ce.assign("double(x)", ["Multiply", "x", 2]);

// LaTeX can be used for the definition as well...
ce.assign("half(x)", ce.parse("\\frac{x}{2}"));

You can also customize the LaTeX syntax, that is how to parse and serialize LaTeX to MathJSON.