public static boolean computedPredicateP(Proposition goal) {
    { GeneralizedSymbol operator = goal.operator;
      Description description = null;

      if (operator == Logic.SGT_PL_KERNEL_KB_HOLDS) {
        { Stella_Object relationarg = Logic.argumentBoundTo((goal.arguments.theArray)[0]);

          if ((relationarg != null) &&
              Stella_Object.isaP(relationarg, Logic.SGT_LOGIC_DESCRIPTION)) {
            description = ((Description)(relationarg));
            operator = description.surrogateValueInverse;
          }
          else {
            return (false);
          }
        }
      }
      if (description == null) {
        description = Logic.getDescription(operator);
      }
      return ((description != null) &&
          (Description.computedTermP(description) ||
           ((operator == Logic.SGT_PL_KERNEL_KB_SETOF) ||
            (operator == Logic.SGT_PL_KERNEL_KB_LISTOF))));
    }
  }