In analogy to natural language, where a noun phrase refers to an object and a whole sentence refers to a fact, in mathematical logic, a term denotes a mathematical object and a formula denotes a mathematical fact. In particular, terms appear as components of a formula.
A firstorder term is recursively constructed from constant symbols, variables and function symbols. An expression formed by applying a predicate symbol to an appropriate number of terms is called an atomic formula, which evaluates to true or false in bivalent logics, given an interpretation. For example, (x+1)*(x+1) is a term built from the constant 1, the variable x, and the binary function symbols + and *; it is part of the atomic formula (x+1)*(x+1) ≥ 0 which evaluates to true for each realnumbered value of x.
Besides in logic, terms play important roles in universal algebra, and rewriting systems.
Elementary mathematics
In the context of polynomials, sometimes term is used for a monomial with a coefficient: to 'collect like terms' in a polynomial is the operation of making it a linear combination of distinct monomials. Terms, in this sense, are things that are added or subtracted. A series is often represented as the sum of a sequence of terms. Individual factors in an expression representing a product are multiplicative terms. For example, in 6 + 3x − 2, 6, 3x, and −2 are all terms.
In elementary mathematics,^{[1]}

each argument term of the addition operator + is called an addend,

the first and second argument term of the subtraction operator  is called a minuend and subtrahend, respectively,

each argument term of the multiplication operator ⋅ is called a factor, the first and second argument term is also called multiplicand and multiplier, respectively,

the first and second argument term of the division operator / is called dividend and divisor, respectively,

if the division operator is written as fraction bar, the top and bottom terms are called numerator and denominator, respectively.
Formal definition
Tree structure of terms (n⋅(n+1))/2 and n⋅((n+1)/2)
Given a set V of variable symbols, a set C of constant symbols and sets F_{n} of nary function symbols, also called operator symbols, for each natural number n ≥ 1, the set of (unsorted firstorder) terms T is recursively defined to be the smallest set with the following properties:^{[2]}

every variable symbol is a term: V ⊆ T,

every constant symbol is a term: C ⊆ T,

from every n terms t_{1},...,t_{n}, and every nary function symbol f ∈ F_{n}, a larger term f(t_{1}, ..., t_{n}) can be built.
Using an intuitive, pseudogrammatical notation, this is sometimes written as: t ::= x  c  f(t_{1}, ..., t_{n}). Usually, only the first few function symbol sets F_{n} are inhabited. Wellknown examples are the unary function symbols sin, cos ∈ F_{1}, and the binary function symbols +, −, ⋅, / ∈ F_{2}, while ternary operations are less known, let alone higherarity functions. Many authors consider constant symbols as 0ary function symbols F_{0}, thus needing no special syntactic class for them.
A term denotes a mathematical object from the domain of discourse. A constant c denotes a named object from that domain, a variable x ranges over the objects in that domain, and an nary function f maps ntuples of objects to objects. For example, if n ∈ V is a variable symbol, 1 ∈ C is a constant symbol, and add ∈ F_{2} is a binary function symbol, then n ∈ T, 1 ∈ T, and (hence) add(n, 1) ∈ T by the first, second, and third term building rule, respectively. The latter term is usually written as n+1, using infix notation and the more common operator symbol + for convenience.
Term structure vs. representation
Originally, logicians defined a term to be a character string adhering to certain building rules.^{[3]} However, since the concept of tree became popular in computer science, it turned out to be more convenient to think of a term as a tree. For example, several distinct character strings, like "(n⋅(n+1))/2", "((n⋅(n+1)))/2", and "\frac{n(n+1)}{2}", denote the same term and correspond to the same tree, viz. the left tree in the above picture. Separating the tree structure of a term from its graphical representation on paper, it is also easy to account for parentheses (being only representation, not structure) and invisible multiplication operators (existing only in structure, not in representation).
Structural equality
Two terms are said to be structurally, literally, or syntactically equal if they correspond to the same tree. For example, the left and the right tree in the above picture are structurally unequal terms, although they might be considered "semantically equal" as they always evaluate to the same value in rational arithmetic. While structural equality can be checked without any knowledge about the meaning of the symbols, semantic equality cannot. If the function / is e.g. interpreted not as rational but as truncating integer division, then at n=2 the left and right term evaluates to 3 and 2, respectively. Structural equal terms need to agree in their variable names.
In contrast, a term t is called a renaming, or a variant, of a term u if the latter resulted from consistently renaming all variables of the former, i.e. if u = tσ for some renaming substitution σ. In that case, u is a renaming of t, too, since a renaming substitution σ has an inverse σ^{−1}, and t = uσ^{−1}. Both terms are then also said to be equal modulo renaming. In many contexts, the particular variable names in a term don't matter, e.g. the commutativity axiom for addition can be stated as x+y=y+x or as a+b=b+a; in such cases the whole term may be replaced by a renamed term, while an arbitrary subterm usually may not, e.g. x+y=b+a is not a valid version of the commutativity axiom. ^{[note 1]} ^{[note 2]}
Ground and linear terms
The set of variables of a term t is denoted by vars(t). A term that doesn't contain any variables is called a ground term; a term that doesn't contain multiple occurrences of a variable is called a linear term. For example, 2+2 is a ground term and hence also a linear term, x⋅(n+1) is a linear term, n⋅(n+1) is a nonlinear term. These properties are important e.g. in term rewriting.
Given a signature for the function symbols, the set of all terms forms the free term algebra. The set of all ground terms forms the initial term algebra.
Abbreviating the number of constants as f_{0}, and the number of iary function symbols as f_{i}, the number θ_{h} of distinct ground terms of a height up to h can be computed by the following recursion formula:

