'Returns the graph implementation of the object.
Marks the top level constraint as the dual_holder,
so the dual value will be saved to the LeqConstraint.
Returns
tuple
A tuple of (affine expression, [constraints]).'

def canonicalize(self):

    (obj, constraints) = self._expr.canonical_form
    dual_holder = lu.create_leq(obj, constr_id=self.id)
    return (None, (constraints + [dual_holder]))
