finished def of CanonicalCut, functoriality is trivial