public static void attachSupport(ControlFrame frame, Keyword lastmove) {
    if ((!(lastmove == Logic.KWD_DOWN)) &&
        ((frame.currentStrategy == Logic.KWD_ANTECEDENTS) &&
         (Stella_Object.isaP(frame.partialMatchFrame, Logic.SGT_LOGIC_NN_PARTIAL_MATCH) &&
          (!(frame.partialMatchFrame.child == null))))) {
      { NnPartialMatch pmf = ((NnPartialMatch)(frame.partialMatchFrame));
        PartialSupport support = PartialSupport.newPartialSupport();

        support.id = Logic.$PARTIAL_SUPPORT_COUNTER$ = Logic.$PARTIAL_SUPPORT_COUNTER$ + 1;
        support.axiom = ((Proposition)(pmf.rules.value));
        support.fact = ((NnPartialMatch)(pmf.child)).controlFrame.proposition;
        support.argumentScores = Cons.copyConsList(((NnPartialMatch)(pmf.child)).argumentScores).reverse();
        support.score = ((FloatWrapper)(KeyValueList.dynamicSlotValue(support.fact.dynamicSlots, Logic.SYM_LOGIC_MATCH_SCORE, Stella.NULL_FLOAT_WRAPPER))).wrapperValue;
        if (frame.proposition.support() != null) {
          KeyValueList.setDynamicSlotValue(frame.proposition.dynamicSlots, Logic.SYM_LOGIC_SUPPORT, Cons.cons(support, frame.proposition.support()), null);
        }
        else {
          KeyValueList.setDynamicSlotValue(frame.proposition.dynamicSlots, Logic.SYM_LOGIC_SUPPORT, Cons.consList(Cons.cons(support, Stella.NIL)), null);
        }
      }
    }
    else {
      KeyValueList.setDynamicSlotValue(frame.proposition.dynamicSlots, Logic.SYM_LOGIC_SUPPORT, null, null);
    }
  }