public static Cons yieldRelativeGoalBindings(ControlFrame frame) {
    { Proposition goal = frame.proposition;
      Cons result = Stella.NIL;
      PatternRecord savecurrentpr = ((QueryIterator)(Logic.$QUERYITERATOR$.get())).currentPatternRecord;

      ((QueryIterator)(Logic.$QUERYITERATOR$.get())).currentPatternRecord = ControlFrame.operativePatternRecord(frame);
      { Stella_Object arg = null;
        Vector vector000 = goal.arguments;
        int index000 = 0;
        int length000 = vector000.length();
        Cons collect000 = null;

        for (;index000 < length000; index000 = index000 + 1) {
          arg = (vector000.theArray)[index000];
          if (collect000 == null) {
            {
              collect000 = Cons.cons(Logic.argumentBoundTo(arg), Stella.NIL);
              if (result == Stella.NIL) {
                result = collect000;
              }
              else {
                Cons.addConsToEndOfConsList(result, collect000);
              }
            }
          }
          else {
            {
              collect000.rest = Cons.cons(Logic.argumentBoundTo(arg), Stella.NIL);
              collect000 = collect000.rest;
            }
          }
        }
      }
      ((QueryIterator)(Logic.$QUERYITERATOR$.get())).currentPatternRecord = savecurrentpr;
      return (result);
    }
  }