This is a beginner's question.

A complex number is an element of R², that is an ordered pair (a,b) , the numbers a and b being elements of R.

A complex number can be written : a + ib .

I know that a special kind of addition can be defined for complex numbers.

But it seems to me that in "a+ ib" the " +" sign does not denote complex addition. It can't denote real addition either, for ( but I may be wrong here) , unless b=0, ib is not a real number.

Hence my question : what does the " +" sign denote in " a+ib"?

  • 2
    $\begingroup$ It is a formal symbol. You may as well think of complex numbers as pairs $(a,b)$. $\endgroup$ – Randall Feb 22 '20 at 19:56
  • 5
    $\begingroup$ What meaning do you give to $a+bx$, the polynomial? It's the same thing. $\endgroup$ – Don Thousand Feb 22 '20 at 20:02
  • 2
    $\begingroup$ @CaptainLama Either way, the real numbers are embedded in the complex numbers. $\endgroup$ – Don Thousand Feb 22 '20 at 20:03
  • 1
    $\begingroup$ @DonThousand Of course, but I know that some people will insist that $a+ib$ is just a notation because technically $\mathbb{R}$ is not a subset of $\mathbb{C}$ but only has a natural embedding in it. I think it just obscures what should be a simple point. $\endgroup$ – Captain Lama Feb 22 '20 at 20:05
  • 2
    $\begingroup$ @CaptainLama Fair enough. I'm biased towards the definition $$\mathbb C=\mathbb R[x]\;/\;(x^2+1)$$since addition actually means something in it. $\endgroup$ – Don Thousand Feb 22 '20 at 20:05

There is indeed a very annoying abuse of notation here. The short version is that the "$+$" in "$a+bi$" - in the context of defining the complex numbers - is being used as a purely formal symbol; that said, after having made sense of the complex numbers it can be conflated with complex addition.

An actually formal way to construct $\mathbb{C}$ from $\mathbb{R}$ is the following:

  • A complex number is an ordered pair $(a,b)$ with $a,b\in\mathbb{R}$.

  • We define complex addition and complex multiplication by $$(a,b)+_\mathbb{C}(c,d)=(a+c,b+d)$$ and $$(a,b)\times_\mathbb{C}(c,d)=(a\times c-b\times d, a\times d+b\times c)$$ respectively. Note that we're using the symbols "$+$," "$-$," and "$\times$" here in the context of real numbers - we're assuming those have already been defined (we're building $\mathbb{C}$ from $\mathbb{R}$).

  • We then introduce some shorthand: for real numbers $a$ and $b$, the expression "$a+bi$" is used to denote $(a,b)$, "$a$" is shorthand for $(a,0)$, and "$bi$" is shorthand for $(0,b)$. We then note that "$a+bi=a+bi$," in the sense that $$a+bi=(a,b)=(a,0)+_\mathbb{C}(0,b)=a+_\mathbb{C}bi$$ (cringing a bit as we do so).

Basically, what's happening in the usual construction of the complex numbers is that we're overloading the symbol "$+$" horribly; this can in fact be untangled, but you're absolutely right to view it with skepticism (and it's bad practice in general to construct a new object so cavalierly).

This old answer of mine explains how properties of $\mathbb{C}$ can be rigorously proved from such a rigorous construction, and may help clarify things. Additionally, it's worth noting that this sort of notational mess isn't unique to the complex numbers - the same issue can crop up with the construction of even very simple field extensions (see this old answer of mine).

  • 3
    $\begingroup$ See also: (Question 19108) in particular Arturo's answer. $\endgroup$ – Jam Feb 22 '20 at 21:49
  • $\begingroup$ @Jam Indeed, I wasn't aware of that q/a. $\endgroup$ – Noah Schweber Feb 22 '20 at 21:50
  • 1
    $\begingroup$ Well, imagine if you had to use a different + symbol for naturals, rationals, reals, complex numbers, quaternions, octonions, polynomials, vectors, functions... :P $\endgroup$ – user76284 Feb 23 '20 at 8:26
  • $\begingroup$ I am wondering why your third point is needed. As GEdgar writes we could just implicitly lift real numbers to complex numbers. Additionally, your third point does not account for, say, 2i + 5i, or does it? However, I do see that we often make use of let z = a + bi, i.e. we pattern match on your third point. $\endgroup$ – ComFreek Feb 23 '20 at 9:04
  • $\begingroup$ This is a top answer! $\endgroup$ – MattAllegro Feb 24 '20 at 11:41

