The complement of $\{w: w\text{ has equal numbers of $a$'s, $b$s' and $c$'s}\}$ is context-free
So let us remember the closure properties of context-free languages, gone over in class and stated by the TFS:

* closed under union
* closed under concatenation
* closed under Kleene Star


Now I will show that my language $L'$ is the same as the language $L$. Let $NE(x,y,z)$ be an operation that generates a language such that the number of x's is not the same as the number of y's, with as many z's as one wants anywhere in the language. Thus my language $L'$ is defined as: 

$$ NE(a,b,c) \cup NE(c,a,b) \cup NE(b,c,a) $$

This language is obviously $L$. It is all instances of a not equal to b, b not equal to c, and c not equal to a. The nice thing here is that if we prove $NE()$ is context free, then because of symetry and closure under union operation. Let us represent NE as a PDA here: 

$$ (s,\epsilon,\epsilon) \rightarrow (p,\$) $$
$$ (p,a,\epsilon) \rightarrow (p,1) $$
$$ (p,b,1) \rightarrow (p,\epsilon) $$
$$ (p,b,\$) \rightarrow (m,1\$) $$
$$ (p,c,\epsilon) \rightarrow (p,\epsilon) $$
$$ (m,c,\epsilon) \rightarrow (p,\epsilon) $$
$$ (m,b,\epsilon) \rightarrow (m,1) $$
$$ (m,a,1) \rightarrow (m,\epsilon) $$
$$ (m,a,\epsilon) \rightarrow (p,1\$) $$
$$ (p,\epsilon,a) \rightarrow (f,\epsilon) $$
$$ (p,\epsilon,b) \rightarrow (f,\epsilon) $$
$$ (m,\epsilon,a) \rightarrow (f,\epsilon) $$
$$ (m,\epsilon,b) \rightarrow (f,\epsilon) $$

So now that I have represented this language as a PDA, all I need to show is that the language I represented corresponds to $NE()$. 

First I will show that my PDA, $X$ is $X \subseteq NE$. This is quite easy to see. The only way that one can enter a final state in $X$ is when, under one of our rules, we hit the end of the string, and there is something left on the stack (meaning that there is an unequal number of either a's or b's). we can see here that this is a subset. 

Next I will show that $X \supseteq NE$, or in other words, all strings that are part of $NE()$ can be made by $X$. One can see that one can have as many c's as one wants in this model, by the rules:  $ (p/m,c,\epsilon) \rightarrow (p/m,\epsilon) $, so that is not a problem. But how does it promise that all strings of unequal number of a's and b's are not in this language. Again, the grammar only keeps track of how many excess a's or b's there are, and can accept any string of arbitrary length with any permutation of letters as long as one of a or b, has an excess. Thus $X \supseteq NE$.

I have shown that $NE$ is Context Free by building a PDA, and I have shown that $L$ is a finite union of $NE$s, thus $L$ is context-free.