Very well written! The core of my question lies around this:
Stefan_Lang wrote:
What you have to do instead is analyze the facts you know about the morphisms in question, and, only based on these facts, consider the logical consequences.
Say we're trying to show a morphism f is monomorphic, then it has to satisfy:
f:X -> Y such that for all objects Z and all morphisms g1, g2: Z -> X, f o g1 = f o g2 => g1 = g2
We can base the equality of morphisms in general around the equality of functions:
Let X and Y be object classes and f:X -> Y and g:X -> Y be morphisms. We say that f and g are equal and write f=g if f(a)=g(a) for all a in X.
Regardless of the approach towards a proof we choose, there must be consideration given to the "a in X." This necessitates making the object classes concrete I believe (e.g. you can no longer have just an object class "cars" since now you need to consider the equivalence classes within "cars"; we have to consider mappings, not just domain and codomain). And I think this is where I start getting a little confused. If not considering a concrete category, we don't have enough information. Maybe it's just as simple as "showing properties like this requires a concrete category," but then I don't see as much benefit to the more abstract views of categories. I'll continue to read and think about it. I'm sure it'll click eventually. Thanks for the response! I do need to get better at proofs in general. It would make digesting some of these books a lot easier.