Some would say: we identify a real number $a$ with the complex number $(a,0)$. Then, using this identification, $$ (a,b) = (a,0)+(0,b) = (a,0)+(0,1)(b,0)= a+ib . $$ If we say it that way, then the "$+$" is complex addition. And (with this identificaion) every real number is also a complex number.

Maybe a teacher would (to start with) use a different notation for the real number $a$ and the complex number $a$. But after a while that different notation would be dropped, and the "identification" would be understood.

We have similar things at more elementary level. A natural number is "identified" with an integer. An integer is "identified" with a rational number. A rational number is "identified" with a real number. Should we, in fact, keep different notations for all these?

  • 1
    $\begingroup$ FWIW, I'd answer your rhetorical question with "No, but as soon as we're looking at less intuitive constructions of number systems like $\mathbb{C}$ from $\mathbb{R}$ or $\mathbb{R}$ from $\mathbb{Q}$ we should at first - and indeed at that point we should go back to those more concrete examples and re-do them using different notations." $\endgroup$ – Noah Schweber Feb 22 '20 at 20:45
  • 1
    $\begingroup$ This answer raises the interesting point that there may also be some abuse of notation when we use "=". We arguably can't say that $\displaystyle \underbrace{1}_{\mathbb{N}}=\underbrace{1}_{\mathbb{Z}}=\underbrace{1}_{\mathbb{Q}}=\underbrace{1}_{\mathbb{R}}=\ldots$, since each "1" is a different member of an entirely different set and, if "=" is taken as a binary relation over two sets, we would need a different relation to compare each different pair of 1's. (1/2) $\endgroup$ – Jam Feb 23 '20 at 7:53
  • $\begingroup$ So then $\underbrace{1}_{\mathbb{N}}=\underbrace{1}_{\mathbb{Z}}$ for the "=" over $\mathbb{N},\mathbb{Z}$ but would it be false to use the same "=" to compare $\underbrace{1}_{\mathbb{N}}=\underbrace{1}_{\mathbb{Q}}$? Or is there a global "=" that can work over any set? Or are the 1's implicitly type converted before comparison, as in The_Sympathizer's answer. (2/2) $\endgroup$ – Jam Feb 23 '20 at 7:54
  • 2
    $\begingroup$ There is a quarrel we see from time to time... Is $0^0 = 1$ or undefined? My favorite answer is: $0^0 = 1$ when the exponent is the integer (or cardinal number) zero, but $0^0$ is undefined when the exponent is the real number (or complex number) zero. $\endgroup$ – GEdgar Feb 23 '20 at 12:17
  • $\begingroup$ @GEdgar: I totally agree with your favourite answer to $0^0$. And it's not really a quarrel. Any mathematician who thinks logically about the rigorous mathematics behind exponentiation has to come to the conclusion that it is best to define it to be $1$ when the exponent is an integer (or cardinal), and ill-defined when it is complex. In fact, that is also in line with the general fact that actual mathematics is done in a weakly typed system (even if not formalized) where every object has a sort of type tag, and we have some conventionally implicit type casting for the basic types. $\endgroup$ – user21820 Apr 2 '20 at 5:58

You're right that this poses an interesting problem. As with other things, there isn't "one right way" to deal with it, and it admits a number of interpretations with equal validity but different semantic content.

Some have been suggested here; I would like to suggest another - and that is type theory.

You see, since I also have a fair bit of background in computer programming and, I remember hearing the claim that "computer programming tries, in the ideal, to be more like math". I thought there was some merit to this, and when I heard it, I also started to wonder if maths, likewise, could not benefit from being more like computer programming.

And one of the most useful concepts in computer programming is that of a "data type": everything in a computer is ultimately constructed out of strings of binary bits (at least at one level of abstraction), but we'd like to say that, in writing programs, some strings of bits are not interchangeable with other strings, because they are "meant" to represent different concepts. For example, a bitstring "01000001" could represent the decimal number 65 - an integer - or it could represent the letter 'A' (in one very common encoding system, at least). We obviously don't want to mix up text and numbers indiscriminately, so we assign these two things different "data types", at least within the programming language, even if the computer itself doesn't care at the base, or "implementation", level.

In the same way, we encounter a very similar problem in maths, in how it is usually built. In a common "low-level" form of doing maths, most objects are represented "at the bottom" by sets - e.g. the number "2", as a natural number, is "implemented" with

$$2 := \{\ \{\}, \{ \{\} \}\ \}$$

basically just some sets nested inside other sets. But this leads to "weird" problems like the apparent validity of saying

$$\{\} \in 2$$

