# Why is there both := and = used in set notation? [duplicate]

I see two kinds of equal signs in different resources in regards to defining sets. One is := and the other is =

An example : S = {1, 2, 3} or S := {1, 2, 3}

I realized that resources concerned with mathematical analysis uses the latter whereas others use the former.

Is there any difference in the meaning of both notations?

## marked as duplicate by Carsten S, BlueRaja - Danny Pflughoeft, quid♦Aug 27 '18 at 17:15

• The := symbol is usually 'defined as', rather than 'equal to'. – Bill Wallis Aug 27 '18 at 10:52
• It seems to me that := is introduced sometime later. – nmd_07 Aug 27 '18 at 10:53
• In some programming languages like Go := used to define and assign, whereas = is for just assignment. Maybe this analogy help you – Grijesh Chauhan Aug 27 '18 at 16:32

The symbol "$:=$" seems to have been introduced in programming languages in the 1960's. For instance in Pascal, one writes $x = 0$ for testing equality (like in "if $x=0$ then...") and $x := 0$ to assign the value $0$ to the variable $x$.

However, since assignment is more frequent than equality testing, languages like C or Java use a different syntax: $x = 0$ for assignment and $x == 0$ for equality testing.

After that, the notation $:=$ spread out in mathematical writing, mostly to mean "equal by definition". I would not recommend using it, but it is nevertheless quite common.

EDIT. According to the Wikipedia entry ALGOL 58, ALGOL 58, originally known as IAL, is one of the family of ALGOL computer programming languages.

The distinction between assignment (:= representing a left-facing arrow) and the equality relation (=) was introduced in IAL and kept in ALGOL 60.

Thus the use of := in computer science goes back to at least 1958.

• Would you have a citation for that? I always assumed that Pascal etc. used := because that was already used in maths. – leftaroundabout Aug 27 '18 at 13:40
• := is also discouraged by Milne. (Who, incidentally, also considers it a programming jargon. FWIW, the idea that it came first in mathematical writing sounds bizarre to me.) – Emil Jeřábek Aug 27 '18 at 15:05
• If $:=$ came from math first then all programing languages would use it. Many use $=$ to assign ($:=$) and $==$ to test equality ($=$). Thing is, math doesn't need two notations; being equal is the only concern and whether their equal because they just are or we defined them to be is not a high concept worth considering. But in programming the two concepts are essential. You can't start a program if you can't give things values! So if such a distinction didn't exist, programmers would have to invent one. – fleablood Aug 27 '18 at 16:09
• For what it's worth, I had never seen $:=$ in mathematics until three years ago. – fleablood Aug 27 '18 at 16:10
• @fleablood: I haven't seen it in pure mathematical contexts either, but I've come across it several times in physics. As far as I can tell, it entered the programming-language tradition with the Algol committee, whose members were interested in scientific computing (Naur, the editor of the Algol 60 report, was originally an astronomer). – Henning Makholm Aug 27 '18 at 19:31

There's not a lot of difference :)

$:=$ means "is defined to equal" and is most often used to say that the Right Hand Side is formally defining the Left Hand Side.

"=" is equals and can also be used to define things (though I, personally, would consider it a little bit loose) but can also be used to state that the Left Hand Side and the Right Hand Side are the same, though one or both may have come from a different definition.

The symbol "$:=$" is used when you define something to be equal to something. For example, the rationals $\mathbb{Q}:=Q(\mathbb{Z})$ are defined the field of fractions of the integers. If someone showed you that symbol, you would not have knew what it is. It's just defined as that.

The symbol "$=$" means equality that arises from something.