diff --git a/core/model/src/main/java/it/unibz/inf/ontop/iq/node/impl/LeftJoinNodeImpl.java b/core/model/src/main/java/it/unibz/inf/ontop/iq/node/impl/LeftJoinNodeImpl.java
index <HASH>..<HASH> 100644
--- a/core/model/src/main/java/it/unibz/inf/ontop/iq/node/impl/LeftJoinNodeImpl.java
+++ b/core/model/src/main/java/it/unibz/inf/ontop/iq/node/impl/LeftJoinNodeImpl.java
@@ -914,6 +914,18 @@ public class LeftJoinNodeImpl extends JoinLikeNodeImpl implements LeftJoinNode {
                     .map(s -> s.composeWith(ascendingSubstitution))
                     .orElse(ascendingSubstitution);
         }
+
+        @Override
+        public boolean equals(Object o) {
+            if (!(o instanceof ChildLiftingState))
+                return false;
+
+            ChildLiftingState other = (ChildLiftingState) o;
+            return leftChild.isEquivalentTo(other.leftChild)
+                    && rightChild.isEquivalentTo(other.rightChild)
+                    && ljCondition.equals(other.ljCondition)
+                    && ascendingSubstitution.equals(other.ascendingSubstitution);
+        }
     }
 
     /**
LeftJoin binding lift can now converge.