which is something you would, and indeed, should, at first, crow "nonsense!" to, even though this formalism would recognize the above as valid. As you can see, this is not any different from the computer situation where the bitstring could represent either a fragment of text (the letter 'A') or a number (65) - only here, we're dealing with sets, not bitstrings.

And that's the job of type theories: basically, they are ways to try and introduce a notion of "data types", like this, into mathematics - though, unfortunately, it seems that they aren't often used. In that way, we can declare something like

$$\{\} \in 2$$

to be illegal (that is, the result of it is undefined), even if we have "implemented" $2$ as a set, because we can tag that $2$ and $\{\}$ belong to different types: we may call them, say, $\mathbf{nat}$ and $\mathbf{Set}$, and we would write

$$2 : \mathbf{nat}$$

to mean "2 has type 'nat', i.e. natural number", and

$$\{\} : \mathbf{Set}$$

to mean "$\{\}$ has type 'Set', i.e. a set". And then, trying to take

$$\{\} \in 2$$

fails because $\in$ cannot accept a non-$\mathbf{Set}$ object on its right hand argument, even if our type theory would let us "implement" the type $\mathbf{nat}$ as a select subset of sets drawn from $\mathbf{Set}$: type theories roll the extra type information into the evaluation of expressions and would say the above expression must fail.

In the case at hand, what we have is that the operation $+$, here, takes two complex numbers - type $\mathbf{complex}$. But we have $a : \mathbf{real}$ and $b : \mathbf{real}$. And in computer programming, this crops up, too: we may have, say, a function that is defined to accept only arguments of, say, type "float" (floating-point approximation of real numbers), but many programming languages will allow you to call or invoke that function with integers as arguments, because of what is called a type coercion: the integers get implicitly "promoted" to floats, and then are passed as usual. Such type-coercion rules are used when that things of one type have a "reasonable" equivalent in another, but you can't just naively interchange them as indicated by the differing types.

And so we would do something similar in typified maths: there could be a type coercion rule, or "implicit type conversion", between reals and complexes:

$$(\mathbf{complex})\ a := (a, 0)_\mathbb{C}$$

where we have subscripted to denote that the ordered pair represents a complex number, and hence itself has type $\mathbf{complex}$. Then when you do

$$a + ib$$

what is going on is that both "a" and "b" are first to be type-coerced to the complex numbers $(a, 0)_\mathbb{C}$ and $(b, 0)_\mathbb{C}$ by the given rule, then per the rules of operator precedence (PMDAS, etc.), the complex multiplication $ib = (0, 1)_\mathbb{C} \cdot (b, 0)_\mathbb{C}$ is carried out, and finally the complex addition $a + ib = (a, 0)_\mathbb{C} + (0, b)_\mathbb{C}$ is carried out, ending with the expression evaluating to $(a, b)_\mathbb{C}$.

Hence, from this perspective, $+$ is indeed complex addition, but there is an additional 'translation' going on involving the reals $a$ and $b$.

If the type coercion rule did not exist, then

$$a + ib$$

would be an invalid expression (for reason of mismatched types), and we would have to use the full

$$(a, 0)_\mathbb{C} + (0, 1)_\mathbb{C} \cdot (b, 0)_\mathbb{C}$$

to do the equivalent. Or, would just write $(a, b)_\mathbb{C}$.

Unfortunately, type theories seem to be a minority method that, although of interest as objects of study in themselves, are not typically used foundationally even though there's a good case, I think, that they can be more intuitive and capture rather readily some important aspects of mathematical usage that otherwise have to be dismissed as mere "sloppage". Indeed, given the rise of the computer, harmonizing mathematics with computer programming seems only natural in the modern age.

  • $\begingroup$ I agree with your answer, but note that the term "type theory" in modern logic refers mainly to a kind of system with no subtyping and hence is not actually suitable for practical mathematics. However, what you do say in your answer is compatible with a weaker type system where each object has a type tag and you can use type coercion to change that tag, and that you can also have implicit type conversion, and that aligns reasonably closely with actual mathematics. $\endgroup$ – user21820 Apr 2 '20 at 6:02
  • $\begingroup$ @user28120 : Yes, this would be right. $\endgroup$ – The_Sympathizer Apr 2 '20 at 9:26

That is a good question and you hit on a very subtle point.

We sort of wave over this when we introduce complex numbers by saying $\sqrt{-1} =i$

