28 comments

[ 2.4 ms ] story [ 72.3 ms ] thread
Bijections aren't necessarily isomorphisms. A bijection is just a one-to-one correspondence between two sets; an isomorphism also preserves functional and relational structure on those sets.

I note that this was brought up in the comments and dismissed by the author. A mistake is one thing—we all make them—but the way he shrugged off the correction is concerning.

Bijective functions are of interest to me for practical purposes in data binding, UIs and the like. Having a reversible function translating data from one form to another makes creating bindings more declarative, as you don't have to prove that the getter and setter halves are equivalent (the usual alternative), if your function to begin with is bijective.

And for this practical purpose, I also don't care about preserving functional and relational structure in the mapped sets - isomorphism is not particularly relevant.

So what I'd like to know is why exactly you think this is "concerning". What bad ramifications are you afraid of?

Well, I'm afraid that people will believe you!

For your purposes it might not matter whether all bijections are isomorphisms, but it does matter to other people (for practical as well as theoretical purposes). What worries me is that someone may come along, see a nicely-written article appearing to summarise the nature of some important classes of functions, take it at face value, and go away believing that all bijections are isomorphisms, only to have this belief trip them up at some later stage. Not everyone is going to hop on Wikipedia or open up a maths textbook to verify your assertions, after all.

If you don't care about standard terminology, you might as well name your function red, green and blue, instead of re-using those complicated words like injective in a non-standard manner.
Hang on, I'm not saying I don't care about standard terminology - I'm saying I care a lot more about the bijective property than the isomorphic property.
A bijective function (also called isomorphic) is a one-to-one mapping between the persons and the bikes (between the domain and codomain).

That's the assertion made in the article - that a bijection and an isomorphism are the same thing. That's just not correct, and the distinction matters in general, even if you have not yet encountered a situation where it caused a problem. If you care only about the bijective property, why bring isomorphism into it?

Hang on, I'm not saying I don't care about standard terminology

Actions speak louder than words.

You have been corrected about your terminology by multiple people. Your response has been to not make the obvious correction, and to tell people that you don't care about what you are being corrected on.

This is very strong evidence that you do not, in fact, care about standard terminology.

In fairness, barrkel is not the author of the original article, he's just defending him.

I initially made this mistake too--hence my "I'm afraid that people will believe you!" (my emphasis). Unfortunately it's too late to edit my post above to clarify.

Do you have evidence that they are different people?

Until you pointed it out, I hadn't noticed the fact that the user name being used here is different than the name that the blog was posted under and different yet again from the person who chose to post it here. But I could easily see person A posting to a blog, person B putting it here, person A noticing the traffic, and coming here to comment with a user name that didn't match. So it is not clear to me that the person responding here is not the person who wrote the article.

The article was written by someone called Martin Matusiak, or at least that's what it says on his home page [1]. Apparently he lives in Utrecht. barrkel's blog [2] (linked off his HN profile), on the other hand, says his name is Barry Kelly, and he lives in London. They do, however, both work with Delphi.

[1] http://www.matusiak.eu/numerodix/

[2] http://blog.barrkel.com/

