```
def isRectangleCover(self, rectangles):
area = 0
corners = set()
a, c = lambda: (X - x) * (Y - y), lambda: {(x, y), (x, Y), (X, y), (X, Y)}
for x, y, X, Y in rectangles:
area += a()
corners ^= c()
x, y, X, Y = (f(z) for f, z in zip((min, min, max, max), zip(*rectangles)))
return area == a() and corners == c()
```

Equivalent to what others have done, just relatively short. I check that the sum of areas matches the rectangular hull's area and that the corners appearing an odd number of times are exactly the hull's corners. I have a rough idea for a proof, might try finishing it later...