Hacker News new | ask | show | jobs
by layer8 20 days ago
When saying “6 = 9 mod 3”, the “mod 3” is changing what “6” and “9” are referring to: they are now referring to the equivalence classes modulo 3 that 6 and 9 respectively belong to, and the statement expresses that those two equivalence classes are equal (hence using the equals sign is correct), are the same class. It’s a shorthand for “[6]_3 = [9]_3”, or whatever your notation is for equivalence classes.
1 comments

Exactly, so [0]_3 = [3]_3 = [6]_3 = ... (and here these are indeed equalities inside Z/3Z because these are equalities of sets and not just equivalences). And for that reason, we take the "best" or canonical representative of the equivalence class to be [a]_n where 0 is less than or equal to `a`, which is always strictly less than n; hence, [0]_3 is canonical.

Actually, since the modulus is often fixed within a computation or expression, we often simply abuse notation by writing:

0 := [0]_n ("zero is defined to be the equivalence class of 0 mod n") 1 := [1]_n ...