docs: @Override
      public boolean subsumes(Atomic atomic) {
          if (!atomic.isAtom()) return false;
          Atom parent = (Atom) atomic;
          MultiUnifier multiUnifier = this.getMultiUnifier(parent, UnifierType.SUBSUMPTIVE);
          if (multiUnifier.isEmpty()) return false;
  
          MultiUnifier inverse = multiUnifier.inverse();
          return//check whether propagated answers would be complete
                  !inverse.isEmpty() &&
                          inverse.stream().allMatch(u -> u.values().containsAll(this.getVarNames()))
                          && !parent.getPredicates(NeqPredicate.class).findFirst().isPresent()
                          && !this.getPredicates(NeqPredicate.class).findFirst().isPresent();
      }