Pyrargyrite, Ag3SbS3 (top) and proustite, Ag3AsS3 (bottom).

These are isomorphous minerals, meaning the atoms have the same arrangement in the two compounds, but where pyrargyrite has antimony, proustite has arsenic.

Antimony and arsenic are in the same column of the periodic table, so we would correctly expect them to make this swap without much fuss.

This little gem is dedicated to Frédéric Vanhove, who passed away yesterday and was our assistent for graph theory. He had a passion for graphs, so I hope he’d like this beautiful theorem - in my opinion one of the most elegant in whole mathematics.

Draw n points and connect them without creating any “loops”; in the result, every point should be accessible from every other point by exactly one path. Such a configuration (a graph) is called a tree. You can see all possible trees on four points in the image. Lots of these trees are essentially the same (isomorphic), but we label the points to distinguish between them.

Carl Wilhelm Borchardt found an elegant formula to express the total number of possible spanning trees on n labeled points, but nowadays the result is named after Arthur Cayley. In our example (with n=4) we find 16 trees, but in general, the formula states that this number is exactly nn-2.

Shortly, nn-2 is the number of spanning trees of a complete graph Kn.

Group Theory, Isomorphisms & Permutations

I’m not feeling social interaction today so I learned a bunch of group theory, and it just got too cool, so i had to post some of it on here!

Now, before I go on to talk about the main things which are Isomorphisms and Permutations, I should properly define groups.

Taking the axiomatic approach, groups are sets with an operation for combining elements which pass the following tests

Groups are closed under one operation, meaning if you combine any two elements using an operation of your choice (the symbols +and * are often used), you will never be able to create an element which is not in the group.

The operation is associative meaning A*(B*C)=(A*B)*C=A*B*C as long as you combine the elements as shown. This effect can be extended to any string of n elements. 

There exists an element “e” such that x*e=x and e*x=x. This element is called the unit, and if we are talking about multiplication with ordinary numbers, this number would correspond to one.

For each number in a group, there will be an inverse. When we are using multiplication-like operations like we are above, we usually write the number like this a-1, and call it “a inverse” for addition we use -a and call it “the negative of a”. The inverse of the unit is the unit again, and any element combined with its inverse becomes the unit.

You can see that the commutative axiom is not listed, where A*B=B*A this is not always true, as we will see in a second. Take the group consisting of the elements




under the operation of matrix multiplication which works like this.

  Now, if we do the operation A*B, we get the matrix C, if we do the operation B*A, we get the matrix K, meaning that this operation is not commutative. This is not the only operation which behaves this way, so in general we have to say that the operation does not have to commute. If it does, we call the group an Abelian group.

Now that that’s out of the way, we can define an Isomorphism. 

An Isomorphism is a one-to-one function which takes one group and converts it into another while preserving the operation. Basically, if G  is a group under the operation * denoted <G,*> and <H,+> is a group, and 

then an Isomorphism f(x) will take f(a)=a’ and f(b)=b’ and make, f(a*b)=a’+b’ or, entirely in function notation, f(a*b)=f(a)+f(b).

To prove that two groups are isomorphic, you need to prove that the function you are using is one-to-one, that is proving that the function is both injective and surjective. To do this, you have to prove that each element of the range is the image of at most 1 element of the domain, which can be done by showing that it fits this definition 

You then have to prove that the function is surjective by showing that for some element y in he range, there exists an element who’s image is y. Together, these two things prove that the function is bijective, which means that you can turn elements from G into elements in H and vice versa.

From there, all you have to prove is that f(a*b)=f(a)+f(b) and you’re done.

Now why are isomorphisms important? Because they can be used to prove things like this Cayley’s theorem which says that every group is isomorphic to a group of permutations.  Quite a bit is known about permutations, which makes this theorem very strong in terms of its use.

We can prove this in a second, but first, we have to look at permutations. 

A permutation is a function on a set S which takes the elements of S and rearranges them. Now, this must by definition be a bijective function, which takes S and maps it to its self. Taking individual permutations to be elements of a set, we can create a set of n! elements, where n is the number of numbers being used in the permutation. For instance, the set of all permutations on three numbers is:





