public LogicObject findDuplicateNamedDescription() {
    { Description self = this;

      if (Description.namedDescriptionP(self)) {
        return (self);
      }
      { Proposition proposition = self.proposition;

        { Keyword testValue000 = proposition.kind;

          if (testValue000 == Logic.KWD_AND) {
            { Proposition onlygoal = null;

              { Stella_Object arg = null;
                Vector vector000 = proposition.arguments;
                int index000 = 0;
                int length000 = vector000.length();

                for (;index000 < length000; index000 = index000 + 1) {
                  arg = (vector000.theArray)[index000];
                  if (BooleanWrapper.coerceWrappedBooleanToBoolean(((Proposition)(arg)).variableTypeP())) {
                  }
                  else if (onlygoal != null) {
                    return (null);
                  }
                  else {
                    onlygoal = ((Proposition)(arg));
                  }
                }
              }
              if ((onlygoal != null) &&
                  Logic.sameAndUniqueArgumentsP(self.ioVariables, ((onlygoal.kind == Logic.KWD_NOT) ? ((Proposition)((onlygoal.arguments.theArray)[0])).arguments : onlygoal.arguments))) {
                return (Proposition.extractGoalDescription(onlygoal, null));
              }
            }
          }
          else if (testValue000 == Logic.KWD_NOT) {
            if (Logic.sameAndUniqueArgumentsP(self.ioVariables, ((Proposition)((proposition.arguments.theArray)[0])).arguments)) {
              return (Proposition.extractGoalDescription(proposition, null));
            }
          }
          else {
            if (Logic.sameAndUniqueArgumentsP(self.ioVariables, proposition.arguments)) {
              { Description nameddescription = Proposition.extractGoalDescription(proposition, null);

                if ((nameddescription != null) &&
                    (self.ioVariables.length() == nameddescription.ioVariables.length())) {
                  return (nameddescription);
                }
              }
            }
          }
        }
        return (null);
      }
    }
  }