The function he showed _is_ an isomorphism, but those 4 properties he showed above don't have anything to do with that (and they are also not used to prove that that function is an iso).
EDIT: Very stupid mistake, it is not a isomorphism because it is not onto. For example the matrix (a)ij = 1 for i=j={1,2} can not be obtained.
Thanks for your input. I don't know exactly what point the author wanted to make, but IMHO his goal was to show that one can do complex arithmetic using matrices, not to show what is and what is not an isomorphism.
I mean, other than mathematicians, no one cares what an isomorphism is, right? But doing complex arithmetic with matrices sounds cool because one can code stuff like Fourier transforms without a library that implements complex numbers. I found that refreshing and interesting and that is why I submitted this article.
If you implement the FFT using this matrix representation, you could have just as easily just built your own complex number system and used that. It seems that this matrix representation is just an easy way to not make mistakes when doing the complex arithmetic.
Most languages make it pretty easy to implement basic complex number support.
Once, years ago, I created a C++ library to do complex arithmetic. All that operator overloading made me realize that C++ is probably not the most efficient language to work with. Fortunately, Python has built-in complex numbers...
The function he showed _is_ an isomorphism, but those 4 properties he showed above don't have anything to do with that (and they are also not used to prove that that function is an iso).
EDIT: Very stupid mistake, it is not a isomorphism because it is not onto. For example the matrix (a)ij = 1 for i=j={1,2} can not be obtained.