Dictionaries
Syntax and Symbol Dictionaries
The MathJSON format is independent of any
source or target language (LaTeX, MathASCII, etc…) or of any specific
interpretation of the symbols used in a MathJSON expression ("Pi"
, "Sin"
,
etc…).
A syntax dictionary defines how a MathJSON expression can be expressed into a specific target language (serialization) or constructed from a source language (parsing).
It includes definitions such as:
 "The
Power
function is represented as "x^{n}
""  "The
Divide
function is represented as "\frac{x}{y}
"".
A symbol dictionary defines the vocabulary used by a MathJSON expression. This dictionary is independent of the syntax used to parse/serialize from another language but it defines the meaning of the symbols used in a MathJSON expression.
An entry in a symbol dictionary includes information necessary to correctly interpret it.
For example:
 "
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".
Domains
A domain is similar to a type in a traditional programming language.
The domain of a symbol provides some contextual information about this symbol, for example: "x is a positive integer".
The codomain of a function indicates the set of values that a function maps to, or the domain of the "result" of the function.
Each entry in the symbol dictionary indicate the domain of the symbol, and for functions its codomain.
Functions
A MathJSON function such as Add
, Sin
or Equal
can be used for a variety
of purposes. It can be helpful to classify them in some broad categories:
Category  

The result of evaluating an inert function is the function and its arguments. This is more useful than it sounds: it can be used to ‘tag’ an input an indicate how it should be interpreted. Examples: Hold Evaluate Complex LatexString 

A function that takes a variety of inputs and return a new kind of object. Examples: Symbol String Interval Range 

A function whose arguments and return value are all numeric. Examples: Add Sin Exp Sqrt 

A predicate function returns a boolean. It can evaluate if a proposition is true or false. Examples: Equal IsPrime 

A predicate whose arguments are also booleans. Examples: And Not Or 
Customizing the Dictionaries
To define a custom syntax, provide custom syntax and custom symbol
dictionaries when creating a ComputeEngine
instance.
If no custom dictionaries are provided, the default ones are used. They are organized by topic as follow:
Dictionary  

Arithmetic  Add Multiply … 
Calculus  Derive Integrate … 
Collections  Sequence List Dictionary Set … 
Core  Missing Nothing None All Identity InverseFunction LatexTokens … 
Logic  And Or Not … 
Sets  Union Intersection … 
Special Functions  Erf Gamma Factorial … 
Trigonometry  Cos Sin Tan … 