public static boolean hasForwardChainingRulesP(Description description, Proposition proposition) {
    if (Proposition.falseP(proposition)) {
      description = Description.getInferableComplementDescription(description);
      if (description == null) {
        return (false);
      }
    }
    { KeyValueList rules = null;
      KeyValueList indices = null;

      { Object [] caller_MV_returnarray = new Object[1];

        rules = Description.collectForwardChainingRules(description, caller_MV_returnarray);
        indices = ((KeyValueList)(caller_MV_returnarray[0]));
      }
      return (rules.nonEmptyP() ||
          indices.nonEmptyP());
    }
  }