θ_{0} = f_{0}, since a ground term of height 0 can only be a constant,

\theta_{h+1} = \sum_{i=0}^\infty f_i \cdot \theta_h^i, since a ground term of height up to h+1 can be obtained by composing any i ground terms of height up to h, using an iary root function symbol. The sum has a finite value if f_{i} = 0 for all i beyond a maximal arity, which is usually the case.
Building formulas from terms
Given a set R_{n} of nary relation symbols for each natural number n ≥ 1, an (unsorted firstorder) atomic formula is obtained by applying an nary relation symbol to n terms. As for function symbols, a relation symbol set R_{n} is usually nonempty only for small n. In mathematical logic, more complex formulas are built from atomic formulas using logical connectives and quantifiers. For example, letting ℝ denote the set of real numbers, ∀x: x ∈ ℝ ⇒ (x+1)⋅(x+1) ≥ 0 is a mathematical formula evaluating to true in the algebra of complex numbers. An atomic formula is called ground if it is build entirely from ground terms; all ground atomic formulas composable from a given set of function and predicate symbols make up the Herbrand universe for these symbol sets.
Operations with terms
Tree structure of black example term \frac{a*((a+1)*(a+2))}{1*(2*3)}, with blue redex x*(y*z)

Since a term has the structure of a tree hierarchy, to each of its nodes a position, or path, can be assigned, that is, a string of decimal numbers indicating the node's place in the hierarchy. The empty string, commonly denoted by ε, is assigned to the root node. Position strings within the black term are indicated in red in the picture.

At each position p of a term t, a unique subterm starts, which is commonly denoted by t_{p}. For example, at position 122 of the black term in the picture, the subterm a+2 has its root. The relation "is a subterm of" is a partial order on the set of terms; it is reflexive since each term is trivially a subterm of itself.

The term obtained by replacing in a term t the subterm at a position p by a new term u is commonly denoted by t[u]_{p}. That term t[u]_{p} can also be viewed as resulting from a generalized concatenation of the term u with a termlike object t[.]; the latter is called a context, or a term with a hole (indicated by "."; its position being p), in which u is said to be embedded. For example, if t is the black term in the picture, then t[b+1]_{12} results in the term \frac{a*(b+1)}{1*(2*3)}. The latter term also results from embedding the term b+1 into the context \frac{a*(\; . \;)}{1*(2*3)}. In an informal sense, the operations of instantiating and embedding are converse to each other: while the former appends function symbols at the bottom of the term, the latter appends them at the top. The encompassment ordering relates a term and any result of appends at either sides.

To each node of a term, its depth (called height by some authors) can be assigned, i.e. its distance (number of edges) from the root. In this setting, the depth of a node always equals the length of its position string. In the picture, depth levels in the black term are indicated in green.

The size of a term commonly refers to the number of its nodes, or, equivalently, to the length of the term's written representation, counting symbols without parentheses. The black and the blue term in the picture has the size 15 and 5, respectively.

A term u matches a term t, if an instance of u structurally equals a subterm of t, or formally, if uσ = t_{p} for some position p in t and some substitution σ. In this case, u, t, and σ is called the pattern term, the subject term, and the matching substitution, respectively. In the picture, the blue pattern term x*(y*z) matches the black subject term at position 1, with the matching substitution { x ↦ a, y ↦ a+1, z ↦ a+2 } indicated by blue variables immediately left to their black substitutes. Intuitively, the pattern, except for its variables, must be contained in the subject; if a variable occurs multiply in the pattern, equal subterms are required at the respective positions of the subject.

unifying terms

