public static Proposition findDuplicateProposition(Proposition self) {
    if (Logic.descriptionModeP() ||
        ((BooleanWrapper)(KeyValueList.dynamicSlotValue(self.dynamicSlots, Logic.SYM_LOGIC_DESCRIPTIVEp, Stella.FALSE_WRAPPER))).wrapperValue) {
      return (null);
    }
    if (self.kind == Logic.KWD_DISABLED) {
      { Proposition value000 = null;

        { Proposition p = null;
          Iterator iter000 = Proposition.findSimilarPropositions(self).allocateIterator();

          loop000 : while (iter000.nextP()) {
            p = ((Proposition)(iter000.value));
            if (Proposition.equivalentPropositionsP(self, p, null) &&
                Context.subcontextP(self.homeContext.baseModule, p.homeContext.baseModule)) {
              value000 = p;
              break loop000;
            }
          }
        }
        { Proposition value001 = value000;

          return (value001);
        }
      }
    }
    else {
      return (Proposition.findDuplicateComplexProposition(self));
    }
  }