and has 3!=6 elements. To combine the elements, we define the permutation of a permutation to be a function which takes the elements as they are arranged by the inner permutation and then rearranges them under the outer permutation called the composition. For instance:

To show that this combining of permutations is closed under the operation above, we can make a chart like the one below, where the first column is multiplied on the left by the first row,

but there are an infinite number of groups of permutations, so we must prove it. We can actually take it a step further into abstraction, and prove the composite of any two functions which are both bijective will yield another bijective function. Why are we proving the combinations of permutations are bijective? Because we started with the assumption that we had made a list of all the possible permutations for n objects, so showing that this new function is also bijective permutation means that it was on this list in the first place. 

Assume a f(x) and g(x) are injective functions, then we have to prove that [f*g][x]=[f*g][y] implies that x=y. Well suppose  [f*g][x]=[f*g][y], then f(g(x))=f(g(y)) because f(x) is injective, g(x)=g(y), and because g(x) is injective, x=y, so [f*g][x] is injective

Assume g:A ->B and f:B ->C are surjective, then we have to prove that every element of C is f*g of some element in a. Assume z is an element of C, then because f is surjective,  f(y)=z for some y in B. Because g is surjective,f(g(x))=z so, for any element of C, there is an element for which z is its image under f*g, so [f*g][x] is surjective.

Now, assuming the functions f and g are both bijective, it follows from what was just proven that f*g is bijective as well.

By this, the group of permutations under composition is closed.

There exist inverses for each element, which return each permutation to the permutation

which also happens to be identity element. Finally, combining permutations is associative, so we have a group.

Now we can prove Cayley’s theorem which again states that each group is isomorphic to a group of permutations.  


Begin by assuming we have a group G, we wish to prove that it is isomorphic to a set of permutations. Well, permutations require a set, so why not use the set that G is built off of? The only set we have around is the one used to make G, so we have no other choice but to use it. We then define a function

which is defined as:

And gives all the permutations of G, changing each element a of G into ax, and then ranging X over all elements of G to give one permutation per element. 

This function is injective, that is 

and surjective, as for some y in g, 

so y is the image of some element a^(-1)*y.

So we have a bijective function which turns an element a of G into a permutation which turns x_1 into a*x_1, x_2 into a*x_2 and so on. So we let G* represent the set of permutations of G created by pi_a(x) as a ranges through the elements of G. 

Notice now that the set of permutations created is not necessarily the set of all permutations of G, but a permutation corresponding to each element. We now have to prove that it is a group, that is

and that for any permutation contained by G*

Where pi_e is the identity permutation given by multiplying each x in G by the identity. The associative property can be assumed due to the fact that the operation is simple non-commutative multiplication. 

To begin, we have to prove that 

We can say that 

Because ab is a member of G, we can say that G* is closed with respect to composition. 

Finally, because G is a group with inverses, 

So we have proved that G* is in fact a group.

Now all we have to do is prove that G is isomorphic to G*. We already have the function ready, so we use it as the isomorphism. 

It is injective,

and surjective, every element pi_a of G* is the image of some f(a)


Thus, f is an isomorphism, and

That’s about all I have left in me for today, but I’ll try to get more up on here tomorrow! I thought Cayley’s theorem would be a good start!


I just have lots of Tron feels… xD I did this comic a while back when I found out what a NAVI Bit is. The concept of ISOs being undirected and lost got to me. I think Quorra’s NAVI would’ve gotten very cross with her for always sneaking off into places where she shouldn’t go—which would’ve been funny to make into a comic, buuut this happened instead. Cuz feels. xD Enjoy! <3


Galois’ Theorem on Finite Fields via @theoremoftheday @republicofmath

A finite field with n elements exists if and only if n = pk for some prime p and some non-negative integer k. Moreover this field is unique up to isomorphism.


isomorphed said:

Mardu is the only clan that doesn't have humanoid birds. Why?

They refuse to ride on horseback. : )

Whenever we do factions, we like to mix up who’s in which faction to help differentiate them.

My Talk for the Pure Mathematics Graduate Colloquium (Tentative)

Abstract: Forcing is an important tool in set-theoretic model theory. It is a powerful technique that can demonstrate the independence of many statements in ZFC by creating inner models where the truth of the statement varies. I will go into some detail about creating these forcing models. I will also give, for the sake of example, a proof of a result due to Baumgartner and Sierpiński that the statement “All ℵ_1-dense sets of reals are order-isomorphic” is independent from the axioms of ZFC.

Freud’s greatest discovery, the one which lies at the root of psychodynamics, is that the great cause of much psychological illness is the fear of knowledge of oneself—of one’s emotions, impulses, memories, capacities, potentialities, of one’s destiny. We have discovered that fear of knowledge of oneself is very often isomorphic with, and parallel with, fear of the outside world.
—  Ernest Becker

The Denial of Death
(Via Toven)

                                     ISO symbol for female. ♀
I didn’t even know that there was a gender difference, I just thought it was a simple symbol Quorra had showing she’s an ISO (Isomorphic Algorithms). I did my research turns out that it’s really a futuristic take on the traditional symbols for male (♂) and female (♀) with a hexagon in place for the circle.
Come on now… you know it’s bad ass.

It is time to leap forward to the next stage, approach and keep alive some traditions but with a futuristic take on it. Tron style!

To all my geek/nerd lady fans, finding a HI-RES image for this symbol did not exist, well not unless you screen shot the glowing mark from the movie. So I decided to vectorized it via photoshop, enjoy to your liking.
Spread it around, share, like and all that good shit.
-Sir Webb

For all their imagined distinctiveness, the Dutch follow a familiar global pattern. All soccer nations define themselves in relation to the global game, notably the World Cup tournament (Sugden and Tomlinson 1994). By claiming particular identities within soccer’s universal framework, they turn ‘the global game’ into the ‘glocal game’ (Giulianotti and Robertson 2004: 547). But the ingredients of that self- definition are standard (cf. Archetti 1994): media representations of critical events, embellished by continuous soccer talk, reproduce the collective memory and reinforce a sense of national distinction, usually focused on a set of assumptions about ‘the’ national style held to reflect long-standing national characteristics. Nations, if we may represent them as a single actor for the sake of convenience, like to think of themselves as distinct, superior, and whole. They express that uniquely superior wholeness in remarkably similar fashion. The global sporting system (Van Bottenburg 2000) not only standardizes forms of play but also moulds the identities of participants in isomorphic ways. Due to such global constraints, nations are alike in the way they claim distinction.
—  Frank J. Lechner, “Imagined communities in the global game: soccer and the development of Dutch national identity”.
Number of isomorphism classes of binary trees

Description of the problem

Today, I would like to write a recursive integer function which returns the number of isomorphism classes of binary trees on $N$ vertices.

Usually, binary trees are ordered in the sense that left and the right legs and the parent node of a node are distinguished. However, from a graph theoretical point of view one cannot make such distinctions. For example, the following trees are isomorphic and should not be treated different:



A solution

One solution is to order the legs of a binary tree at a leaf using the number of nodes. Then the number of isomorphism classes of binary trees with $n$ nodes is \[ \Upsilon(n) = \sum_{i=1}^{\lfloor n/2\rfloor} \Upsilon(i)\Upsilon(n-i) \] This sequence is known as the half Catalan number sequence.

The code

I will implement the function using memoization. One easy simplification: there are no binary trees on an odd number of vertices. So, the function should return 0 in those cases.

(let ((trees-table (make-hash-table)))
  (defun count-trees (n)
    (cond ((< n 2) 0)
          ((= n 2) 1)
          ((oddp n) 0)
          (t (or (gethash n trees-table)
                 (setf (gethash n trees-table)
                       (loop for i from 2 to (truncate (/ n 2)) by 2 sum 
                                (* (count-trees i)
                                   (count-trees (- n i))))))))))


Let us test some small cases:

(count-trees 4)

(count-trees 10)

and something large

(time (count-trees 8000))

  Evaluation took:
  36.029 seconds of real time
  35.990000 seconds of total run time (35.833000 user, 0.157000 system)
  [ Run times consist of 0.096 seconds GC time, and 35.894 seconds non-GC time. ]
  99.89% CPU
  100,629,095,448 processor cycles
  4,087,578,560 bytes consed