public static Proposition findDuplicateComplexProposition(Proposition self) {
    { IntegerWrapper index = IntegerWrapper.wrapInteger(Proposition.propositionHashIndex(self, null, false));
      List bucket = ((List)(Logic.$STRUCTURED_OBJECTS_INDEX$.lookup(index)));
      Proposition duplicate = null;

      if (bucket == null) {
        Logic.$STRUCTURED_OBJECTS_INDEX$.insertAt(index, List.list(Cons.cons(self, Stella.NIL)));
        return (null);
      }
      duplicate = Logic.lookupMatchingPropositionInBucket(bucket, self, null);
      if (duplicate != null) {
        return (duplicate);
      }
      bucket.push(self);
      return (null);
    }
  }