public static boolean atomicGoalPropositionP(Proposition proposition) {
    { Keyword testValue000 = proposition.kind;

      if ((testValue000 == Logic.KWD_ISA) ||
          ((testValue000 == Logic.KWD_PREDICATE) ||
           ((testValue000 == Logic.KWD_FUNCTION) ||
            (testValue000 == Logic.KWD_IMPLIES)))) {
        return (Proposition.extractGoalDescription(proposition, null) != null);
      }
      else if (testValue000 == Logic.KWD_NOT) {
        return (Proposition.extractGoalDescription(((Proposition)((proposition.arguments.theArray)[0])), null) != null);
      }
      else if (testValue000 == Logic.KWD_AND) {
        { int count = 0;

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

            for (;index000 < length000; index000 = index000 + 1) {
              conjunct = ((Proposition)((vector000.theArray)[index000]));
              if ((!(conjunct.kind == Logic.KWD_AND)) &&
                  Proposition.atomicGoalPropositionP(conjunct)) {
                count = count + 1;
              }
              else {
                return (false);
              }
            }
          }
          return (count == 1);
        }
      }
      else {
        return (false);
      }
    }
  }