Why is the number of anti-chains always equal to the number of up-sets

For my thesis I'm working on a program to count the number of upsets in a lattice. My professor gave me a tip via e-mail that the number of upsets in a lattice equals the number of antichains in a lattice. (Antichains are often shorter so when you're just interested in the number it can be faster to go for this approach).

I've tried finding some proof or at least to get a general idea why the above is true, it seems true enough in my program anyway. Of course I will speak to my professor next week and he will be able to explain it but I'm curious now (you know how it feels :D).

So does anyone have an explanation why #anti-chains == #upsets given any partially ordered set? I'm not necessarily looking for a formal proof, I'm just trying to guide my intuition :).

-
Imagine you wanted to list all of the up sets. Instead of listing every element in each up set, you might notice some are redundant: if you list x and x <= y, then we know y is in the set, so why list it explicitly? If you take this to the extreme, you only list the minimal elements of the upset, and you know they are minimal because you cannot compare them with each other: none of them was ever a "y". In other words to list up sets, you might prefer to list the anti chains that generate them. If you were using backtracking to find the up sets, then in some sense you were already doing this. –  Jack Schmidt Jan 11 '12 at 12:07
@JackSchmidt that's a brilliant answer, I hadn't looked at it that way at all but now you've explained it its perfectly logical. Too bad I can't accept comments as answer :). –  Roy T. Jan 11 '12 at 12:16
@JackSchmidt: Bravo ! –  Did Jan 11 '12 at 12:20

For every anti-chain $a$ in a lattice $L$, define $a^+$ as the set of elements of $L$ greater or equal than at least one element of $a$. Then $a^+$ is an upset of $L$ and the function $a\mapsto a^+$ is one-to-one between the set of anti-chains in $L$ and the set of upsets of $L$.