Hello, I'm interested in just how "everyday mathematics" is expressed within the language of ZFC. For example, a function is a set all of whose members are ordered pairs and satisfies the formula "for all x,y,z, if (x,y) and (x,z) are in f, then y=z", and a mapping f:A->B can be defined as a triple (A,B,f) where f is a set thats a function and satisfies the formula "for all x, if there exist y such that (x,y) is in f, then x is in A" and the opposite for range of f is a subset of B. But I don't how to express more complicated things like groups, spaces, modules, categories etc. and morphisms between them.
I would like to know how to tell whether a set is one of these objects. Everyone can describe these things with natural human language, but not so many people know how to express them with just the membership relation! So can someone recommend me a source that expresses ordinary mathematical objects within the formal language of ZFC? Thanks for any help.