term rewriting
Related concepts
Sorted terms
When the domain of discourse contains elements of basically different kinds, it is useful to split the set of all terms accordingly. To this end, a sort (sometimes also called type) is assigned to each variable and each constant symbol, and a declaration ^{[note 3]} of domain sorts and range sort to each function symbol. A sorted term f(t_{1},...,t_{n}) may be composed from sorted subterms t_{1},...,t_{n} only if the ith subterm's sort matches the declared ith domain sort of f. Such a term is also called wellsorted; any other term (i.e. obeying the unsorted rules only) is called illsorted.
For example, a vector space comes with an associated field of scalar numbers. Let W and N denote the sort of vectors and numbers, respectively, let V_{W} and V_{N} be the set of vector and number variables, respectively, and C_{W} and C_{N} the set of vector and number constants, respectively. Then e.g. \vec{0} ∈ C_{W} and 0 ∈ C_{N}, and the vector addition, the scalar multiplication, and the inner product is declared as +:W×W→W, *:W×N→W, and ⟨.,.⟩:W×W→N, respectively. Assuming variable symbols \vec{v},\vec{w} ∈ V_{W} and a,b ∈ V_{N}, the term \langle (\vec{v}+\vec{0})*a,\vec{w}*b \rangle is wellsorted, while \vec{v}+a is not (since + doesn't accept a term of sort N as 2nd argument). In order to make a*\vec{v} a wellsorted term, an additional declaration *:N×W→W is required. Function symbols having several declarations are called overloaded.
See manysorted logic for more information, including extensions of the manysorted framework described here.
Lambda terms
Terms with bound variables
Notation

Bound

Free

Written as

example

variables

variables

lambdaterm

lim_{n→∞} x/n

n

x

limit(λn. div(x,n))

\sum_{i=1}^n i^2

i

n

sum(1,n,λi. power(i,2))

\int_a^b \sin(k \cdot t) dt

t

a, b, k

integral(a,b,λt. sin(k⋅t))

Motivation
Mathematical notations as shown in the table do not fit into the scheme of a firstorder term as defined above, as they all introduce an own local, or bound, variable that may not appear outside the notation's scope, e.g. t \cdot \int_a^b \sin(k \cdot t) \; dt doesn't make sense. In contrast, the other variables, referred to as free, behave like ordinary firstorder term variables, e.g. k \cdot \int_a^b \sin(k \cdot t) \; dt does make sense.
All these operators can be viewed as taking a function rather than a value term as one of their arguments. For example, the lim operator is applied to a sequence, i.e. to a mapping from positive integer to e.g. real numbers. As another example, a C function to implement the second example from the table, ∑, would have a function pointer argument (see box below).
Lambda terms can be used to denote anonymous functions to be supplied as arguments to lim, ∑, ∫, etc.
For example, the function square from the C program below can be written anonymously as a lambda term λi. i^{2}. The general sum operator ∑ can then be considered as a ternary function symbol taking a lower bound value, an upper bound value and a function to be summedup. Due to its latter argument, the ∑ operator is called a secondorder function symbol. As another example, the lambda term λn. x/n denotes a function that maps 1, 2, 3, ... to x/1, x/2, x/3, ..., respectively, that is, it denotes the sequence (x/1, x/2, x/3, ...). The lim operator takes such a sequence and returns its limit (if defined).
The rightmost column of the table indicates how each mathematical notation example can be represented by a lambda term, also converting common infix operators into prefix form.
int sum(int lwb, int upb, int fct(int)) { // implements general sum operator
int res = 0;
for (int i=lwb; i<=upb; ++i)
res += fct(i);
return res;
}
int square(int i) { return i*i; } // implements anonymous function (lambda i. i*i); however, C requires a name for it
#include
int main(void) {
int n;
scanf(" %d",&n);
printf("%d\n", sum(1,n,square) ); // applies sum operator to sum up squares
return 0;
}
See also
Notes

^ Strictly speaking, x+y=y+x is an atomic formula, not a term, since = is a predicate, not a function symbol. However, since atomic formulas can be viewed as trees, too, and renaming is essentially a concept on trees, atomic (and, more generally, quantifierfree) formulas can be renamed in a similar way as terms. In fact, some authors consider a quantifierfree formula as a term (of type bool rather than e.g. int, cf. #Sorted terms below).

^ Renaming of the commutativity axiom can be viewed as alphaconversion on the universal closure of the axiom: "x+y=y+x" actually means "∀x,y: x+y=y+x", which is synonymous to "∀a,b: a+b=b+a"; see also #Lambda terms below.

^ called "symbol type" in the Signature (logic)#Manysorted signatures article
References

^ Schwartzman, Steven (1994). The words of mathematics: An etymological dictionary of mathematical terms used in English. The Mathematical Association of America. p. 219.

^ ; here: Sect.1.3

^ ; here: Sect.II.1.3
This article was sourced from Creative Commons AttributionShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, EGovernment Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a nonprofit organization.