(which is a white lie that doesn't actually make any sense; if $i^2 = -1$ then $(-i)^2 = -1$ so which one is the square root. For positive real numbers we define $\sqrt{c}$ as the positive number, $b$ so that $b^2 = c$ but as neither $i$ nor $-i$ are positive.... ?????)

And we assume it is clear that we can just continue doing addition and multiplication of complex numbers and that every number can be written as some purely real part $a$ and some purely imaginary part $bi$ and $z = a+ bi$ would be clear and if we wave our hands at the beginning when we get to the "grown-up" bits, the student will have accepted everything.

You are correct. $\mathbb C = \mathbb R^2$ with the two operations, I'll note them with an underscore $_c$, $+_c$ and $\cdot_c$ so that

$(a,b) +_c (c,d) = (a+c, b+d)$

And $(a,b)\cdot_c (c,d)= (ac-bd, bc + ad)$

And that's the definition of complex numbers.

Now, I'll gloss over that $+_c, -_c$ are closed, commutative, associative and distributive. I'll even gloss over that $(0,0)$ is an additive identity and $(1,0)$ is a multiplicative identity, and that $(-a, -b)$ is the additive inverse of $(a,b)$ and that $(\frac {a}{\sqrt{a^2 + b^2}}, \frac {-b}{\sqrt{a^2 + b^2}})$ is the multiplicative inverse of $(a,b)$ if $(a,b)\ne (0,0)$, so that this forms a field.

But we note: That $(a,0) +_c (b,0) = (a+b,0)$ and $(a,0) \cdot_c (b,0) = (ab,0)$ so we can consider that if $(x,0)\equiv x \in \mathbb R$ and that $(a,0)+_c (b,0) \equiv a+b$ and $(a,0)\cdot_c (b,0) \equiv a\cdot c$ we can consider that $\mathbb R \subset \mathbb C$ as a subfield.

We can also note that $(0,1)^2 =(-1,0)$ if we use the notation $i:= (0,1)$ that $i^2 = -1$

And also $(b,0)\cdot_c (0,1) = (0, b)$ we can use the notation that for $b\in \mathbb R$ we can write $(0,b)$ as $bi$

And as we can express any $(a,b) \in \mathbb C$ as $(a,0) +_c (0,b) = (a,0) +_c [(b,0)(0,1)]$:

This means if we define the notation $a + bi:= (a,b)\in \mathbb R^2$ (with the understanding $a,b$ are both reals)

Then all expected rules of arithmetic will apply and work as we expect.

$(a + bi) + (c+di) = (a+c) + (b+d)i$ because $(a,b)+_c (c,d)= (a+c, b+d)$.

And $(a + bi)(c+di) = ac + bci + adi + bdi^2 = (ac-bd) + (ad+bc)i$ will work because

$(a,b)\cdot_c(c,d)=[(a,0) +_c (0,b)]\cdot_c[(c,0)+_c(0,d)]=$

$[(a,0) +_c (b,0)\cdot(0,1)]\cdot_c[(c,0)+_c (d,0)\cdot_c(0,1)]=$

$(a,0)\cdot_c(c,0) + (b,0)\cdot_c(d,0)\cdot_c(0,1) + (a,0)\cdot_c(c,0)\cdot_c(0,1) + (b,0)\cdot_c(d,0)\cdot_c(0,1)\cdot_c(0,1)=$

$(ac,0) +_c (bd+ac,0)\cdot_c (0,1) + (-bd,0)=$

$(ac-bd,0) +_c (bd+ac),0)\cdot_c(0,1)$.

(which if we carried it further would, of course, result in $(ac-bd,bd+ac)=(a,b)\cdot_c(c,d)$ by definition)

So that's it. It's just notation.



If you are familiar with field extensions the works as $\mathbb C = \mathbb R[i]$ where $i$ has the property that $i^2 = -1$.

A Field extension $F[w]$ works by taking a field $F$ tossing in an element $w$ not in the field. Letting $qw$ and $q+w$ for $q\in F$ by fiat. (They don't mean anything; they are abstract concepts). If not stated other wise $w^{-1}$ and $w^k$ exist by fiat, but we may make a stipulation, such as $w^3 = r$ (so that $w^{-1} = r^{-1}w^2$).

I simple example of a field extension may be $\mathbb Q[\sqrt[3]7]$ which would be $\{q + r\sqrt[3]7 + s\sqrt[3]7^2|q,r,s\in \mathbb Q\}$. As $\mathbb Q[\sqrt[3]7]\subset \mathbb R$ this doesn't seem an abstract or strange concept.

But $\mathbb C=\mathbb R[i; i^2=-1] = \{a + bi|a,b\in \mathbb R\}$ where $i^2 =-1$ may seem a bit like we are making s*it up, but... if it's consistant we are allowed to make sh*t up.

Isn't that what math is? If anything is consistant the .... mathematicians just strip the *hit down. It's what we do.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy