On Fri, Aug 22, 2014 at 7:38 PM, rjf <fate...@gmail.com> wrote: > > On Friday, August 22, 2014 2:04:35 PM UTC-7, Bill Hart wrote: >> >> >>> RJF said... >>> I don't know about canonical maps. The term "canonical representation" >>> makes sense to me. >> >> >> He means this. In algebra Z/nZ is actually a ring modulo an ideal. Z is >> the ring, nZ is the ideal. >> >> The elements of Z/nZ are usually written a + nZ. It means precisely this: >> >> a + nZ = { x in Z such that x = a +nk for some k in Z } >> >> So it is a *set* of numbers (actually, in algebra it is called a coset). >> >> When you write Mod(a, n) you really mean a + nZ if you are an algebraist, >> i.e. the *set* of numbers congruent to a modulo n. >> >> So Z/nZ consists of (co)sets of the form C = Mod(a, n) = a + nZ. If you >> like Z/nZ is a set of sets (actually a group of cosets in algebra). >> >> There is a canonical map from Z to Z/nZ: we map b in Z to the (co)set C in >> Z/nZ that contains b. >> >> If a = b mod n then C = mod(a, n) is the *only* one of these sets which >> contains b. So the map is canonical. We only have one choice. >> >> But there is no canonical map going the other way. For any such (co)set C, >> which element of Z are you going to pick? Any of the elements of C will do. >> >> You can make an arbitrary choice, e.g. pick the unique element of C in the >> range [0, n). Or you could pick the unique element in the range (-n/2, n/2]. >> But that is not a canonical choice. You had to make an arbitrary choice. >> Someone else may have made a different choice. (Indeed some people use the >> latter choice because some algorithms, such as gcd and Jacobi symbols run >> faster with this choice.) >> >> So canonical map means there is only one way you could define the map. You >> don't need to tell anyone what your map is, because they *have* to make the >> same choice as you, as there are no alternatives. That's the meaning of >> canonical in mathematics. >> >> It's probably not a terminology they teach in Computer Algebra, > > > There are few courses in Computer Algebra. But the term canonical is used > differently. In fact, two systems could > have different canonical forms (e.g. in your example, [0,n-1] or > [-(n-1)/2, (n-1)/2] for representatives of the numbers mod n. > > Just as one system could have 1+x+x^2 and another x^2+x+1. > > But for each system with a canonical form for polynomials, all polynomials > in its canonical form would be > identical bit patterns. Some systems e.g. Maple go further and have all > canonical and equal forms stored > at the same machine address.
I think this highlights the difference between your perspective and mine. When I write "the map Z -> Z/nZ in Sage" you seem to be interpreting that as "a map from representatives of the integers to representatives of the integers mod n" and I'm thinking "a representation of the (canonical) map Z -> Z/nZ." Same for Rings, Fields, etc. >> but it is taught to undergraduates around the world in pure mathematics. > > Um, some English speaking students who take, um, certain electives? Many more than take courses in computer algebra. I'd say. >> The whole argument here is that because only one direction gives a >> canonical map, coercion must only proceed in that direction. Otherwise your >> computer algebra system is making a choice that someone else's computer >> algebra system does not. > > > But that is perfectly all right. canoncality is with respect to a > particular computer system. At least > my kind of canonicality. Clearly, despite some overlap, you're a computer scientist, and I'm a mathematician: http://en.wikipedia.org/wiki/Canonical -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.