public static boolean filterOutStrategyP(Keyword strategy, ControlFrame frame) {
    if (strategy == Logic.KWD_LOOKUP_GOAL_CACHES) {
      return ((!((BooleanWrapper)(KeyValueList.dynamicSlotValue(Logic.surrogateToDescription(((Surrogate)(frame.proposition.operator))).dynamicSlots, Logic.SYM_LOGIC_CHECK_FOR_CACHED_GOALSp, Stella.FALSE_WRAPPER))).wrapperValue) ||
          (!((Logic.$CACHE_SUCCEEDED_GOALSp$ ||
          Logic.$CACHE_FAILED_GOALSp$) &&
          ((Logic.$DUPLICATE_SUBGOAL_STRATEGY$ == Logic.KWD_DUPLICATE_GOALS) &&
           (!((((QueryIterator)(Logic.$QUERYITERATOR$.get())) != null) &&
          (((QueryIterator)(Logic.$QUERYITERATOR$.get())).partialMatchStrategy != null)))))));
    }
    else if (strategy == Logic.KWD_SPECIALIST) {
      { Proposition proposition = frame.proposition;
        NamedDescription description = Logic.getDescription(((Surrogate)(proposition.operator)));

        return (NamedDescription.lookupSpecialist(description) == null);
      }
    }
    else if (strategy == Logic.KWD_MANUFACTURE_SKOLEM) {
      { NamedDescription description = Logic.getDescription(((Surrogate)(frame.proposition.operator)));

        return ((!Logic.testPropertyP(description, Logic.SGT_PL_KERNEL_KB_TOTAL)) ||
            frame.reversePolarityP);
      }
    }
    else {
      return (false);
    }
  }