This site is supported by donations to The OEIS Foundation.

Iverson bracket

From OeisWiki
Jump to: navigation, search

This article page is a stub, please help by expanding it.

The Iverson bracket, named after Kenneth E. Iverson, is a notation that denotes a number that is 1 if the condition in square brackets is satisfied, and 0 otherwise. More exactly,


is a predicate (i.e. a [​first-order logic​] statement that can be true or false). This notation was introduced by Kenneth E. Iverson in his programming language APL[1][2] (named after the book A Programming Language[3]), while the specific restriction to square brackets was advocated by Donald Knuth to avoid ambiguity in parenthesized logical expressions.[4]


The notation is useful in expressing sums or integrals without boundary conditions. For example

1  ≤  i   ≤  10
1  ≤  i   ≤  10
i  2  =   
  i  2 [1 ≤ i ≤ 10] .
In the first sum, the index
is limited to be in the range 1 to 10. The second sum is allowed to range over all integers, but where
is strictly less than 1 or strictly greater than 10, the summand is 0, contributing nothing to the sum. Such use of the Iverson bracket can permit easier manipulation of these expressions. (add an example of such a manipulation)[5]

Another use of the Iverson bracket is to simplify equations with special cases. For example, the formula

1  ≤  k   ≤  n
(k, n)   = 1
k  = 
n φ (n)
which is valid only for
n > 1
, and may be written

1  ≤  k   ≤  n
(k, n)   = 1
k  = 
n (φ (n) + [n = 1] )
which is valid for all positive integers

Special cases

The Kronecker delta notation is a specific case of Iverson notation when the condition is equality

δij  =  [i = j ] .
The indicator function
IA (x)
(or characteristic function
χA (x)
) of a set
, another specific case, has set membership as its condition
IA (x)  =  χA (x)  =  [xA] .

The sign function and Heaviside step function are also easily expressed in this notation

sgn (x)  =  [x > 0] − [x < 0] ,
H (x)  =  [x > 0] +
  [x = 0] .

And the trichotomy of the reals can be expressed

[a < b] + [a = b] + [a > b]  =  1.

See also


  1. Ronald Graham, Donald Knuth, and Oren Patashnik. Concrete Mathematics, Section 2.2: Sums and Recurrences.
  2. Graham, Ronald L.; Knuth, Donald E.; Patashnik, Oren (1994). Concrete Mathematics (2nd ed.). Reading, MA: Addison-Wesley Publishing Company. pp. xiii+657. ISBN 0-201-55802-5. 
  3. Iverson, Kenneth E. (1962). A Programming Language. Wiley. ISBN 0-471-43014-5. 
  4. Graham, Knuth, and Patashnik (1994).
  5. To do: add an example of such a manipulation.


  • Donald Knuth, “Two Notes on Notation,” American Mathematical Monthly, Volume 99, Number 5, May 1992, pp. 403–422. (TeX, arXiv:math/9205211)
  • Kenneth E. Iverson, "A Programming Language", New York: Wiley, p. 11, 1962.

External links