C can be any Lipschitz function.
Usually, the network is modeled as:
sigmoid(C(x)) -> D(X) and we can apply constraint that makes sure it is a Lipschitz function.
i.e. C is the function model by your deep network. But this deep network must obey Lipschitz inequality which for example WGAN use clipping to force the constraint.