29

I am trying to write the Euclidean algorithm in the following way:

$A = \lfloor A \div B \rfloor \times B + (\text{remainder of}) \: A \div B $

Now is there any symbol I can use to say "remainder of A $\div$ B"? I know that in the C programming language there is the operator % for modulus; is that a valid symbol in maths? Can I write A % B? Or is there some other way?

Bill Dubuque
  • 272,048

6 Answers6

37

Per request, I post my comment(s) as an answer, and add some further remarks.

The $\rm\color{#c00}{operation}$ $\, a\bmod b\, $ denotes the remainder when dividing $\,a\,$ by $\,b\,$ by the division algorithm, e.g. $\, a\bmod 2 = 1\,$ means $\,a = 2n+1\,$ for an integer $\,n,\,$ i.e. $\,a\,$ is odd. $ $ Alternatively, $\,a\:\!\%\:\!b\, :=\, a\bmod b\,$ is notation sometimes found in programming languages (see below).

The same notation is used in other rings that have an analogous (Euclidean) Division Algorithm, e.g. polynomials with coefficients over a field, e.g. the Polynomial Remainder Theorem: $\,f(a) = f(x)\bmod x\!-\!a,\,$ or higher-degree forms like $\,f(i) = (f(x)\bmod x^2\!+\!1)\bmod x\!-\!i$.

Also $\!\bmod\!$ is used as a ternary $\rm\color{#c00}{relation}$ (vs. above binary operation) in congruence relations, e.g. $\ a\equiv b\pmod{\! n}\iff n\mid a-b\,$ (an equivalence relation for a fixed modulus $\,n).$

These two denotations of $\!\bmod\!$ are related as follows (cf. proofs here or here)

$$ \begin{align} a\color{#90f}\equiv b\!\!\!\pmod{\!n}&\iff a\bmod n\, \color{#0a0}=\, b\bmod n\\[.3em] \color{#90f}{\text{i.e. $\ $ equivalent}} &\iff \text{$\rm\color{#0a0}{equal}$ normal forms}\end{align}\qquad\qquad$$

so $\,a\bmod n\,$ serves as a normal form or canonical representative for the entire equivalence class $\,[a]_n = a + n\:\!\Bbb Z,\,$ i.e. all integers $\,\equiv a\!\pmod{\!n}.\,$ The above arrow means that testing congruence $\rm\color{#90f}{equivalence}$ of integers is same as testing $\rm\color{#0a0}{equality}$ of their normal forms (= remainders $\!\bmod n),\,$ just as we can test equivalence of fractions by testing equality of their least-terms normal forms. Similarly we can view the remainder as a "least terms" rep: it is the least nonnegative integer in the class $[a]_n$ of all integers congruent to $\,a\,$ modulo $\,n.\,$

The operational use of mod is often more convenient in computational contexts, whereas the relational use often yields more flexibility in theoretical contexts. The difference amounts to whether it is more convenient to work with general equivalence classes vs. canonical / normal representatives ("reps") thereof. For example, it would be quite cumbersome to state the laws of fraction arithmetic if we required that all fractions to be in normal (reduced) form, i.e. in lowest terms. Instead, it proves more convenient to have the flexibility to work with arbitrary equivalent fractions. For example, this allows us to state the fraction addition rule in very simple form by first choosing convenient reps having a common denominator.

Analogously, in modular arithmetic the canonical remainder $\,a\bmod n\,$ may not be the most convenient choice of representative of the equivalence class $\,[a]_n =\, a + n\:\!\Bbb Z.\,$ For example, when performing arithmetic checks using casting out elevens and related methods we exploit that $\ {\rm mod}\ 11\!:\ 10\equiv -1\,\Rightarrow\,10^{\large k}\equiv (-1)^{\large k}\equiv \pm1,\,$ which involves choosing a rep of least magnitude $\,\color{#c00}{\bf -1}\,$ vs. $\,\color{#0a0}{10}\in [10]_{11}\! = \{\ldots,\, -23,-12,\color{#c00}{\bf -1},\color{#0a0}{10},21,\,\ldots\}.\,$ Or, as here we can choose reps that nicely yield an exact quotient for modular fractions, e.g. $\!\bmod 11\!:\,\ 9/13\equiv -2/2\equiv -1.\,$ Hence, analogous to fraction addition, we chose reps which simplified arithmetic. Using least magnitude reps often simplifies other computations too, e.g. it can halve the number of steps in the Euclidean algorithm. So the use of congruence classes (vs. canonical reps) provides much greater flexibility, which may yield great simplifications - not only computationally, but also theoretically, which becomes clearer when one studies quotient rings, which yield (algebraic) structure reifications of the congruence rules = compatibility of congruences with addition and multiplication).

Beware that some authors omit the parentheses in $\, a\equiv b\pmod{\!n}$ instead writing it as follows $\,a\equiv b\mod n\ $ or $\ a = b\mod n,\ $ using \mod vs. \pmod in $\TeX$. These might easily be confused with $\,a = b\bmod n\,$ i.e. $\,a = (b\bmod n),\,$ so one should keep in mind such possible ambiguities in contexts where both forms of $\!\bmod\!$ are in use. See here for more on this.

Beware that some authors write $\,a\pmod{\!n}\,$ to denote $\,a\bmod n,\,$ while others use it to denote the entire congruence class $\,[a]_n = a+ n\Bbb Z.\,$ Keep in mind that such notation overloading might lead to confusion for beginners, e.g. see here.

The name % for the normal form $\!\bmod\!$ operation (as in the C programming language) has not percolated to the mathematical community as far as I can tell. I recall many questions on sci.math regarding the meaning of $\rm\, a\:\!\%\:\! b.\, $ As such, if you use this notation in a mathematical forum then I recommend that you specify its meaning. This would not be necessary for $\!\bmod\!$ since that notation is ubiquitous in mathematics (currently more so for congruence than operator form). Be aware, however, that some mathematicians look down on the operational use of mod in the case when it would be more natural to use the congruence form. Apparently the mathematical Gods do too, since doing so can make some proofs quite more difficult (much more so than the above simple case of fraction addition).

Bill Dubuque
  • 272,048
  • 1
    Needed to add, if you wish to use a\%b in LaTeX to denote the remainder, you should write a \mathbin{\%} b or better define it by \renewcommand*{\bmod}{\mathbin{\%}} and then it's a \bmod b. – yo' Dec 21 '13 at 22:00
  • 2
    The percent operator in 'C'-like languages is a remainder operator not a modulo operator. Why Kernighan and Ritchie made this decision is lost in the mists of time, but it is unfortunate. Here is an article on the difference by one of the world's C# experts: http://blogs.msdn.com/b/ericlippert/archive/2011/12/05/what-s-the-difference-remainder-vs-modulus.aspx – Pieter Geerkens Dec 22 '13 at 01:13
  • @Pieter It is not clear to me what you mean by a "remainder operator vs. modulo operator". Above I distinguish between mod/remainder as an operation that yields a particular (canonical) choice of an equivalence class, vs. the use of mod as a ternary relation $a\equiv b \pmod R \iff (a,b)\in R.,$ I do not address any choices having to do with implementation of the remainder operations (or the associated division algorithm). – Bill Dubuque Dec 22 '13 at 16:50
  • 2
    @BillDubuque: The % operator in C-like languages does not respect the equivalence classes of a finite ring over the integers under normal multiplication and addition when one or more operands is negative. Forgive me if my terminology is not spot on - it has been almost 4 decades since I last did the algebra rigorously. – Pieter Geerkens Dec 22 '13 at 16:54
  • @Pie Yes, that's incorrect terminology. The article points out that C's remainder operation results from rounding the quotient towards $0.$ So, because dividend = quotient * divisor + remainder this implies $-123 = -30 * 4 - 3,$ so here $\rm -123\ mod\ 4 = -3$ vs. $1$. So remainders mod $4$ are not canonical. They lie in the interval $(-3,3)$ vs. $(0,3)$ But they are in the same equivalence, class, e.g. $-3\equiv 1\pmod{4}$. Some languages have multiple division operations that round the quotient various ways e.g. floor,ceiling,truncate,round in Common Lisp. – Bill Dubuque Dec 22 '13 at 17:40
  • Thank you for the motivation to read Eric's post closely once again; you are correct. – Pieter Geerkens Dec 22 '13 at 17:54
  • So, is mod just the operator, or is it also another name for the remainder itself? Like, instead of saying 7/4 = 1 with a remainder of 3, could I say 7/4 = 1 with a mod of 3? Or, could I say 7/4 = 1 with a modulus of 3? – SarahofGaia Feb 06 '16 at 16:40
  • 1
    @Sarah Mod denotes the operation. I don't recall every seeing "mod" used a a synonym for "remainder". One should not use "modulus" for the remainder since that denotes the dividend, i.e. for congruences mod $n$ it is $n$ that is the modulus (following Gauss), and this is consistent with more general usage in modules, where the modulus denotes the generator of a principal module, here $(n) = n\Bbb Z$. – Bill Dubuque Feb 10 '16 at 01:05
  • So mod is just the operator, then. Huh. Interesting. Thanks. – SarahofGaia Feb 16 '16 at 20:46
  • @yo' using \newcommand{\rem}{\mathbin{\%}} the spacing fails in \overset{3 \rem 2}{1}, while using \DeclareMathOperator{\rem}{\mathbin{\%}} it works – sound wave Aug 21 '19 at 16:26
  • @Bill the point about C#, PARI GP etc. was that $a%b+c$ doesn't wrap, like it would with $Mod(a,b)+c$ . –  Dec 20 '19 at 16:37
14

It's fine to use $A \% B$ for the remainder of $A$ when divided by $B$, provided that you explain what you are using the percent symbol to mean.

It is fairly common in mathematics to need to introduce a symbol to conveniently express something you're going to use: it is infeasible and undesirable to have standardized notation for absolutely everything.

And since this operator is used infrequently in mathematics, there hasn't been standardized notation for it. $A \bmod B$ is probably the most common notation I've seen for it, although it's mildly abusive and possibly a little confusing, since the $\bmod$ symbol is used in other ways too.

Do not just invent notation without explaining your meaning, though. Doing that is not accepted. Also, you should clearly point out how you're normalizing the remainder: e.g. that you are insisting that it is an integer in the interval $[0, |B| - 1]$.

J.G.
  • 115,835
  • +1. How would I go about explaining the meaning of my notation though? Just a statement in english? Something like "Where A % B denotes the remainder when A is divided by B" ? – ApprenticeHacker Dec 21 '13 at 17:25
  • 3
    @ApprenticeHacker: I think that should be fine in most contexts -- assuming you say how you're normalizing the remainder. There are actual several choices: e.g. you might pick the representative with smallest absolute value: $5% 3 = -1$. Or you might pick the remainder to have the same sign as the as the first argument but still smaller in magnitude than the second: $-5 % 3 = -2$. Or you might choose it to have the same sign as the second argument: $-5 % 3 = 1$ but $5 % -3 = -1$. –  Dec 21 '13 at 17:27
  • +1, in particular for it's undesirable. I completely agree. – egreg Dec 21 '13 at 18:09
  • 1
    +1 for noting that % is a remainder operator in C-like languages, and not a modulo operator. – Pieter Geerkens Dec 22 '13 at 01:14
8

You can write the remainder, mathematically, as $A\; \text{mod}\; B$, which is fairly well-understood to mean the remainder of $A \div B$.

ADDED: In programming, you are correct, $A\,\%\,B$, in many languages, is the operation that returns the remainder when dividing $A$ by $B$. Within mathematics, % is not an accepted notation for this purpose.

amWhy
  • 209,954
  • +1 thanks for the appendix mentioning the programming part. – ApprenticeHacker Dec 21 '13 at 17:13
  • You're welcome. I saw I hadn't, at first, answered all of your question! ;-) – amWhy Dec 21 '13 at 17:14
  • 5
    I think it may be a little dangerous to believe that "$A\mod B$" is understood to mean the remainder (not to mention the question about the normalization of the remainder. Better to explain it in the set-up, to avoid misunderstandings. – paul garrett Dec 21 '13 at 22:12
3

At some time, the use of "mod" in mathematics was restricted to congruences:

$$a\equiv b \pmod n \iff n \, | \, a - b$$

Thus you have always, when $r$ is the remainder of the division $a/b$:

$$a \equiv r \pmod b$$

However, the notation "$a \;\mathrm{mod}\; b$" is now quite widespread, probably with the help of notations from programming languages (it's written exactly this way in Pascal, for instance). It has also been used in very well known computer science books, like "Concrete Mathematics", where it proved to be very useful in mathematical formulas as well.

  • I think formally you select a canonical element from each congruence class and the mod operation maps an element to the canonical element of its congruence class. For some domains this might require the axiom of choice. – Tim Seguine Dec 21 '13 at 20:19
  • @Tim: Unfortunately, in many computer languages the operator that's commonly referred to as the "mod" operator [often denoted as %] does not each equivalence class to a single canonical element, but will map all but one of the classes to two elements each. For example, in current dialects of C, C++, C#, and Java, even though 4≡1 (mod 3), and -5≡1 mod 3, 4%3 will yield 1 and (-5) mod 3 will yield -2. – supercat Dec 22 '13 at 05:11
  • @supercat yeah, I am actually aware of that. And I think most often when mathematicians speak of the operation they talk about the canonical projection, and reserve modulo for referring to the equivalence relation. – Tim Seguine Dec 22 '13 at 12:32
0

One can also use the "symmetrical" notation $$ A = \left\lfloor {A/B} \right\rfloor B + \left\{ {A/B} \right\}B $$ where $\left\{ x \right\} = x - \left\lfloor x \right\rfloor $ denotes the fractional part, as adopted in the book Concrete Mathematics, but unfortunately this is not a "standard" notation as well.

G Cab
  • 35,272
0

Many mathematicians consider the$\bmod$symbol not as an operation, but as a way to indicate a relation between two numbers. That is, it makes sense to say $$\color{green}{a\equiv b\pmod{n}},$$ meaning that $a-b$ is a multiple of $n$, but it doesn’t make sense to say $$\color{red}{a\bmod n=b\bmod n},$$ since the symbol doesn’t mean anything on its own. Of course, this isn’t the opinion of everyone, and you’ll very probably be understood if you use this notation, but I’d recommend against it.

Instead, you might define a function for the remainder in your text, and use that. I’ve seen some mathematicians use $$\color{blue}{r_n(a)},$$ for example, but you could use any other similar notation, as long as it’s understandable, and looks good (which arguably isn’t true when using the $a\%b$ notation). Furthermore, in your definition, you can specify what happens in the edge cases, if needed. What is the remainder of a negative number? What about a non-integer? Whatever you want to do in these kinds of cases will depend on your interpretation of what a remainder is, which could not necessarily correspond to the normal usage of the$\bmod$notation.

ViHdzP
  • 4,582
  • 2
  • 18
  • 44