% From The Art of Eyepl, Chapter 28 — Composition, homomorphism, and reusable laws.
preserves_combine(X, Y) :-
  combine(X, Y, XY),
  image(X, IX),
  image(Y, IY),
  image(XY, IXY),
  combine(IX, IY, CombinedImages),
  eq(IXY, CombinedImages).
