>>10275715The proof is fine, I'd just like to make some suggestions.
1. Mixing English and math notation is generally frowned upon. Instead, write out only with logic or only English.
2. Even though it's implied by your explanation, consider writing out your assumptions explicitly.
It would be like this:
Assume the functions exist
Assume g o f. Assume g_not o f. Assume f is surjective.
Now you can write the proof more compactly. Again, the proof is valid but I would not have gotten full credit for it in my upper division classes.