public static void recordAndIntroductionJustification(ControlFrame frame, Keyword lastmove) {
    { Vector conjuncts = ((Vector)(KeyValueList.dynamicSlotValue(frame.dynamicSlots, Logic.SYM_STELLA_ARGUMENTS, null)));
      Cons antecedents = Stella.NIL;

      if (lastmove == Logic.KWD_UP_TRUE) {
        { ControlFrame conjunct = null;
          Vector vector000 = conjuncts;
          int index000 = 0;
          int length000 = vector000.length();
          Cons collect000 = null;

          for (;index000 < length000; index000 = index000 + 1) {
            conjunct = ((ControlFrame)((vector000.theArray)[index000]));
            {
            }
            if (collect000 == null) {
              {
                collect000 = Cons.cons(((conjunct.state == Logic.KWD_POPPED) ? ((Justification)(KeyValueList.dynamicSlotValue(conjunct.dynamicSlots, Logic.SYM_LOGIC_JUSTIFICATION, null))).copy() : ((Justification)(KeyValueList.dynamicSlotValue(conjunct.dynamicSlots, Logic.SYM_LOGIC_JUSTIFICATION, null)))), Stella.NIL);
                if (antecedents == Stella.NIL) {
                  antecedents = collect000;
                }
                else {
                  Cons.addConsToEndOfConsList(antecedents, collect000);
                }
              }
            }
            else {
              {
                collect000.rest = Cons.cons(((conjunct.state == Logic.KWD_POPPED) ? ((Justification)(KeyValueList.dynamicSlotValue(conjunct.dynamicSlots, Logic.SYM_LOGIC_JUSTIFICATION, null))).copy() : ((Justification)(KeyValueList.dynamicSlotValue(conjunct.dynamicSlots, Logic.SYM_LOGIC_JUSTIFICATION, null)))), Stella.NIL);
                collect000 = collect000.rest;
              }
            }
          }
        }
        { Justification self000 = Justification.newJustification();

          self000.inferenceRule = Logic.KWD_AND_INTRODUCTION;
          self000.antecedents = antecedents;
          ControlFrame.recordGoalJustification(frame, self000);
        }
      }
      else {
      }
    }
  }