public static double estimateGoalCost(Proposition goal) {
    { Keyword testValue000 = goal.kind;

      if ((testValue000 == Logic.KWD_ISA) ||
          ((testValue000 == Logic.KWD_FUNCTION) ||
           (testValue000 == Logic.KWD_PREDICATE))) {
        { NamedDescription description = Logic.getDescription(((Surrogate)(goal.operator)));

          if ((description == null) ||
              (!Description.inferableP(description))) {
            return (1.0);
          }
          else {
            return (Logic.INFERABLE_PENALTY_COST);
          }
        }
      }
      else if (testValue000 == Logic.KWD_IMPLIES) {
        return (Logic.SUBSET_OF_PENALTY_COST);
      }
      else {
        return (1.0);
      }
    }
  }