I think the prior probability of me (or any other random commenter who's been on this site for many years) being any posted article's author has got to pretty small, and that you ought to have a higher bar of evidence for believing such than the ability to easily imagine such a scenario, especially in some kind of sock-puppet case, which you seem to be implying.

(Frankly, it's bizarre and a little insulting, because it implies I had a conflict of interest I didn't disclose.)

I am indeed not related to the original article's author to any reasonable degree.

Also, I wasn't defending him - or rather, I didn't see myself as defending him. I was probing the strength of the criticism; I wondered if it applied to my own interest in the bijective property (I have literally spent years of my life on the data binding problem). I more or less agree with you, FWIW.

For people who aren't up to speed on Abstract Algebra, the analogy to have in mind is:

A: Rectangles and squares are the same things.

B: That isn't correct. All squares are rectangles but the reverse isn't true.

A: I only care about the number of sides the polygon has so for my domain of interest rectangles and squares are equivalent. (Therefore the falsity of the first statement is a minor issue?)

Diagrams can help too. Here's a bijection f that doesn't preserve the <-ordering.

         a > b > c > d
         ^   ^   ^   ^
    f :  |   |   |   |
         w < x < y < z
Here's an isomorphism g that preserves the <-ordering.

         d < c < b < a
         ^   ^   ^   ^
    g :  |   |   |   |
         w < x < y < z
Note that the domain {w, x, y, z} and range {a, b, c, d} are the same for both f and g, but one of them preserves the ordering while the other doesn't.
Nice example, I hadn't thought of using ordering (hmmm, it's just the binary less-than relation... most technical examples I've seen use a trinary relation, like a + b = c). I find it helpful to separate an isomorphism into two: bijection and homomorphism. http://en.wikipedia.org/wiki/Homomorphism#Informal_discussio... (the formal discussion is in terms of groups - above my reading level).

What's a simple example of a homomorphism that isn't bijective? All the ones I can think of are more complex than I'd like, using two functions, one for the structural property that is preserved and one for the mapping. It's hard to explain because there's three relations to keep track of; it's not as much of a problem if you visualize it, but ordinary english makes it hard distinguish whether you're talking about relations between values of the first set (i.e. the structure before the mapping), relations between values of the second set (i.e. the structure after the mapping), or relations between a value of the first set and a value of the second set (i.e. the mapping). It's even confusing to write that, let alone read it.

e.g. structural property of squaring and the mapping of taking the absolute value. Before mapping: 5^2 = 25, -5^2 = 25. After mapping: abs(5)^2 = abs(25) and abs(-5)^2 = abs(25). The mapping of taking the absolute value is not bijective, as both abs(5) and abs(-5) map to the same value, 5, but is it is homomorphic with respect to the absolute value, because the the pairs of values that have this relation before the mapping also have it after (and pairs that aren't related in this way aren't related after).

It's even harder to think of a simple example that is obviously useful.

I'm assuming you want non-trivial examples of non-bijective homomorphisms, but you can create a trivial one using the <= relation: Consider the two element set {0, 1} and the function f from {0,1} to {0,1} so that f(0) = f(1) = 0. f preserves the <= relationship but is not a bijection.
Thanks! That's certainly a simple one.
Or to make it less abstract: Look at a rubics cube. Taking out all edges, just leaving the corners, is a homomorphisms that isn't an isomorphism.
I don't follow -- what is the structure being preserved in this example?
If you have an algorithm that solves a normal Rubik's cube, you also have an algorithm that solves a corners-only Rubik's cube.
Oh, fair enough! That's a fun example.
To bore you with more formal terms: All manipulations of a Rubik's cube form a group. And so do all the manipulations possible on a 2x2x2 Rubik's cube. And the 2x2x2 cube's group is a subgroup of the 3x3x3 cube's group, and there's a trivial homomorphism from the 3's group to the 2's group. That homomorphism is not an isomorphism.
I was aware of the group structure of the Rubik's cube (it is, after all, a subgroup of the permutation group on 54 elements), but apparently I had never given it much thought beyond that. Thanks!
Always specify the equivalence relation you are interested in, if it's a non-standard one.
Bijections aren't necessarily isomorphisms. A bijection is just a one-to-one correspondence between two sets; an isomorphism also preserves functional and relational structure on those sets.

That is an important distinction, but it tends to be pretty easy for most people.

Another important distinction, which I personally found much harder, is the distinction between an isomorphism and a natural isomorphism. Which is that a natural isomorphism is an isomorphism that is defined by the functional and relational structure on those sets.

I had so completely ingrained the idea that "isomorphic means the same" that it was hard for me to understand that some pairs of things were more "the same" than others. What part of "same" didn't my teachers understand?

The classic example involves vector spaces. The set of linear functions from a finite dimensional vector space over the reals to the reals is a vector space. It turns out to be isomorphic to the original vector space, but not naturally isomorphic. This second vector space is called the dual. The reason why is that the dual of the dual is naturally isomorphic to the original vector space. The natural isomorphism is defined like this. If v is a vector in the original space, and f is a linear function, then map v to the function v' defined by v'(f) = f(v).

As difficult as it was for me to understand this, it does turn out to be important. For instance the distinction between a vector space and its dual is closely related to the distinction between covariant and contravariant.

I like this objection, because it illustrates why category theory (or the category-theoretical way of thinking) is valuable even in elementary discussions.

“Isomorphism” is a great example of a word that is not well-defined out of context. An isomorphism of rings is not the same as an isomorphism of groups, for example.

In category theory, an isomorphism is a morphism that has an inverse. Category theorists sometimes use the punning device of treating “iso” as an adjective, so that an “isomorphism” is an “iso morphism”.

But before you can talk about morphisms, you need to know which category you‘re talking about. An isomorphism in the category of sets is indeed precisely the same thing as a bijection, so in that sense bijections are necessarily isomorphisms. But the word is traditionally used in the context of categories of algebras (e.g. groups, rings, fields, etc.): the morphisms of those categories are the homomorphisms (i.e. functions that preserve the algebraic structure), and so of course the iso morphisms in those categories are also homomorphisms.

I like the puns, but wish more people would use "epic" instead of "epi".
I think the wordplay in category theory can be taken too far, sometimes, so that it almost starts to seem to other mathematicians like a private language. Peter Freyd’s coinage “lluf”, for example (which is “full” backwards). But I like Paul Taylor’s notion of “prone” and “supine” morphisms: so much more vivid than Cartesian and co-Cartesian.

(If you say epic then you are morally obliged to say monic; but you can’t very well say “isic” for the isos, so you’ve painted yourself into an inconsistent corner. I’m not sure it’s worth it.)