I have worked my way through Simmons' intro to category theory. I also know what a subobject classifier/elementary topos is. Is there anyone who could explain what Lawvere did with Hegel's work (described here), as well as what Hegel's ideas are in the first place? What is "Aufhebung," and how does Lawvere translate this notion into category theory? I know little about Hegel except that he was interested in dialectics.
Lawvere most succinctly explains this idea in his paper on unities of opposites in physics. A great resource is the page about the Science of Logic on the $n$Lab, which I think is largely due to Urs Schreiber. I will try to sum up my understanding here.
It pays to begin with Hegel's project for the Science of Logic. In this book, Hegel sets out to give an account of "objective logic". In the introduction, he says (trans. A.V. Miller)
What we are dealing with in logic is not a thinking about something which exists independently as a base for our thinking and apart from it, nor forms which are supposed to provide mere signs or distinguishing marks of truth; on the contrary, the necessary forms and self-determinations of thought are the content and the ultimate truth itself.
In other words, Hegel seeks a logic that reasons about the things it reasons with. This project is realized, in a sense, with categorical logic or type theory, since in this case there is no distinction between the objects of the theory (the objects and morphisms of the category, the types and the functions) and the logic (propositions and proofs) used to reason about them. This idea is sometimes called "propositions as types".
Lawvere is concerned with objective logic in this more mathematical sense as the logic of objects in a category. The logic takes the form of tools we can use to make and understand objects using others. In turn, the existence of these tools can be seen as axioms for a suitable category. For example, conjunction is objectified as the product, disjunction as the coproduct, and implication as the internal hom (also called the exponential object). Truth is represented by a terminal object, and falsity by an intial object.
Lawvere had noticed before his Hegelian turn (I think) that these axioms can be encoded using adjunctions. The cartesian product is right adjoint to the diagonal functor which duplicates each object and arrow, and the coproduct is the corresponding left adjoint. The internal hom is defined as a right adjoint to the functor which takes a fixed cartesian product.
A simple objective logic was known to Aristotle and later expanded and popularized by Venn and Boole: the logic of parts of a drawing. The morphism in this case represents the fact of containment (so there is at most one morphism between two parts), and the above adjoints given the intersection, union, and "material implication" respectively. This logic would be later axiomatized by Heyting, so we call these categories Heyting algebras today.
Many of these axioms occur in opposite pairs as left and right adjoints to a common functor: falsity and truth as left and right adjoints to the terminal functor, disjunction and conjunction as left and right adjoints to the diagonal functor (indeed, discreteness and codiscreteness (total continuitity) as the left and right adjoint of the underlying set functor of a space, which Lawvere would later use to axiomatize what it means to be a category of spaces). This is where we return to Hegel, because the fundamental guiding principle in Hegel's objective logic is the "unity of opposites."
The basic idea of a unity of opposites is that in order to entertain any idea, you need to be able to entertain its opposite; otherwise, your idea is vacuous in the sense that it could apply to anything. In fact, Hegel's first unity of opposites is just that: the unity of the opposition between vacuity (applying to nothing) and tautology (applying to anything).
This is his unity between Nothing and Being. He explains this as something like: to even talk of Nothing is to consider it as a thing, and to make it be. But it is a thing with no characteristics, a pure Being. On the other hand, pure Being has no characteristics either, it simply is; thus it is contentless, and therefore Nothing.
Lawvere's interpretation of this opposition is to see Nothing as the initial object $\emptyset$ and Being as the terminal object $1$ since in a category of spaces -- e.g. a topos or at least an extensive category -- $\emptyset$ is an empty space and $1$ is a single point. These are opposite in the sense that they are distinct (and intuitively, very distinct), but are unified in that they are the left and right adjoints of the same functor.
One major difference, it seems to me, between Lawvere's oppositions and Hegel's is that Hegel's go both ways (Being turns back into Nothing at the end), while Lawere's go only from non-$X$ to pure-$X$ (e.g. non-Being to pure-Being, non-continuity to pure-continuity). Just as Hegel says we can't think of something without its opposite, here we can recover the opposite from the thing by the uniqueness of adjunctions.
I'm going to stop here; please check out the $n$Lab page on the Science of Logic for much much more if you are interested. Aufhebung is about resolving an opposition, check the $n$Lab page for more detail, or see Progression II in the first section of Schreiber's scroll on physics which is done in the same vein.