Reasoning Systems For Categories