Although it is possible to enumerate degree-preserving or natural joins directly, it is more convenient and elegant to rephrase these join operation as integer linear programming (ILP) problems. Standard ILP solvers (reviewed e.g. in ) can then be used to enumerate these joins. Let C G := C(U ′ , U ′′ ) for some graph G with weighting function ℓ G and C H := C(W ′ , W ′′ ) for some graph H with weighting function ℓ H such that